Code

format-patch -n: make sorting easier by padding number
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>
Fri, 9 Feb 2007 00:43:54 +0000 (01:43 +0100)
committerJunio C Hamano <junkio@cox.net>
Fri, 9 Feb 2007 01:47:38 +0000 (17:47 -0800)
Now, when format-patch outputs more than 9 patches, the numbers
are padded accordingly. Example:

[PATCH 009/167] The 9th patch of a series of 167

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
log-tree.c

index 4e3c7fd6fb1e0665d9be8ac6840ec66a4e3130fb..ac8619404797633436258dbf9d76f9f4aa323395 100644 (file)
@@ -102,6 +102,16 @@ static int append_signoff(char *buf, int buf_sz, int at, const char *signoff)
        return at;
 }
 
+static unsigned int digits_in_number(unsigned int number)
+{
+       unsigned int i = 10, result = 1;
+       while (i <= number) {
+               i *= 10;
+               result++;
+       }
+       return result;
+}
+
 void show_log(struct rev_info *opt, const char *sep)
 {
        static char this_header[16384];
@@ -155,7 +165,8 @@ void show_log(struct rev_info *opt, const char *sep)
                if (opt->total > 0) {
                        static char buffer[64];
                        snprintf(buffer, sizeof(buffer),
-                                       "Subject: [PATCH %d/%d] ",
+                                       "Subject: [PATCH %0*d/%d] ",
+                                       digits_in_number(opt->total),
                                        opt->nr, opt->total);
                        subject = buffer;
                } else if (opt->total == 0)