Commit 8f309aeb authored by Junio C Hamano's avatar Junio C Hamano

strbuf: introduce strbuf_getline_{lf,nul}()

The strbuf_getline() interface allows a byte other than LF or NUL as
the line terminator, but this is only because I wrote these
codepaths anticipating that there might be a value other than NUL
and LF that could be useful when I introduced line_termination long
time ago.  No useful caller that uses other value has emerged.

By now, it is clear that the interface is overly broad without a
good reason.  Many codepaths have hardcoded preference to read
either LF terminated or NUL terminated records from their input, and
then call strbuf_getline() with LF or NUL as the third parameter.

This step introduces two thin wrappers around strbuf_getline(),
namely, strbuf_getline_lf() and strbuf_getline_nul(), and
mechanically rewrites these call sites to call either one of
them.  The changes contained in this patch are:

 * introduction of these two functions in strbuf.[ch]

 * mechanical conversion of all callers to strbuf_getline() with
   either '\n' or '\0' as the third parameter to instead call the
   respective thin wrapper.

After this step, output from "git grep 'strbuf_getline('" would
become a lot smaller.  An interim goal of this series is to make
this an empty set, so that we can have strbuf_getline_crlf() take
over the shorter name strbuf_getline().
Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
parent c8aa9fdf
...@@ -440,7 +440,7 @@ static void read_bisect_paths(struct argv_array *array) ...@@ -440,7 +440,7 @@ static void read_bisect_paths(struct argv_array *array)
if (!fp) if (!fp)
die_errno("Could not open file '%s'", filename); die_errno("Could not open file '%s'", filename);
while (strbuf_getline(&str, fp, '\n') != EOF) { while (strbuf_getline_lf(&str, fp) != EOF) {
strbuf_trim(&str); strbuf_trim(&str);
if (sq_dequote_to_argv_array(str.buf, array)) if (sq_dequote_to_argv_array(str.buf, array))
die("Badly quoted content in file '%s': %s", die("Badly quoted content in file '%s': %s",
...@@ -668,7 +668,7 @@ static int is_expected_rev(const struct object_id *oid) ...@@ -668,7 +668,7 @@ static int is_expected_rev(const struct object_id *oid)
if (!fp) if (!fp)
return 0; return 0;
if (strbuf_getline(&str, fp, '\n') != EOF) if (strbuf_getline_lf(&str, fp) != EOF)
res = !strcmp(str.buf, oid_to_hex(oid)); res = !strcmp(str.buf, oid_to_hex(oid));
strbuf_release(&str); strbuf_release(&str);
...@@ -914,9 +914,9 @@ void read_bisect_terms(const char **read_bad, const char **read_good) ...@@ -914,9 +914,9 @@ void read_bisect_terms(const char **read_bad, const char **read_good)
strerror(errno)); strerror(errno));
} }
} else { } else {
strbuf_getline(&str, fp, '\n'); strbuf_getline_lf(&str, fp);
*read_bad = strbuf_detach(&str, NULL); *read_bad = strbuf_detach(&str, NULL);
strbuf_getline(&str, fp, '\n'); strbuf_getline_lf(&str, fp);
*read_good = strbuf_detach(&str, NULL); *read_good = strbuf_detach(&str, NULL);
} }
strbuf_release(&str); strbuf_release(&str);
......
...@@ -269,7 +269,7 @@ static char *read_shell_var(FILE *fp, const char *key) ...@@ -269,7 +269,7 @@ static char *read_shell_var(FILE *fp, const char *key)
struct strbuf sb = STRBUF_INIT; struct strbuf sb = STRBUF_INIT;
const char *str; const char *str;
if (strbuf_getline(&sb, fp, '\n')) if (strbuf_getline_lf(&sb, fp))
goto fail; goto fail;
if (!skip_prefix(sb.buf, key, &str)) if (!skip_prefix(sb.buf, key, &str))
...@@ -558,7 +558,7 @@ static int copy_notes_for_rebase(const struct am_state *state) ...@@ -558,7 +558,7 @@ static int copy_notes_for_rebase(const struct am_state *state)
fp = xfopen(am_path(state, "rewritten"), "r"); fp = xfopen(am_path(state, "rewritten"), "r");
while (!strbuf_getline(&sb, fp, '\n')) { while (!strbuf_getline_lf(&sb, fp)) {
unsigned char from_obj[GIT_SHA1_RAWSZ], to_obj[GIT_SHA1_RAWSZ]; unsigned char from_obj[GIT_SHA1_RAWSZ], to_obj[GIT_SHA1_RAWSZ];
if (sb.len != GIT_SHA1_HEXSZ * 2 + 1) { if (sb.len != GIT_SHA1_HEXSZ * 2 + 1) {
...@@ -802,7 +802,7 @@ static int stgit_patch_to_mail(FILE *out, FILE *in, int keep_cr) ...@@ -802,7 +802,7 @@ static int stgit_patch_to_mail(FILE *out, FILE *in, int keep_cr)
struct strbuf sb = STRBUF_INIT; struct strbuf sb = STRBUF_INIT;
int subject_printed = 0; int subject_printed = 0;
while (!strbuf_getline(&sb, in, '\n')) { while (!strbuf_getline_lf(&sb, in)) {
const char *str; const char *str;
if (str_isspace(sb.buf)) if (str_isspace(sb.buf))
...@@ -860,7 +860,7 @@ static int split_mail_stgit_series(struct am_state *state, const char **paths, ...@@ -860,7 +860,7 @@ static int split_mail_stgit_series(struct am_state *state, const char **paths,
return error(_("could not open '%s' for reading: %s"), *paths, return error(_("could not open '%s' for reading: %s"), *paths,
strerror(errno)); strerror(errno));
while (!strbuf_getline(&sb, fp, '\n')) { while (!strbuf_getline_lf(&sb, fp)) {
if (*sb.buf == '#') if (*sb.buf == '#')
continue; /* skip comment lines */ continue; /* skip comment lines */
...@@ -885,7 +885,7 @@ static int hg_patch_to_mail(FILE *out, FILE *in, int keep_cr) ...@@ -885,7 +885,7 @@ static int hg_patch_to_mail(FILE *out, FILE *in, int keep_cr)
{ {
struct strbuf sb = STRBUF_INIT; struct strbuf sb = STRBUF_INIT;
while (!strbuf_getline(&sb, in, '\n')) { while (!strbuf_getline_lf(&sb, in)) {
const char *str; const char *str;
if (skip_prefix(sb.buf, "# User ", &str)) if (skip_prefix(sb.buf, "# User ", &str))
...@@ -1302,7 +1302,7 @@ static int parse_mail(struct am_state *state, const char *mail) ...@@ -1302,7 +1302,7 @@ static int parse_mail(struct am_state *state, const char *mail)
/* Extract message and author information */ /* Extract message and author information */
fp = xfopen(am_path(state, "info"), "r"); fp = xfopen(am_path(state, "info"), "r");
while (!strbuf_getline(&sb, fp, '\n')) { while (!strbuf_getline_lf(&sb, fp)) {
const char *x; const char *x;
if (skip_prefix(sb.buf, "Subject: ", &x)) { if (skip_prefix(sb.buf, "Subject: ", &x)) {
...@@ -1368,7 +1368,7 @@ static int get_mail_commit_sha1(unsigned char *commit_id, const char *mail) ...@@ -1368,7 +1368,7 @@ static int get_mail_commit_sha1(unsigned char *commit_id, const char *mail)
FILE *fp = xfopen(mail, "r"); FILE *fp = xfopen(mail, "r");
const char *x; const char *x;
if (strbuf_getline(&sb, fp, '\n')) if (strbuf_getline_lf(&sb, fp))
return -1; return -1;
if (!skip_prefix(sb.buf, "From ", &x)) if (!skip_prefix(sb.buf, "From ", &x))
......
...@@ -401,7 +401,7 @@ static int batch_objects(struct batch_options *opt) ...@@ -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(&buf, stdin, '\n') != EOF) { while (strbuf_getline_lf(&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
......
...@@ -54,7 +54,7 @@ int cmd_check_mailmap(int argc, const char **argv, const char *prefix) ...@@ -54,7 +54,7 @@ int cmd_check_mailmap(int argc, const char **argv, const char *prefix)
if (use_stdin) { if (use_stdin) {
struct strbuf buf = STRBUF_INIT; struct strbuf buf = STRBUF_INIT;
while (strbuf_getline(&buf, stdin, '\n') != EOF) { while (strbuf_getline_lf(&buf, stdin) != EOF) {
check_mailmap(&mailmap, buf.buf); check_mailmap(&mailmap, buf.buf);
maybe_flush_or_die(stdout, "stdout"); maybe_flush_or_die(stdout, "stdout");
} }
......
...@@ -594,7 +594,7 @@ static int *list_and_choose(struct menu_opts *opts, struct menu_stuff *stuff) ...@@ -594,7 +594,7 @@ static int *list_and_choose(struct menu_opts *opts, struct menu_stuff *stuff)
clean_get_color(CLEAN_COLOR_RESET)); clean_get_color(CLEAN_COLOR_RESET));
} }
if (strbuf_getline(&choice, stdin, '\n') != EOF) { if (strbuf_getline_lf(&choice, stdin) != EOF) {
strbuf_trim(&choice); strbuf_trim(&choice);
} else { } else {
eof = 1; eof = 1;
...@@ -676,7 +676,7 @@ static int filter_by_patterns_cmd(void) ...@@ -676,7 +676,7 @@ static int filter_by_patterns_cmd(void)
clean_print_color(CLEAN_COLOR_PROMPT); clean_print_color(CLEAN_COLOR_PROMPT);
printf(_("Input ignore patterns>> ")); printf(_("Input ignore patterns>> "));
clean_print_color(CLEAN_COLOR_RESET); clean_print_color(CLEAN_COLOR_RESET);
if (strbuf_getline(&confirm, stdin, '\n') != EOF) if (strbuf_getline_lf(&confirm, stdin) != EOF)
strbuf_trim(&confirm); strbuf_trim(&confirm);
else else
putchar('\n'); putchar('\n');
...@@ -774,7 +774,7 @@ static int ask_each_cmd(void) ...@@ -774,7 +774,7 @@ static int ask_each_cmd(void)
qname = quote_path_relative(item->string, NULL, &buf); qname = quote_path_relative(item->string, NULL, &buf);
/* TRANSLATORS: Make sure to keep [y/N] as is */ /* TRANSLATORS: Make sure to keep [y/N] as is */
printf(_("Remove %s [y/N]? "), qname); printf(_("Remove %s [y/N]? "), qname);
if (strbuf_getline(&confirm, stdin, '\n') != EOF) { if (strbuf_getline_lf(&confirm, stdin) != EOF) {
strbuf_trim(&confirm); strbuf_trim(&confirm);
} else { } else {
putchar('\n'); putchar('\n');
......
...@@ -339,7 +339,7 @@ static void copy_alternates(struct strbuf *src, struct strbuf *dst, ...@@ -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(&line, in, '\n') != EOF) { while (strbuf_getline_lf(&line, in) != EOF) {
char *abs_path; char *abs_path;
if (!line.len || line.buf[0] == '#') if (!line.len || line.buf[0] == '#')
continue; continue;
......
...@@ -51,7 +51,7 @@ int cmd_column(int argc, const char **argv, const char *prefix) ...@@ -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(&sb, stdin, '\n')) while (!strbuf_getline_lf(&sb, stdin))
string_list_append(&list, sb.buf); string_list_append(&list, sb.buf);
print_columns(&list, colopts, &copts); print_columns(&list, colopts, &copts);
......
...@@ -1690,7 +1690,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix) ...@@ -1690,7 +1690,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
if (fp == NULL) if (fp == NULL)
die_errno(_("could not open '%s' for reading"), die_errno(_("could not open '%s' for reading"),
git_path_merge_head()); git_path_merge_head());
while (strbuf_getline(&m, fp, '\n') != EOF) { while (strbuf_getline_lf(&m, fp) != EOF) {
struct commit *parent; struct commit *parent;
parent = get_merge_parent(m.buf); parent = get_merge_parent(m.buf);
......
...@@ -158,7 +158,7 @@ int cmd_fetch_pack(int argc, const char **argv, const char *prefix) ...@@ -158,7 +158,7 @@ int cmd_fetch_pack(int argc, const char **argv, const char *prefix)
else { else {
/* read from stdin one ref per line, until EOF */ /* read from stdin one ref per line, until EOF */
struct strbuf line = STRBUF_INIT; struct strbuf line = STRBUF_INIT;
while (strbuf_getline(&line, stdin, '\n') != EOF) while (strbuf_getline_lf(&line, stdin) != EOF)
add_sought_entry(&sought, &nr_sought, &alloc_sought, line.buf); add_sought_entry(&sought, &nr_sought, &alloc_sought, line.buf);
strbuf_release(&line); strbuf_release(&line);
} }
......
...@@ -562,7 +562,7 @@ static int file_callback(const struct option *opt, const char *arg, int unset) ...@@ -562,7 +562,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(&sb, patterns, '\n') == 0) { while (strbuf_getline_lf(&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;
......
...@@ -60,7 +60,7 @@ static void hash_stdin_paths(const char *type, int no_filters, unsigned flags, ...@@ -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(&buf, stdin, '\n') != EOF) { while (strbuf_getline_lf(&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))
......
...@@ -290,7 +290,7 @@ static int notes_copy_from_stdin(int force, const char *rewrite_cmd) ...@@ -290,7 +290,7 @@ static int notes_copy_from_stdin(int force, const char *rewrite_cmd)
t = &default_notes_tree; t = &default_notes_tree;
} }
while (strbuf_getline(&buf, stdin, '\n') != EOF) { while (strbuf_getline_lf(&buf, stdin) != EOF) {
unsigned char from_obj[20], to_obj[20]; unsigned char from_obj[20], to_obj[20];
struct strbuf **split; struct strbuf **split;
int err; int err;
......
...@@ -378,7 +378,7 @@ static void get_merge_heads(struct sha1_array *merge_heads) ...@@ -378,7 +378,7 @@ static void get_merge_heads(struct sha1_array *merge_heads)
if (!(fp = fopen(filename, "r"))) if (!(fp = fopen(filename, "r")))
die_errno(_("could not open '%s' for reading"), filename); die_errno(_("could not open '%s' for reading"), filename);
while (strbuf_getline(&sb, fp, '\n') != EOF) { while (strbuf_getline_lf(&sb, fp) != EOF) {
if (get_sha1_hex(sb.buf, sha1)) if (get_sha1_hex(sb.buf, sha1))
continue; /* invalid line: does not start with SHA1 */ continue; /* invalid line: does not start with SHA1 */
if (starts_with(sb.buf + GIT_SHA1_HEXSZ, "\tnot-for-merge\t")) if (starts_with(sb.buf + GIT_SHA1_HEXSZ, "\tnot-for-merge\t"))
......
...@@ -266,7 +266,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix) ...@@ -266,7 +266,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
return ret; return ret;
out = xfdopen(cmd.out, "r"); out = xfdopen(cmd.out, "r");
while (strbuf_getline(&line, out, '\n') != EOF) { while (strbuf_getline_lf(&line, out) != EOF) {
if (line.len != 40) if (line.len != 40)
die("repack: Expecting 40 character sha1 lines only from pack-objects."); die("repack: Expecting 40 character sha1 lines only from pack-objects.");
string_list_append(&names, line.buf); string_list_append(&names, line.buf);
......
...@@ -383,7 +383,7 @@ static int cmd_parseopt(int argc, const char **argv, const char *prefix) ...@@ -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(&sb, stdin, '\n') == EOF) if (strbuf_getline_lf(&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) ...@@ -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(&sb, stdin, '\n') != EOF) { while (strbuf_getline_lf(&sb, stdin) != EOF) {
const char *s; const char *s;
const char *help; const char *help;
struct option *o; struct option *o;
......
...@@ -212,7 +212,7 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix) ...@@ -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(&line, stdin, '\n') != EOF) while (strbuf_getline_lf(&line, stdin) != EOF)
argv_array_push(&all_refspecs, line.buf); argv_array_push(&all_refspecs, line.buf);
strbuf_release(&line); strbuf_release(&line);
} }
......
...@@ -122,7 +122,7 @@ char *git_terminal_prompt(const char *prompt, int echo) ...@@ -122,7 +122,7 @@ char *git_terminal_prompt(const char *prompt, int echo)
fputs(prompt, output_fh); fputs(prompt, output_fh);
fflush(output_fh); fflush(output_fh);
r = strbuf_getline(&buf, input_fh, '\n'); r = strbuf_getline_lf(&buf, input_fh);
if (!echo) { if (!echo) {
putc('\n', output_fh); putc('\n', output_fh);
fflush(output_fh); fflush(output_fh);
......
...@@ -96,12 +96,12 @@ static int read_request(FILE *fh, struct credential *c, ...@@ -96,12 +96,12 @@ static int read_request(FILE *fh, struct credential *c,
static struct strbuf item = STRBUF_INIT; static struct strbuf item = STRBUF_INIT;
const char *p; const char *p;
strbuf_getline(&item, fh, '\n'); strbuf_getline_lf(&item, fh);
if (!skip_prefix(item.buf, "action=", &p)) if (!skip_prefix(item.buf, "action=", &p))
return error("client sent bogus action line: %s", item.buf); return error("client sent bogus action line: %s", item.buf);
strbuf_addstr(action, p); strbuf_addstr(action, p);
strbuf_getline(&item, fh, '\n'); strbuf_getline_lf(&item, fh);
if (!skip_prefix(item.buf, "timeout=", &p)) if (!skip_prefix(item.buf, "timeout=", &p))
return error("client sent bogus timeout line: %s", item.buf); return error("client sent bogus timeout line: %s", item.buf);
*timeout = atoi(p); *timeout = atoi(p);
......
...@@ -23,7 +23,7 @@ static int parse_credential_file(const char *fn, ...@@ -23,7 +23,7 @@ static int parse_credential_file(const char *fn,
return found_credential; return found_credential;
} }
while (strbuf_getline(&line, fh, '\n') != EOF) { while (strbuf_getline_lf(&line, fh) != EOF) {
credential_from_url(&entry, line.buf); credential_from_url(&entry, line.buf);
if (entry.username && entry.password && if (entry.username && entry.password &&
credential_match(c, &entry)) { credential_match(c, &entry)) {
......
...@@ -142,7 +142,7 @@ int credential_read(struct credential *c, FILE *fp) ...@@ -142,7 +142,7 @@ int credential_read(struct credential *c, FILE *fp)
{ {
struct strbuf line = STRBUF_INIT; struct strbuf line = STRBUF_INIT;
while (strbuf_getline(&line, fp, '\n') != EOF) { while (strbuf_getline_lf(&line, fp) != EOF) {
char *key = line.buf; char *key = line.buf;
char *value = strchr(key, '='); char *value = strchr(key, '=');
......
...@@ -424,7 +424,7 @@ static void copy_to_log(int fd) ...@@ -424,7 +424,7 @@ static void copy_to_log(int fd)
return; return;
} }
while (strbuf_getline(&line, fp, '\n') != EOF) { while (strbuf_getline_lf(&line, fp) != EOF) {
logerror("%s", line.buf); logerror("%s", line.buf);
strbuf_setlen(&line, 0); strbuf_setlen(&line, 0);
} }
......
...@@ -1888,7 +1888,7 @@ static int read_next_command(void) ...@@ -1888,7 +1888,7 @@ static int read_next_command(void)
struct recent_command *rc; struct recent_command *rc;
strbuf_detach(&command_buf, NULL); strbuf_detach(&command_buf, NULL);
stdin_eof = strbuf_getline(&command_buf, stdin, '\n'); stdin_eof = strbuf_getline_lf(&command_buf, stdin);
if (stdin_eof) if (stdin_eof)
return EOF; return EOF;
...@@ -1960,7 +1960,7 @@ static int parse_data(struct strbuf *sb, uintmax_t limit, uintmax_t *len_res) ...@@ -1960,7 +1960,7 @@ static int parse_data(struct strbuf *sb, uintmax_t limit, uintmax_t *len_res)
strbuf_detach(&command_buf, NULL); strbuf_detach(&command_buf, NULL);
for (;;) { for (;;) {
if (strbuf_getline(&command_buf, stdin, '\n') == EOF) if (strbuf_getline_lf(&command_buf, stdin) == EOF)
die("EOF in data (terminator '%s' not found)", term); die("EOF in data (terminator '%s' not found)", term);
if (term_len == command_buf.len if (term_len == command_buf.len
&& !strcmp(term, command_buf.buf)) && !strcmp(term, command_buf.buf))
......
...@@ -76,7 +76,7 @@ static int add_mailname_host(struct strbuf *buf) ...@@ -76,7 +76,7 @@ static int add_mailname_host(struct strbuf *buf)
strerror(errno)); strerror(errno));
return -1; return -1;
} }
if (strbuf_getline(&mailnamebuf, mailname, '\n') == EOF) { if (strbuf_getline_lf(&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));
......
...@@ -732,7 +732,7 @@ static int read_one_header_line(struct strbuf *line, FILE *in) ...@@ -732,7 +732,7 @@ static int read_one_header_line(struct strbuf *line, FILE *in)
struct strbuf continuation = STRBUF_INIT; struct strbuf continuation = STRBUF_INIT;
/* Get the first part of the line. */ /* Get the first part of the line. */
if (strbuf_getline(line, in, '\n')) if (strbuf_getline_lf(line, in))
return 0; return 0;
/* /*
...@@ -756,7 +756,7 @@ static int read_one_header_line(struct strbuf *line, FILE *in) ...@@ -756,7 +756,7 @@ static int read_one_header_line(struct strbuf *line, FILE *in)
peek = fgetc(in); ungetc(peek, in); peek = fgetc(in); ungetc(peek, in);
if (peek != ' ' && peek != '\t') if (peek != ' ' && peek != '\t')
break; break;
if (strbuf_getline(&continuation, in, '\n')) if (strbuf_getline_lf(&continuation, in))
break; break;
continuation.buf[0] = ' '; continuation.buf[0] = ' ';
strbuf_rtrim(&continuation); strbuf_rtrim(&continuation);
...@@ -769,7 +769,7 @@ static int read_one_header_line(struct strbuf *line, FILE *in) ...@@ -769,7 +769,7 @@ static int read_one_header_line(struct strbuf *line, FILE *in)
static int find_boundary(struct mailinfo *mi, struct strbuf *line) static int find_boundary(struct mailinfo *mi, struct strbuf *line)
{ {
while (!strbuf_getline(line, mi->input, '\n')) { while (!strbuf_getline_lf(line, mi->input)) {
if (*(mi->content_top) && is_multipart_boundary(mi, line)) if (*(mi->content_top) && is_multipart_boundary(mi, line))
return 1; return 1;
} }
...@@ -820,7 +820,7 @@ static int handle_boundary(struct mailinfo *mi, struct strbuf *line) ...@@ -820,7 +820,7 @@ static int handle_boundary(struct mailinfo *mi, struct strbuf *line)
strbuf_release(&newline); strbuf_release(&newline);
/* replenish line */ /* replenish line */
if (strbuf_getline(line, mi->input, '\n')) if (strbuf_getline_lf(line, mi->input))
return 0; return 0;
strbuf_addch(line, '\n'); strbuf_addch(line, '\n');
return 1; return 1;
......
...@@ -827,7 +827,7 @@ static void parse_fetch(struct strbuf *buf) ...@@ -827,7 +827,7 @@ static void parse_fetch(struct strbuf *buf)
die("http transport does not support %s", buf->buf); die("http transport does not support %s", buf->buf);
strbuf_reset(buf); strbuf_reset(buf);
if (strbuf_getline(buf, stdin, '\n') == EOF) if (strbuf_getline_lf(buf, stdin) == EOF)
return; return;
if (!*buf->buf) if (!*buf->buf)
break; break;
...@@ -940,7 +940,7 @@ static void parse_push(struct strbuf *buf) ...@@ -940,7 +940,7 @@ static void parse_push(struct strbuf *buf)
die("http transport does not support %s", buf->buf); die("http transport does not support %s", buf->buf);
strbuf_reset(buf); strbuf_reset(buf);
if (strbuf_getline(buf, stdin, '\n') == EOF) if (strbuf_getline_lf(buf, stdin) == EOF)
goto free_specs; goto free_specs;
if (!*buf->buf) if (!*buf->buf)
break; break;
...@@ -990,7 +990,7 @@ int main(int argc, const char **argv) ...@@ -990,7 +990,7 @@ int main(int argc, const char **argv)
do { do {
const char *arg; const char *arg;
if (strbuf_getline(&buf, stdin, '\n') == EOF) { if (strbuf_getline_lf(&buf, stdin) == EOF) {
if (ferror(stdin)) if (ferror(stdin))
error("remote-curl: error reading command stream from git"); error("remote-curl: error reading command stream from git");
return 1; return 1;
......
...@@ -154,7 +154,7 @@ static void check_or_regenerate_marks(int latestrev) ...@@ -154,7 +154,7 @@ static void check_or_regenerate_marks(int latestrev)
fclose(marksfile); fclose(marksfile);
} else { } else {
strbuf_addf(&sb, ":%d ", latestrev); strbuf_addf(&sb, ":%d ", latestrev);
while (strbuf_getline(&line, marksfile, '\n') != EOF) { while (strbuf_getline_lf(&line, marksfile) != EOF) {
if (starts_with(line.buf, sb.buf)) { if (starts_with(line.buf, sb.buf)) {
found++; found++;
break; break;
...@@ -322,7 +322,7 @@ int main(int argc, char **argv) ...@@ -322,7 +322,7 @@ int main(int argc, char **argv)
marksfilename = marksfilename_sb.buf; marksfilename = marksfilename_sb.buf;
while (1) { while (1) {
if (strbuf_getline(&buf, stdin, '\n') == EOF) { if (strbuf_getline_lf(&buf, stdin) == EOF) {
if (ferror(stdin)) if (ferror(stdin))
die("Error reading command stream"); die("Error reading command stream");
else else
......
...@@ -256,7 +256,7 @@ static void read_remotes_file(struct remote *remote) ...@@ -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(&buf, f, '\n') != EOF) { while (strbuf_getline_lf(&buf, f) != EOF) {
const char *v; const char *v;
strbuf_rtrim(&buf); strbuf_rtrim(&buf);
...@@ -281,7 +281,7 @@ static void read_branches_file(struct remote *remote) ...@@ -281,7 +281,7 @@ static void read_branches_file(struct remote *remote)
if (!f) if (!f)
return; return;
strbuf_getline(&buf, f, '\n'); strbuf_getline_lf(&buf, f);
fclose(f); fclose(f);
strbuf_trim(&buf); strbuf_trim(&buf);
if (!buf.len) { if (!buf.len) {
......
...@@ -886,7 +886,7 @@ static int sequencer_rollback(struct replay_opts *opts) ...@@ -886,7 +886,7 @@ static int sequencer_rollback(struct replay_opts *opts)
if (!f) if (!f)
return error(_("cannot open %s: %s"), git_path_head_file(), return error(_("cannot open %s: %s"), git_path_head_file(),
strerror(errno)); strerror(errno));
if (strbuf_getline(&buf, f, '\n')) { if (strbuf_getline_lf(&buf, f)) {
error(_("cannot read %s: %s"), git_path_head_file(), error(_("cannot read %s: %s"), git_path_head_file(),
ferror(f) ? strerror(errno) : _("unexpected end of file")); ferror(f) ? strerror(errno) : _("unexpected end of file"));
fclose(f); fclose(f);
......
...@@ -396,7 +396,7 @@ void add_to_alternates_file(const char *reference) ...@@ -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(&line, in, '\n') != EOF) { while (strbuf_getline_lf(&line, in) != EOF) {
if (!strcmp(reference, line.buf)) { if (!strcmp(reference, line.buf)) {
found = 1; found = 1;
break; break;
......
...@@ -88,7 +88,7 @@ static void run_shell(void) ...@@ -88,7 +88,7 @@ static void run_shell(void)
int count; int count;
fprintf(stderr, "git> "); fprintf(stderr, "git> ");
if (strbuf_getline(&line, stdin, '\n') == EOF) { if (strbuf_getline_lf(&line, stdin) == EOF) {
fprintf(stderr, "\n"); fprintf(stderr, "\n");
strbuf_release(&line); strbuf_release(&line);
break; break;
......
...@@ -522,6 +522,16 @@ int strbuf_getline_crlf(struct strbuf *sb, FILE *fp) ...@@ -522,6 +522,16 @@ int strbuf_getline_crlf(struct strbuf *sb, FILE *fp)
return 0; return 0;