aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorK. Handa2014-12-29 22:54:07 +0900
committerK. Handa2014-12-29 22:54:07 +0900
commitbb5e7861593815f912c21b2aee1e4be9a6cc64a2 (patch)
tree080066ad78a5de3f2a8a3fbfbc3e3d242c1c16b7
parent3fa5f4416ed219688b9d0e370edf40dce15a5de3 (diff)
parent8e0b2702ce8ad593a2098ae8028728ed137fb26c (diff)
downloademacs-bb5e7861593815f912c21b2aee1e4be9a6cc64a2.tar.gz
emacs-bb5e7861593815f912c21b2aee1e4be9a6cc64a2.zip
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs.
-rw-r--r--CONTRIBUTE4
-rw-r--r--ChangeLog6
-rwxr-xr-xbuild-aux/git-hooks/commit-msg16
-rw-r--r--etc/NEWS5
-rw-r--r--etc/grep.txt6
-rw-r--r--lisp/ChangeLog53
-rw-r--r--lisp/comint.el16
-rw-r--r--lisp/emacs-lisp/find-func.el28
-rw-r--r--lisp/gnus/ChangeLog5
-rw-r--r--lisp/gnus/gnus-cloud.el9
-rw-r--r--lisp/gnus/mm-decode.el1
-rw-r--r--lisp/international/mule.el108
-rw-r--r--lisp/menu-bar.el43
-rw-r--r--lisp/net/eww.el1
-rw-r--r--lisp/net/shr.el3
-rw-r--r--lisp/progmodes/elisp-mode.el38
-rw-r--r--lisp/progmodes/etags.el5
-rw-r--r--lisp/vc/vc-dir.el11
-rw-r--r--src/ChangeLog6
-rw-r--r--src/term.c2
20 files changed, 236 insertions, 130 deletions
diff --git a/CONTRIBUTE b/CONTRIBUTE
index 3bc49cf3ea3..0e019d31597 100644
--- a/CONTRIBUTE
+++ b/CONTRIBUTE
@@ -57,7 +57,7 @@ following modifications:
57 the rationale for a change; that can be done in the commit message 57 the rationale for a change; that can be done in the commit message
58 between the summary line and the file entries. 58 between the summary line and the file entries.
59 59
60** Changelog notes 60** ChangeLog notes
61 61
62- Emacs generally follows the GNU coding standards when it comes to 62- Emacs generally follows the GNU coding standards when it comes to
63 ChangeLogs: 63 ChangeLogs:
@@ -67,7 +67,7 @@ following modifications:
67 now), because `...' is so widely used elsewhere in Emacs. 67 now), because `...' is so widely used elsewhere in Emacs.
68 68
69- Some of the rules in the GNU coding standards section 5.2 69- Some of the rules in the GNU coding standards section 5.2
70 "Commenting Your Work" also apply to Changelog entries: they must be 70 "Commenting Your Work" also apply to ChangeLog entries: they must be
71 in English, and be complete sentences starting with a capital and 71 in English, and be complete sentences starting with a capital and
72 ending with a period (except the summary line should not end in a 72 ending with a period (except the summary line should not end in a
73 period). 73 period).
diff --git a/ChangeLog b/ChangeLog
index 65a112d379f..00775edf524 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
12014-12-28 Paul Eggert <eggert@cs.ucla.edu>
2
3 * build-aux/git-hooks/commit-msg: Allow tabs.
4 Treat them as if they were expanded to spaces, with tab stops
5 every 8 columns.
6
12014-12-27 Paul Eggert <eggert@cs.ucla.edu> 72014-12-27 Paul Eggert <eggert@cs.ucla.edu>
2 8
3 * .gitignore: Ignore /conftest*. 9 * .gitignore: Ignore /conftest*.
diff --git a/build-aux/git-hooks/commit-msg b/build-aux/git-hooks/commit-msg
index 2e3e4f21cda..9b6179ee613 100755
--- a/build-aux/git-hooks/commit-msg
+++ b/build-aux/git-hooks/commit-msg
@@ -87,6 +87,15 @@ exec $awk '
87 status = 1 87 status = 1
88 } 88 }
89 89
90 {
91 # Expand tabs to spaces for length calculations etc.
92 while (match($0, /\t/)) {
93 before_tab = substr($0, 1, RSTART - 1)
94 after_tab = substr($0, RSTART + 1)
95 $0 = sprintf("%s%*s%s", before_tab, 8 - (RSTART - 1) % 8, "", after_tab)
96 }
97 }
98
90 78 < length && $0 ~ space { 99 78 < length && $0 ~ space {
91 print "Line longer than 78 characters in commit message" 100 print "Line longer than 78 characters in commit message"
92 status = 1 101 status = 1
@@ -103,12 +112,7 @@ exec $awk '
103 } 112 }
104 113
105 $0 ~ non_print { 114 $0 ~ non_print {
106 if (gsub(/\t/, "")) { 115 print "Unprintable character in commit message"
107 print "Tab in commit message; please use spaces instead"
108 }
109 if ($0 ~ non_print) {
110 print "Unprintable character in commit message"
111 }
112 status = 1 116 status = 1
113 } 117 }
114 118
diff --git a/etc/NEWS b/etc/NEWS
index 4d632783812..548f409348a 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -456,6 +456,11 @@ easier binding, which is now unoccupied (`M-,').
456alias for a private variable. `xref-push-marker-stack' and 456alias for a private variable. `xref-push-marker-stack' and
457`xref-pop-marker-stack' should be used to mutate it instead. 457`xref-pop-marker-stack' should be used to mutate it instead.
458 458
459** etags
460As a result of the above, these commands are now obsolete:
461`find-tag-other-window', `find-tag-other-frame', `find-tag-regexp',
462`tags-apropos' and `tags-loop-continue'.
463
459** Obsolete packages 464** Obsolete packages
460 465
461--- 466---
diff --git a/etc/grep.txt b/etc/grep.txt
index 523b1fa404c..b96a916f905 100644
--- a/etc/grep.txt
+++ b/etc/grep.txt
@@ -39,7 +39,7 @@ grep -nH --color=always -e "INFO tree" ../info/*
39 39
40* GNU grep 2.5.1 on lines starting with a number and colon 40* GNU grep 2.5.1 on lines starting with a number and colon
41 41
42grep -nH -e "Universal Time" ../lispref/* 42grep -nH --color=always -e "Universal Time" ../doc/lispref/*
43../lispref/os.texi:1010:0:00 January 1, 1970 UTC (Coordinated Universal Time) 43../lispref/os.texi:1010:0:00 January 1, 1970 UTC (Coordinated Universal Time)
44 44
45* GNU grep 2.5.1 with context lines 45* GNU grep 2.5.1 with context lines
@@ -78,8 +78,8 @@ bzr grep --color=always -in "org-element-map"
78lisp/org/org.el:21047: (org-element-map 78lisp/org/org.el:21047: (org-element-map
79 79
80* git-grep 80* git-grep
81 with `[diff "el"] xfuncname = "^(\\(.*)$"' in .gitconfig 81 with `[diff "lisp"] xfuncname = "^(\\(.*)$"' in .gitconfig
82 and `*.el diff=el' in .gitattributes 82 and `*.el diff=lisp' in .gitattributes
83 83
84git --no-pager grep -inH -p -e "org-element-map" 84git --no-pager grep -inH -p -e "org-element-map"
85lisp/org/org.el=20969=(defun org-fill-paragraph (&optional justify) 85lisp/org/org.el=20969=(defun org-fill-paragraph (&optional justify)
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 48c73bb4196..64ead04f4b6 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -3,6 +3,59 @@
3 * international/mule.el (make-translation-table-from-alist): 3 * international/mule.el (make-translation-table-from-alist):
4 Accept nil or zero-length vector for FROM and TO. 4 Accept nil or zero-length vector for FROM and TO.
5 5
62014-12-29 Lars Ingebrigtsen <larsi@gnus.org>
7
8 * net/eww.el (eww-mode): Truncate overlong lines for prettier
9 display when resizing.
10
11 * net/shr.el (shr-width): Default to using the window width when
12 rendering.
13
142014-12-29 Dmitry Gutov <dgutov@yandex.ru>
15
16 Unbreak jumping to an alias's definition.
17
18 * emacs-lisp/find-func.el (find-function-library): Return a pair
19 (ORIG-FUNCTION . LIBRARY) instead of just its second element.
20 (find-function-noselect): Use it.
21
22 * progmodes/elisp-mode.el (elisp--xref-identifier-file): Rename to
23 `elisp--xref-identifier-location', incorporate logic from
24 `elisp--xref-find-definitions', use the changed
25 `find-function-library' return value.
26
272014-12-29 Juri Linkov <juri@linkov.net>
28
29 * comint.el (comint-history-isearch-message): Use field-beginning
30 instead of comint-line-beginning-position - that's more fixes for
31 http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg00305.html
32 (comint-history-isearch-message): Fix args of isearch-message-prefix.
33
342014-12-29 Juri Linkov <juri@linkov.net>
35
36 * vc/vc-dir.el (vc-dir-display-file): New command (bug#19450).
37 (vc-dir-mode-map): Bind it to "\C-o".
38 (vc-dir-menu-map): Add it to menu.
39
402014-12-29 Dmitry Gutov <dgutov@yandex.ru>
41
42 * progmodes/etags.el (find-tag-other-window)
43 (find-tag-other-frame, find-tag-regexp, tags-loop-continue)
44 (tags-apropos): Declare obsolete.
45
46 * menu-bar.el (menu-bar-goto-menu): Replace all but one etags item
47 with xref ones.
48
492014-12-28 Eli Zaretskii <eliz@gnu.org>
50
51 * international/mule.el (define-coding-system): Fix typos in the
52 doc string.
53
542014-12-28 Kenichi Handa <handa@gnu.org>
55
56 * international/mule.el (define-coding-system): Improve the doc
57 string.
58
62014-12-28 Ivan Shmakov <ivan@siamics.net> 592014-12-28 Ivan Shmakov <ivan@siamics.net>
7 60
8 * net/shr.el (shr-tag-table): Fix handling of tbody/header/footer 61 * net/shr.el (shr-tag-table): Fix handling of tbody/header/footer
diff --git a/lisp/comint.el b/lisp/comint.el
index 3085052087c..4acaa30db91 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -1532,14 +1532,20 @@ the function `isearch-message'."
1532 ;; the initial comint prompt. 1532 ;; the initial comint prompt.
1533 (if (overlayp comint-history-isearch-message-overlay) 1533 (if (overlayp comint-history-isearch-message-overlay)
1534 (move-overlay comint-history-isearch-message-overlay 1534 (move-overlay comint-history-isearch-message-overlay
1535 (save-excursion (forward-line 0) (point)) 1535 (save-excursion
1536 (comint-line-beginning-position)) 1536 (goto-char (field-beginning))
1537 (forward-line 0)
1538 (point))
1539 (field-beginning))
1537 (setq comint-history-isearch-message-overlay 1540 (setq comint-history-isearch-message-overlay
1538 (make-overlay (save-excursion (forward-line 0) (point)) 1541 (make-overlay (save-excursion
1539 (comint-line-beginning-position))) 1542 (goto-char (field-beginning))
1543 (forward-line 0)
1544 (point))
1545 (field-beginning)))
1540 (overlay-put comint-history-isearch-message-overlay 'evaporate t)) 1546 (overlay-put comint-history-isearch-message-overlay 'evaporate t))
1541 (overlay-put comint-history-isearch-message-overlay 1547 (overlay-put comint-history-isearch-message-overlay
1542 'display (isearch-message-prefix c-q-hack ellipsis)) 1548 'display (isearch-message-prefix ellipsis isearch-nonincremental))
1543 (if (and comint-input-ring-index (not ellipsis)) 1549 (if (and comint-input-ring-index (not ellipsis))
1544 ;; Display the current history index. 1550 ;; Display the current history index.
1545 (message "History item: %d" (1+ comint-input-ring-index)) 1551 (message "History item: %d" (1+ comint-input-ring-index))
diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el
index e1586a96716..3131be09eb1 100644
--- a/lisp/emacs-lisp/find-func.el
+++ b/lisp/emacs-lisp/find-func.el
@@ -312,9 +312,14 @@ The search is done in the source for library LIBRARY."
312 (cons (current-buffer) nil)))))))) 312 (cons (current-buffer) nil))))))))
313 313
314(defun find-function-library (function &optional lisp-only verbose) 314(defun find-function-library (function &optional lisp-only verbose)
315 "Return the library FUNCTION is defined in. 315 "Return the pair (ORIG-FUNCTION . LIBRARY) for FUNCTION.
316 316
317If FUNCTION is a built-in function and LISP-ONLY is non-nil, 317ORIG-FUNCTION is the original name, after removing all advice and
318resolving aliases. LIBRARY is an absolute file name, a relative
319file name inside the C sources directory, or a name of an
320autoloaded feature.
321
322If ORIG-FUNCTION is a built-in function and LISP-ONLY is non-nil,
318signal an error. 323signal an error.
319 324
320If VERBOSE is non-nil, and FUNCTION is an alias, display a 325If VERBOSE is non-nil, and FUNCTION is an alias, display a
@@ -336,13 +341,14 @@ message about the whole chain of aliases."
336 def (symbol-function (find-function-advised-original function)))) 341 def (symbol-function (find-function-advised-original function))))
337 (if aliases 342 (if aliases
338 (message "%s" aliases)) 343 (message "%s" aliases))
339 (cond 344 (cons function
340 ((autoloadp def) (nth 1 def)) 345 (cond
341 ((subrp def) 346 ((autoloadp def) (nth 1 def))
342 (if lisp-only 347 ((subrp def)
343 (error "%s is a built-in function" function)) 348 (if lisp-only
344 (help-C-file-name def 'subr)) 349 (error "%s is a built-in function" function))
345 ((symbol-file function 'defun))))) 350 (help-C-file-name def 'subr))
351 ((symbol-file function 'defun))))))
346 352
347;;;###autoload 353;;;###autoload
348(defun find-function-noselect (function &optional lisp-only) 354(defun find-function-noselect (function &optional lisp-only)
@@ -362,8 +368,8 @@ searched for in `find-function-source-path' if non-nil, otherwise
362in `load-path'." 368in `load-path'."
363 (if (not function) 369 (if (not function)
364 (error "You didn't specify a function")) 370 (error "You didn't specify a function"))
365 (let ((library (find-function-library function lisp-only t))) 371 (let ((func-lib (find-function-library function lisp-only t)))
366 (find-function-search-for-symbol function nil library))) 372 (find-function-search-for-symbol (car func-lib) nil (cdr func-lib))))
367 373
368(defun find-function-read (&optional type) 374(defun find-function-read (&optional type)
369 "Read and return an interned symbol, defaulting to the one near point. 375 "Read and return an interned symbol, defaulting to the one near point.
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 6f0ea0f57de..0007b15a76a 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,8 @@
12014-12-29 Lars Ingebrigtsen <larsi@gnus.org>
2
3 * mm-decode.el (mm-shr): Bind `shr-width' to `fill-column' so that
4 lines don't get overlong when responding.
5
12014-12-18 Paul Eggert <eggert@cs.ucla.edu> 62014-12-18 Paul Eggert <eggert@cs.ucla.edu>
2 7
3 * registry.el (registry-db): Set default slot later. 8 * registry.el (registry-db): Set default slot later.
diff --git a/lisp/gnus/gnus-cloud.el b/lisp/gnus/gnus-cloud.el
index ec016eeeb77..a42bcc06e94 100644
--- a/lisp/gnus/gnus-cloud.el
+++ b/lisp/gnus/gnus-cloud.el
@@ -329,6 +329,15 @@
329(defun gnus-cloud-server-p (server) 329(defun gnus-cloud-server-p (server)
330 (member server gnus-cloud-covered-servers)) 330 (member server gnus-cloud-covered-servers))
331 331
332(defun gnus-cloud-collect-full-newsrc ()
333 (let ((infos nil))
334 (dolist (info (cdr gnus-newsrc-alist))
335 (when (gnus-cloud-server-p
336 (gnus-method-to-server
337 (gnus-find-method-for-group (gnus-info-group info))))
338 (push info infos)))
339 ))
340
332(provide 'gnus-cloud) 341(provide 'gnus-cloud)
333 342
334;;; gnus-cloud.el ends here 343;;; gnus-cloud.el ends here
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index f5b4d7cba88..3913ecc0b4e 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -1814,6 +1814,7 @@ If RECURSIVE, search recursively."
1814 ;; Require since we bind its variables. 1814 ;; Require since we bind its variables.
1815 (require 'shr) 1815 (require 'shr)
1816 (let ((article-buffer (current-buffer)) 1816 (let ((article-buffer (current-buffer))
1817 (shr-width fill-column)
1817 (shr-content-function (lambda (id) 1818 (shr-content-function (lambda (id)
1818 (let ((handle (mm-get-content-id id))) 1819 (let ((handle (mm-get-content-id id)))
1819 (when handle 1820 (when handle
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index fd527b1059e..392ecff021a 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -599,21 +599,22 @@ opposite of decoding).
599 599
600The decoding is done by at most 3 steps; the first is to convert 600The decoding is done by at most 3 steps; the first is to convert
601a byte sequence to a character sequence by one of Emacs' 601a byte sequence to a character sequence by one of Emacs'
602internal routines specified by :coding-type attribute. The 602internal routines specified by `:coding-type' attribute. The
603optional second step is to convert the character sequence (the 603optional second step is to convert the character sequence (the
604result of the first step) by a translation table specified 604result of the first step) by a translation table specified
605by :decode-translation-table attribute. The optional third step 605by `:decode-translation-table' attribute. The optional third step
606is to convert the above reslut by a Lisp function specified 606is to convert the above result by a Lisp function specified
607by :post-read-conversion attribute. 607by `:post-read-conversion' attribute.
608 608
609The encoding is done by at most 3 steps which are reverse of the 609The encoding is done by at most 3 steps, which are the reverse
610decoding steps. The optional first step converts a character 610of the decoding steps. The optional first step converts a
611sequence to another character sequence by a Lisp function 611character sequence to another character sequence by a Lisp
612specified by :pre-write-conversion attribute. The optional 612function specified by `:pre-write-conversion' attribute. The
613second step converts the above result by a translation table 613optional second step converts the above result by a translation
614specified by :encode-translation-table attribute.. The third 614table specified by `:encode-translation-table' attribute. The
615step converts the abobe result to a byte sequence by one of 615third step converts the above result to a byte sequence by one
616Emacs' internal routines specified by :coding-type attribute. 616of the Emacs's internal routines specified by the `:coding-type'
617attribute.
617 618
618The following attributes have special meanings. Those labeled as 619The following attributes have special meanings. Those labeled as
619\"(required)\" should not be omitted. 620\"(required)\" should not be omitted.
@@ -629,53 +630,52 @@ decodes and encodes to. It must be one of `charset', `utf-8',
629`utf-16', `iso-2022', `emacs-mule', `shift-jis', `ccl', 630`utf-16', `iso-2022', `emacs-mule', `shift-jis', `ccl',
630`raw-text', `undecided'. 631`raw-text', `undecided'.
631 632
632If VALUE is `charset', the coding system is for handling a byte 633If VALUE is `charset', the coding system is for handling a
633sequence in which each byte or each two to four bytes sequence 634byte sequence in which each byte or every two- to four-byte
634represents a character code of a charset specified 635sequence represents a character code of a charset specified
635by :charset-list attribute. 636by the `:charset-list' attribute.
636 637
637If VALUE is `utf-8', the coding system is for handling Unicode 638If VALUE is `utf-8', the coding system is for handling Unicode
638UTF-8 byte sequence. See also the documentation of the 639UTF-8 byte sequences. See also the documentation of the
639attribute :bom. 640attribute `:bom'.
640 641
641If VALUE is `utf-16', the coding system is for handling Unicode 642If VALUE is `utf-16', the coding system is for handling Unicode
642UTF-16 byte sequence. See also the documentation of the 643UTF-16 byte sequences. See also the documentation of the
643attributes :bom and :endian. 644attributes :bom and `:endian'.
644 645
645If VALUE is `iso-2022', the coding system is for handling a byte 646If VALUE is `iso-2022', the coding system is for handling byte
646sequence conforming to ISO/IEC 2022. See also the documentation 647sequences conforming to ISO/IEC 2022. See also the documentation
647of the attributes :charset-list, :flags, and :designation. 648of the attributes `:charset-list', `:flags', and `:designation'.
648 649
649If VALUE is `emacs-mule', the coding system is for handling a 650If VALUE is `emacs-mule', the coding system is for handling
650byte sequence which Emacs 20 and 21 used for internal character 651byte sequences which Emacs 20 and 21 used for their internal
651representations. 652representation of characters.
652 653
653If VALUE is `shift-jis', the coding system is for handling a byte 654If VALUE is `shift-jis', the coding system is for handling byte
654sequence of Shift_JIS format. See also the 655sequences of Shift_JIS format. See also the attribute `:charset-list'.
655attribute :charset-list.
656 656
657If VALUE is `ccl', the coding system uses CCL programs to decodes 657If VALUE is `ccl', the coding system uses CCL programs to decode
658and encodes to a byte sequence. The CCL programs must be 658and encode byte sequences. The CCL programs must be
659specified by the attributes :ccl-decoder and :ccl-encoder. 659specified by the attributes `:ccl-decoder' and `:ccl-encoder'.
660 660
661If VALUE is `raw-text', the coding system decodes a byte sequence 661If VALUE is `raw-text', the coding system decodes byte sequences
662as is. 662without any conversions.
663 663
664`:eol-type' 664`:eol-type'
665 665
666VALUE is the EOL (end-of-line) format of the coding system. It must be 666VALUE is the EOL (end-of-line) format of the coding system. It must be
667one of `unix', `dos', `mac'. The symbol `unix' means Unix-like EOL 667one of `unix', `dos', `mac'. The symbol `unix' means Unix-like EOL
668\(i.e. single LF), `dos' means DOS-like EOL \(i.e. sequence of CR LF), 668\(i.e. a single LF character), `dos' means DOS-like EOL \(i.e. a sequence
669and `mac' means Mac-like EOL \(i.e. single CR). If omitted, Emacs 669of CR followed by LF), and `mac' means Mac-like EOL \(i.e. a single CR).
670detects the EOL format automatically when decoding. 670If omitted, Emacs detects the EOL format automatically when decoding.
671 671
672`:charset-list' (required if :coding-type is `charset' or `shift-jis') 672`:charset-list' (required if `:coding-type' is `charset' or `shift-jis')
673 673
674VALUE must be a list of charsets supported by the coding system. 674VALUE must be a list of charsets supported by the coding system.
675 675
676If `coding-type:' is `charset', on decoding and encoding by the 676If `coding-type:' is `charset', then on decoding and encoding by the
677coding system, if a character belongs to multiple charsets in the 677coding system, if a character belongs to multiple charsets in the
678list, a charset that comes earlier in the list is selected. 678list, a charset that comes first in the list is selected.
679 679
680If `:coding-type' is `iso-2022', VALUE may be `iso-2022', which 680If `:coding-type' is `iso-2022', VALUE may be `iso-2022', which
681indicates that the coding system supports all ISO-2022 based 681indicates that the coding system supports all ISO-2022 based
@@ -685,7 +685,7 @@ If `:coding-type' is `shift-jis', VALUE must be a list of three
685to four charsets supported by Shift_JIS encoding scheme. The 685to four charsets supported by Shift_JIS encoding scheme. The
686first charset (one dimension) is for code space 0x00..0x7F, the 686first charset (one dimension) is for code space 0x00..0x7F, the
687second (one dimension) for 0xA1..0xDF, the third (two dimension) 687second (one dimension) for 0xA1..0xDF, the third (two dimension)
688for 0x8140..0xEFFC, the optional fourth (thw dimension) for 688for 0x8140..0xEFFC, the optional fourth (three dimension) for
6890xF040..0xFCFC. 6890xF040..0xFCFC.
690 690
691If `:coding-type' is `emacs-mule', VALUE may be `emacs-mule', 691If `:coding-type' is `emacs-mule', VALUE may be `emacs-mule',
@@ -711,9 +711,9 @@ VALUE must be a translation table to use on encoding.
711VALUE must be a function to call after some text is inserted and 711VALUE must be a function to call after some text is inserted and
712decoded by the coding system itself and before any functions in 712decoded by the coding system itself and before any functions in
713`after-insert-functions' are called. This function is passed one 713`after-insert-functions' are called. This function is passed one
714argument; the number of characters in the text to convert, with 714argument: the number of characters in the text to convert, with
715point at the start of the text. The function should leave point 715point at the start of the text. The function should leave point
716the same, and return the new character count. 716unchanged, and should return the new character count.
717 717
718`:pre-write-conversion' 718`:pre-write-conversion'
719 719
@@ -742,7 +742,7 @@ to lower case.
742`:mime-text-unsuitable' 742`:mime-text-unsuitable'
743 743
744VALUE non-nil means the `:mime-charset' property names a charset which 744VALUE non-nil means the `:mime-charset' property names a charset which
745is unsuitable for the top-level media type \"text\". 745is unsuitable for the top-level media of type \"text\".
746 746
747`:flags' 747`:flags'
748 748
@@ -772,8 +772,8 @@ This attribute is meaningful only when `:coding-type' is `iso-2022'.
772 772
773`:bom' 773`:bom'
774 774
775This attributes specifies whether the coding system uses a `byte order 775This attributes specifies whether the coding system uses a \"byte order
776mark'. VALUE must be nil, t, or cons of coding systems whose 776mark\". VALUE must be nil, t, or a cons cell of coding systems whose
777`:coding-type' is `utf-16' or `utf-8'. 777`:coding-type' is `utf-16' or `utf-8'.
778 778
779If the value is nil, on decoding, don't treat the first two-byte as 779If the value is nil, on decoding, don't treat the first two-byte as
@@ -782,9 +782,9 @@ BOM, and on encoding, don't produce BOM bytes.
782If the value is t, on decoding, skip the first two-byte as BOM, and on 782If the value is t, on decoding, skip the first two-byte as BOM, and on
783encoding, produce BOM bytes according to the value of `:endian'. 783encoding, produce BOM bytes according to the value of `:endian'.
784 784
785If the value is cons, on decoding, check the first two-byte. If they 785If the value is a cons cell, on decoding, check the first two bytes.
786are 0xFE 0xFF, use the car part coding system of the value. If they 786If they are 0xFE 0xFF, use the car part coding system of the value.
787are 0xFF 0xFE, use the cdr part coding system of the value. 787If they are 0xFF 0xFE, use the cdr part coding system of the value.
788Otherwise, treat them as bytes for a normal character. On encoding, 788Otherwise, treat them as bytes for a normal character. On encoding,
789produce BOM bytes according to the value of `:endian'. 789produce BOM bytes according to the value of `:endian'.
790 790
@@ -801,14 +801,14 @@ This attribute is meaningful only when `:coding-type' is `utf-16'.
801`:ccl-decoder' (required if :coding-type is `ccl') 801`:ccl-decoder' (required if :coding-type is `ccl')
802 802
803VALUE is a CCL program name defined by `define-ccl-program'. The 803VALUE is a CCL program name defined by `define-ccl-program'. The
804the CCL program reads a byte sequence and writes a character 804CCL program reads a byte sequence and writes a character sequence
805sequence as a decoding result. 805as a decoding result.
806 806
807`:ccl-encoder' (required if :coding-type is `ccl') 807`:ccl-encoder' (required if :coding-type is `ccl')
808 808
809VALUE is a CCL program name defined by `define-ccl-program'. The 809VALUE is a CCL program name defined by `define-ccl-program'. The
810the CCL program reads a character sequence and writes a byte 810CCL program reads a character sequence and writes a byte sequence
811sequence as a encoding result. 811as an encoding result.
812 812
813`:inhibit-null-byte-detection' 813`:inhibit-null-byte-detection'
814 814
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 8f33641a746..c5f587eb719 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -378,30 +378,23 @@
378 (bindings--define-key menu [separator-tag-file] 378 (bindings--define-key menu [separator-tag-file]
379 menu-bar-separator) 379 menu-bar-separator)
380 380
381 (bindings--define-key menu [apropos-tags] 381 (bindings--define-key menu [xref-pop]
382 '(menu-item "Tags Apropos..." tags-apropos 382 '(menu-item "Back..." xref-pop-marker-stack
383 :help "Back to the position of the last search"))
384
385 (bindings--define-key menu [xref-apropos]
386 '(menu-item "Find Apropos..." xref-find-apropos
383 :help "Find function/variables whose names match regexp")) 387 :help "Find function/variables whose names match regexp"))
384 (bindings--define-key menu [next-tag-otherw] 388
385 '(menu-item "Next Tag in Other Window" 389 (bindings--define-key menu [xref-find-otherw]
386 menu-bar-next-tag-other-window 390 '(menu-item "Find Definition in Other Window..."
387 :enable (and (boundp 'tags-location-ring) 391 xref-find-definitions-other-window
388 (not (ring-empty-p tags-location-ring)))
389 :help "Find next function/variable matching last tag name in another window"))
390
391 (bindings--define-key menu [next-tag]
392 '(menu-item "Find Next Tag"
393 menu-bar-next-tag
394 :enable (and (boundp 'tags-location-ring)
395 (not (ring-empty-p tags-location-ring)))
396 :help "Find next function/variable matching last tag name"))
397 (bindings--define-key menu [find-tag-otherw]
398 '(menu-item "Find Tag in Other Window..." find-tag-other-window
399 :help "Find function/variable definition in another window")) 392 :help "Find function/variable definition in another window"))
400 (bindings--define-key menu [find-tag] 393 (bindings--define-key menu [xref-find-def]
401 '(menu-item "Find Tag..." find-tag 394 '(menu-item "Find Definition..." xref-find-definitions
402 :help "Find definition of function or variable")) 395 :help "Find definition of function or variable"))
403 396
404 (bindings--define-key menu [separator-tags] 397 (bindings--define-key menu [separator-xref]
405 menu-bar-separator) 398 menu-bar-separator)
406 399
407 (bindings--define-key menu [end-of-buf] 400 (bindings--define-key menu [end-of-buf]
@@ -514,16 +507,6 @@
514 507
515 menu)) 508 menu))
516 509
517(defun menu-bar-next-tag-other-window ()
518 "Find the next definition of the tag already specified."
519 (interactive)
520 (find-tag-other-window nil t))
521
522(defun menu-bar-next-tag ()
523 "Find the next definition of the tag already specified."
524 (interactive)
525 (find-tag nil t))
526
527(define-obsolete-function-alias 510(define-obsolete-function-alias
528 'menu-bar-kill-ring-save 'kill-ring-save "24.1") 511 'menu-bar-kill-ring-save 'kill-ring-save "24.1")
529 512
diff --git a/lisp/net/eww.el b/lisp/net/eww.el
index 9d787d34f49..b43dba589c2 100644
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@ -705,6 +705,7 @@ the like."
705 (setq-local tool-bar-map eww-tool-bar-map)) 705 (setq-local tool-bar-map eww-tool-bar-map))
706 ;; desktop support 706 ;; desktop support
707 (setq-local desktop-save-buffer 'eww-desktop-misc-data) 707 (setq-local desktop-save-buffer 'eww-desktop-misc-data)
708 (setq truncate-lines t)
708 (buffer-disable-undo) 709 (buffer-disable-undo)
709 (setq buffer-read-only t)) 710 (setq buffer-read-only t))
710 711
diff --git a/lisp/net/shr.el b/lisp/net/shr.el
index 26bb292bc41..6553fd3958c 100644
--- a/lisp/net/shr.el
+++ b/lisp/net/shr.el
@@ -78,11 +78,12 @@ If nil, don't draw horizontal table lines."
78 :group 'shr 78 :group 'shr
79 :type 'character) 79 :type 'character)
80 80
81(defcustom shr-width fill-column 81(defcustom shr-width nil
82 "Frame width to use for rendering. 82 "Frame width to use for rendering.
83May either be an integer specifying a fixed width in characters, 83May either be an integer specifying a fixed width in characters,
84or nil, meaning that the full width of the window should be 84or nil, meaning that the full width of the window should be
85used." 85used."
86 :version "25.1"
86 :type '(choice (integer :tag "Fixed width in characters") 87 :type '(choice (integer :tag "Fixed width in characters")
87 (const :tag "Use the width of the window" nil)) 88 (const :tag "Use the width of the window" nil))
88 :group 'shr) 89 :group 'shr)
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
index ac216d99cce..c6cab1257a5 100644
--- a/lisp/progmodes/elisp-mode.el
+++ b/lisp/progmodes/elisp-mode.el
@@ -570,18 +570,26 @@ It can be quoted, or be inside a quoted form."
570 (`apropos 570 (`apropos
571 (elisp--xref-find-apropos id)))) 571 (elisp--xref-find-apropos id))))
572 572
573(defun elisp--xref-identifier-file (type sym) 573(defun elisp--xref-identifier-location (type sym)
574 (pcase type 574 (let ((file
575 (`defun (when (fboundp sym) 575 (pcase type
576 (find-function-library sym))) 576 (`defun (when (fboundp sym)
577 (`defvar (when (boundp sym) 577 (let ((fun-lib
578 (or (symbol-file sym 'defvar) 578 (find-function-library sym)))
579 (help-C-file-name sym 'var)))) 579 (setq sym (car fun-lib))
580 (`feature (when (featurep sym) 580 (cdr fun-lib))))
581 (ignore-errors 581 (`defvar (when (boundp sym)
582 (find-library-name (symbol-name sym))))) 582 (or (symbol-file sym 'defvar)
583 (`defface (when (facep sym) 583 (help-C-file-name sym 'var))))
584 (symbol-file sym 'defface))))) 584 (`feature (when (featurep sym)
585 (ignore-errors
586 (find-library-name (symbol-name sym)))))
587 (`defface (when (facep sym)
588 (symbol-file sym 'defface))))))
589 (when file
590 (when (string-match-p "\\.elc\\'" file)
591 (setq file (substring file 0 -1)))
592 (xref-make-elisp-location sym type file))))
585 593
586(defun elisp--xref-find-definitions (symbol) 594(defun elisp--xref-find-definitions (symbol)
587 (save-excursion 595 (save-excursion
@@ -589,11 +597,7 @@ It can be quoted, or be inside a quoted form."
589 (dolist (type '(feature defface defvar defun)) 597 (dolist (type '(feature defface defvar defun))
590 (let ((loc 598 (let ((loc
591 (condition-case err 599 (condition-case err
592 (let ((file (elisp--xref-identifier-file type symbol))) 600 (elisp--xref-identifier-location type symbol)
593 (when file
594 (when (string-match-p "\\.elc\\'" file)
595 (setq file (substring file 0 -1)))
596 (xref-make-elisp-location symbol type file)))
597 (error 601 (error
598 (xref-make-bogus-location (error-message-string err)))))) 602 (xref-make-bogus-location (error-message-string err))))))
599 (when loc 603 (when loc
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index 0be99794356..be0dabf17b2 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -975,6 +975,7 @@ onto a ring and may be popped back to with \\[pop-tag-mark].
975Contrast this with the ring of marks gone to by the command. 975Contrast this with the ring of marks gone to by the command.
976 976
977See documentation of variable `tags-file-name'." 977See documentation of variable `tags-file-name'."
978 (declare (obsolete xref-find-definitions-other-window "25.1"))
978 (interactive (find-tag-interactive "Find tag other window: ")) 979 (interactive (find-tag-interactive "Find tag other window: "))
979 980
980 ;; This hair is to deal with the case where the tag is found in the 981 ;; This hair is to deal with the case where the tag is found in the
@@ -1015,6 +1016,7 @@ onto a ring and may be popped back to with \\[pop-tag-mark].
1015Contrast this with the ring of marks gone to by the command. 1016Contrast this with the ring of marks gone to by the command.
1016 1017
1017See documentation of variable `tags-file-name'." 1018See documentation of variable `tags-file-name'."
1019 (declare (obsolete xref-find-definitions-other-frame "25.1"))
1018 (interactive (find-tag-interactive "Find tag other frame: ")) 1020 (interactive (find-tag-interactive "Find tag other frame: "))
1019 (let ((pop-up-frames t)) 1021 (let ((pop-up-frames t))
1020 (find-tag-other-window tagname next-p))) 1022 (find-tag-other-window tagname next-p)))
@@ -1037,6 +1039,7 @@ onto a ring and may be popped back to with \\[pop-tag-mark].
1037Contrast this with the ring of marks gone to by the command. 1039Contrast this with the ring of marks gone to by the command.
1038 1040
1039See documentation of variable `tags-file-name'." 1041See documentation of variable `tags-file-name'."
1042 (declare (obsolete xref-find-apropos "25.1"))
1040 (interactive (find-tag-interactive "Find tag regexp: " t)) 1043 (interactive (find-tag-interactive "Find tag regexp: " t))
1041 ;; We go through find-tag-other-window to do all the display hair there. 1044 ;; We go through find-tag-other-window to do all the display hair there.
1042 (funcall (if other-window 'find-tag-other-window 'find-tag) 1045 (funcall (if other-window 'find-tag-other-window 'find-tag)
@@ -1786,6 +1789,7 @@ Two variables control the processing we do on each file: the value of
1786interesting (it returns non-nil if so) and `tags-loop-operate' is a form to 1789interesting (it returns non-nil if so) and `tags-loop-operate' is a form to
1787evaluate to operate on an interesting file. If the latter evaluates to 1790evaluate to operate on an interesting file. If the latter evaluates to
1788nil, we exit; otherwise we scan the next file." 1791nil, we exit; otherwise we scan the next file."
1792 (declare (obsolete "use `xref-find-definitions' interface instead." "25.1"))
1789 (interactive) 1793 (interactive)
1790 (let (new 1794 (let (new
1791 ;; Non-nil means we have finished one file 1795 ;; Non-nil means we have finished one file
@@ -1929,6 +1933,7 @@ directory specification."
1929;;;###autoload 1933;;;###autoload
1930(defun tags-apropos (regexp) 1934(defun tags-apropos (regexp)
1931 "Display list of all tags in tags table REGEXP matches." 1935 "Display list of all tags in tags table REGEXP matches."
1936 (declare (obsolete xref-find-apropos "25.1"))
1932 (interactive "sTags apropos (regexp): ") 1937 (interactive "sTags apropos (regexp): ")
1933 (with-output-to-temp-buffer "*Tags List*" 1938 (with-output-to-temp-buffer "*Tags List*"
1934 (princ "Click mouse-2 to follow tags.\n\nTags matching regexp `") 1939 (princ "Click mouse-2 to follow tags.\n\nTags matching regexp `")
diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el
index 54496b9e631..c90bf1c2343 100644
--- a/lisp/vc/vc-dir.el
+++ b/lisp/vc/vc-dir.el
@@ -169,6 +169,9 @@ See `run-hooks'."
169 (define-key map [ise] 169 (define-key map [ise]
170 '(menu-item "Isearch Files..." vc-dir-isearch 170 '(menu-item "Isearch Files..." vc-dir-isearch
171 :help "Incremental search a string in the marked files")) 171 :help "Incremental search a string in the marked files"))
172 (define-key map [display]
173 '(menu-item "Display in Other Window" vc-dir-display-file
174 :help "Display the file on the current line, in another window"))
172 (define-key map [open-other] 175 (define-key map [open-other]
173 '(menu-item "Open in Other Window" vc-dir-find-file-other-window 176 '(menu-item "Open in Other Window" vc-dir-find-file-other-window
174 :help "Find the file on the current line, in another window")) 177 :help "Find the file on the current line, in another window"))
@@ -273,6 +276,7 @@ See `run-hooks'."
273 (define-key map "e" 'vc-dir-find-file) ; dired-mode compatibility 276 (define-key map "e" 'vc-dir-find-file) ; dired-mode compatibility
274 (define-key map "\C-m" 'vc-dir-find-file) 277 (define-key map "\C-m" 'vc-dir-find-file)
275 (define-key map "o" 'vc-dir-find-file-other-window) 278 (define-key map "o" 'vc-dir-find-file-other-window)
279 (define-key map "\C-o" 'vc-dir-display-file)
276 (define-key map "\C-c\C-c" 'vc-dir-kill-dir-status-process) 280 (define-key map "\C-c\C-c" 'vc-dir-kill-dir-status-process)
277 (define-key map [down-mouse-3] 'vc-dir-menu) 281 (define-key map [down-mouse-3] 'vc-dir-menu)
278 (define-key map [mouse-2] 'vc-dir-toggle-mark) 282 (define-key map [mouse-2] 'vc-dir-toggle-mark)
@@ -755,6 +759,13 @@ that share the same state."
755 (if event (posn-set-point (event-end event))) 759 (if event (posn-set-point (event-end event)))
756 (find-file-other-window (vc-dir-current-file))) 760 (find-file-other-window (vc-dir-current-file)))
757 761
762(defun vc-dir-display-file (&optional event)
763 "Display the file on the current line, in another window."
764 (interactive (list last-nonmenu-event))
765 (if event (posn-set-point (event-end event)))
766 (display-buffer (find-file-noselect (vc-dir-current-file))
767 t))
768
758(defun vc-dir-isearch () 769(defun vc-dir-isearch ()
759 "Search for a string through all marked buffers using Isearch." 770 "Search for a string through all marked buffers using Isearch."
760 (interactive) 771 (interactive)
diff --git a/src/ChangeLog b/src/ChangeLog
index 9e3fb904b93..2ab5101fc6f 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
12014-12-28 Paul Eggert <eggert@cs.ucla.edu>
2
3 Fix produce_composite_width typo
4 * term.c (produce_composite_glyph):
5 Fix typo that confused number of columns for pixel width.
6
12014-12-28 Paul Eggert <eggert@Penguin.CS.UCLA.EDU> 72014-12-28 Paul Eggert <eggert@Penguin.CS.UCLA.EDU>
2 8
3 Wrap dll functions more simply 9 Wrap dll functions more simply
diff --git a/src/term.c b/src/term.c
index 04f6e3318a0..bcb83e5891d 100644
--- a/src/term.c
+++ b/src/term.c
@@ -1736,7 +1736,7 @@ produce_composite_glyph (struct it *it)
1736 { 1736 {
1737 struct composition *cmp = composition_table[it->cmp_it.id]; 1737 struct composition *cmp = composition_table[it->cmp_it.id];
1738 1738
1739 it->pixel_width = cmp->width; 1739 it->pixel_width = cmp->pixel_width;
1740 } 1740 }
1741 else 1741 else
1742 { 1742 {