git-upload-pack: Support the multi_ack protocol
[git.git] / config.c
index f3c4fa4..519fecf 100644 (file)
--- a/config.c
+++ b/config.c
@@ -1,4 +1,3 @@
-#include <ctype.h>
 
 #include "cache.h"
 
@@ -64,7 +63,12 @@ static char *parse_value(void)
                        case 'n':
                                c = '\n';
                                break;
-                       return NULL;
+                       /* Some characters escape as themselves */
+                       case '\\': case '"':
+                               break;
+                       /* Reject unknown escape sequences */
+                       default:
+                               return NULL;
                        }
                        value[len++] = c;
                        continue;
@@ -163,7 +167,7 @@ static int git_parse_file(config_fn_t fn)
                }
                if (!isalpha(c))
                        break;
-               var[baselen] = c;
+               var[baselen] = tolower(c);
                if (get_value(fn, var, baselen+1) < 0)
                        break;
        }
@@ -202,6 +206,16 @@ int git_default_config(const char *var, const char *value)
                return 0;
        }
 
+       if (!strcmp(var, "user.name")) {
+               strncpy(git_default_name, value, sizeof(git_default_name));
+               return 0;
+       }
+
+       if (!strcmp(var, "user.email")) {
+               strncpy(git_default_email, value, sizeof(git_default_email));
+               return 0;
+       }
+
        /* Add other config variables here.. */
        return 0;
 }