36 lines
1.0 KiB
C
36 lines
1.0 KiB
C
|
#include "rebase.h"
|
||
|
#include "config.h"
|
||
|
|
||
|
/*
|
||
|
* Parses textual value for pull.rebase, branch.<name>.rebase, etc.
|
||
|
* Unrecognised value yields REBASE_INVALID, which traditionally is
|
||
|
* treated the same way as REBASE_FALSE.
|
||
|
*
|
||
|
* The callers that care if (any) rebase is requested should say
|
||
|
* if (REBASE_TRUE <= rebase_parse_value(string))
|
||
|
*
|
||
|
* The callers that want to differenciate an unrecognised value and
|
||
|
* false can do so by treating _INVALID and _FALSE differently.
|
||
|
*/
|
||
|
enum rebase_type rebase_parse_value(const char *value)
|
||
|
{
|
||
|
int v = git_parse_maybe_bool(value);
|
||
|
|
||
|
if (!v)
|
||
|
return REBASE_FALSE;
|
||
|
else if (v > 0)
|
||
|
return REBASE_TRUE;
|
||
|
else if (!strcmp(value, "preserve") || !strcmp(value, "p"))
|
||
|
return REBASE_PRESERVE;
|
||
|
else if (!strcmp(value, "merges") || !strcmp(value, "m"))
|
||
|
return REBASE_MERGES;
|
||
|
else if (!strcmp(value, "interactive") || !strcmp(value, "i"))
|
||
|
return REBASE_INTERACTIVE;
|
||
|
/*
|
||
|
* Please update _git_config() in git-completion.bash when you
|
||
|
* add new rebase modes.
|
||
|
*/
|
||
|
|
||
|
return REBASE_INVALID;
|
||
|
}
|