about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/config/mimetypes.nim3
-rw-r--r--src/local/pager.nim8
2 files changed, 10 insertions, 1 deletions
diff --git a/src/config/mimetypes.nim b/src/config/mimetypes.nim
index e2aeb901..811f9776 100644
--- a/src/config/mimetypes.nim
+++ b/src/config/mimetypes.nim
@@ -76,3 +76,6 @@ const JavaScriptTypes = [
 
 func isJavaScriptType*(s: string): bool =
   return JavaScriptTypes.binarySearch(s) != -1
+
+func isTextType*(s: string): bool =
+  return s.startsWithIgnoreCase("text/") or s.isJavaScriptType()
diff --git a/src/local/pager.nim b/src/local/pager.nim
index c6059fdb..db2057da 100644
--- a/src/local/pager.nim
+++ b/src/local/pager.nim
@@ -2763,7 +2763,13 @@ proc connected(pager: Pager; container: Container; response: Response) =
     else:
       let i = pager.config.external.mailcap.findMailcapEntry(contentType, "",
         container.url)
-      pager.askMailcap(container, istream, contentType, i, response, 0)
+      if i == -1 and container.contentType.get.isTextType():
+        pager.connected2(container, MailcapResult(
+          flags: {cmfConnect, cmfFound},
+          ostream: istream
+        ), response)
+      else:
+        pager.askMailcap(container, istream, contentType, i, response, 0)
 
 proc unregisterFd(pager: Pager; fd: int) =
   pager.pollData.unregister(fd)