Merge branch 'jc/peace-with-crlf'

Many commands that read files that are expected to contain text
that is generated (or can be edited) by the end user to control
their behaviour (e.g. "git grep -f <filename>") have been updated
to be more tolerant to lines that are terminated with CRLF (they
used to treat such a line to contain payload that ends with CR,
which is usually not what the users expect).

* jc/peace-with-crlf:
  test-sha1-array: read command stream with strbuf_getline()
  grep: read -f file with strbuf_getline()
  send-pack: read list of refs with strbuf_getline()
  column: read lines with strbuf_getline()
  cat-file: read batch stream with strbuf_getline()
  transport-helper: read helper response with strbuf_getline()
  clone/sha1_file: read info/alternates with strbuf_getline()
  remote.c: read $GIT_DIR/remotes/* with strbuf_getline()
  ident.c: read /etc/mailname with strbuf_getline()
  rev-parse: read parseopt spec with strbuf_getline()
  revision: read --stdin with strbuf_getline()
  hash-object: read --stdin-paths with strbuf_getline()
This commit is contained in:
Junio C Hamano
2016-02-03 14:15:58 -08:00
13 changed files with 15 additions and 20 deletions

View File

@ -401,7 +401,7 @@ static int batch_objects(struct batch_options *opt)
save_warning = warn_on_object_refname_ambiguity; save_warning = warn_on_object_refname_ambiguity;
warn_on_object_refname_ambiguity = 0; warn_on_object_refname_ambiguity = 0;
while (strbuf_getline_lf(&buf, stdin) != EOF) { while (strbuf_getline(&buf, stdin) != EOF) {
if (data.split_on_whitespace) { if (data.split_on_whitespace) {
/* /*
* Split at first whitespace, tying off the beginning * Split at first whitespace, tying off the beginning

View File

@ -339,7 +339,7 @@ static void copy_alternates(struct strbuf *src, struct strbuf *dst,
FILE *in = fopen(src->buf, "r"); FILE *in = fopen(src->buf, "r");
struct strbuf line = STRBUF_INIT; struct strbuf line = STRBUF_INIT;
while (strbuf_getline_lf(&line, in) != EOF) { while (strbuf_getline(&line, in) != EOF) {
char *abs_path; char *abs_path;
if (!line.len || line.buf[0] == '#') if (!line.len || line.buf[0] == '#')
continue; continue;

View File

@ -51,7 +51,7 @@ int cmd_column(int argc, const char **argv, const char *prefix)
die(_("--command must be the first argument")); die(_("--command must be the first argument"));
} }
finalize_colopts(&colopts, -1); finalize_colopts(&colopts, -1);
while (!strbuf_getline_lf(&sb, stdin)) while (!strbuf_getline(&sb, stdin))
string_list_append(&list, sb.buf); string_list_append(&list, sb.buf);
print_columns(&list, colopts, &copts); print_columns(&list, colopts, &copts);

View File

@ -573,7 +573,7 @@ static int file_callback(const struct option *opt, const char *arg, int unset)
patterns = from_stdin ? stdin : fopen(arg, "r"); patterns = from_stdin ? stdin : fopen(arg, "r");
if (!patterns) if (!patterns)
die_errno(_("cannot open '%s'"), arg); die_errno(_("cannot open '%s'"), arg);
while (strbuf_getline_lf(&sb, patterns) == 0) { while (strbuf_getline(&sb, patterns) == 0) {
/* ignore empty line like grep does */ /* ignore empty line like grep does */
if (sb.len == 0) if (sb.len == 0)
continue; continue;

View File

@ -60,7 +60,7 @@ static void hash_stdin_paths(const char *type, int no_filters, unsigned flags,
{ {
struct strbuf buf = STRBUF_INIT, nbuf = STRBUF_INIT; struct strbuf buf = STRBUF_INIT, nbuf = STRBUF_INIT;
while (strbuf_getline_lf(&buf, stdin) != EOF) { while (strbuf_getline(&buf, stdin) != EOF) {
if (buf.buf[0] == '"') { if (buf.buf[0] == '"') {
strbuf_reset(&nbuf); strbuf_reset(&nbuf);
if (unquote_c_style(&nbuf, buf.buf, NULL)) if (unquote_c_style(&nbuf, buf.buf, NULL))

View File

@ -383,7 +383,7 @@ static int cmd_parseopt(int argc, const char **argv, const char *prefix)
/* get the usage up to the first line with a -- on it */ /* get the usage up to the first line with a -- on it */
for (;;) { for (;;) {
if (strbuf_getline_lf(&sb, stdin) == EOF) if (strbuf_getline(&sb, stdin) == EOF)
die("premature end of input"); die("premature end of input");
ALLOC_GROW(usage, unb + 1, usz); ALLOC_GROW(usage, unb + 1, usz);
if (!strcmp("--", sb.buf)) { if (!strcmp("--", sb.buf)) {
@ -396,7 +396,7 @@ static int cmd_parseopt(int argc, const char **argv, const char *prefix)
} }
/* parse: (<short>|<short>,<long>|<long>)[*=?!]*<arghint>? SP+ <help> */ /* parse: (<short>|<short>,<long>|<long>)[*=?!]*<arghint>? SP+ <help> */
while (strbuf_getline_lf(&sb, stdin) != EOF) { while (strbuf_getline(&sb, stdin) != EOF) {
const char *s; const char *s;
const char *help; const char *help;
struct option *o; struct option *o;

View File

@ -212,7 +212,7 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix)
argv_array_push(&all_refspecs, buf); argv_array_push(&all_refspecs, buf);
} else { } else {
struct strbuf line = STRBUF_INIT; struct strbuf line = STRBUF_INIT;
while (strbuf_getline_lf(&line, stdin) != EOF) while (strbuf_getline(&line, stdin) != EOF)
argv_array_push(&all_refspecs, line.buf); argv_array_push(&all_refspecs, line.buf);
strbuf_release(&line); strbuf_release(&line);
} }

View File

@ -76,7 +76,7 @@ static int add_mailname_host(struct strbuf *buf)
strerror(errno)); strerror(errno));
return -1; return -1;
} }
if (strbuf_getline_lf(&mailnamebuf, mailname) == EOF) { if (strbuf_getline(&mailnamebuf, mailname) == EOF) {
if (ferror(mailname)) if (ferror(mailname))
warning("cannot read /etc/mailname: %s", warning("cannot read /etc/mailname: %s",
strerror(errno)); strerror(errno));

View File

@ -256,7 +256,7 @@ static void read_remotes_file(struct remote *remote)
if (!f) if (!f)
return; return;
remote->origin = REMOTE_REMOTES; remote->origin = REMOTE_REMOTES;
while (strbuf_getline_lf(&buf, f) != EOF) { while (strbuf_getline(&buf, f) != EOF) {
const char *v; const char *v;
strbuf_rtrim(&buf); strbuf_rtrim(&buf);

View File

@ -1635,10 +1635,7 @@ static void append_prune_data(struct cmdline_pathspec *prune, const char **av)
static void read_pathspec_from_stdin(struct rev_info *revs, struct strbuf *sb, static void read_pathspec_from_stdin(struct rev_info *revs, struct strbuf *sb,
struct cmdline_pathspec *prune) struct cmdline_pathspec *prune)
{ {
while (strbuf_getwholeline(sb, stdin, '\n') != EOF) { while (strbuf_getline(sb, stdin) != EOF) {
int len = sb->len;
if (len && sb->buf[len - 1] == '\n')
sb->buf[--len] = '\0';
ALLOC_GROW(prune->path, prune->nr + 1, prune->alloc); ALLOC_GROW(prune->path, prune->nr + 1, prune->alloc);
prune->path[prune->nr++] = xstrdup(sb->buf); prune->path[prune->nr++] = xstrdup(sb->buf);
} }
@ -1655,10 +1652,8 @@ static void read_revisions_from_stdin(struct rev_info *revs,
warn_on_object_refname_ambiguity = 0; warn_on_object_refname_ambiguity = 0;
strbuf_init(&sb, 1000); strbuf_init(&sb, 1000);
while (strbuf_getwholeline(&sb, stdin, '\n') != EOF) { while (strbuf_getline(&sb, stdin) != EOF) {
int len = sb.len; int len = sb.len;
if (len && sb.buf[len - 1] == '\n')
sb.buf[--len] = '\0';
if (!len) if (!len)
break; break;
if (sb.buf[0] == '-') { if (sb.buf[0] == '-') {

View File

@ -396,7 +396,7 @@ void add_to_alternates_file(const char *reference)
struct strbuf line = STRBUF_INIT; struct strbuf line = STRBUF_INIT;
int found = 0; int found = 0;
while (strbuf_getline_lf(&line, in) != EOF) { while (strbuf_getline(&line, in) != EOF) {
if (!strcmp(reference, line.buf)) { if (!strcmp(reference, line.buf)) {
found = 1; found = 1;
break; break;

View File

@ -11,7 +11,7 @@ int main(int argc, char **argv)
struct sha1_array array = SHA1_ARRAY_INIT; struct sha1_array array = SHA1_ARRAY_INIT;
struct strbuf line = STRBUF_INIT; struct strbuf line = STRBUF_INIT;
while (strbuf_getline_lf(&line, stdin) != EOF) { while (strbuf_getline(&line, stdin) != EOF) {
const char *arg; const char *arg;
unsigned char sha1[20]; unsigned char sha1[20];

View File

@ -54,7 +54,7 @@ static int recvline_fh(FILE *helper, struct strbuf *buffer, const char *name)
strbuf_reset(buffer); strbuf_reset(buffer);
if (debug) if (debug)
fprintf(stderr, "Debug: Remote helper: Waiting...\n"); fprintf(stderr, "Debug: Remote helper: Waiting...\n");
if (strbuf_getline_lf(buffer, helper) == EOF) { if (strbuf_getline(buffer, helper) == EOF) {
if (debug) if (debug)
fprintf(stderr, "Debug: Remote helper quit.\n"); fprintf(stderr, "Debug: Remote helper quit.\n");
return 1; return 1;