diff options
Diffstat (limited to 'src/gmutil.c')
-rw-r--r-- | src/gmutil.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/gmutil.c b/src/gmutil.c index 94f00ce1..477d0f17 100644 --- a/src/gmutil.c +++ b/src/gmutil.c | |||
@@ -213,6 +213,28 @@ void urlEncodeSpaces_String(iString *d) { | |||
213 | } | 213 | } |
214 | } | 214 | } |
215 | 215 | ||
216 | const iString *feedEntryOpenCommand_String(const iString *url) { | ||
217 | if (!isEmpty_String(url)) { | ||
218 | iString *cmd = collectNew_String(); | ||
219 | const size_t fragPos = indexOf_String(url, '#'); | ||
220 | if (fragPos != iInvalidPos) { | ||
221 | iString *head = newRange_String( | ||
222 | (iRangecc){ constBegin_String(url) + fragPos + 1, constEnd_String(url) }); | ||
223 | format_String(cmd, | ||
224 | "open gotourlheading:%s url:%s", | ||
225 | cstr_String(head), | ||
226 | cstr_Rangecc((iRangecc){ constBegin_String(url), | ||
227 | constBegin_String(url) + fragPos })); | ||
228 | delete_String(head); | ||
229 | } | ||
230 | else { | ||
231 | format_String(cmd, "open url:%s", cstr_String(url)); | ||
232 | } | ||
233 | return cmd; | ||
234 | } | ||
235 | return NULL; | ||
236 | } | ||
237 | |||
216 | static const struct { | 238 | static const struct { |
217 | enum iGmStatusCode code; | 239 | enum iGmStatusCode code; |
218 | iGmError err; | 240 | iGmError err; |