[PATCH] Make -s flag to show-diff a no-op.
[gitweb.git] / checkout-cache.c
index f65be62b4abad184bd755884fb72681fc28c8b3b..a1ef9448c35fa76ea036faae1a789f0cb654198d 100644 (file)
  */
 #include "cache.h"
 
-static int force = 0, quiet = 0;
+static int force = 0, quiet = 0, not_new = 0;
 
 static void create_directories(const char *path)
 {
        int len = strlen(path);
-       char *buf = malloc(len + 1);
+       char *buf = xmalloc(len + 1);
        const char *slash = path;
 
        while ((slash = strchr(slash+1, '/')) != NULL) {
@@ -118,7 +118,8 @@ static int checkout_entry(struct cache_entry *ce, const char *base_dir)
                 * just do the right thing)
                 */
                unlink(path);
-       }
+       } else if (not_new) 
+               return 0;
        return write_entry(ce, path);
 }
 
@@ -182,6 +183,10 @@ int main(int argc, char **argv)
                                quiet = 1;
                                continue;
                        }
+                       if (!strcmp(arg, "-n")) {
+                               not_new = 1;
+                               continue;
+                       }
                        if (!memcmp(arg, "--prefix=", 9)) {
                                base_dir = arg+9;
                                continue;