From: Torsten Bögershausen <tboegi@xxxxxx> Add a helper function to find out, which line endings text files should get at checkout, depending on core.autocrlf and core.eol Signed-off-by: Torsten Bögershausen <tboegi@xxxxxx> --- convert.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/convert.c b/convert.c index bca3d0c..a5701a1 100644 --- a/convert.c +++ b/convert.c @@ -149,6 +149,19 @@ const char *get_wt_convert_stats_ascii(const char *path) return ret; } +static int text_eol_is_crlf(void) +{ + if (auto_crlf == AUTO_CRLF_TRUE) + return 1; + else if (auto_crlf == AUTO_CRLF_INPUT) + return 0; + if (core_eol == EOL_CRLF) + return 1; + if (core_eol == EOL_UNSET && EOL_NATIVE == EOL_CRLF) + return 1; + return 0; +} + static enum eol output_eol(enum crlf_action crlf_action) { switch (crlf_action) { @@ -164,12 +177,7 @@ static enum eol output_eol(enum crlf_action crlf_action) /* fall through */ case CRLF_TEXT: case CRLF_AUTO: - if (auto_crlf == AUTO_CRLF_TRUE) - return EOL_CRLF; - else if (auto_crlf == AUTO_CRLF_INPUT) - return EOL_LF; - else if (core_eol == EOL_UNSET) - return EOL_NATIVE; + return text_eol_is_crlf() ? EOL_CRLF : EOL_LF; } return core_eol; } @@ -1378,8 +1386,9 @@ struct stream_filter *get_stream_filter(const char *path, const unsigned char *s (crlf_action == CRLF_GUESS && auto_crlf == AUTO_CRLF_FALSE)) filter = cascade_filter(filter, &null_filter_singleton); - else if (output_eol(crlf_action) == EOL_CRLF && - !(crlf_action == CRLF_AUTO || crlf_action == CRLF_GUESS)) + else if ((crlf_action == CRLF_AUTO || crlf_action == CRLF_GUESS)) + ; + else if (output_eol(crlf_action) == EOL_CRLF) filter = cascade_filter(filter, lf_to_crlf_filter()); return filter; -- 2.7.0.303.g2c4f448.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html