Hi Junio, On Mon, 17 Oct 2016, Junio C Hamano wrote: > Johannes Schindelin <johannes.schindelin@xxxxxx> writes: > > > +/* > > + * Reads a file that was presumably written by a shell script, i.e. > > + * with an end-of-line marker that needs to be stripped. > > + * > > + * Returns 1 if the file was read, 0 if it could not be read or does not exist. > > + */ > > +static int read_oneliner(struct strbuf *buf, > > + const char *path, int skip_if_empty) > > +... > > + if (strbuf_read_file(buf, path, 0) < 0) { > > + warning_errno(_("could not read '%s'"), path); > > + return 0; > > + } > > + if (buf->len > orig_len && buf->buf[buf->len - 1] == '\n') { > > + if (--buf->len > orig_len && buf->buf[buf->len - 1] == '\r') > > + --buf->len; > > + buf->buf[buf->len] = '\0'; > > + } > > The name says "oneliner" but this reads the whole thing and trims > only the last line of the input. Which is correct? The latter. Basically, `read_oneliner()` is short-hand for "that thing that shell does when you use `cat file` with backticks. I do not like `read_stripping_last_eol()`, `read_what_the_shell_wrote()` nor `read_skipping_last_lf()`. So if you come up with any brilliant idea, I am all ears. In the meantime, I'd be happy to just add a comment that this function is intended for oneliners, but that it will also read multi-line files and only strip off the EOL marker from the last line. Would that work for you? Dscho