* mu-msg-str: deal with size 0, and add add 'b' for byte in size: query params

This commit is contained in:
Dirk-Jan C. Binnema 2011-05-20 21:31:08 +03:00
parent 3aa034f0f2
commit 84662ef5f5
1 changed files with 4 additions and 3 deletions

View File

@ -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 == '.') {