diff options
Diffstat (limited to 'src/gmutil.c')
-rw-r--r-- | src/gmutil.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/gmutil.c b/src/gmutil.c index 32bf356f..b4cf86aa 100644 --- a/src/gmutil.c +++ b/src/gmutil.c | |||
@@ -149,6 +149,21 @@ iRangecc urlHost_String(const iString *d) { | |||
149 | return url.host; | 149 | return url.host; |
150 | } | 150 | } |
151 | 151 | ||
152 | iRangecc urlUser_String(const iString *d) { | ||
153 | iRegExp *userPats[2] = { new_RegExp("~([^/?]+)", 0), | ||
154 | new_RegExp("/users/([^/?]+)", caseInsensitive_RegExpOption) }; | ||
155 | iRegExpMatch m; | ||
156 | init_RegExpMatch(&m); | ||
157 | iRangecc found = iNullRange; | ||
158 | iForIndices(i, userPats) { | ||
159 | if (matchString_RegExp(userPats[i], d, &m)) { | ||
160 | found = capturedRange_RegExpMatch(&m, 1); | ||
161 | } | ||
162 | iRelease(userPats[i]); | ||
163 | } | ||
164 | return found; | ||
165 | } | ||
166 | |||
152 | static iBool isAbsolutePath_(iRangecc path) { | 167 | static iBool isAbsolutePath_(iRangecc path) { |
153 | return isAbsolute_Path(collect_String(urlDecode_String(collect_String(newRange_String(path))))); | 168 | return isAbsolute_Path(collect_String(urlDecode_String(collect_String(newRange_String(path))))); |
154 | } | 169 | } |