summaryrefslogtreecommitdiff
path: root/merge-file.c
diff options
context:
space:
mode:
authorLibravatar Jeff King <peff@peff.net>2008-01-01 01:17:34 -0500
committerLibravatar Junio C Hamano <gitster@pobox.com>2008-01-02 02:28:54 -0800
commit02e5ba4ae63729c28704280f1b8cfcb205c06960 (patch)
tree055b016d114ec54881ed783e1465ff6d56503916 /merge-file.c
parentMerge branch 'maint' of git://linux-nfs.org/~bfields/git (diff)
downloadtgif-02e5ba4ae63729c28704280f1b8cfcb205c06960.tar.xz
config: handle lack of newline at end of file better
The config parsing routines use the static global 'config_file' to store the FILE* pointing to the current config file being parsed. The function get_next_char() automatically converts an EOF on this file to a newline for the convenience of its callers, and it sets config_file to NULL to indicate that EOF was reached. This throws away useful information, though, since some routines want to call ftell on 'config_file' to find out exactly _where_ the routine ended. In the case of a key ending at EOF boundary, we ended up segfaulting in some cases (changing that key or adding another key in its section), or failing to provide the necessary newline (adding a new section). This patch adds a new flag to indicate EOF and uses that instead of setting config_file to NULL. It also makes sure to add newlines where necessary for truncated input. All three included tests fail without the patch. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'merge-file.c')
0 files changed, 0 insertions, 0 deletions