From 98b063439156595f74c89e923bf4d3fd51a3b36f Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Sun, 27 Dec 2015 00:42:37 +0100 Subject: Introduce isspace_ascii() for use by parsers This is like isspace(), but ignores the current locale. --- apt-pkg/contrib/strutl.cc | 17 +++++++++++++++++ apt-pkg/contrib/strutl.h | 2 ++ 2 files changed, 19 insertions(+) diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc index 396cb7898..392412e52 100644 --- a/apt-pkg/contrib/strutl.cc +++ b/apt-pkg/contrib/strutl.cc @@ -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 diff --git a/apt-pkg/contrib/strutl.h b/apt-pkg/contrib/strutl.h index 3e3c2cef6..6d1a1d7ee 100644 --- a/apt-pkg/contrib/strutl.h +++ b/apt-pkg/contrib/strutl.h @@ -106,6 +106,8 @@ void strprintf(std::string &out,const char *format,...) APT_PRINTF(2); char *safe_snprintf(char *Buffer,char *End,const char *Format,...) APT_PRINTF(3); bool CheckDomainList(const std::string &Host, const std::string &List); int tolower_ascii(int const c) APT_CONST APT_HOT; +int isspace_ascii(int const c) APT_CONST APT_HOT; + std::string StripEpoch(const std::string &VerStr); #define APT_MKSTRCMP(name,func) \ -- cgit v1.2.3