Factor out duplicated code to compile host, path and tag patterns.
[privoxy.git] / miscutil.c
index ab1ccae..462eb83 100644 (file)
@@ -1,4 +1,4 @@
-const char miscutil_rcs[] = "$Id: miscutil.c,v 1.53 2007/09/09 18:20:20 fabiankeil Exp $";
+const char miscutil_rcs[] = "$Id: miscutil.c,v 1.56 2007/12/01 12:59:05 fabiankeil Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/miscutil.c,v $
@@ -44,6 +44,17 @@ const char miscutil_rcs[] = "$Id: miscutil.c,v 1.53 2007/09/09 18:20:20 fabianke
  *
  * Revisions   :
  *    $Log: miscutil.c,v $
+ *    Revision 1.56  2007/12/01 12:59:05  fabiankeil
+ *    Some sanity checks for pick_from_range().
+ *
+ *    Revision 1.55  2007/11/03 17:34:49  fabiankeil
+ *    Log the "weak randomization factor" warning only
+ *    once for mingw32 and provide some more details.
+ *
+ *    Revision 1.54  2007/09/19 20:28:37  fabiankeil
+ *    If privoxy_strlcpy() is called with a "buffer" size
+ *    of 0, don't touch whatever destination points to.
+ *
  *    Revision 1.53  2007/09/09 18:20:20  fabiankeil
  *    Turn privoxy_strlcpy() into a function and try to work with
  *    b0rked snprintf() implementations too. Reported by icmp30.
@@ -854,14 +865,14 @@ int simplematch(char *pattern, char *text)
                {
                   return(1);
                }
-               for(i = lastchar; i <= *pat; i++)
+               for (i = lastchar; i <= *pat; i++)
                {
-                  charmap[i / 8] |= (1 << (i % 8));
+                  charmap[i / 8] |= (unsigned char)(1 << (i % 8));
                } 
             }
             else
             {
-               charmap[*pat / 8] |= (1 << (*pat % 8));
+               charmap[*pat / 8] |= (unsigned char)(1 << (*pat % 8));
                lastchar = *pat;
             }
          }
@@ -1084,6 +1095,12 @@ char * make_path(const char * dir, const char * file)
 long int pick_from_range(long int range)
 {
    long int number;
+
+   assert(range != 0);
+   assert(range > 0);
+
+   if (range <= 0) return 0;
+
 #ifdef HAVE_RANDOM
    number = random() % range + 1; 
 #elif defined(FEATURE_PTHREAD)
@@ -1099,8 +1116,9 @@ long int pick_from_range(long int range)
     *
     * Currently we don't have mutexes for mingw32, and for
     * our purpose this cludge is probably preferable to crashes.
+    *
+    * The warning is shown once on startup from jcc.c.
     */
-   log_error(LOG_LEVEL_INFO, "No thread-safe PRNG available? Using weak \'randomization\' factor.");
    number = (range + GetCurrentThreadId() % range) / 2;
 #else
    /*
@@ -1115,7 +1133,7 @@ long int pick_from_range(long int range)
 
 #endif /* (def HAVE_RANDOM) */
 
-   return (number);
+   return number;
 }