summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2007-02-13 18:16:12 -0800
committerJunio C Hamano <junkio@cox.net>2007-02-14 11:19:28 -0800
commitd7f4633405acf3dc09798a759463c616c7c49dfd (patch)
tree87ca32525975b0762c1bdad688b223cca48ebf4c
parent6c510bee2013022fbce52f4b0ec0cc593fc0cc48 (diff)
downloadgit-d7f4633405acf3dc09798a759463c616c7c49dfd.tar.gz
Make AutoCRLF ternary variable.
This allows you to do: [core] AutoCRLF = input and it should do only the CRLF->LF translation (ie it simplifies CRLF only when reading working tree files, but when checking out files, it leaves the LF alone, and doesn't turn it into a CRLF). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--config.c4
-rw-r--r--convert.c2
-rw-r--r--environment.c2
3 files changed, 6 insertions, 2 deletions
diff --git a/config.c b/config.c
index ffe02129a5..e8ae919b52 100644
--- a/config.c
+++ b/config.c
@@ -325,6 +325,10 @@ int git_default_config(const char *var, const char *value)
}
if (!strcmp(var, "core.autocrlf")) {
+ if (value && !strcasecmp(value, "input")) {
+ auto_crlf = -1;
+ return 0;
+ }
auto_crlf = git_config_bool(var, value);
return 0;
}
diff --git a/convert.c b/convert.c
index 13beb70582..898bfe3eb2 100644
--- a/convert.c
+++ b/convert.c
@@ -140,7 +140,7 @@ int convert_to_working_tree(const char *path, char **bufp, unsigned long *sizep)
* based on filename patterns. Right now we just do the
* stupid auto-CRLF one.
*/
- if (!auto_crlf)
+ if (auto_crlf <= 0)
return 0;
size = *sizep;
diff --git a/environment.c b/environment.c
index 2fa0960412..570e32ac3c 100644
--- a/environment.c
+++ b/environment.c
@@ -28,7 +28,7 @@ size_t packed_git_window_size = DEFAULT_PACKED_GIT_WINDOW_SIZE;
size_t packed_git_limit = DEFAULT_PACKED_GIT_LIMIT;
int pager_in_use;
int pager_use_color = 1;
-int auto_crlf = 0;
+int auto_crlf = 0; /* 1: both ways, -1: only when adding git objects */
static const char *git_dir;
static char *git_object_dir, *git_index_file, *git_refs_dir, *git_graft_file;