aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorKenichi Handa2013-07-20 20:51:53 +0900
committerKenichi Handa2013-07-20 20:51:53 +0900
commit7e67809332c7ac0c798eb13d5573a5804db8134e (patch)
treeee8d4702ed94e7179ae30740f6575ca698539d30 /lisp
parent0efe47a860bba25617132f02e2220056bfa098b0 (diff)
parent6b1b199dc0e3e7f8028fabe87fac446f5a845479 (diff)
downloademacs-7e67809332c7ac0c798eb13d5573a5804db8134e.tar.gz
emacs-7e67809332c7ac0c798eb13d5573a5804db8134e.zip
merge trunk
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog35
-rw-r--r--lisp/epa.el3
-rw-r--r--lisp/frame.el6
-rw-r--r--lisp/gnus/ChangeLog10
-rw-r--r--lisp/gnus/gnus-art.el2
-rw-r--r--lisp/gnus/gnus-start.el20
-rw-r--r--lisp/mail/mailalias.el4
-rw-r--r--lisp/net/eww.el2
-rw-r--r--lisp/net/shr.el14
-rw-r--r--lisp/subr.el63
10 files changed, 110 insertions, 49 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 4b6d0b0e379..68ebad48d42 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -3,15 +3,38 @@
3 * international/mule.el (coding-system-iso-2022-flags): Add 3 * international/mule.el (coding-system-iso-2022-flags): Add
4 `8-bit-level-4'. (Bug#8522) 4 `8-bit-level-4'. (Bug#8522)
5 5
62013-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
7
8 * net/shr.el (shr-mouse-browse-url): New command and keystroke
9 (bug#14815).
10
11 * net/eww.el (eww-process-text-input): Allow inputting when the
12 point is at the start of the line, as the properties aren't
13 front-sticky.
14
15 * net/shr.el (shr-make-table-1): Ensure that we don't infloop on
16 degenerate widths.
17
182013-07-19 Richard Stallman <rms@gnu.org>
19
20 * epa.el (epa-popup-info-window): Doc fix.
21
22 * subr.el (split-string): New arg TRIM.
23
242013-07-18 Juanma Barranquero <lekktu@gmail.com>
25
26 * frame.el (blink-cursor-timer-function, blink-cursor-suspend):
27 Add check for W32 (followup to 2013-07-16T11:41:06Z!jan.h.d@swipnet.se).
28
62013-07-18 Michael Albinus <michael.albinus@gmx.de> 292013-07-18 Michael Albinus <michael.albinus@gmx.de>
7 30
8 * filenotify.el (file-notify--library): Renamed from 31 * filenotify.el (file-notify--library): Rename from
9 `file-notify-support'. Do not autoload. Adapt all uses. 32 `file-notify-support'. Do not autoload. Adapt all uses.
10 (file-notify-supported-p): New defun. 33 (file-notify-supported-p): New defun.
11 34
12 * autorevert.el (auto-revert-use-notify): Use 35 * autorevert.el (auto-revert-use-notify):
13 `file-notify-supported-p' instead of `file-notify-support'. Adapt 36 Use `file-notify-supported-p' instead of `file-notify-support'.
14 docstring. 37 Adapt docstring.
15 (auto-revert-notify-add-watch): Use `file-notify-supported-p'. 38 (auto-revert-notify-add-watch): Use `file-notify-supported-p'.
16 39
17 * net/tramp.el (tramp-file-name-for-operation): 40 * net/tramp.el (tramp-file-name-for-operation):
@@ -3572,8 +3595,8 @@
3572 (prolog-char-quote-workaround): 3595 (prolog-char-quote-workaround):
3573 * progmodes/cperl-mode.el (cperl-under-as-char): 3596 * progmodes/cperl-mode.el (cperl-under-as-char):
3574 * progmodes/vhdl-mode.el (vhdl-underscore-is-part-of-word): 3597 * progmodes/vhdl-mode.el (vhdl-underscore-is-part-of-word):
3575 Mark as obsolete. 3598 Mark as obsolete.
3576 (vhdl-mode-syntax-table, vhdl-mode-ext-syntax-table): Initialize in 3599 (vhdl-mode-syntax-table, vhdl-mode-ext-syntax-table): Initialize in
3577 their declaration. 3600 their declaration.
3578 (vhdl-mode-syntax-table-init): Remove. 3601 (vhdl-mode-syntax-table-init): Remove.
3579 3602
diff --git a/lisp/epa.el b/lisp/epa.el
index 14f8879c1c6..68e7a18fe17 100644
--- a/lisp/epa.el
+++ b/lisp/epa.el
@@ -34,8 +34,7 @@
34 :group 'epg) 34 :group 'epg)
35 35
36(defcustom epa-popup-info-window t 36(defcustom epa-popup-info-window t
37 "If non-nil, status information from epa commands is displayed on 37 "If non-nil, display status information from epa commands in another window."
38the separate window."
39 :type 'boolean 38 :type 'boolean
40 :group 'epa) 39 :group 'epa)
41 40
diff --git a/lisp/frame.el b/lisp/frame.el
index a37d1189552..ed47afa4b94 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -1709,7 +1709,7 @@ command starts, by installing a pre-command hook."
1709 "Timer function of timer `blink-cursor-timer'." 1709 "Timer function of timer `blink-cursor-timer'."
1710 (internal-show-cursor nil (not (internal-show-cursor-p))) 1710 (internal-show-cursor nil (not (internal-show-cursor-p)))
1711 ;; Each blink is two calls to this function. 1711 ;; Each blink is two calls to this function.
1712 (when (memq window-system '(x ns)) 1712 (when (memq window-system '(x ns w32))
1713 (setq blink-cursor-blinks-done (1+ blink-cursor-blinks-done)) 1713 (setq blink-cursor-blinks-done (1+ blink-cursor-blinks-done))
1714 (when (and (> blink-cursor-blinks 0) 1714 (when (and (> blink-cursor-blinks 0)
1715 (<= (* 2 blink-cursor-blinks) blink-cursor-blinks-done)) 1715 (<= (* 2 blink-cursor-blinks) blink-cursor-blinks-done))
@@ -1729,11 +1729,11 @@ itself as a pre-command hook."
1729 (setq blink-cursor-timer nil))) 1729 (setq blink-cursor-timer nil)))
1730 1730
1731(defun blink-cursor-suspend () 1731(defun blink-cursor-suspend ()
1732 "Suspend cursor blinking on NS and X. 1732 "Suspend cursor blinking on NS, X and W32.
1733This is called when no frame has focus and timers can be suspended. 1733This is called when no frame has focus and timers can be suspended.
1734Timers are restarted by `blink-cursor-check', which is called when a 1734Timers are restarted by `blink-cursor-check', which is called when a
1735frame receives focus." 1735frame receives focus."
1736 (when (memq window-system '(x ns)) 1736 (when (memq window-system '(x ns w32))
1737 (blink-cursor-end) 1737 (blink-cursor-end)
1738 (when blink-cursor-idle-timer 1738 (when blink-cursor-idle-timer
1739 (cancel-timer blink-cursor-idle-timer) 1739 (cancel-timer blink-cursor-idle-timer)
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index c68013f6da3..4b2892ae4b0 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,13 @@
12013-07-19 Geoff Kuenning <geoff@cs.hmc.edu> (tiny change)
2
3 * gnus-art.el (gnus-treat-predicate): Allow functions as predicates
4 (bug#13384).
5
62013-07-18 Lars Magne Ingebrigtsen <larsi@gnus.org>
7
8 * gnus-start.el (gnus-clean-old-newsrc): Remove the newsrc cleanups
9 that were only relevant in a development version a long time ago.
10
12013-07-18 Katsumi Yamaoka <yamaoka@jpl.org> 112013-07-18 Katsumi Yamaoka <yamaoka@jpl.org>
2 12
3 * gnus-art.el (gnus-shr-put-image): Make it work as well for shr.el's 13 * gnus-art.el (gnus-shr-put-image): Make it work as well for shr.el's
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 304ac3da88c..31a108a3c98 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -8419,6 +8419,8 @@ For example:
8419 (not (gnus-treat-predicate (car val)))) 8419 (not (gnus-treat-predicate (car val))))
8420 ((eq pred 'typep) 8420 ((eq pred 'typep)
8421 (equal (car val) gnus-treat-type)) 8421 (equal (car val) gnus-treat-type))
8422 ((functionp pred)
8423 (funcall pred))
8422 (t 8424 (t
8423 (error "%S is not a valid predicate" pred))))) 8425 (error "%S is not a valid predicate" pred)))))
8424 ((eq val t) 8426 ((eq val t)
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index 94803800e0b..05cf290cac9 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -2305,24 +2305,8 @@ If FORCE is non-nil, the .newsrc file is read."
2305 (gnus-clean-old-newsrc)))) 2305 (gnus-clean-old-newsrc))))
2306 2306
2307(defun gnus-clean-old-newsrc (&optional force) 2307(defun gnus-clean-old-newsrc (&optional force)
2308 (when gnus-newsrc-file-version 2308 ;; Currently no cleanups.
2309 ;; Remove totally bogus `unexists' entries. The name is 2309 )
2310 ;; `unexist'.
2311 (dolist (info (cdr gnus-newsrc-alist))
2312 (let ((exist (assoc 'unexists (gnus-info-marks info))))
2313 (when exist
2314 (gnus-info-set-marks
2315 info (delete exist (gnus-info-marks info))))))
2316 (when (or force
2317 (not (string= gnus-newsrc-file-version gnus-version)))
2318 (message (concat "Removing unexist marks because newsrc "
2319 "version does not match Gnus version."))
2320 ;; Remove old `exist' marks from old nnimap groups.
2321 (dolist (info (cdr gnus-newsrc-alist))
2322 (let ((exist (assoc 'unexist (gnus-info-marks info))))
2323 (when exist
2324 (gnus-info-set-marks
2325 info (delete exist (gnus-info-marks info)))))))))
2326 2310
2327(defun gnus-convert-old-newsrc () 2311(defun gnus-convert-old-newsrc ()
2328 "Convert old newsrc formats into the current format, if needed." 2312 "Convert old newsrc formats into the current format, if needed."
diff --git a/lisp/mail/mailalias.el b/lisp/mail/mailalias.el
index c5f1e3921fa..4d9b24e0043 100644
--- a/lisp/mail/mailalias.el
+++ b/lisp/mail/mailalias.el
@@ -209,7 +209,9 @@ removed from alias expansions."
209 (if (re-search-forward "[ \t]*[\n,][ \t]*" end1 t) 209 (if (re-search-forward "[ \t]*[\n,][ \t]*" end1 t)
210 (setq epos (match-beginning 0) 210 (setq epos (match-beginning 0)
211 seplen (- (point) epos)) 211 seplen (- (point) epos))
212 (setq epos (marker-position end1) seplen 0)) 212 ;; Handle the last name in this header field.
213 ;; We already moved END1 back across whitespace after it.
214 (setq epos (marker-position end1) seplen 0))
213 (let ((string (buffer-substring-no-properties pos epos)) 215 (let ((string (buffer-substring-no-properties pos epos))
214 translation) 216 translation)
215 (if (and (not (assoc string disabled-aliases)) 217 (if (and (not (assoc string disabled-aliases))
diff --git a/lisp/net/eww.el b/lisp/net/eww.el
index d832aa7ef3e..d65932ae7c9 100644
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@ -603,7 +603,7 @@ appears in a <link> or <a> tag."
603 (insert " "))) 603 (insert " ")))
604 604
605(defun eww-process-text-input (beg end length) 605(defun eww-process-text-input (beg end length)
606 (let* ((form (get-text-property end 'eww-form)) 606 (let* ((form (get-text-property (min (1+ end) (point-max)) 'eww-form))
607 (properties (text-properties-at end)) 607 (properties (text-properties-at end))
608 (type (plist-get form :type))) 608 (type (plist-get form :type)))
609 (when (and form 609 (when (and form
diff --git a/lisp/net/shr.el b/lisp/net/shr.el
index 4506ede8722..6ddf8d2af90 100644
--- a/lisp/net/shr.el
+++ b/lisp/net/shr.el
@@ -143,6 +143,7 @@ cid: URL as the argument.")
143 (define-key map [tab] 'shr-next-link) 143 (define-key map [tab] 'shr-next-link)
144 (define-key map [backtab] 'shr-previous-link) 144 (define-key map [backtab] 'shr-previous-link)
145 (define-key map [follow-link] 'mouse-face) 145 (define-key map [follow-link] 'mouse-face)
146 (define-key map [mouse-2] 'shr-mouse-browse-url)
146 (define-key map "I" 'shr-insert-image) 147 (define-key map "I" 'shr-insert-image)
147 (define-key map "w" 'shr-copy-url) 148 (define-key map "w" 'shr-copy-url)
148 (define-key map "u" 'shr-copy-url) 149 (define-key map "u" 'shr-copy-url)
@@ -657,6 +658,12 @@ size, and full-buffer size."
657 (forward-line 1) 658 (forward-line 1)
658 (goto-char end)))))) 659 (goto-char end))))))
659 660
661(defun shr-mouse-browse-url (ev)
662 "Browse the URL under the mouse cursor."
663 (interactive "e")
664 (mouse-set-point ev)
665 (shr-browse-url))
666
660(defun shr-browse-url (&optional external) 667(defun shr-browse-url (&optional external)
661 "Browse the URL under point. 668 "Browse the URL under point.
662If EXTERNAL, browse the URL using `shr-external-browser'." 669If EXTERNAL, browse the URL using `shr-external-browser'."
@@ -1476,9 +1483,6 @@ ones, in case fg and bg are nil."
1476 (if column 1483 (if column
1477 (aref widths width-column) 1484 (aref widths width-column)
1478 10)) 1485 10))
1479 ;; Sanity check for degenerate tables.
1480 (when (zerop width)
1481 (setq width 10))
1482 (when (and fill 1486 (when (and fill
1483 (setq colspan (cdr (assq :colspan (cdr column))))) 1487 (setq colspan (cdr (assq :colspan (cdr column)))))
1484 (setq colspan (string-to-number colspan)) 1488 (setq colspan (string-to-number colspan))
@@ -1491,6 +1495,9 @@ ones, in case fg and bg are nil."
1491 (setq width-column (+ width-column (1- colspan)))) 1495 (setq width-column (+ width-column (1- colspan))))
1492 (when (or column 1496 (when (or column
1493 (not fill)) 1497 (not fill))
1498 ;; Sanity check for degenerate tables.
1499 (when (zerop width)
1500 (setq width 10))
1494 (push (shr-render-td (cdr column) width fill) 1501 (push (shr-render-td (cdr column) width fill)
1495 tds)) 1502 tds))
1496 (setq i (1+ i) 1503 (setq i (1+ i)
@@ -1499,6 +1506,7 @@ ones, in case fg and bg are nil."
1499 (nreverse trs))) 1506 (nreverse trs)))
1500 1507
1501(defun shr-render-td (cont width fill) 1508(defun shr-render-td (cont width fill)
1509 (when (= width 0) (debug))
1502 (with-temp-buffer 1510 (with-temp-buffer
1503 (let ((bgcolor (cdr (assq :bgcolor cont))) 1511 (let ((bgcolor (cdr (assq :bgcolor cont)))
1504 (fgcolor (cdr (assq :fgcolor cont))) 1512 (fgcolor (cdr (assq :fgcolor cont)))
diff --git a/lisp/subr.el b/lisp/subr.el
index b6ee96f879e..75c6b3a0620 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -3529,7 +3529,7 @@ likely to have undesired semantics.")
3529;; defaulted, OMIT-NULLS should be treated as t. Simplifying the logical 3529;; defaulted, OMIT-NULLS should be treated as t. Simplifying the logical
3530;; expression leads to the equivalent implementation that if SEPARATORS 3530;; expression leads to the equivalent implementation that if SEPARATORS
3531;; is defaulted, OMIT-NULLS is treated as t. 3531;; is defaulted, OMIT-NULLS is treated as t.
3532(defun split-string (string &optional separators omit-nulls) 3532(defun split-string (string &optional separators omit-nulls trim)
3533 "Split STRING into substrings bounded by matches for SEPARATORS. 3533 "Split STRING into substrings bounded by matches for SEPARATORS.
3534 3534
3535The beginning and end of STRING, and each match for SEPARATORS, are 3535The beginning and end of STRING, and each match for SEPARATORS, are
@@ -3547,17 +3547,50 @@ that for the default value of SEPARATORS leading and trailing whitespace
3547are effectively trimmed). If nil, all zero-length substrings are retained, 3547are effectively trimmed). If nil, all zero-length substrings are retained,
3548which correctly parses CSV format, for example. 3548which correctly parses CSV format, for example.
3549 3549
3550If TRIM is non-nil, it should be a regular expression to match
3551text to trim from the beginning and end of each substring. If trimming
3552makes the substring empty, it is treated as null.
3553
3554If you want to trim whitespace from the substrings, the reliably correct
3555way is using TRIM. Making SEPARATORS match that whitespace gives incorrect
3556results when there is whitespace at the start or end of STRING. If you
3557see such calls to `split-string', please fix them.
3558
3550Note that the effect of `(split-string STRING)' is the same as 3559Note that the effect of `(split-string STRING)' is the same as
3551`(split-string STRING split-string-default-separators t)'. In the rare 3560`(split-string STRING split-string-default-separators t)'. In the rare
3552case that you wish to retain zero-length substrings when splitting on 3561case that you wish to retain zero-length substrings when splitting on
3553whitespace, use `(split-string STRING split-string-default-separators)'. 3562whitespace, use `(split-string STRING split-string-default-separators)'.
3554 3563
3555Modifies the match data; use `save-match-data' if necessary." 3564Modifies the match data; use `save-match-data' if necessary."
3556 (let ((keep-nulls (not (if separators omit-nulls t))) 3565 (let* ((keep-nulls (not (if separators omit-nulls t)))
3557 (rexp (or separators split-string-default-separators)) 3566 (rexp (or separators split-string-default-separators))
3558 (start 0) 3567 (start 0)
3559 notfirst 3568 this-start this-end
3560 (list nil)) 3569 notfirst
3570 (list nil)
3571 (push-one
3572 ;; Push the substring in range THIS-START to THIS-END
3573 ;; onto LIST, trimming it and perhaps discarding it.
3574 (lambda ()
3575 (when trim
3576 ;; Discard the trim from start of this substring.
3577 (let ((tem (string-match trim string this-start)))
3578 (and (eq tem this-start)
3579 (setq this-start (match-end 0)))))
3580
3581 (when (or keep-nulls (< this-start this-end))
3582 (let ((this (substring string this-start this-end)))
3583
3584 ;; Discard the trim from end of this substring.
3585 (when trim
3586 (let ((tem (string-match (concat trim "\\'") this 0)))
3587 (and tem (< tem (length this))
3588 (setq this (substring this 0 tem)))))
3589
3590 ;; Trimming could make it empty; check again.
3591 (when (or keep-nulls (> (length this) 0))
3592 (push this list)))))))
3593
3561 (while (and (string-match rexp string 3594 (while (and (string-match rexp string
3562 (if (and notfirst 3595 (if (and notfirst
3563 (= start (match-beginning 0)) 3596 (= start (match-beginning 0))
@@ -3565,15 +3598,15 @@ Modifies the match data; use `save-match-data' if necessary."
3565 (1+ start) start)) 3598 (1+ start) start))
3566 (< start (length string))) 3599 (< start (length string)))
3567 (setq notfirst t) 3600 (setq notfirst t)
3568 (if (or keep-nulls (< start (match-beginning 0))) 3601 (setq this-start start this-end (match-beginning 0)
3569 (setq list 3602 start (match-end 0))
3570 (cons (substring string start (match-beginning 0)) 3603
3571 list))) 3604 (funcall push-one))
3572 (setq start (match-end 0))) 3605
3573 (if (or keep-nulls (< start (length string))) 3606 ;; Handle the substring at the end of STRING.
3574 (setq list 3607 (setq this-start start this-end (length string))
3575 (cons (substring string start) 3608 (funcall push-one)
3576 list))) 3609
3577 (nreverse list))) 3610 (nreverse list)))
3578 3611
3579(defun combine-and-quote-strings (strings &optional separator) 3612(defun combine-and-quote-strings (strings &optional separator)