builtin/checkout: add --recurse-submodules switch
[gitweb.git] / xdiff / xutils.c
index 0de084e53f5144153373cc66cae7b523b4ae2812..04d7b32e4e4a75b9d5762f3d3a2a2f9c236075a0 100644 (file)
@@ -20,6 +20,8 @@
  *
  */
 
+#include <limits.h>
+#include <assert.h>
 #include "xinclude.h"
 
 
@@ -120,35 +122,6 @@ void *xdl_cha_alloc(chastore_t *cha) {
        return data;
 }
 
-
-void *xdl_cha_first(chastore_t *cha) {
-       chanode_t *sncur;
-
-       if (!(cha->sncur = sncur = cha->head))
-               return NULL;
-
-       cha->scurr = 0;
-
-       return (char *) sncur + sizeof(chanode_t) + cha->scurr;
-}
-
-
-void *xdl_cha_next(chastore_t *cha) {
-       chanode_t *sncur;
-
-       if (!(sncur = cha->sncur))
-               return NULL;
-       cha->scurr += cha->isize;
-       if (cha->scurr == sncur->icurr) {
-               if (!(sncur = cha->sncur = sncur->next))
-                       return NULL;
-               cha->scurr = 0;
-       }
-
-       return (char *) sncur + sizeof(chanode_t) + cha->scurr;
-}
-
-
 long xdl_guess_lines(mmfile_t *mf, long sample) {
        long nl = 0, size, tsize = 0;
        char const *data, *cur, *top;
@@ -170,6 +143,19 @@ long xdl_guess_lines(mmfile_t *mf, long sample) {
        return nl + 1;
 }
 
+int xdl_blankline(const char *line, long size, long flags)
+{
+       long i;
+
+       if (!(flags & XDF_WHITESPACE_FLAGS))
+               return (size <= 1);
+
+       for (i = 0; i < size && XDL_ISSPACE(line[i]); i++)
+               ;
+
+       return (i == size);
+}
+
 int xdl_recmatch(const char *l1, long s1, const char *l2, long s2, long flags)
 {
        int i1, i2;
@@ -214,8 +200,10 @@ int xdl_recmatch(const char *l1, long s1, const char *l2, long s2, long flags)
                                return 0;
                }
        } else if (flags & XDF_IGNORE_WHITESPACE_AT_EOL) {
-               while (i1 < s1 && i2 < s2 && l1[i1++] == l2[i2++])
-                       ; /* keep going */
+               while (i1 < s1 && i2 < s2 && l1[i1] == l2[i2]) {
+                       i1++;
+                       i2++;
+               }
        }
 
        /*
@@ -276,7 +264,6 @@ static unsigned long xdl_hash_record_with_whitespace(char const **data,
        return ha;
 }
 
-
 unsigned long xdl_hash_record(char const **data, char const *top, long flags) {
        unsigned long ha = 5381;
        char const *ptr = *data;
@@ -293,7 +280,6 @@ unsigned long xdl_hash_record(char const **data, char const *top, long flags) {
        return ha;
 }
 
-
 unsigned int xdl_hashbits(unsigned int size) {
        unsigned int val = 1, bits = 0;
 
@@ -324,20 +310,6 @@ int xdl_num_out(char *out, long val) {
        return str - out;
 }
 
-
-long xdl_atol(char const *str, char const **next) {
-       long val, base;
-       char const *top;
-
-       for (top = str; XDL_ISDIGIT(*top); top++);
-       if (next)
-               *next = top;
-       for (val = 0, base = 1, top--; top >= str; top--, base *= 10)
-               val += base * (long)(*top - '0');
-       return val;
-}
-
-
 int xdl_emit_hunk_hdr(long s1, long c1, long s2, long c2,
                      const char *func, long funclen, xdemitcb_t *ecb) {
        int nb = 0;