diff options
-rw-r--r-- | src/FbTk/StringUtil.cc | 32 | ||||
-rw-r--r-- | src/FbTk/StringUtil.hh | 6 |
2 files changed, 19 insertions, 19 deletions
diff --git a/src/FbTk/StringUtil.cc b/src/FbTk/StringUtil.cc index 92246e3..d663bdd 100644 --- a/src/FbTk/StringUtil.cc +++ b/src/FbTk/StringUtil.cc | |||
@@ -1,6 +1,6 @@ | |||
1 | // StringUtil.cc for fluxbox | 1 | // StringUtil.cc for fluxbox |
2 | // Copyright (c) 2001 - 2004 Henrik Kinnunen (fluxgen<at>fluxbox<dot>org) | 2 | // Copyright (c) 2001 - 2004 Henrik Kinnunen (fluxgen<at>fluxbox<dot>org) |
3 | // | 3 | // |
4 | // Permission is hereby granted, free of charge, to any person obtaining a | 4 | // Permission is hereby granted, free of charge, to any person obtaining a |
5 | // copy of this software and associated documentation files (the "Software"), | 5 | // copy of this software and associated documentation files (the "Software"), |
6 | // to deal in the Software without restriction, including without limitation | 6 | // to deal in the Software without restriction, including without limitation |
@@ -19,7 +19,7 @@ | |||
19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
20 | // DEALINGS IN THE SOFTWARE. | 20 | // DEALINGS IN THE SOFTWARE. |
21 | 21 | ||
22 | // $Id: StringUtil.cc,v 1.12 2004/08/31 15:26:39 rathnor Exp $ | 22 | // $Id: StringUtil.cc,v 1.13 2004/09/10 16:04:16 akir Exp $ |
23 | 23 | ||
24 | #include "StringUtil.hh" | 24 | #include "StringUtil.hh" |
25 | 25 | ||
@@ -73,13 +73,13 @@ char *strdup(const char *s) { | |||
73 | const char *strcasestr(const char *str, const char *ptn) { | 73 | const char *strcasestr(const char *str, const char *ptn) { |
74 | const char *s2, *p2; | 74 | const char *s2, *p2; |
75 | for( ; *str; str++) { | 75 | for( ; *str; str++) { |
76 | for(s2=str, p2=ptn; ; s2++,p2++) { | 76 | for(s2=str, p2=ptn; ; s2++,p2++) { |
77 | // check if we reached the end of ptn, if so, return str | 77 | // check if we reached the end of ptn, if so, return str |
78 | if (!*p2) | 78 | if (!*p2) |
79 | return str; | 79 | return str; |
80 | // check if the chars match(ignoring case) | 80 | // check if the chars match(ignoring case) |
81 | if (toupper(*s2) != toupper(*p2)) | 81 | if (toupper(*s2) != toupper(*p2)) |
82 | break; | 82 | break; |
83 | } | 83 | } |
84 | } | 84 | } |
85 | return 0; | 85 | return 0; |
@@ -87,12 +87,12 @@ const char *strcasestr(const char *str, const char *ptn) { | |||
87 | 87 | ||
88 | /** | 88 | /** |
89 | if ~ then expand it to home of user | 89 | if ~ then expand it to home of user |
90 | returns expanded filename | 90 | returns expanded filename |
91 | */ | 91 | */ |
92 | string expandFilename(const std::string &filename) { | 92 | string expandFilename(const std::string &filename) { |
93 | string retval; | 93 | string retval; |
94 | size_t pos = filename.find_first_not_of(" \t"); | 94 | size_t pos = filename.find_first_not_of(" \t"); |
95 | if (pos != std::string::npos && filename[pos] == '~') { | 95 | if (pos != std::string::npos && filename[pos] == '~') { |
96 | retval = getenv("HOME"); | 96 | retval = getenv("HOME"); |
97 | if (pos != filename.size()) { | 97 | if (pos != filename.size()) { |
98 | // copy from the character after '~' | 98 | // copy from the character after '~' |
@@ -120,7 +120,7 @@ string findExtension(const std::string &filename) { | |||
120 | Parses a string between "first" and "last" characters | 120 | Parses a string between "first" and "last" characters |
121 | and ignoring ok_chars as whitespaces. The value is | 121 | and ignoring ok_chars as whitespaces. The value is |
122 | returned in "out". | 122 | returned in "out". |
123 | Returns negative value on error and this value is the position | 123 | Returns negative value on error and this value is the position |
124 | in the in-string where the error occured. | 124 | in the in-string where the error occured. |
125 | Returns positive value on success and this value is | 125 | Returns positive value on success and this value is |
126 | for the position + 1 in the in-string where the "last"-char value | 126 | for the position + 1 in the in-string where the "last"-char value |
@@ -131,18 +131,18 @@ int getStringBetween(std::string& out, const char *instr, const char first, cons | |||
131 | assert(first); | 131 | assert(first); |
132 | assert(last); | 132 | assert(last); |
133 | assert(instr); | 133 | assert(instr); |
134 | 134 | ||
135 | std::string::size_type i = 0, | 135 | std::string::size_type i = 0, |
136 | total_add=0; //used to add extra if there is a \last to skip | 136 | total_add=0; //used to add extra if there is a \last to skip |
137 | std::string in(instr); | 137 | std::string in(instr); |
138 | 138 | ||
139 | // eat leading whitespace | 139 | // eat leading whitespace |
140 | i = in.find_first_not_of(ok_chars); | 140 | i = in.find_first_not_of(ok_chars); |
141 | if (i == std::string::npos) | 141 | if (i == std::string::npos) |
142 | return -in.size(); // nothing left but whitespace | 142 | return -in.size(); // nothing left but whitespace |
143 | 143 | ||
144 | if (in[i]!=first) | 144 | if (in[i]!=first) |
145 | return -i; //return position to error | 145 | return -i; //return position to error |
146 | 146 | ||
147 | // find the end of the token | 147 | // find the end of the token |
148 | std::string::size_type j = i, k; | 148 | std::string::size_type j = i, k; |
@@ -170,7 +170,7 @@ int getStringBetween(std::string& out, const char *instr, const char first, cons | |||
170 | } | 170 | } |
171 | } | 171 | } |
172 | 172 | ||
173 | out = in.substr(i+1, j-i-1); //copy the string between first and last | 173 | out = in.substr(i+1, j-i-1); //copy the string between first and last |
174 | //return value to last character | 174 | //return value to last character |
175 | return (j+1+total_add); | 175 | return (j+1+total_add); |
176 | } | 176 | } |
@@ -205,7 +205,7 @@ string::size_type removeFirstWhitespace(std::string &str) { | |||
205 | string::size_type removeTrailingWhitespace(std::string &str) { | 205 | string::size_type removeTrailingWhitespace(std::string &str) { |
206 | // strip trailing whitespace | 206 | // strip trailing whitespace |
207 | string::size_type first_pos = str.find_last_not_of(" \t"); | 207 | string::size_type first_pos = str.find_last_not_of(" \t"); |
208 | if (first_pos != string::npos) { | 208 | if (first_pos != string::npos) { |
209 | string::size_type last_pos = str.find_first_of(" \t", first_pos); | 209 | string::size_type last_pos = str.find_first_of(" \t", first_pos); |
210 | while (last_pos != string::npos) { | 210 | while (last_pos != string::npos) { |
211 | str.erase(last_pos); | 211 | str.erase(last_pos); |
diff --git a/src/FbTk/StringUtil.hh b/src/FbTk/StringUtil.hh index 273f24e..34863e2 100644 --- a/src/FbTk/StringUtil.hh +++ b/src/FbTk/StringUtil.hh | |||
@@ -19,7 +19,7 @@ | |||
19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
20 | // DEALINGS IN THE SOFTWARE. | 20 | // DEALINGS IN THE SOFTWARE. |
21 | 21 | ||
22 | //$Id: StringUtil.hh,v 1.9 2004/05/02 20:42:56 fluxgen Exp $ | 22 | //$Id: StringUtil.hh,v 1.10 2004/09/10 16:04:16 akir Exp $ |
23 | 23 | ||
24 | #ifndef FBTK_STRINGUTIL_HH | 24 | #ifndef FBTK_STRINGUTIL_HH |
25 | #define FBTK_STRINGUTIL_HH | 25 | #define FBTK_STRINGUTIL_HH |
@@ -31,7 +31,7 @@ namespace FbTk { | |||
31 | namespace StringUtil { | 31 | namespace StringUtil { |
32 | 32 | ||
33 | char *strdup(const char *); | 33 | char *strdup(const char *); |
34 | 34 | ||
35 | /// Similar to `strstr' but this function ignores the case of both strings | 35 | /// Similar to `strstr' but this function ignores the case of both strings |
36 | const char *strcasestr(const char *str, const char *ptn); | 36 | const char *strcasestr(const char *str, const char *ptn); |
37 | 37 | ||
@@ -42,7 +42,7 @@ std::string expandFilename(const std::string &filename); | |||
42 | std::string findExtension(const std::string &filename); | 42 | std::string findExtension(const std::string &filename); |
43 | 43 | ||
44 | /// returns string between character first and last | 44 | /// returns string between character first and last |
45 | int getStringBetween(std::string& out, const char *instr, | 45 | int getStringBetween(std::string& out, const char *instr, |
46 | char first, char last, | 46 | char first, char last, |
47 | const char *ok_chars=" \t\n", bool allow_nesting = false); | 47 | const char *ok_chars=" \t\n", bool allow_nesting = false); |
48 | 48 | ||