diff: honor flag -i (ignore case differences)
authorMatheus Izvekov <mizvekov@gmail.com>
Mon, 18 Jan 2010 16:25:46 +0000 (14:25 -0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Wed, 20 Jan 2010 01:44:44 +0000 (02:44 +0100)
>>From 503a1e1d2597f7cdf86a9ea39ebd2aee050ca759 Mon Sep 17 00:00:00 2001
From: Matheus Izvekov <mizvekov@gmail.com>
Date: Mon, 18 Jan 2010 14:06:26 -0200
Subject: [PATCH] diff: honor flag -i (ignore case differences)

function                                             old     new   delta
read_token                                           157     178     +21
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 21/0)               Total: 21 bytes
   text    data     bss     dec     hex filename
  70102     733    8576   79411   13633 busybox_old
  70123     733    8576   79432   13648 busybox_unstripped

Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
editors/diff.c

index 0c75873b30f4746f501b4b4cdae8d4330e3ffcad..ef203052781fb04788d6c1dc40294e00e8047c5b 100644 (file)
@@ -94,7 +94,7 @@ enum {                   /* Commandline flags */
        FLAG_a,
        FLAG_b,
        FLAG_d,
-       FLAG_i, /* unused */
+       FLAG_i,
        FLAG_L, /* unused */
        FLAG_N,
        FLAG_q,
@@ -177,6 +177,9 @@ static int read_token(FILE_and_pos_t *ft, token_t tok)
                if (t == '\n')
                        tok |= TOK_EOL;
 
+               if (option_mask32 & FLAG(i)) /* Handcoded tolower() */
+                       t = (t >= 'A' && t <= 'Z') ? t - ('A' - 'a') : t;
+
                if ((option_mask32 & FLAG(w)) && is_space)
                        continue;