зеркало из https://github.com/microsoft/git.git
Move read_revisions_from_stdin from builtin-rev-list.c to revision.c
Reading rev-list parameters from the command line can be reused by commands other than rev-list. Move this function to more "library-ish" place to promote code reuse. Signed-off-by: Adam Brewster <asb@bu.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
6e1c23442a
Коммит
1fc561d169
|
@ -565,23 +565,6 @@ static struct commit_list *find_bisection(struct commit_list *list,
|
|||
return best;
|
||||
}
|
||||
|
||||
static void read_revisions_from_stdin(struct rev_info *revs)
|
||||
{
|
||||
char line[1000];
|
||||
|
||||
while (fgets(line, sizeof(line), stdin) != NULL) {
|
||||
int len = strlen(line);
|
||||
if (len && line[len - 1] == '\n')
|
||||
line[--len] = 0;
|
||||
if (!len)
|
||||
break;
|
||||
if (line[0] == '-')
|
||||
die("options not supported in --stdin mode");
|
||||
if (handle_revision_arg(line, revs, 0, 1))
|
||||
die("bad revision '%s'", line);
|
||||
}
|
||||
}
|
||||
|
||||
int cmd_rev_list(int argc, const char **argv, const char *prefix)
|
||||
{
|
||||
struct commit_list *list;
|
||||
|
|
17
revision.c
17
revision.c
|
@ -910,6 +910,23 @@ int handle_revision_arg(const char *arg, struct rev_info *revs,
|
|||
return 0;
|
||||
}
|
||||
|
||||
void read_revisions_from_stdin(struct rev_info *revs)
|
||||
{
|
||||
char line[1000];
|
||||
|
||||
while (fgets(line, sizeof(line), stdin) != NULL) {
|
||||
int len = strlen(line);
|
||||
if (len && line[len - 1] == '\n')
|
||||
line[--len] = '\0';
|
||||
if (!len)
|
||||
break;
|
||||
if (line[0] == '-')
|
||||
die("options not supported in --stdin mode");
|
||||
if (handle_revision_arg(line, revs, 0, 1))
|
||||
die("bad revision '%s'", line);
|
||||
}
|
||||
}
|
||||
|
||||
static void add_grep(struct rev_info *revs, const char *ptn, enum grep_pat_token what)
|
||||
{
|
||||
if (!revs->grep_filter) {
|
||||
|
|
|
@ -111,6 +111,8 @@ struct rev_info {
|
|||
#define REV_TREE_DIFFERENT 2
|
||||
|
||||
/* revision.c */
|
||||
void read_revisions_from_stdin(struct rev_info *revs);
|
||||
|
||||
typedef void (*show_early_output_fn_t)(struct rev_info *, struct commit_list *);
|
||||
volatile show_early_output_fn_t show_early_output;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче