Raw renderer now displays mimetype if specified.
[elpher.git] / elpher.el
index db5a820..08b2227 100644 (file)
--- a/elpher.el
+++ b/elpher.el
@@ -511,7 +511,8 @@ up to the calling function."
                                        nil
                                        host
                                        (if (> port 0) port 70)
-                                       :type (if elpher-use-tls 'tls 'plain))))
+                                       :type (if elpher-use-tls 'tls 'plain)
+                                       :nowait t)))
         (set-process-coding-system proc 'binary)
         (set-process-filter proc
                             (lambda (_proc string)
@@ -554,7 +555,8 @@ once they are retrieved from the gopher server."
        (insert "LOADING... (use 'u' to cancel)"))
       (elpher-get-selector address
                            (lambda (_proc event)
-                             (unless (string-prefix-p "deleted" event)
+                             (unless (or (string-prefix-p "deleted" event)
+                                         (string-prefix-p "open" event))
                                (funcall renderer elpher-selector-string)
                                (elpher-restore-pos)))))))
 
@@ -728,11 +730,13 @@ The response is rendered using the rendering function RENDERER."
  
 ;; Raw server response rendering
 
-(defun elpher-render-raw (data &optional _mime-type-string)
-  "Display raw DATA in buffer.  MIME-TYPE-STRING is unused."
+(defun elpher-render-raw (data &optional mime-type-string)
+  "Display raw DATA in buffer.  MIME-TYPE-STRING is also displayed if provided."
   (if (not data)
       nil
     (elpher-with-clean-buffer
+     (when mime-type-string
+       (insert "MIME type specified by server: '" mime-type-string "'\n"))
      (insert data)
      (goto-char (point-min)))
     (message "Displaying raw server response.  Reload or redraw to return to standard view.")))
@@ -925,6 +929,8 @@ The response is assumed to be in the variable `elpher-gemini-response'."
       (pcase mime-type
         ((or "text/gemini" "")
          (elpher-render-gemini-map body parameters))
+        ("text/html"
+         (elpher-render-html body))
         ((pred (string-prefix-p "text/"))
          (elpher-render-gemini-plain-text body parameters))
         ((pred (string-prefix-p "image/"))