]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/strutl.cc
strutl.cc: Add declarations for the compat _ascii() functions
[apt.git] / apt-pkg / contrib / strutl.cc
index de049602f1143f43072569c49895075add5bf08c..b9bfc2c98541963fbd6aa36d6a0c5862074d9ba2 100644 (file)
@@ -1106,7 +1106,7 @@ static int HexDigit(int c)
       return c - 'a' + 10;
    if (c >= 'A' && c <= 'F')
       return c - 'A' + 10;
-   return 0;
+   return -1;
 }
                                                                        /*}}}*/
 // Hex2Num - Convert a long hex number into a buffer                   /*{{{*/
@@ -1121,11 +1121,16 @@ bool Hex2Num(const string &Str,unsigned char *Num,unsigned int Length)
    int J = 0;
    for (string::const_iterator I = Str.begin(); I != Str.end();J++, I += 2)
    {
-      if (isxdigit(*I) == 0 || isxdigit(I[1]) == 0)
+      int first_half = HexDigit(I[0]);
+      int second_half;
+      if (first_half < 0)
         return false;
       
-      Num[J] = HexDigit(I[0]) << 4;
-      Num[J] += HexDigit(I[1]);
+      second_half = HexDigit(I[1]);
+      if (second_half < 0)
+        return false;
+      Num[J] = first_half << 4;
+      Num[J] += second_half;
    }
    
    return true;
@@ -1364,17 +1369,18 @@ string StripEpoch(const string &VerStr)
    return VerStr.substr(i+1);
 }
                                                                        /*}}}*/
+
 // tolower_ascii - tolower() function that ignores the locale          /*{{{*/
 // ---------------------------------------------------------------------
 /* This little function is the most called method we have and tries
    therefore to do the absolut minimum - and is notable faster than
    standard tolower/toupper and as a bonus avoids problems with different
    locales - we only operate on ascii chars anyway. */
+#undef tolower_ascii
+int tolower_ascii(int const c) APT_CONST APT_COLD;
 int tolower_ascii(int const c)
 {
-   if (c >= 'A' && c <= 'Z')
-      return c + 32;
-   return c;
+   return tolower_ascii_inline(c);
 }
                                                                        /*}}}*/
 
@@ -1384,14 +1390,11 @@ int tolower_ascii(int const c)
    therefore to do the absolut minimum - and is notable faster than
    standard isspace() and as a bonus avoids problems with different
    locales - we only operate on ascii chars anyway. */
+#undef isspace_ascii
+int isspace_ascii(int const c) APT_CONST APT_COLD;
 int isspace_ascii(int const c)
 {
-   return (c == ' '
-           || c == '\f'
-           || c == '\n'
-           || c == '\r'
-           || c == '\t'
-           || c == '\v');
+   return isspace_ascii_inline(c);
 }
                                                                        /*}}}*/