• Junio C Hamano's avatar
    strbuf: make strbuf_getline_crlf() global · c8aa9fdf
    Junio C Hamano authored
    Often we read "text" files that are supplied by the end user
    (e.g. commit log message that was edited with $GIT_EDITOR upon 'git
    commit -e'), and in some environments lines in a text file are
    terminated with CRLF.  Existing strbuf_getline() knows to read a
    single line and then strip the terminating byte from the result, but
    it is handy to have a version that is more tailored for a "text"
    input that takes both '\n' and '\r\n' as line terminator (aka
    <newline> in POSIX lingo) and returns the body of the line after
    stripping <newline>.
    Recently reimplemented "git am" uses such a function implemented
    privately; move it to strbuf.[ch] and make it available for others.
    Note that we do not blindly replace calls to strbuf_getline() that
    uses LF as the line terminator with calls to strbuf_getline_crlf()
    and this is very much deliberate.  Some callers may want to treat an
    incoming line that ends with CR (and terminated with LF) to have a
    payload that includes the final CR, and such a blind replacement
    will result in misconversion when done without code audit.
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
strbuf.c 17.3 KB