emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r118357: Allow using several eww buffers (bug#16211)


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] trunk r118357: Allow using several eww buffers (bug#16211)
Date: Mon, 10 Nov 2014 21:18:15 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 118357
revision-id: address@hidden
parent: address@hidden
committer: Lars Magne Ingebrigtsen <address@hidden>
branch nick: trunk
timestamp: Mon 2014-11-10 22:18:11 +0100
message:
  Allow using several eww buffers (bug#16211)
  
  * net/eww.el (eww-render, eww-display-html, eww-setup-buffer):
  Allow taking a buffer to render data in.  This allows using several
  eww buffers (bug#16211).
modified:
  etc/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1485
  etc/NEWS                       news-20141002041645-34n5fasbwydbo8t6-1
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/net/eww.el                eww.el-20130610114603-80ap3gwnw4x4m5ix-1
=== modified file 'etc/ChangeLog'
--- a/etc/ChangeLog     2014-11-10 00:57:01 +0000
+++ b/etc/ChangeLog     2014-11-10 21:18:11 +0000
@@ -1,3 +1,7 @@
+2014-11-10  Lars Magne Ingebrigtsen  <address@hidden>
+
+       * NEWS: Mention that you can have several eww buffers (bug#16211).
+
 2014-11-10  Glenn Morris  <address@hidden>
 
        * refcards/emacsver.tex.in: Rename from emacsver.tex.

=== modified file 'etc/NEWS'
--- a/etc/NEWS  2014-11-10 02:58:52 +0000
+++ b/etc/NEWS  2014-11-10 21:18:11 +0000
@@ -153,6 +153,9 @@
 textual parts of a web page and display only that, leaving menus and
 the like off the page.
 
+*** You can now use several eww buffers in parallel by renaming eww
+buffers you want to keep separate.
+
 ** Message mode
 
 *** text/html messages that contain inline image parts will be

=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2014-11-10 20:55:55 +0000
+++ b/lisp/ChangeLog    2014-11-10 21:18:11 +0000
@@ -1,3 +1,9 @@
+2014-11-10  Lars Magne Ingebrigtsen  <address@hidden>
+
+       * net/eww.el (eww-render, eww-display-html, eww-setup-buffer):
+       Allow taking a buffer to render data in.  This allows using several
+       eww buffers (bug#16211).
+
 2014-11-10  Charles Rendleman  <address@hidden>  (tiny change)
 
        * net/eww.el (eww-download-callback): Save only the file contents,

=== modified file 'lisp/net/eww.el'
--- a/lisp/net/eww.el   2014-11-10 20:55:55 +0000
+++ b/lisp/net/eww.el   2014-11-10 21:18:11 +0000
@@ -167,7 +167,10 @@
                  (setq url (concat url "/"))))
            (setq url (concat eww-search-prefix
                              (replace-regexp-in-string " " "+" url))))))
-  (url-retrieve url 'eww-render (list url)))
+  (url-retrieve url 'eww-render
+               (list url nil
+                     (and (eq major-mode 'eww-mode)
+                          (current-buffer)))))
 
 ;;;###autoload (defalias 'browse-web 'eww)
 
@@ -180,7 +183,7 @@
                    "/")
               (expand-file-name file))))
 
-(defun eww-render (status url &optional point)
+(defun eww-render (status url &optional point buffer)
   (let ((redirect (plist-get status :redirect)))
     (when redirect
       (setq url redirect)))
@@ -205,14 +208,14 @@
                                  (car content-type)))
             (eww-browse-with-external-browser url))
           ((equal (car content-type) "text/html")
-           (eww-display-html charset url nil point))
+           (eww-display-html charset url nil point buffer))
           ((equal (car content-type) "application/pdf")
            (eww-display-pdf))
           ((string-match-p "\\`image/" (car content-type))
-           (eww-display-image)
+           (eww-display-image buffer)
            (eww-update-header-line-format))
           (t
-           (eww-display-raw)
+           (eww-display-raw buffer)
            (eww-update-header-line-format)))
          (plist-put eww-data :title url)
          (setq eww-history-position 0))
@@ -247,7 +250,7 @@
 (declare-function libxml-parse-html-region "xml.c"
                  (start end &optional base-url))
 
-(defun eww-display-html (charset url &optional document point)
+(defun eww-display-html (charset url &optional document point buffer)
   (or (fboundp 'libxml-parse-html-region)
       (error "This function requires Emacs to be compiled with libxml2"))
   ;; There should be a better way to abort loading images
@@ -265,7 +268,7 @@
                (libxml-parse-html-region (point) (point-max))))))
        (source (and (null document)
                     (buffer-substring (point) (point-max)))))
-    (eww-setup-buffer)
+    (eww-setup-buffer buffer)
     (plist-put eww-data :source source)
     (plist-put eww-data :dom document)
     (let ((inhibit-read-only t)
@@ -368,16 +371,16 @@
     (shr-generic cont)
     (shr-colorize-region start (point) fgcolor bgcolor)))
 
-(defun eww-display-raw ()
+(defun eww-display-raw (&optional buffer)
   (let ((data (buffer-substring (point) (point-max))))
-    (eww-setup-buffer)
+    (eww-setup-buffer buffer)
     (let ((inhibit-read-only t))
       (insert data))
     (goto-char (point-min))))
 
-(defun eww-display-image ()
+(defun eww-display-image (&optional buffer)
   (let ((data (shr-parse-image-data)))
-    (eww-setup-buffer)
+    (eww-setup-buffer buffer)
     (let ((inhibit-read-only t))
       (shr-put-image data nil))
     (goto-char (point-min))))
@@ -392,8 +395,11 @@
       (doc-view-mode)))
   (goto-char (point-min)))
 
-(defun eww-setup-buffer ()
-  (switch-to-buffer (get-buffer-create "*eww*"))
+(defun eww-setup-buffer (&optional buffer)
+  (switch-to-buffer
+   (if (buffer-live-p buffer)
+       buffer
+     (get-buffer-create "*eww*")))
   (let ((inhibit-read-only t))
     (remove-overlays)
     (erase-buffer))
@@ -431,7 +437,8 @@
     (eww-save-history)
     (eww-display-html nil nil
                      (shr-retransform-dom
-                      (eww-highest-readability dom)))
+                      (eww-highest-readability dom))
+                     nil (current-buffer))
     (dolist (elem '(:source :url :title :next :previous :up))
       (plist-put eww-data elem (plist-get old-data elem)))
     (eww-update-header-line-format)))
@@ -1110,7 +1117,8 @@
      ((and (url-target (url-generic-parse-url url))
           (eww-same-page-p url (plist-get eww-data :url)))
       (eww-save-history)
-      (eww-display-html 'utf-8 url (plist-get eww-data :url)))
+      (eww-display-html 'utf-8 url (plist-get eww-data :url)
+                       nil (current-buffer)))
      (t
       (eww-browse-url url)))))
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]