summaryrefslogtreecommitdiff
path: root/src/gmutil.c
diff options
context:
space:
mode:
authorJaakko Keränen <jaakko.keranen@iki.fi>2020-07-28 20:58:29 +0300
committerJaakko Keränen <jaakko.keranen@iki.fi>2020-07-28 20:58:29 +0300
commit1a8a0170168568d1c3f075cc2996aceda08e790d (patch)
tree452541dd5b9f1846e7671612d8b4e12fccbd7f7a /src/gmutil.c
parent7f98874272432815000b6c1aeedfc0327693490b (diff)
Detect known image/audio file extensions
Diffstat (limited to 'src/gmutil.c')
-rw-r--r--src/gmutil.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/gmutil.c b/src/gmutil.c
index dbaf8759..1a8d469f 100644
--- a/src/gmutil.c
+++ b/src/gmutil.c
@@ -5,10 +5,10 @@
5#include <the_Foundation/object.h> 5#include <the_Foundation/object.h>
6 6
7void init_Url(iUrl *d, const iString *text) { 7void init_Url(iUrl *d, const iString *text) {
8 iRegExp *pattern = 8 iRegExp *absPat =
9 new_RegExp("(.+)://([^/:?]*)(:[0-9]+)?([^?]*)(\\?.*)?", caseInsensitive_RegExpOption); 9 new_RegExp("(.+)://([^/:?]*)(:[0-9]+)?([^?]*)(\\?.*)?", caseInsensitive_RegExpOption);
10 iRegExpMatch m; 10 iRegExpMatch m;
11 if (matchString_RegExp(pattern, text, &m)) { 11 if (matchString_RegExp(absPat, text, &m)) {
12 d->protocol = capturedRange_RegExpMatch(&m, 1); 12 d->protocol = capturedRange_RegExpMatch(&m, 1);
13 d->host = capturedRange_RegExpMatch(&m, 2); 13 d->host = capturedRange_RegExpMatch(&m, 2);
14 d->port = capturedRange_RegExpMatch(&m, 3); 14 d->port = capturedRange_RegExpMatch(&m, 3);
@@ -20,9 +20,16 @@ void init_Url(iUrl *d, const iString *text) {
20 d->query = capturedRange_RegExpMatch(&m, 5); 20 d->query = capturedRange_RegExpMatch(&m, 5);
21 } 21 }
22 else { 22 else {
23 /* Must be a relative path. */
23 iZap(*d); 24 iZap(*d);
25 iRegExp *relPat = new_RegExp("([^?]*)(\\?.*)?", 0);
26 if (matchString_RegExp(relPat, text, &m)) {
27 d->path = capturedRange_RegExpMatch(&m, 1);
28 d->query = capturedRange_RegExpMatch(&m, 2);
29 }
30 iRelease(relPat);
24 } 31 }
25 iRelease(pattern); 32 iRelease(absPat);
26} 33}
27 34
28void urlEncodeSpaces_String(iString *d) { 35void urlEncodeSpaces_String(iString *d) {