]> mj.ucw.cz Git - libucw.git/blobdiff - lib/sorter.h
IP parsing code moved to lib/conf.c, closes Bug #2375.
[libucw.git] / lib / sorter.h
index 4c7f19904be4f21944044c1a16b26adc4112ea3c..15ff9bf7b16bc0378b8231a579cd7035ea8dd088 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *     Sherlock Library -- Universal Sorter
+ *     UCW Library -- Universal Sorter
  *
  *     (c) 2001--2004 Martin Mares <mj@ucw.cz>
  *     (c) 2004 Robert Spalek <robert@ucw.cz>
@@ -279,7 +279,7 @@ P(presort)(struct fastbuf **fb1, struct fastbuf **fb2)
   struct fastbuf *tbuf;
   uns buf_items = sorter_presort_bufsize / sizeof(SORT_KEY);
   uns run_count = 0;
-  SORT_KEY last_out, *array;
+  SORT_KEY last_out = { }, *array;
 
   ASSERT(!*fb2);
   if (buf_items < 2)
@@ -304,7 +304,7 @@ P(presort)(struct fastbuf **fb1, struct fastbuf **fb2)
        {
          run_count++;
 #ifdef SORT_UP_TO
-         if (sorter_presort_bufsize < SORT_UP_TO)
+         if (sorter_presort_bufsize < (uns) SORT_UP_TO)
 #endif
            SWAP(out1, out2, tbuf);
          if (!out1)
@@ -531,11 +531,16 @@ struct fastbuf *fb1, struct fastbuf *fb2
     do P(pass)(&fb1, &fb2); while (fb1 && fb2);
 #else
     {
-      sh_off_t run_count = ~0U, max_run_count = 0;
+      sh_off_t run_count, max_run_count = 0;
       if (fb1)
        max_run_count += bfilesize(fb1);
       if (fb2)
        max_run_count += bfilesize(fb2);
+#ifdef SORT_PRESORT
+      run_count = max_run_count / sorter_presort_bufsize;
+#else
+      run_count = max_run_count;
+#endif
       if (SORT_UP_TO)
        max_run_count /= SORT_UP_TO;
       do