]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/strutl.cc
Introduce isspace_ascii() for use by parsers
[apt.git] / apt-pkg / contrib / strutl.cc
index 5731b5a2b157b4d316b698e7bcbee8132f9ca252..392412e52e2d8ca776b4d5c7fc0e35116bf5b69a 100644 (file)
@@ -331,7 +331,7 @@ string QuoteString(const string &Str, const char *Bad)
          *I == 0x25 || // percent '%' char
          *I <= 0x20 || *I >= 0x7F) // control chars
       {
-        ioprintf(Res,"%%%02x",(int)*I);
+        ioprintf(Res, "%%%02hhx", *I);
       }
       else
         Res << *I;
@@ -1308,7 +1308,7 @@ void ioprintf(ostream &out,const char *format,...)
    va_list args;
    ssize_t size = 400;
    while (true) {
-      bool ret = false;
+      bool ret;
       va_start(args,format);
       ret = iovprintf(out, format, args, size);
       va_end(args);
@@ -1322,7 +1322,7 @@ void strprintf(string &out,const char *format,...)
    ssize_t size = 400;
    std::ostringstream outstr;
    while (true) {
-      bool ret = false;
+      bool ret;
       va_start(args,format);
       ret = iovprintf(outstr, format, args, size);
       va_end(args);
@@ -1378,6 +1378,23 @@ int tolower_ascii(int const c)
 }
                                                                        /*}}}*/
 
+// isspace_ascii - isspace() function that ignores the locale          /*{{{*/
+// ---------------------------------------------------------------------
+/* This little function is one of the most called methods we have and tries
+   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. */
+int isspace_ascii(int const c)
+{
+   return (c == ' '
+           || c == '\f'
+           || c == '\n'
+           || c == '\r'
+           || c == '\t'
+           || c == '\v');
+}
+                                                                       /*}}}*/
+
 // CheckDomainList - See if Host is in a , separate list               /*{{{*/
 // ---------------------------------------------------------------------
 /* The domain list is a comma separate list of domains that are suffix