33 #ifndef GOOGLE_PROTOBUF_STUBS_STRUTIL_H__ 34 #define GOOGLE_PROTOBUF_STUBS_STRUTIL_H__ 45 #define strtoll _strtoi64 46 #define strtoull _strtoui64 47 #elif defined(__DECCXX) && defined(__osf__) 49 #define strtoll strtol 50 #define strtoull strtoul 66 return (
'a' <= c && c <=
'z') ||
67 (
'A' <= c && c <=
'Z') ||
68 (
'0' <= c && c <=
'9');
72 return (
'0' <= c && c <=
'9');
76 return c ==
' ' || c ==
'\t' || c ==
'\n' || c ==
'\v' || c ==
'\f' ||
81 return c >=
'A' && c <=
'Z';
85 return c >=
'a' && c <=
'z';
98 int x =
static_cast<unsigned char>(
c);
115 return str.size() >= prefix.size() &&
116 str.compare(0, prefix.size(), prefix) == 0;
121 return str.substr(prefix.size());
136 const string& suffix) {
137 return str.size() >= suffix.size() &&
138 str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0;
143 return str.substr(0, str.size() - suffix.size());
175 string::iterator
end = s->end();
176 for (string::iterator
i = s->begin();
i !=
end; ++
i) {
178 if (
'A' <= *
i && *
i <=
'Z') *
i +=
'a' -
'A';
183 string::iterator
end = s->end();
184 for (string::iterator
i = s->begin();
i !=
end; ++
i) {
186 if (
'a' <= *
i && *
i <=
'z') *
i +=
'A' -
'a';
205 const string& newsub,
bool replace_all);
214 vector<string>*
res);
233 const string& full,
const char* delim,
bool skip_empty =
true) {
252 const char* delim,
string* result);
313 vector<string> *errors);
356 if (
sizeof(
int32) ==
sizeof(
long))
357 return strtol(nptr, endptr, base);
363 if (
sizeof(
uint32) ==
sizeof(
unsigned long))
364 return strtoul(nptr, endptr, base);
373 sizeof_int64_is_not_sizeof_long_long);
374 return strtoll(nptr, endptr, base);
379 sizeof_uint64_is_not_sizeof_long_long);
380 return strtoull(nptr, endptr, base);
463 static const int kFastToBufferSize = 32;
475 return (
sizeof(i) == 4 ?
479 return (
sizeof(i) == 4 ?
483 return (
sizeof(i) == 4 ?
487 return (
sizeof(i) == 4 ?
523 return value ?
"true" :
"false";
567 static const int kDoubleToBufferSize = 32;
568 static const int kFloatToBufferSize = 24;
601 sizeof(v) == 1 ||
sizeof(v) == 2 ||
sizeof(v) == 4 ||
sizeof(v) == 8,
602 "Unknown integer type");
604 value =
sizeof(
v) == 1 ? static_cast<uint8>(v)
605 :
sizeof(
v) == 2 ? static_cast<uint16>(v)
606 :
sizeof(
v) == 4 ? static_cast<uint32>(v)
615 char digits[kFastToBufferSize];
621 : piece_data_(digits),
622 piece_size_(FastInt32ToBufferLeft(i32, digits) - &digits[0]) {}
624 : piece_data_(digits),
625 piece_size_(FastUInt32ToBufferLeft(u32, digits) - &digits[0]) {}
627 : piece_data_(digits),
628 piece_size_(FastInt64ToBufferLeft(i64, digits) - &digits[0]) {}
630 : piece_data_(digits),
631 piece_size_(FastUInt64ToBufferLeft(u64, digits) - &digits[0]) {}
634 : piece_data_(digits), piece_size_(strlen(FloatToBuffer(f, digits))) {}
636 : piece_data_(digits), piece_size_(strlen(DoubleToBuffer(f, digits))) {}
641 : piece_data_(c_str), piece_size_(strlen(c_str)) {}
646 : piece_data_(str.
data()), piece_size_(str.
size()) {}
649 : piece_data_(str.
data()), piece_size_(str.
size()) {}
652 : piece_data_(str.
data()), piece_size_(str.
size()) {}
654 size_t size()
const {
return piece_size_; }
655 const char *
data()
const {
return piece_data_; }
668 using strings::AlphaNum;
718 inline string StrCat(
const AlphaNum& a) {
return string(a.data(), a.size()); }
745 const AlphaNum& b,
const AlphaNum& c);
747 const AlphaNum& b,
const AlphaNum& c,
755 template <
typename Iterator>
757 const char* delim,
string* result) {
760 result->append(delim);
766 template <
typename Range>
770 Join(components.begin(), components.end(), delim, &
result);
788 const string& replacement,
811 char* dest,
int szdest);
836 char* dest,
int szdest);
838 const unsigned char* src,
int slen,
char* dest,
839 int szdest,
bool do_padding);
849 string* dest,
bool do_padding);
851 string* dest,
bool do_padding);
854 return code_point < 0xD800 ||
855 (code_point >= 0xE000 && code_point <= 0x10FFFF);
858 static const int UTFmax = 4;
876 #endif // GOOGLE_PROTOBUF_STUBS_STRUTIL_H__ int CalculateBase64EscapedLen(int input_len, bool do_padding)
Definition: strutil.cc:1632
char ascii_tolower(char c)
Definition: strutil.h:92
void WebSafeBase64EscapeWithPadding(StringPiece src, string *dest)
Definition: strutil.cc:2228
char * FastLongToBuffer(long i, char *buffer)
Definition: strutil.h:482
EGLStreamKHR EGLint EGLint EGLint size
Definition: eglext.h:984
string SimpleBtoa(bool value)
Definition: strutil.h:522
GLsizei GLsizei GLchar * source
Definition: gl2.h:451
string CEscape(const string &src)
Definition: strutil.cc:598
Iterator
Definition: six.py:544
char * FastUInt64ToBufferLeft(uint64 u64, char *buffer)
Definition: strutil.cc:1059
string StripPrefixString(const string &str, const string &prefix)
Definition: strutil.h:119
bool ascii_isalnum(char c)
Definition: strutil.h:65
string ToUpper(const string &s)
Definition: strutil.h:190
int EncodeAsUTF8Char(uint32 code_point, char *output)
Definition: strutil.cc:2235
Definition: strutil.h:583
GLboolean GLboolean g
Definition: gl2ext.h:306
string SimpleFtoa(float value)
Definition: strutil.cc:1205
int c
Definition: cpp_unittests.cpp:275
GLuint GLuint end
Definition: gl2ext.h:323
Definition: strutil.h:576
char * FastInt32ToBuffer(int32 i, char *buffer)
Definition: strutil.cc:853
int Base64Escape(const unsigned char *src, int szsrc, char *dest, int szdest)
Definition: strutil.cc:2184
Definition: strutil.h:586
string Utf8SafeCEscape(const string &src)
Definition: strutil.cc:606
bool Base64Unescape(StringPiece src, string *dest)
Definition: strutil.cc:2070
Definition: stringpiece.h:441
char * FastHex64ToBuffer(uint64 value, char *buffer)
Definition: strutil.cc:921
const char * data() const
Definition: strutil.h:655
bool safe_strtou32(const string &str, uint32 *value)
Definition: strutil.cc:1349
char * FastUInt32ToBufferLeft(uint32 u, char *buffer)
Definition: strutil.cc:968
bool ascii_isupper(char c)
Definition: strutil.h:80
Definition: strutil.h:611
dest
Definition: upload.py:394
size_t piece_size_
Definition: strutil.h:613
char * FastUIntToBuffer(unsigned int i, char *buffer)
Definition: strutil.h:478
size_t size() const
Definition: strutil.h:654
void SplitStringAllowEmpty(const string &full, const char *delim, vector< string > *result)
Definition: strutil.cc:251
PadSpec
Definition: strutil.h:572
AlphaNum(const char *c_str)
Definition: strutil.h:640
uint32 strtou32(const char *nptr, char **endptr, int base)
Definition: strutil.h:362
string ToString() const
Definition: stringpiece.h:319
char * FastIntToBuffer(int i, char *buffer)
Definition: strutil.h:474
bool safe_strtod(const char *str, double *value)
Definition: strutil.cc:1333
int32 strto32(const char *nptr, char **endptr, int base)
Definition: strutil.h:355
bool safe_strtob(StringPiece str, bool *value)
Definition: strutil.cc:1305
Definition: strutil.h:581
char * FastUInt64ToBuffer(uint64 i, char *buffer)
Definition: strutil.h:517
int32 strto32_adaptor(const char *nptr, char **endptr, int base)
Definition: strutil.cc:634
AlphaNum(uint64 u64)
Definition: strutil.h:629
void StrAppend(string *result, const AlphaNum &a)
Definition: strutil.cc:1562
#define GOOGLE_COMPILE_ASSERT(expr, msg)
Definition: macros.h:119
GLuint start
Definition: gl2ext.h:323
Definition: strutil.h:588
char * FastInt64ToBufferLeft(int64 i, char *buffer)
Definition: strutil.cc:1101
const FieldDescriptor const OneofDescriptor value
Definition: descriptor.h:1717
bool ascii_isspace(char c)
Definition: strutil.h:75
int32_t int32
Definition: port.h:130
AlphaNum(int32 i32)
Definition: strutil.h:620
#define strtoull
Definition: windows_port.h:121
Definition: strutil.h:585
Definition: stringpiece.h:178
char * FloatToBuffer(float value, char *buffer)
Definition: strutil.cc:1361
OPENSSL_EXPORT const ASN1_OBJECT int const unsigned char int len
Definition: x509.h:1053
bool safe_strto32(const string &str, int32 *value)
Definition: strutil.cc:1345
int64 strto64(const char *nptr, char **endptr, int base)
Definition: strutil.h:371
EGLSurface EGLint x
Definition: eglext.h:950
void StripString(string *s, const char *remove, char replacewith)
Definition: strutil.cc:86
LIBPROTOBUF_EXPORT string ToHex(uint64 num)
Definition: strutil.h:580
int int * out
Definition: gcc-loops.cpp:206
GLint GLenum GLint components
Definition: gl2ext.h:992
EGLAttrib * value
Definition: eglext.h:120
void UpperString(string *s)
Definition: strutil.h:182
string StrCat(const AlphaNum &a, const AlphaNum &b)
Definition: strutil.cc:1461
bool safe_strtof(const char *str, float *value)
Definition: strutil.cc:1322
void Join(Iterator start, Iterator end, const char *delim, string *result)
Definition: strutil.h:756
char * FastUInt32ToBuffer(uint32 i, char *buffer)
Definition: strutil.h:513
char * FastInt64ToBuffer(int64 i, char *buffer)
Definition: strutil.cc:808
void LowerString(string *s)
Definition: strutil.h:174
Definition: strutil.h:579
AlphaNum(const string &str)
Definition: strutil.h:645
#define strtoll
Definition: windows_port.h:120
uint32_t uint32
Definition: port.h:135
string CHexEscape(const string &src)
Definition: strutil.cc:615
void StringReplace(const string &s, const string &oldsub, const string &newsub, bool replace_all, string *res)
Definition: strutil.cc:131
bool ascii_isdigit(char c)
Definition: strutil.h:71
void SplitStringUsing(const string &full, const char *delim, vector< string > *result)
Definition: strutil.cc:212
char * FastInt32ToBufferLeft(int32 i, char *buffer)
Definition: strutil.cc:1050
int WebSafeBase64Escape(const unsigned char *src, int szsrc, char *dest, int szdest, bool do_padding)
Definition: strutil.cc:2187
Definition: __init__.py:1
Definition: xmlparse.c:154
void CEscapeAndAppend(StringPiece src, string *dest)
Definition: strutil.cc:564
char * FastHex32ToBuffer(uint32 value, char *buffer)
Definition: strutil.cc:925
uint64_t uint64
Definition: port.h:136
GLboolean GLboolean GLboolean GLboolean a
Definition: gl2ext.h:306
int WebSafeBase64Unescape(const char *src, int szsrc, char *dest, int szdest)
Definition: strutil.cc:2041
AlphaNum(double f)
Definition: strutil.h:635
string SimpleItoa(int i)
Definition: strutil.cc:1117
AlphaNum(int64 i64)
Definition: strutil.h:626
const char * piece_data_
Definition: strutil.h:612
char * FastULongToBuffer(unsigned long i, char *buffer)
Definition: strutil.h:486
GLfloat f
Definition: gl2.h:417
AlphaNum(float f)
Definition: strutil.h:633
const GLfloat * v
Definition: gl2.h:514
int UnescapeCEscapeSequences(const char *source, char *dest)
Definition: strutil.cc:315
Definition: safe_conversions.h:16
EGLStreamKHR EGLint EGLint EGLint const void * data
Definition: eglext.h:984
str
Definition: make-dist.py:305
GLsizei const GLchar *const * string
Definition: gl2.h:479
result
Definition: target-blank-opener-post-window.php:5
GLenum src
Definition: gl2ext.h:304
const char * errors
Definition: tokenizer_unittest.cc:860
#define buffer
Definition: xmlparse.c:622
Hex(Int v, PadSpec s=NO_PAD)
Definition: strutil.h:595
GLfloat GLfloat GLfloat GLfloat h
Definition: gl2ext.h:3060
bool ascii_islower(char c)
Definition: strutil.h:84
bool HasPrefixString(const string &str, const string &prefix)
Definition: strutil.h:113
string SimpleDtoa(double value)
Definition: strutil.cc:1200
Definition: strutil.h:587
bool IsValidCodePoint(uint32 code_point)
Definition: strutil.h:853
for i
Definition: complexityMeasures.m:24
Definition: strutil.h:591
int64_t int64
Definition: port.h:131
Definition: strutil.h:577
void StripWhitespace(string *str)
Definition: strutil.cc:96
DOMString e
Definition: WebCryptoAPI.idl:115
vector< string > Split(const string &full, const char *delim, bool skip_empty=true)
Definition: strutil.h:232
Definition: strutil.h:584
Definition: strutil.h:575
uint64 strtou64(const char *nptr, char **endptr, int base)
Definition: strutil.h:377
uint64 value
Definition: strutil.h:592
#define LIBPROTOBUF_EXPORT
Definition: port.h:97
Definition: strutil.h:573
GLboolean GLboolean GLboolean b
Definition: gl2ext.h:306
Definition: gflags_completions.h:115
Definition: strutil.h:578
Definition: strutil.h:582
AlphaNum(StringPiece str)
Definition: strutil.h:648
bool HasSuffixString(const string &str, const string &suffix)
Definition: strutil.h:135
res
Definition: harness.py:111
EGLContext EGLenum EGLClientBuffer buffer
Definition: eglext.h:192
int GlobalReplaceSubstring(const string &substring, const string &replacement, string *s)
Definition: strutil.cc:1604
Definition: strutil.h:574
GLsizei const GLchar ** strings
Definition: gl2ext.h:1828
int hex_digit_to_int(char c)
Definition: strutil.h:96
char ascii_toupper(char c)
Definition: strutil.h:88
int Int
Definition: config.h:76
bool safe_strtou64(const string &str, uint64 *value)
Definition: strutil.cc:1357
int UTF8FirstLetterNumBytes(const char *src, int len)
Definition: strutil.cc:2281
char * FastHexToBuffer(int i, char *buffer)
Definition: strutil.cc:891
uint32 strtou32_adaptor(const char *nptr, char **endptr, int base)
Definition: strutil.cc:654
bool safe_strto64(const string &str, int64 *value)
Definition: strutil.cc:1353
void JoinStrings(const vector< string > &components, const char *delim, string *result)
Definition: strutil.cc:291
#define d
Definition: float-mm.c:30
string StripSuffixString(const string &str, const string &suffix)
Definition: strutil.h:141
char * DoubleToBuffer(double value, char *buffer)
Definition: strutil.cc:1243
AlphaNum(internal::StringPiecePod str)
Definition: strutil.h:651
int UnescapeCEscapeString(const string &src, string *dest)
Definition: strutil.cc:451
AlphaNum(uint32 u32)
Definition: strutil.h:623