emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] trunk r113062: Merge changes made in Gnus master


From: Katsumi Yamaoka
Subject: [Emacs-diffs] trunk r113062: Merge changes made in Gnus master
Date: Tue, 18 Jun 2013 22:38:47 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 113062
revision-id: address@hidden
parent: address@hidden
author: Gnus developers <address@hidden>
committer: Katsumi Yamaoka <address@hidden>
branch nick: trunk
timestamp: Tue 2013-06-18 22:38:34 +0000
message:
  Merge changes made in Gnus master
  
  2013-06-18 Teodor Zlatanov <address@hidden>
  * auth-source.el (auth-source-netrc-parse-entries): Remove debugging.
  
  2013-06-18 Lars Magne Ingebrigtsen <address@hidden>
  * net/shr.el (shr-make-table-1): Implement <td rowspan>.
  (shr-table-horizontal-line): Allow nil as a value, and change the default.
  (shr-insert-table-ruler): Respect the nil value.
  
  2013-06-18 Tom Tromey <address@hidden>
  * net/eww.el (eww-next-url, eww-previous-url, eww-up-url, eww-top-url):
    New defvars.
  (eww-open-file): New defun.
  (eww-render): Initialize new variables.
  (eww-display-html): Handle "link" and "a".
  (eww-handle-link, eww-tag-link, eww-tag-a): New defuns.
  (eww-mode-map): Move "p" to "l".  Bind "p", "n", "t", and "u".
  (eww-back-url): Rename from eww-previous-url.
  (eww-next-url, eww-previous-url, eww-up-url, eww-top-url): New defuns.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/gnus/ChangeLog            changelog-20091113204419-o5vbwnq5f7feedwu-1433
  lisp/gnus/auth-source.el       
authsource.el-20091113204419-o5vbwnq5f7feedwu-8608
  lisp/net/eww.el                eww.el-20130610114603-80ap3gwnw4x4m5ix-1
  lisp/net/shr.el                shr.el-20101002102929-yfzewk55rsg0mn93-1
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-06-18 22:17:56 +0000
+++ b/lisp/ChangeLog    2013-06-18 22:38:34 +0000
@@ -1,3 +1,23 @@
+2013-06-18  Lars Magne Ingebrigtsen  <address@hidden>
+
+       * net/shr.el (shr-make-table-1): Implement <td rowspan>.
+       (shr-table-horizontal-line): Allow nil as a value, and change the
+       default.
+       (shr-insert-table-ruler): Respect the nil value.
+
+2013-06-18  Tom Tromey  <address@hidden>
+
+       * net/eww.el (eww-next-url, eww-previous-url, eww-up-url, eww-top-url):
+       New defvars.
+       (eww-open-file): New defun.
+       (eww-render): Initialize new variables.
+       (eww-display-html): Handle "link" and "a".
+       (eww-handle-link, eww-tag-link, eww-tag-a): New defuns.
+       (eww-mode-map): Move "p" to "l".  Bind "p", "n", "t", and "u".
+       (eww-back-url): Rename from eww-previous-url.
+       (eww-next-url, eww-previous-url, eww-up-url, eww-top-url): New
+       defuns.
+
 2013-06-18  Dmitry Gutov  <address@hidden>
 
        * progmodes/ruby-mode.el (ruby-syntax-before-regexp-re):

=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog       2013-06-18 18:04:09 +0000
+++ b/lisp/gnus/ChangeLog       2013-06-18 22:38:34 +0000
@@ -1,3 +1,7 @@
+2013-06-18  Teodor Zlatanov  <address@hidden>
+
+       * auth-source.el (auth-source-netrc-parse-entries): Remove debugging.
+
 2013-06-18  Glenn Morris  <address@hidden>
 
        * eww.el, shr.el, shr-color.el: Move to ../net.

=== modified file 'lisp/gnus/auth-source.el'
--- a/lisp/gnus/auth-source.el  2013-06-17 23:35:46 +0000
+++ b/lisp/gnus/auth-source.el  2013-06-18 22:38:34 +0000
@@ -1078,8 +1078,8 @@
       (when (and alist
                  (or default
                      (equal item "machine")))
-        (auth-source-do-trivia
-         "auth-source-netrc-parse-entries: got entry %S" alist)
+        ;; (auth-source-do-trivia
+        ;;  "auth-source-netrc-parse-entries: got entry %S" alist)
         (setq all (funcall adder check alist all)
               alist nil))
       ;; In default entries, we don't have a next token.
@@ -1101,8 +1101,9 @@
     ;; Clean up: if there's an entry left over, use it.
     (when alist
       (setq all (funcall adder check alist all))
-      (auth-source-do-trivia
-       "auth-source-netrc-parse-entries: got2 entry %S" alist))
+      ;; (auth-source-do-trivia
+      ;;  "auth-source-netrc-parse-entries: got2 entry %S" alist)
+      )
     (nreverse all)))
 
 (defvar auth-source-passphrase-alist nil)

=== modified file 'lisp/net/eww.el'
--- a/lisp/net/eww.el   2013-06-18 18:04:09 +0000
+++ b/lisp/net/eww.el   2013-06-18 22:38:34 +0000
@@ -56,6 +56,11 @@
   "Title of current page.")
 (defvar eww-history nil)
 
+(defvar eww-next-url nil)
+(defvar eww-previous-url nil)
+(defvar eww-up-url nil)
+(defvar eww-top-url nil)
+
 ;;;###autoload
 (defun eww (url)
   "Fetch URL and render the page."
@@ -64,10 +69,20 @@
     (setq url (concat "http://"; url)))
   (url-retrieve url 'eww-render (list url)))
 
+;;;###autoload
+(defun eww-open-file (file)
+  "Render a file using EWW."
+  (interactive "fFile: ")
+  (eww (concat "file://" (expand-file-name file))))
+
 (defun eww-render (status url &optional point)
   (let ((redirect (plist-get status :redirect)))
     (when redirect
       (setq url redirect)))
+  (set (make-local-variable 'eww-next-url) nil)
+  (set (make-local-variable 'eww-previous-url) nil)
+  (set (make-local-variable 'eww-up-url) nil)
+  (set (make-local-variable 'eww-top-url) nil)
   (let* ((headers (eww-parse-headers))
         (shr-target-id
          (and (string-match "#\\(.*\\)" url)
@@ -146,11 +161,33 @@
             (input . eww-tag-input)
             (textarea . eww-tag-textarea)
             (body . eww-tag-body)
-            (select . eww-tag-select))))
+            (select . eww-tag-select)
+            (link . eww-tag-link)
+            (a . eww-tag-a))))
       (shr-insert-document document)
       (eww-convert-widgets))
     (goto-char (point-min))))
 
+(defun eww-handle-link (cont)
+  (let* ((rel (assq :rel cont))
+       (href (assq :href cont))
+       (where (assoc (cdr rel)
+                     '(("next" . eww-next-url)
+                       ("previous" . eww-previous-url)
+                       ("start" . eww-top-url)
+                       ("up" . eww-up-url)))))
+    (and href
+        where
+        (set (cdr where) (cdr href)))))
+
+(defun eww-tag-link (cont)
+  (eww-handle-link cont)
+  (shr-generic cont))
+
+(defun eww-tag-a (cont)
+  (eww-handle-link cont)
+  (shr-tag-a cont))
+
 (defun eww-update-header-line-format ()
   (if eww-header-line-format
       (setq header-line-format (format-spec eww-header-line-format
@@ -218,8 +255,11 @@
     (define-key map [delete] 'scroll-down-command)
     (define-key map "\177" 'scroll-down-command)
     (define-key map " " 'scroll-up-command)
+    (define-key map "l" 'eww-back-url)
+    (define-key map "n" 'eww-next-url)
     (define-key map "p" 'eww-previous-url)
-    ;;(define-key map "n" 'eww-next-url)
+    (define-key map "u" 'eww-up-url)
+    (define-key map "t" 'eww-top-url)
     map))
 
 (define-derived-mode eww-mode nil "eww"
@@ -240,7 +280,7 @@
   (setq eww-history nil)
   (kill-buffer (current-buffer)))
 
-(defun eww-previous-url ()
+(defun eww-back-url ()
   "Go to the previously displayed page."
   (interactive)
   (when (zerop (length eww-history))
@@ -248,6 +288,42 @@
   (let ((prev (pop eww-history)))
     (url-retrieve (car prev) 'eww-render (list (car prev) (cadr prev)))))
 
+(defun eww-next-url ()
+  "Go to the page marked `next'.
+A page is marked `next' if rel=\"next\" appears in a <link>
+or <a> tag."
+  (interactive)
+  (if eww-next-url
+      (eww-browse-url (shr-expand-url eww-next-url eww-current-url))
+    (error "No `next' on this page")))
+
+(defun eww-previous-url ()
+  "Go to the page marked `previous'.
+A page is marked `previous' if rel=\"previous\" appears in a <link>
+or <a> tag."
+  (interactive)
+  (if eww-previous-url
+      (eww-browse-url (shr-expand-url eww-previous-url eww-current-url))
+    (error "No `previous' on this page")))
+
+(defun eww-up-url ()
+  "Go to the page marked `up'.
+A page is marked `up' if rel=\"up\" appears in a <link>
+or <a> tag."
+  (interactive)
+  (if eww-up-url
+      (eww-browse-url (shr-expand-url eww-up-url eww-current-url))
+    (error "No `up' on this page")))
+
+(defun eww-top-url ()
+  "Go to the page marked `top'.
+A page is marked `top' if rel=\"start\" appears in a <link>
+or <a> tag."
+  (interactive)
+  (if eww-top-url
+      (eww-browse-url (shr-expand-url eww-top-url eww-current-url))
+    (error "No `top' on this page")))
+
 (defun eww-reload ()
   "Reload the current page."
   (interactive)

=== modified file 'lisp/net/shr.el'
--- a/lisp/net/shr.el   2013-06-18 18:04:09 +0000
+++ b/lisp/net/shr.el   2013-06-18 22:38:34 +0000
@@ -55,8 +55,9 @@
   :group 'shr
   :type '(choice (const nil) regexp))
 
-(defcustom shr-table-horizontal-line ?\s
-  "Character used to draw horizontal table lines."
+(defcustom shr-table-horizontal-line nil
+  "Character used to draw horizontal table lines.
+If nil, don't draw horizontal table lines."
   :group 'shr
   :type 'character)
 
@@ -126,6 +127,7 @@
 (defvar shr-external-rendering-functions nil)
 (defvar shr-target-id nil)
 (defvar shr-inhibit-decoration nil)
+(defvar shr-table-separator-length 1)
 
 (defvar shr-map
   (let ((map (make-sparse-keymap)))
@@ -175,7 +177,7 @@
        (shr-start nil)
        (shr-base nil)
        (shr-preliminary-table-render 0)
-       (shr-width (or shr-width (window-width))))
+       (shr-width (or shr-width (1- (window-width)))))
     (shr-descend (shr-transform-dom dom))
     (shr-remove-trailing-whitespace start (point))))
 
@@ -1347,6 +1349,7 @@
 (defun shr-insert-table (table widths)
   (let* ((collapse (equal (cdr (assq 'border-collapse shr-stylesheet))
                          "collapse"))
+        (shr-table-separator-length (if collapse 0 1))
         (shr-table-vertical-line (if collapse "" shr-table-vertical-line)))
     (unless collapse
       (shr-insert-table-ruler widths))
@@ -1381,14 +1384,15 @@
        (shr-insert-table-ruler widths)))))
 
 (defun shr-insert-table-ruler (widths)
-  (when (and (bolp)
-            (> shr-indentation 0))
-    (shr-indent))
-  (insert shr-table-corner)
-  (dotimes (i (length widths))
-    (insert (make-string (aref widths i) shr-table-horizontal-line)
-           shr-table-corner))
-  (insert "\n"))
+  (when shr-table-horizontal-line
+    (when (and (bolp)
+              (> shr-indentation 0))
+      (shr-indent))
+    (insert shr-table-corner)
+    (dotimes (i (length widths))
+      (insert (make-string (aref widths i) shr-table-horizontal-line)
+             shr-table-corner))
+    (insert "\n")))
 
 (defun shr-table-widths (table natural-table suggested-widths)
   (let* ((length (length suggested-widths))
@@ -1432,20 +1436,52 @@
 
 (defun shr-make-table-1 (cont widths &optional fill)
   (let ((trs nil)
-       (shr-inhibit-decoration (not fill)))
+       (shr-inhibit-decoration (not fill))
+       (rowspans (make-vector (length widths) 0))
+       width colspan)
     (dolist (row cont)
       (when (eq (car row) 'tr)
        (let ((tds nil)
              (columns (cdr row))
              (i 0)
+             (width-column 0)
              column)
          (while (< i (length widths))
-           (setq column (pop columns))
+           ;; If we previously had a rowspan definition, then that
+           ;; means that we now have a "missing" td/th element here.
+           ;; So just insert a dummy, empty one to (sort of) emulate
+           ;; rowspan.
+           (setq column
+                 (if (zerop (aref rowspans i))
+                     (pop columns)
+                   (aset rowspans i (1- (aref rowspans i)))
+                   '(td)))
            (when (or (memq (car column) '(td th))
-                     (null column))
-             (push (shr-render-td (cdr column) (aref widths i) fill)
-                   tds)
-             (setq i (1+ i))))
+                     (not column))
+             (when (cdr (assq :rowspan (cdr column)))
+               (aset rowspans i (+ (aref rowspans i)
+                                   (1- (string-to-number
+                                        (cdr (assq :rowspan (cdr column))))))))
+             (setq width
+                   (if column
+                       (aref widths width-column)
+                     0))
+             (when (and fill
+                        (setq colspan (cdr (assq :colspan (cdr column)))))
+               (setq colspan (string-to-number colspan))
+               (dotimes (j (1- colspan))
+                 (if (> (+ i 1 j) (1- (length widths)))
+                     (setq width (aref widths (1- (length widths))))
+                   (setq width (+ width
+                                  shr-table-separator-length
+                                  (aref widths (+ i 1 j))))))
+               (setq width-column (+ width-column (1- colspan))))
+             (when (or column
+                       (not fill))
+               (push (shr-render-td (cdr column) width fill)
+                     tds))
+             (setq i (1+ i)
+                   width-column (1+ width-column))))
          (push (nreverse tds) trs))))
     (nreverse trs)))
 


reply via email to

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