diff options
author | Jaakko Keränen <jaakko.keranen@iki.fi> | 2020-07-28 20:58:29 +0300 |
---|---|---|
committer | Jaakko Keränen <jaakko.keranen@iki.fi> | 2020-07-28 20:58:29 +0300 |
commit | 1a8a0170168568d1c3f075cc2996aceda08e790d (patch) | |
tree | 452541dd5b9f1846e7671612d8b4e12fccbd7f7a /src/gmutil.c | |
parent | 7f98874272432815000b6c1aeedfc0327693490b (diff) |
Detect known image/audio file extensions
Diffstat (limited to 'src/gmutil.c')
-rw-r--r-- | src/gmutil.c | 13 |
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 | ||
7 | void init_Url(iUrl *d, const iString *text) { | 7 | void 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 | ||
28 | void urlEncodeSpaces_String(iString *d) { | 35 | void urlEncodeSpaces_String(iString *d) { |