~GopherStateData();
+ /// URL for icon to display (or nil), given the Gopher item-type code.
+ /// The returned c-string is invalidated by the next call to this function.
+ const char *iconUrl(char);
+
public:
StoreEntry *entry;
enum {
memFree(buf, MEM_4K_BUF);
}
+const char *
+GopherStateData::iconUrl(const char gtype)
+{
+ switch (gtype) {
+
+ case GOPHER_DIRECTORY:
+ return mimeGetIconURL("internal-menu");
+
+ case GOPHER_HTML:
+ case GOPHER_FILE:
+ return mimeGetIconURL("internal-text");
+
+ case GOPHER_INDEX:
+ case GOPHER_CSO:
+ return mimeGetIconURL("internal-index");
+
+ case GOPHER_IMAGE:
+ case GOPHER_GIF:
+ case GOPHER_PLUS_IMAGE:
+ return mimeGetIconURL("internal-image");
+
+ case GOPHER_SOUND:
+ case GOPHER_PLUS_SOUND:
+ return mimeGetIconURL("internal-sound");
+
+ case GOPHER_PLUS_MOVIE:
+ return mimeGetIconURL("internal-movie");
+
+ case GOPHER_TELNET:
+ case GOPHER_3270:
+ return mimeGetIconURL("internal-telnet");
+
+ case GOPHER_BIN:
+
+ case GOPHER_MACBINHEX:
+ case GOPHER_DOSBIN:
+ case GOPHER_UUENCODED:
+ return mimeGetIconURL("internal-binary");
+
+ case GOPHER_INFO:
+ return nullptr;
+
+ case GOPHER_WWW:
+ return mimeGetIconURL("internal-link");
+
+ default:
+ return mimeGetIconURL("internal-unknown");
+ }
+}
+
/**
* Create MIME Header for Gopher Data
*/
char *host = NULL;
char *port = NULL;
char *escaped_selector = NULL;
- const char *icon_url = NULL;
char gtype;
StoreEntry *entry = NULL;
/* escape a selector here */
escaped_selector = xstrdup(rfc1738_escape_part(selector));
- switch (gtype) {
-
- case GOPHER_DIRECTORY:
- icon_url = mimeGetIconURL("internal-menu");
- break;
-
- case GOPHER_HTML:
-
- case GOPHER_FILE:
- icon_url = mimeGetIconURL("internal-text");
- break;
-
- case GOPHER_INDEX:
-
- case GOPHER_CSO:
- icon_url = mimeGetIconURL("internal-index");
- break;
-
- case GOPHER_IMAGE:
-
- case GOPHER_GIF:
-
- case GOPHER_PLUS_IMAGE:
- icon_url = mimeGetIconURL("internal-image");
- break;
-
- case GOPHER_SOUND:
-
- case GOPHER_PLUS_SOUND:
- icon_url = mimeGetIconURL("internal-sound");
- break;
-
- case GOPHER_PLUS_MOVIE:
- icon_url = mimeGetIconURL("internal-movie");
- break;
-
- case GOPHER_TELNET:
-
- case GOPHER_3270:
- icon_url = mimeGetIconURL("internal-telnet");
- break;
-
- case GOPHER_BIN:
-
- case GOPHER_MACBINHEX:
-
- case GOPHER_DOSBIN:
-
- case GOPHER_UUENCODED:
- icon_url = mimeGetIconURL("internal-binary");
- break;
-
- case GOPHER_INFO:
- icon_url = NULL;
- break;
-
- case GOPHER_WWW:
- icon_url = mimeGetIconURL("internal-link");
- break;
-
- default:
- icon_url = mimeGetIconURL("internal-unknown");
- break;
- }
+ const auto icon_url = gopherState->iconUrl(gtype);
if ((gtype == GOPHER_TELNET) || (gtype == GOPHER_3270)) {
if (strlen(escaped_selector) != 0)