Fixed a borderline case isamb_forward
[idzebra-moved-to-github.git] / index / extract.c
index d535901..61028b5 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: extract.c,v 1.150 2004-01-22 16:23:23 heikki Exp $
+/* $Id: extract.c,v 1.153 2004-06-01 14:50:59 heikki Exp $
    Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
    Index Data Aps
 
@@ -23,6 +23,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 
 #include <stdio.h>
 #include <assert.h>
+#include <ctype.h>
 #ifdef WIN32
 #include <io.h>
 #else
@@ -1283,7 +1284,9 @@ void extract_flushRecordKeys (ZebraHandle zh, SYSNO sysno,
         if (zh->reg->key_buf_used + 1024 > 
             (zh->reg->ptr_top -zh->reg->ptr_i)*sizeof(char*))
             extract_flushWriteKeys (zh,0);
+        assert(zh->reg->ptr_i >= 0);
         ++(zh->reg->ptr_i);
+        assert(zh->reg->ptr_i > 0);
         (zh->reg->key_buf)[zh->reg->ptr_top - zh->reg->ptr_i] =
            (char*)zh->reg->key_buf + zh->reg->key_buf_used;
 #if SU_SCHEME
@@ -1353,11 +1356,11 @@ void extract_flushWriteKeys (ZebraHandle zh, int final)
     qsort (zh->reg->key_buf + zh->reg->ptr_top - ptr_i, ptr_i,
                sizeof(char*), key_qsort_compare);
 
-    /* zebra.cfg: tempfiles: 
-    /* Y: always use temp files (old way) */
-    /* A: use temp files, if more than one (auto) */
-    /*    = if this is both the last and the first */
-    /* N: never bother with temp files (new) */
+    /* zebra.cfg: tempfiles:  
+       Y: always use temp files (old way) 
+       A: use temp files, if more than one (auto) 
+          = if this is both the last and the first 
+       N: never bother with temp files (new) */
 
     temp_policy=toupper(res_get_def(zh->res,"tempfiles","auto")[0]);
     if (temp_policy != 'Y' && temp_policy != 'N' && temp_policy != 'A') {