mirror of https://github.com/djcb/mu.git
* mu-msg-str: deal with size 0, and add add 'b' for byte in size: query params
This commit is contained in:
parent
3aa034f0f2
commit
84662ef5f5
|
@ -325,19 +325,20 @@ mu_str_date_parse_hdwmy (const char* str)
|
||||||
guint64
|
guint64
|
||||||
mu_str_size_parse_kmg (const char* str)
|
mu_str_size_parse_kmg (const char* str)
|
||||||
{
|
{
|
||||||
guint64 num;
|
gint64 num;
|
||||||
char *end;
|
char *end;
|
||||||
|
|
||||||
g_return_val_if_fail (str, G_MAXUINT64);
|
g_return_val_if_fail (str, G_MAXUINT64);
|
||||||
|
|
||||||
num = strtol (str, &end, 10);
|
num = strtol (str, &end, 10);
|
||||||
if (num <= 0)
|
if (num < 0)
|
||||||
return G_MAXUINT64;
|
return G_MAXUINT64;
|
||||||
|
|
||||||
if (!end || end[1] != '\0')
|
if (!end || end[1] != '\0')
|
||||||
return G_MAXUINT64;
|
return G_MAXUINT64;
|
||||||
|
|
||||||
switch (tolower(end[0])) {
|
switch (tolower(end[0])) {
|
||||||
|
case 'b': return num; /* bytes */
|
||||||
case 'k': return num * 1000; /* kilobyte */
|
case 'k': return num * 1000; /* kilobyte */
|
||||||
case 'm': return num * 1000 * 1000; /* megabyte */
|
case 'm': return num * 1000 * 1000; /* megabyte */
|
||||||
/* case 'g': return num * 1000 * 1000 * 1000; /\* gigabyte *\/ */
|
/* case 'g': return num * 1000 * 1000 * 1000; /\* gigabyte *\/ */
|
||||||
|
@ -360,7 +361,7 @@ mu_str_ascii_xapian_escape_in_place (char *query)
|
||||||
replace_dot = (g_strstr_len(query, -1, "@") != NULL);
|
replace_dot = (g_strstr_len(query, -1, "@") != NULL);
|
||||||
|
|
||||||
for (cur = query; *cur; ++cur) {
|
for (cur = query; *cur; ++cur) {
|
||||||
if (*cur == '@')
|
if (*cur == '@' || *cur == '-')
|
||||||
*cur = '_';
|
*cur = '_';
|
||||||
|
|
||||||
else if (replace_dot && *cur == '.') {
|
else if (replace_dot && *cur == '.') {
|
||||||
|
|
Loading…
Reference in New Issue