* fix: shortcut for signed is 'z', not 's'; add some unit tests as well

This commit is contained in:
djcb
2012-05-11 18:39:00 +03:00
parent 192c5b12bc
commit 58dc869017
7 changed files with 112 additions and 83 deletions

View File

@ -30,17 +30,17 @@ static const FlagInfo FLAG_INFO[] = {
/* NOTE: order of this is significant, due to optimizations
* below */
{ MU_FLAG_DRAFT, 'D', "draft", MU_FLAG_TYPE_MAILFILE },
{ MU_FLAG_FLAGGED, 'F', "flagged", MU_FLAG_TYPE_MAILFILE },
{ MU_FLAG_PASSED, 'P', "passed", MU_FLAG_TYPE_MAILFILE },
{ MU_FLAG_REPLIED, 'R', "replied", MU_FLAG_TYPE_MAILFILE },
{ MU_FLAG_SEEN, 'S', "seen", MU_FLAG_TYPE_MAILFILE },
{ MU_FLAG_TRASHED, 'T', "trashed", MU_FLAG_TYPE_MAILFILE },
{ MU_FLAG_NEW, 'N', "new", MU_FLAG_TYPE_MAILDIR },
{ MU_FLAG_SIGNED, 's', "signed", MU_FLAG_TYPE_CONTENT },
{ MU_FLAG_NEW, 'N', "new", MU_FLAG_TYPE_MAILDIR },
{ MU_FLAG_SIGNED, 'z', "signed", MU_FLAG_TYPE_CONTENT },
{ MU_FLAG_ENCRYPTED, 'x', "encrypted", MU_FLAG_TYPE_CONTENT },
{ MU_FLAG_HAS_ATTACH, 'a', "attach", MU_FLAG_TYPE_CONTENT },
@ -69,17 +69,17 @@ char
mu_flag_char (MuFlags flag)
{
switch (flag) {
case MU_FLAG_DRAFT: return 'D';
case MU_FLAG_FLAGGED: return 'F';
case MU_FLAG_PASSED: return 'P';
case MU_FLAG_REPLIED: return 'R';
case MU_FLAG_SEEN: return 'S';
case MU_FLAG_TRASHED: return 'T';
case MU_FLAG_NEW: return 'N';
case MU_FLAG_SIGNED: return 's';
case MU_FLAG_SIGNED: return 'z';
case MU_FLAG_ENCRYPTED: return 'x';
case MU_FLAG_HAS_ATTACH: return 'a';
@ -96,22 +96,22 @@ static MuFlags
mu_flag_from_char (char kar)
{
switch (kar) {
case 'D': return MU_FLAG_DRAFT;
case 'F': return MU_FLAG_FLAGGED;
case 'P': return MU_FLAG_PASSED;
case 'R': return MU_FLAG_REPLIED;
case 'S': return MU_FLAG_SEEN;
case 'T': return MU_FLAG_TRASHED;
case 'N': return MU_FLAG_NEW;
case 's': return MU_FLAG_SIGNED;
case 'x': return MU_FLAG_ENCRYPTED;
case 'a': return MU_FLAG_HAS_ATTACH;
case 'D': return MU_FLAG_DRAFT;
case 'F': return MU_FLAG_FLAGGED;
case 'P': return MU_FLAG_PASSED;
case 'R': return MU_FLAG_REPLIED;
case 'S': return MU_FLAG_SEEN;
case 'T': return MU_FLAG_TRASHED;
case 'N': return MU_FLAG_NEW;
case 'z': return MU_FLAG_SIGNED;
case 'x': return MU_FLAG_ENCRYPTED;
case 'a': return MU_FLAG_HAS_ATTACH;
case 'u': return MU_FLAG_UNREAD;
case 'u': return MU_FLAG_UNREAD;
default:
return MU_FLAG_INVALID;
}
@ -123,21 +123,21 @@ const char*
mu_flag_name (MuFlags flag)
{
switch (flag) {
case MU_FLAG_DRAFT: return "draft";
case MU_FLAG_FLAGGED: return "flagged";
case MU_FLAG_PASSED: return "passed";
case MU_FLAG_REPLIED: return "replied";
case MU_FLAG_SEEN: return "seen";
case MU_FLAG_TRASHED: return "trashed";
case MU_FLAG_NEW: return "new";
case MU_FLAG_SIGNED: return "signed";
case MU_FLAG_DRAFT: return "draft";
case MU_FLAG_FLAGGED: return "flagged";
case MU_FLAG_PASSED: return "passed";
case MU_FLAG_REPLIED: return "replied";
case MU_FLAG_SEEN: return "seen";
case MU_FLAG_TRASHED: return "trashed";
case MU_FLAG_NEW: return "new";
case MU_FLAG_SIGNED: return "signed";
case MU_FLAG_ENCRYPTED: return "encrypted";
case MU_FLAG_HAS_ATTACH: return "attach";
case MU_FLAG_UNREAD: return "unread";
case MU_FLAG_UNREAD: return "unread";
default:
return NULL;
}
@ -149,13 +149,13 @@ mu_flags_to_str_s (MuFlags flags, MuFlagType types)
{
unsigned u,v;
static char str[sizeof(FLAG_INFO) + 1];
for (u = 0, v = 0; u != G_N_ELEMENTS(FLAG_INFO); ++u)
for (u = 0, v = 0; u != G_N_ELEMENTS(FLAG_INFO); ++u)
if (flags & FLAG_INFO[u].flag &&
types & FLAG_INFO[u].flag_type)
str[v++] = FLAG_INFO[u].kar;
str[v] = '\0';
return str;
}
@ -177,7 +177,7 @@ mu_flags_from_str (const char *str, MuFlagType types)
if (mu_flag_type (f) & types)
flag |= f;
}
return flag;
}
@ -187,9 +187,9 @@ void
mu_flags_foreach (MuFlagsForeachFunc func, gpointer user_data)
{
unsigned u;
g_return_if_fail (func);
for (u = 0; u != G_N_ELEMENTS(FLAG_INFO); ++u)
func (FLAG_INFO[u].flag, user_data);
}
@ -201,7 +201,7 @@ mu_flags_from_str_delta (const char *str, MuFlags oldflags,
{
const char *cur;
MuFlags newflags;
g_return_val_if_fail (str, MU_FLAG_INVALID);
for (cur = str, newflags = oldflags; *cur; ++cur) {
@ -215,18 +215,16 @@ mu_flags_from_str_delta (const char *str, MuFlags oldflags,
newflags |= f;
else
newflags &= ~f;
++cur;
++cur;
continue;
}
goto error;
}
return newflags;
error:
g_warning ("invalid flag string");
return MU_FLAG_INVALID;
}