From 033df5e662eacf00a6e96e82dfab459501c0020f Mon Sep 17 00:00:00 2001 From: Scott Cantor Date: Thu, 26 Mar 2009 21:31:01 +0000 Subject: [PATCH] Optimize check for bad characters. --- xmltooling/util/URLEncoder.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/xmltooling/util/URLEncoder.h b/xmltooling/util/URLEncoder.h index d30f0f1..5b895d1 100644 --- a/xmltooling/util/URLEncoder.h +++ b/xmltooling/util/URLEncoder.h @@ -1,6 +1,6 @@ /* - * Copyright 2001-2007 Internet2 - * + * Copyright 2001-2009 Internet2 + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -16,7 +16,7 @@ /** * @file xmltooling/util/URLEncoder.h - * + * * Interface to a URL-encoding mechanism along with a * default implementation. */ @@ -29,7 +29,7 @@ namespace xmltooling { /** * Interface to a URL-encoding mechanism along with a default implementation. - * + * * Since URL-encoding is not canonical, it's important that the same * encoder is used during some library operations and the calling code. * Applications can supply an alternative implementation to the library @@ -40,33 +40,33 @@ namespace xmltooling { public: URLEncoder() {} virtual ~URLEncoder() {} - + /** * Produce a URL-safe but equivalent version of the input string. - * + * * @param s input string to encode * @return a string object containing the result of encoding the input */ virtual std::string encode(const char* s) const; - + /** * Perform an in-place decoding operation on the input string. * The resulting string will be NULL-terminated. - * + * * @param s input string to decode in a writable buffer */ virtual void decode(char* s) const; - + protected: /** * Returns true iff the input character requires encoding. - * + * * @param ch the character to check - * @return true iff the character should be encoded + * @return true iff the character should be encoded */ virtual bool isBad(char ch) const { static char badchars[]="=&/?:\"\\+<>#%{}|^~[]`;@"; - return (strchr(badchars,ch) || ch<=0x20 || ch>=0x7F); + return (ch<=0x20 || ch>=0x7F || strchr(badchars,ch)); } }; }; -- 2.1.4