git
/
rebase.c
37 строк · 1.1 Кб
1#include "git-compat-util.h"
2#include "rebase.h"
3#include "parse.h"
4#include "gettext.h"
5
6/*
7* Parses textual value for pull.rebase, branch.<name>.rebase, etc.
8* Unrecognised value yields REBASE_INVALID, which traditionally is
9* treated the same way as REBASE_FALSE.
10*
11* The callers that care if (any) rebase is requested should say
12* if (REBASE_TRUE <= rebase_parse_value(string))
13*
14* The callers that want to differenciate an unrecognised value and
15* false can do so by treating _INVALID and _FALSE differently.
16*/
17enum rebase_type rebase_parse_value(const char *value)
18{
19int v = git_parse_maybe_bool(value);
20
21if (!v)
22return REBASE_FALSE;
23else if (v > 0)
24return REBASE_TRUE;
25else if (!strcmp(value, "merges") || !strcmp(value, "m"))
26return REBASE_MERGES;
27else if (!strcmp(value, "interactive") || !strcmp(value, "i"))
28return REBASE_INTERACTIVE;
29else if (!strcmp(value, "preserve") || !strcmp(value, "p"))
30error(_("%s: 'preserve' superseded by 'merges'"), value);
31/*
32* Please update _git_config() in git-completion.bash when you
33* add new rebase modes.
34*/
35
36return REBASE_INVALID;
37}
38