convert_to_git(): safe_crlf/checksafe becomes int conv_flags
When calling convert_to_git(), the checksafe parameter defined what should happen if the EOL conversion (CRLF --> LF --> CRLF) does not roundtrip cleanly. In addition, it also defined if line endings should be renormalized (CRLF --> LF) or kept as they are. checksafe was an safe_crlf enum with these values: SAFE_CRLF_FALSE: do nothing in case of EOL roundtrip errors SAFE_CRLF_FAIL: die in case of EOL roundtrip errors SAFE_CRLF_WARN: print a warning in case of EOL roundtrip errors SAFE_CRLF_RENORMALIZE: change CRLF to LF SAFE_CRLF_KEEP_CRLF: keep all line endings as they are In some cases the integer value 0 was passed as checksafe parameter instead of the correct enum value SAFE_CRLF_FALSE. That was no problem because SAFE_CRLF_FALSE is defined as 0. FALSE/FAIL/WARN are different from RENORMALIZE and KEEP_CRLF. Therefore, an enum is not ideal. Let's use a integer bit pattern instead and rename the parameter to conv_flags to make it more generically usable. This allows us to extend the bit pattern in a subsequent commit. Reported-By: Randall S. Becker <rsbecker@nexbridge.com> Helped-By: Lars Schneider <larsxschneider@gmail.com> Signed-off-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: Lars Schneider <larsxschneider@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
1eaabe34fc
commit
8462ff43e4
8
diff.c
8
diff.c
@ -3520,13 +3520,13 @@ int diff_populate_filespec(struct diff_filespec *s, unsigned int flags)
|
||||
{
|
||||
int size_only = flags & CHECK_SIZE_ONLY;
|
||||
int err = 0;
|
||||
int conv_flags = global_conv_flags_eol;
|
||||
/*
|
||||
* demote FAIL to WARN to allow inspecting the situation
|
||||
* instead of refusing.
|
||||
*/
|
||||
enum safe_crlf crlf_warn = (safe_crlf == SAFE_CRLF_FAIL
|
||||
? SAFE_CRLF_WARN
|
||||
: safe_crlf);
|
||||
if (conv_flags & CONV_EOL_RNDTRP_DIE)
|
||||
conv_flags = CONV_EOL_RNDTRP_WARN;
|
||||
|
||||
if (!DIFF_FILE_VALID(s))
|
||||
die("internal error: asking to populate invalid file.");
|
||||
@ -3603,7 +3603,7 @@ int diff_populate_filespec(struct diff_filespec *s, unsigned int flags)
|
||||
/*
|
||||
* Convert from working tree format to canonical git format
|
||||
*/
|
||||
if (convert_to_git(&the_index, s->path, s->data, s->size, &buf, crlf_warn)) {
|
||||
if (convert_to_git(&the_index, s->path, s->data, s->size, &buf, conv_flags)) {
|
||||
size_t size = 0;
|
||||
munmap(s->data, s->size);
|
||||
s->should_munmap = 0;
|
||||
|
||||
Reference in New Issue
Block a user