Bug fixes.
[idzebra-moved-to-github.git] / dict / scan.c
index 85e870f..fc80b6f 100644 (file)
@@ -4,7 +4,13 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: scan.c,v $
- * Revision 1.1  1995-10-06 09:04:18  adam
+ * Revision 1.3  1995-10-06 11:06:07  adam
+ * Bug fixes.
+ *
+ * Revision 1.2  1995/10/06  10:43:16  adam
+ * Minor changes.
+ *
+ * Revision 1.1  1995/10/06  09:04:18  adam
  * First version of scan.
  *
  */
@@ -45,7 +51,7 @@ void dict_scan_trav (Dict dict, Dict_ptr ptr, int pos, Dict_char *str,
             for (j = 0; info[j] != DICT_EOS; j++)
                str[pos+j] = info[j];
             str[pos+j] = DICT_EOS;
-            (*userfunc)(str, info+j*sizeof(Dict_char), *count * dir);
+            (*userfunc)(str, info+(j+1)*sizeof(Dict_char), *count * dir);
             --(*count);
         }
         else
@@ -81,7 +87,7 @@ int dict_scan_r (Dict dict, Dict_ptr ptr, int pos, Dict_char *str,
                 int *before, int *after,
                  int (*userfunc)(Dict_char *, const char *, int))
 {
-    int cmp = 0, mid, lo, hi, j;
+    int cmp = 0, mid, lo, hi;
     void *p;
     short *indxp;
     char *info;
@@ -102,9 +108,8 @@ int dict_scan_r (Dict dict, Dict_ptr ptr, int pos, Dict_char *str,
            cmp = dict_strcmp ((Dict_char*) info, str + pos);
            if (!cmp)
             {
-               for (j = 0; info[j++] != DICT_EOS; )
-                   ;
-                (*userfunc)(str, info+j*sizeof(Dict_char), *after);
+                (*userfunc)(str, info+(dict_strlen(info)+1)*sizeof(Dict_char)
+                            , *after);
                 --(*after);
                 break;
             }