aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorKenichi Handa2010-04-20 16:26:02 +0900
committerKenichi Handa2010-04-20 16:26:02 +0900
commit1f2f0b2818b884e44db792729a92ccff2f766a26 (patch)
tree7b547b9a0a586d1dc76884ecbb1dcdd29415f740 /lisp
parentc0be27fda00b238ea82e43a8590a96c3a9ae9023 (diff)
parentce5b453a449e4e7729abb5128114e2687f08360d (diff)
downloademacs-1f2f0b2818b884e44db792729a92ccff2f766a26.tar.gz
emacs-1f2f0b2818b884e44db792729a92ccff2f766a26.zip
merge trunk
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog179
-rw-r--r--lisp/cedet/ede/pmake.el7
-rw-r--r--lisp/gnus/ChangeLog11
-rw-r--r--lisp/gnus/nnir.el2
-rw-r--r--lisp/gnus/nnrss.el2
-rw-r--r--lisp/gnus/smime.el2
-rw-r--r--lisp/help.el7
-rw-r--r--lisp/htmlfontify.el2
-rw-r--r--lisp/ido.el8
-rw-r--r--lisp/info.el69
-rw-r--r--lisp/international/mule.el75
-rw-r--r--lisp/language/indian.el22
-rw-r--r--lisp/minibuffer.el43
-rw-r--r--lisp/progmodes/fortran.el24
-rw-r--r--lisp/progmodes/grep.el4
-rw-r--r--lisp/textmodes/tex-mode.el2
-rw-r--r--lisp/tmm.el40
-rw-r--r--lisp/vc-bzr.el12
-rw-r--r--lisp/vc-git.el5
-rw-r--r--lisp/vc-hg.el29
20 files changed, 387 insertions, 158 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 78e2473e373..0639aa50884 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,98 @@
12010-04-19 Stefan Monnier <monnier@iro.umontreal.ca> 12010-04-19 Stefan Monnier <monnier@iro.umontreal.ca>
2 2
3 * international/mule.el: Help the user choose a valid coding-system.
4 (read-buffer-file-coding-system): New function.
5 (set-buffer-file-coding-system): Use it. Prompt the user if the
6 coding-system cannot encode all the chars.
7
8 * vc-bzr.el: Use standard *vc* and *vc-diff* buffers.
9 (vc-bzr-shelve-show, vc-bzr-shelve-apply)
10 (vc-bzr-shelve-apply-and-keep, vc-bzr-shelve-snapshot):
11 Don't use *vc-bzr-shelve*.
12
132010-04-19 Chong Yidong <cyd@stupidchicken.com>
14
15 * cedet/ede/pmake.el (ede-proj-makefile-insert-variables):
16 Don't destroy list before using it.
17
182010-04-19 Dan Nicolaescu <dann@ics.uci.edu>
19
20 Fix the version number for added files.
21 * vc-hg.el (vc-hg-working-revision): Check if the file is
22 registered after hg parent fails (Bug#5961).
23
242010-04-19 Glenn Morris <rgm@gnu.org>
25
26 * htmlfontify.el (htmlfontify-buffer)
27 (htmlfontify-copy-and-link-dir): Autoload entry points.
28
292010-04-19 Magnus Henoch <magnus.henoch@gmail.com>
30
31 * vc-hg.el (vc-hg-annotate-extract-revision-at-line): Expand file
32 name relative to the project root (Bug#5960).
33
342010-04-19 Glenn Morris <rgm@gnu.org>
35
36 * vc-git.el (vc-git-print-log): Doc fix.
37
382010-04-19 Óscar Fuentes <ofv@wanadoo.es>
39
40 * ido.el (ido-file-internal): Fix 2009-12-02 change.
41
422010-04-19 Christoph <cschol2112@googlemail.com> (tiny change)
43
44 * progmodes/grep.el (grep-compute-defaults): Fix handling of host
45 default settings (Bug#5928).
46
472010-04-19 Glenn Morris <rgm@gnu.org>
48
49 * progmodes/fortran.el (fortran-match-and-skip-declaration):
50 New function.
51 (fortran-font-lock-keywords-3): Use it. (Bug#1385)
52
532010-04-19 Kenichi Handa <handa@m17n.org>
54
55 * language/indian.el (malayalam-composable-pattern): Fix previous
56 change (add U+0D4D "SIGN VIRAMA").
57 (oriya-composable-pattern): Add U+0B30 and fix typo in the regexp.
58 (tamil-composable-pattern): Fix typo in the regexp.
59 (telugu-composable-pattern): Fix U+0C4D and typo in the regexp.
60 (kannada-composable-pattern): Fix U+0CB0 and typo in the regexp.
61 (malayalam-composable-pattern): Fix U+0D4D and typo in the regexp.
62
632010-04-19 Chong Yidong <cyd@stupidchicken.com>
64
65 * textmodes/tex-mode.el (latex-mode): Revert 2008-03-03 change to
66 paragraph-separate (Bug#5821).
67
682010-04-19 Juri Linkov <juri@jurta.org>
69
70 Put breadcrumbs on overlay instead of inserting to buffer (bug#5809).
71
72 * info.el (Info-find-node-2): Comment out code that skips
73 breadcrumbs line.
74 (Info-mouse-follow-link): New command.
75 (Info-link-keymap): New keymap.
76 (Info-breadcrumbs): Rename from `Info-insert-breadcrumbs'.
77 Return a string with links instead of inserting breadcrumbs
78 to the Info buffer.
79 (Info-fontify-node): Comment out code that inserts breadcrumbs.
80 Instead of putting the `invisible' text property over the Info
81 header, make an overlay over the Info header with the `invisible'
82 property and `after-string' set to the string returned by
83 `Info-breadcrumbs'.
84
852010-04-19 Chong Yidong <cyd@stupidchicken.com>
86
87 * help.el (help-window-setup-finish): Doc fix (Bug#5830).
88 Reported by monkey@sandpframing.com.
89
902010-04-19 Stefan Monnier <monnier@iro.umontreal.ca>
91
92 * tmm.el (tmm-prompt): Remove obsolete call to x-popup-menu.
93 (tmm-get-keymap): Add key-binding shortcuts now that they're not
94 available in the "keyseq cache" any more.
95
3 * custom.el (defcustom): Add edebug spec. 96 * custom.el (defcustom): Add edebug spec.
4 97
52010-04-18 Juri Linkov <juri@jurta.org> 982010-04-18 Juri Linkov <juri@jurta.org>
@@ -355,32 +448,31 @@
355 448
3562010-04-07 Michael McNamara <mac@mail.brushroad.com> 4492010-04-07 Michael McNamara <mac@mail.brushroad.com>
357 450
358 * progmodes/verilog-mode.el (verilog-forward-sexp): 451 * progmodes/verilog-mode.el (verilog-forward-sexp):
359 (verilog-calc-1): Support "disable fork" and "fork wait" multi 452 (verilog-calc-1): Support "disable fork" and "fork wait" multi
360 word keywords, suggested by Steve Pearlmutter. 453 word keywords, suggested by Steve Pearlmutter.
361 (verilog-pretty-declarations): Support lineup of declarations in 454 (verilog-pretty-declarations): Support lineup of declarations in
362 port lists. 455 port lists.
363 (verilog-skip-backward-comments, verilog-skip-forward-comment-p): 456 (verilog-skip-backward-comments, verilog-skip-forward-comment-p):
364 fix bug for /* / comments 457 fix bug for /* / comments
365 (verilog-backward-syntactic-ws, verilog-forward-syntactic-ws): 458 (verilog-backward-syntactic-ws, verilog-forward-syntactic-ws):
366 Speed up and simplfy as this is never called with a bound. 459 Speed up and simplfy as this is never called with a bound.
367 (verilog-pretty-declarations): Enhance to line up declarations 460 (verilog-pretty-declarations): Enhance to line up declarations
368 inside a parameter list, suggested by Alan Morgan. 461 inside a parameter list, suggested by Alan Morgan.
369 (verilog-pretty-expr): Tune assignment regular expression match 462 (verilog-pretty-expr): Tune assignment regular expression match
370 string for corner cases; also use markers instead of character 463 string for corner cases; also use markers instead of character
371 number as indent changes the later. 464 number as indent changes the later.
372 465
3732010-04-07 Wilson Snyder <wsnyder@wsnyder.org> 4662010-04-07 Wilson Snyder <wsnyder@wsnyder.org>
374 467
375 * progmodes/verilog-mode.el (verilog-type-keywords): Fix pulldown as missing 468 * progmodes/verilog-mode.el (verilog-type-keywords): Fix pulldown
376 keyword. 469 as missing keyword.
377 (verilog-read-sub-decls-line): Fix comments in AUTO_TEMPLATE 470 (verilog-read-sub-decls-line): Fix comments in AUTO_TEMPLATE
378 causing truncation of AUTOWIRE signals. Reported by Bruce 471 causing truncation of AUTOWIRE signals. Reported by Bruce Tennant.
379 Tennant. 472 (verilog-auto-inst, verilog-auto-inst-port): Add vl_mbits for
380 (verilog-auto-inst, verilog-auto-inst-port): Add vl_mbits for 473 AUTO_TEMPLATEs needing multiple array bits. Suggested by Bruce
381 AUTO_TEMPLATEs needing multiple array bits. Suggested by Bruce 474 Tennant.
382 Tennant. 475 (verilog-keywords):
383 (verilog-keywords):
384 (verilog-1800-2005-keywords, verilog-1800-2009-keywords): Add IEEE 476 (verilog-1800-2005-keywords, verilog-1800-2009-keywords): Add IEEE
385 1800-2009 keywords, including "global.". 477 1800-2009 keywords, including "global.".
386 478
@@ -543,7 +635,7 @@
543 635
5442010-03-31 Stefan Monnier <monnier@iro.umontreal.ca> 6362010-03-31 Stefan Monnier <monnier@iro.umontreal.ca>
545 637
546 Make tmm-menubar work for the Buffers menu again. 638 Make tmm-menubar work for the Buffers menu again (bug#5726).
547 * tmm.el (tmm-prompt): Also handle keymap entries in the form of 639 * tmm.el (tmm-prompt): Also handle keymap entries in the form of
548 vectors rather than cons cells, as used in menu-bar-update-buffers. 640 vectors rather than cons cells, as used in menu-bar-update-buffers.
549 641
@@ -1267,11 +1359,6 @@
1267 * calendar/cal-hebrew.el (holiday-hebrew-passover): Fix date 1359 * calendar/cal-hebrew.el (holiday-hebrew-passover): Fix date
1268 of Yom HaAtzma'ut when it falls on a Monday (rule changed in 2004). 1360 of Yom HaAtzma'ut when it falls on a Monday (rule changed in 2004).
1269 1361
12702010-03-01 Alan Mackenzie <acm@muc.de>
1271
1272 * progmodes/cc-engine.el (c-remove-stale-state-cache):
1273 Correct previous patch.
1274
12752010-03-01 Kenichi Handa <handa@m17n.org> 13622010-03-01 Kenichi Handa <handa@m17n.org>
1276 1363
1277 * language/burmese.el (burmese-composable-pattern): Rename from 1364 * language/burmese.el (burmese-composable-pattern): Rename from
@@ -1283,11 +1370,6 @@
1283 (otf-script-alist): Likewise. 1370 (otf-script-alist): Likewise.
1284 (setup-default-fontset): Likewise. Re-fix :otf spec. 1371 (setup-default-fontset): Likewise. Re-fix :otf spec.
1285 1372
12862010-03-01 Alan Mackenzie <bug-cc-mode@gnu.org>
1287
1288 * cc-engine.el (c-remove-stale-state-cache): Take account of when
1289 `good-pos' is in the same macro as `here'. Fixes bug#5649.
1290
12912010-02-28 Katsumi Yamaoka <yamaoka@jpl.org> 13732010-02-28 Katsumi Yamaoka <yamaoka@jpl.org>
1292 1374
1293 * menu-bar.el (menu-bar-manuals-menu): Fix typo. 1375 * menu-bar.el (menu-bar-manuals-menu): Fix typo.
@@ -1353,16 +1435,6 @@
1353 * mail/sendmail.el (send-mail-function): Autoload the call 1435 * mail/sendmail.el (send-mail-function): Autoload the call
1354 to custom-initialize-delay, not otherwise preserved in loaddefs.el. 1436 to custom-initialize-delay, not otherwise preserved in loaddefs.el.
1355 1437
13562010-02-25 Alan Mackenzie <acm@muc.de>
1357
1358 * progmodes/cc-engine.el (c-clear-<-pair-props)
1359 (c-clear->-pair-props): Correct to wipe category text props, not
1360 syntax-table ones.
1361
1362 * progmodes/cc-mode.el (c-after-change): Remove any hard
1363 syntax-table properties for <, > which, e.g., C-y has
1364 inopportunely converted from category properties.
1365
13662010-02-24 Chong Yidong <cyd@stupidchicken.com> 14382010-02-24 Chong Yidong <cyd@stupidchicken.com>
1367 1439
1368 * files.el (hack-local-variables-filter): For eval forms, also 1440 * files.el (hack-local-variables-filter): For eval forms, also
@@ -1700,33 +1772,6 @@
1700 (doc-view-pdf->png): Don't rely on doc-view-pdf/ps->png for the few 1772 (doc-view-pdf->png): Don't rely on doc-view-pdf/ps->png for the few
1701 windows that are not yet showing images. 1773 windows that are not yet showing images.
1702 1774
17032010-02-04 Alan Mackenzie <acm@muc.de>
1704
1705 Change strategy for marking < and > as template delimiters: mark
1706 them strictly in matching pairs.
1707
1708 * cc-mode.el (c-before-change):
1709 Use c-get-state-before-change-functions.
1710 (c-common-init): Adapt to use
1711 c-get-state-before-change-functions (note plural).
1712
1713 * cc-langs.el (c-no-parens-syntax-table): New syntax table, used
1714 for searching syntactically for matching <s and >s.
1715 (c-get-state-before-change-functions): New language variable (note
1716 the plural) which supersedes c-get-state-before-change-function.
1717
1718 * cc-engine.el (c-clear-<-pair-props, c-clear->-pair-props)
1719 (c-clear-<>-pair-props, c-clear-<-pair-props-if-match-after)
1720 (c-clear->-pair-props-if-match-before)
1721 (c-before-change-check-<>-operators): New functions.
1722 (c-after-change-check-<>-operators): Use macro
1723 c-unmark-<->-as-paren.
1724
1725 * cc-defs.el (c-search-backward-char-property): New macro.
1726
1727 * cc-cmds.el (c-electric-lt-gt): Do not set text properties on <
1728 and > any more. (These will be handled by font locking.)
1729
17302010-02-04 Michael Albinus <michael.albinus@gmx.de> 17752010-02-04 Michael Albinus <michael.albinus@gmx.de>
1731 1776
1732 * dired.el (dired-revert): If DIRED-DIRECTORY is a cons cell, call 1777 * dired.el (dired-revert): If DIRED-DIRECTORY is a cons cell, call
diff --git a/lisp/cedet/ede/pmake.el b/lisp/cedet/ede/pmake.el
index 971cd70a6ee..19c4b26edcd 100644
--- a/lisp/cedet/ede/pmake.el
+++ b/lisp/cedet/ede/pmake.el
@@ -425,10 +425,9 @@ sources variable."
425 (link (ede-proj-linkers this)) 425 (link (ede-proj-linkers this))
426 (name (ede-proj-makefile-target-name this)) 426 (name (ede-proj-makefile-target-name this))
427 (src (oref this source))) 427 (src (oref this source)))
428 (while comp 428 (dolist (obj comp)
429 (ede-compiler-only-once (car comp) 429 (ede-compiler-only-once obj
430 (ede-proj-makefile-insert-variables (car comp))) 430 (ede-proj-makefile-insert-variables obj)))
431 (setq comp (cdr comp)))
432 (ede-proj-makefile-insert-object-variables (car comp) name src) 431 (ede-proj-makefile-insert-object-variables (car comp) name src)
433 (while link 432 (while link
434 (ede-linker-only-once (car link) 433 (ede-linker-only-once (car link)
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index b0b3cd11b6a..94524c262ac 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,6 +1,15 @@
12010-04-17 Teodor Zlatanov <tzz@lifelogs.com>
2
3 * smime.el: Don't mention CVS.
4
5 * nnrss.el (nnrss-fetch): Don't mention CVS.
6
7 * nnir.el: Don't mention CVS.
8
12010-04-14 Stefan Monnier <monnier@iro.umontreal.ca> 92010-04-14 Stefan Monnier <monnier@iro.umontreal.ca>
2 10
3 * gnus-sum.el (gnus-summary-bookmark-make-record): Add `location' field. 11 * gnus-sum.el (gnus-summary-bookmark-make-record):
12 Add `location' field.
4 13
52010-04-12 Stefan Monnier <monnier@iro.umontreal.ca> 142010-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
6 15
diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el
index 5475506746a..c14d9a1b6aa 100644
--- a/lisp/gnus/nnir.el
+++ b/lisp/gnus/nnir.el
@@ -52,7 +52,7 @@
52 52
53 53
54;; The most recent version of this can always be fetched from the Gnus 54;; The most recent version of this can always be fetched from the Gnus
55;; CVS repository. See http://www.gnus.org/ for more information. 55;; repository. See http://www.gnus.org/ for more information.
56 56
57;; This code is still in the development stage but I'd like other 57;; This code is still in the development stage but I'd like other
58;; people to have a look at it. Please do not hesitate to contact me 58;; people to have a look at it. Please do not hesitate to contact me
diff --git a/lisp/gnus/nnrss.el b/lisp/gnus/nnrss.el
index 36291537909..08b621919eb 100644
--- a/lisp/gnus/nnrss.el
+++ b/lisp/gnus/nnrss.el
@@ -427,7 +427,7 @@ otherwise return nil."
427(defun nnrss-fetch (url &optional local) 427(defun nnrss-fetch (url &optional local)
428 "Fetch URL and put it in a the expected Lisp structure." 428 "Fetch URL and put it in a the expected Lisp structure."
429 (mm-with-unibyte-buffer 429 (mm-with-unibyte-buffer
430 ;;some CVS versions of url.el need this to close the connection quickly 430 ;;some versions of url.el need this to close the connection quickly
431 (let (cs xmlform htmlform) 431 (let (cs xmlform htmlform)
432 ;; bit o' work necessary for w3 pre-cvs and post-cvs 432 ;; bit o' work necessary for w3 pre-cvs and post-cvs
433 (if local 433 (if local
diff --git a/lisp/gnus/smime.el b/lisp/gnus/smime.el
index 8780d6cfb61..b60acee445d 100644
--- a/lisp/gnus/smime.el
+++ b/lisp/gnus/smime.el
@@ -42,7 +42,7 @@
42;; done on messages encoded in these formats. The terminology chosen 42;; done on messages encoded in these formats. The terminology chosen
43;; reflect this. 43;; reflect this.
44;; 44;;
45;; The home of this file is in Gnus CVS, but also available from 45;; The home of this file is in Gnus, but also available from
46;; http://josefsson.org/smime.html. 46;; http://josefsson.org/smime.html.
47 47
48;;; Quick introduction: 48;;; Quick introduction:
diff --git a/lisp/help.el b/lisp/help.el
index 5e4c4ebaf61..899547aa0a1 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -1048,10 +1048,9 @@ scroll the \"other\" window."
1048Select WINDOW according to the value of `help-window-select'. 1048Select WINDOW according to the value of `help-window-select'.
1049Display message telling how to scroll and eventually quit WINDOW. 1049Display message telling how to scroll and eventually quit WINDOW.
1050 1050
1051Optional argument REUSE non-nil means WINDOW has been reused \(by 1051Optional argument REUSE non-nil means WINDOW has been reused by
1052`display-buffer'\) for displaying help. Optional argument 1052`display-buffer'. Optional argument KEEP-FRAME non-nil means
1053KEEP-FRAME non-nil means that quitting must no delete the frame 1053that quitting should not delete WINDOW's frame."
1054of WINDOW."
1055 (let ((number-of-windows 1054 (let ((number-of-windows
1056 (length (window-list (window-frame window) 'no-mini window)))) 1055 (length (window-list (window-frame window) 'no-mini window))))
1057 (cond 1056 (cond
diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el
index dbf5cea7fc8..19aae590cb2 100644
--- a/lisp/htmlfontify.el
+++ b/lisp/htmlfontify.el
@@ -1790,6 +1790,7 @@ FILE, if set, is the file name."
1790 (when font-lock-defaults 1790 (when font-lock-defaults
1791 (font-lock-fontify-buffer)) )) 1791 (font-lock-fontify-buffer)) ))
1792 1792
1793;;;###autoload
1793(defun htmlfontify-buffer (&optional srcdir file) 1794(defun htmlfontify-buffer (&optional srcdir file)
1794 "Create a new buffer, named for the current buffer + a .html extension, 1795 "Create a new buffer, named for the current buffer + a .html extension,
1795containing an inline CSS-stylesheet and formatted CSS-markup HTML 1796containing an inline CSS-stylesheet and formatted CSS-markup HTML
@@ -2276,6 +2277,7 @@ See also `hfy-load-tags-cache'."
2276 (save-buffer) 2277 (save-buffer)
2277 (kill-buffer B))) 2278 (kill-buffer B)))
2278 2279
2280;;;###autoload
2279(defun htmlfontify-copy-and-link-dir (srcdir dstdir &optional f-ext l-ext) 2281(defun htmlfontify-copy-and-link-dir (srcdir dstdir &optional f-ext l-ext)
2280 "Trawl SRCDIR and write fontified-and-hyperlinked output in DSTDIR. 2282 "Trawl SRCDIR and write fontified-and-hyperlinked output in DSTDIR.
2281F-EXT and L-EXT specify values for `hfy-extn' and `hfy-link-extn'.\n 2283F-EXT and L-EXT specify values for `hfy-extn' and `hfy-link-extn'.\n
diff --git a/lisp/ido.el b/lisp/ido.el
index ebfcbd4da88..57aa7d4a723 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -2312,7 +2312,8 @@ If cursor is not at the end of the user input, move to end of input."
2312 (or ido-use-url-at-point ido-use-filename-at-point)) 2312 (or ido-use-url-at-point ido-use-filename-at-point))
2313 (let (fn d) 2313 (let (fn d)
2314 (require 'ffap) 2314 (require 'ffap)
2315 ;; Duplicate code from ffap-guesser as we want different behavior for files and URLs. 2315 ;; Duplicate code from ffap-guesser as we want different
2316 ;; behavior for files and URLs.
2316 (cond 2317 (cond
2317 ((with-no-warnings 2318 ((with-no-warnings
2318 (and ido-use-url-at-point 2319 (and ido-use-url-at-point
@@ -2328,7 +2329,10 @@ If cursor is not at the end of the user input, move to end of input."
2328 (ffap-guesser) 2329 (ffap-guesser)
2329 (ffap-string-at-point)))) 2330 (ffap-string-at-point))))
2330 (not (string-match "^http:/" fn)) 2331 (not (string-match "^http:/" fn))
2331 (setq d (file-name-directory (expand-file-name fn))) 2332 (let ((absolute-fn (expand-file-name fn)))
2333 (setq d (if (file-directory-p absolute-fn)
2334 (file-name-as-directory absolute-fn)
2335 (file-name-directory absolute-fn))))
2332 (file-directory-p d)) 2336 (file-directory-p d))
2333 (setq ido-current-directory d) 2337 (setq ido-current-directory d)
2334 (setq initial (file-name-nondirectory fn)))))) 2338 (setq initial (file-name-nondirectory fn))))))
diff --git a/lisp/info.el b/lisp/info.el
index 18a11d28777..aea283403ec 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -1053,8 +1053,8 @@ a case-insensitive match is tried."
1053 (Info-select-node) 1053 (Info-select-node)
1054 (goto-char (point-min)) 1054 (goto-char (point-min))
1055 (forward-line 1) ; skip header line 1055 (forward-line 1) ; skip header line
1056 (when (> Info-breadcrumbs-depth 0) ; skip breadcrumbs line 1056 ;; (when (> Info-breadcrumbs-depth 0) ; skip breadcrumbs line
1057 (forward-line 1)) 1057 ;; (forward-line 1))
1058 1058
1059 (cond (anchorpos 1059 (cond (anchorpos
1060 (let ((new-history (list Info-current-file 1060 (let ((new-history (list Info-current-file
@@ -3602,6 +3602,19 @@ If FORK is non-nil, it is passed to `Info-goto-node'."
3602 ((setq node (Info-get-token (point) "Prev: " "Prev: \\([^,\n\t]*\\)")) 3602 ((setq node (Info-get-token (point) "Prev: " "Prev: \\([^,\n\t]*\\)"))
3603 (Info-goto-node node fork))) 3603 (Info-goto-node node fork)))
3604 node)) 3604 node))
3605
3606(defun Info-mouse-follow-link (click)
3607 "Follow a link where you click."
3608 (interactive "e")
3609 (let* ((position (event-start click))
3610 (posn-string (and position (posn-string position)))
3611 (string (car-safe posn-string))
3612 (string-pos (cdr-safe posn-string))
3613 (link-args (and string string-pos
3614 (get-text-property string-pos 'link-args string))))
3615 (when link-args
3616 (Info-goto-node link-args))))
3617
3605 3618
3606(defvar Info-mode-map 3619(defvar Info-mode-map
3607 (let ((map (make-keymap))) 3620 (let ((map (make-keymap)))
@@ -4183,11 +4196,22 @@ the variable `Info-file-list-for-emacs'."
4183 keymap) 4196 keymap)
4184 "Keymap to put on the Up link in the text or the header line.") 4197 "Keymap to put on the Up link in the text or the header line.")
4185 4198
4186(defun Info-insert-breadcrumbs () 4199(defvar Info-link-keymap
4200 (let ((keymap (make-sparse-keymap)))
4201 (define-key keymap [header-line mouse-1] 'Info-mouse-follow-link)
4202 (define-key keymap [header-line mouse-2] 'Info-mouse-follow-link)
4203 (define-key keymap [header-line down-mouse-1] 'ignore)
4204 (define-key keymap [mouse-2] 'Info-mouse-follow-link)
4205 (define-key keymap [follow-link] 'mouse-face)
4206 keymap)
4207 "Keymap to put on the link in the text or the header line.")
4208
4209(defun Info-breadcrumbs ()
4187 (let ((nodes (Info-toc-nodes Info-current-file)) 4210 (let ((nodes (Info-toc-nodes Info-current-file))
4188 (node Info-current-node) 4211 (node Info-current-node)
4189 (crumbs ()) 4212 (crumbs ())
4190 (depth Info-breadcrumbs-depth)) 4213 (depth Info-breadcrumbs-depth)
4214 line)
4191 4215
4192 ;; Get ancestors from the cached parent-children node info 4216 ;; Get ancestors from the cached parent-children node info
4193 (while (and (not (equal "Top" node)) (> depth 0)) 4217 (while (and (not (equal "Top" node)) (> depth 0))
@@ -4214,15 +4238,25 @@ the variable `Info-file-list-for-emacs'."
4214 (file-name-nondirectory Info-current-file) 4238 (file-name-nondirectory Info-current-file)
4215 ;; Some legacy code can still use a symbol. 4239 ;; Some legacy code can still use a symbol.
4216 Info-current-file))))) 4240 Info-current-file)))))
4217 (insert (if (bolp) "" " > ") 4241 (setq line (concat
4218 (cond 4242 line
4219 ((null node) "...") 4243 (if (null line) "" " > ")
4220 ((equal node Info-current-node) 4244 (cond
4221 ;; No point linking to ourselves. 4245 ((null node) "...")
4222 (propertize text 'font-lock-face 'info-header-node)) 4246 ((equal node Info-current-node)
4223 (t 4247 ;; No point linking to ourselves.
4224 (concat "*Note " text "::")))))) 4248 (propertize text 'font-lock-face 'info-header-node))
4225 (insert "\n")))) 4249 (t
4250 (propertize text
4251 'mouse-face 'highlight
4252 'font-lock-face 'info-header-xref
4253 'help-echo "mouse-2: Go to node"
4254 'keymap Info-link-keymap
4255 'link-args text)))))))
4256 (setq line (concat line "\n")))
4257 ;; (font-lock-append-text-property 0 (length line)
4258 ;; 'font-lock-face 'header-line line)
4259 line))
4226 4260
4227(defun Info-fontify-node () 4261(defun Info-fontify-node ()
4228 "Fontify the node." 4262 "Fontify the node."
@@ -4269,8 +4303,8 @@ the variable `Info-file-list-for-emacs'."
4269 ((string-equal (downcase tag) "next") Info-next-link-keymap) 4303 ((string-equal (downcase tag) "next") Info-next-link-keymap)
4270 ((string-equal (downcase tag) "up" ) Info-up-link-keymap)))))) 4304 ((string-equal (downcase tag) "up" ) Info-up-link-keymap))))))
4271 4305
4272 (when (> Info-breadcrumbs-depth 0) 4306 ;; (when (> Info-breadcrumbs-depth 0)
4273 (Info-insert-breadcrumbs)) 4307 ;; (insert (Info-breadcrumbs)))
4274 4308
4275 ;; Treat header line. 4309 ;; Treat header line.
4276 (when Info-use-header-line 4310 (when Info-use-header-line
@@ -4302,7 +4336,10 @@ the variable `Info-file-list-for-emacs'."
4302 ;; that is in the header, if it is just part. 4336 ;; that is in the header, if it is just part.
4303 (cond 4337 (cond
4304 ((> Info-breadcrumbs-depth 0) 4338 ((> Info-breadcrumbs-depth 0)
4305 (put-text-property (point-min) (1+ header-end) 'invisible t)) 4339 (let ((ov (make-overlay (point-min) (1+ header-end))))
4340 (overlay-put ov 'invisible t)
4341 (overlay-put ov 'after-string (Info-breadcrumbs))
4342 (overlay-put ov 'evaporate t)))
4306 ((not (bobp)) 4343 ((not (bobp))
4307 ;; Hide the punctuation at the end, too. 4344 ;; Hide the punctuation at the end, too.
4308 (skip-chars-backward " \t,") 4345 (skip-chars-backward " \t,")
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index 244bfca8d28..ac33d26779f 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -1165,6 +1165,64 @@ Internal use only.")
1165(make-variable-buffer-local 'buffer-file-coding-system-explicit) 1165(make-variable-buffer-local 'buffer-file-coding-system-explicit)
1166(put 'buffer-file-coding-system-explicit 'permanent-local t) 1166(put 'buffer-file-coding-system-explicit 'permanent-local t)
1167 1167
1168(defun read-buffer-file-coding-system ()
1169 (let* ((bcss (find-coding-systems-region (point-min) (point-max)))
1170 (css-table
1171 (unless (equal bcss '(undecided))
1172 (append '("dos" "unix" "mac")
1173 (delq nil (mapcar (lambda (cs)
1174 (if (memq (coding-system-base cs) bcss)
1175 (symbol-name cs)))
1176 coding-system-list)))))
1177 (combined-table
1178 (if css-table
1179 (completion-table-in-turn css-table coding-system-alist)
1180 coding-system-alist))
1181 (auto-cs
1182 (unless find-file-literally
1183 (save-excursion
1184 (save-restriction
1185 (widen)
1186 (goto-char (point-min))
1187 (funcall set-auto-coding-function
1188 (or buffer-file-name "") (buffer-size))))))
1189 (preferred
1190 (let ((bfcs (default-value 'buffer-file-coding-system)))
1191 (cons (and (or (equal bcss '(undecided))
1192 (memq (coding-system-base bfcs) bcss))
1193 bfcs)
1194 (mapcar (lambda (cs)
1195 (and (coding-system-p cs)
1196 (coding-system-get cs :mime-charset)
1197 (or (equal bcss '(undecided))
1198 (memq (coding-system-base cs) bcss))
1199 cs))
1200 (coding-system-priority-list)))))
1201 (default
1202 (let ((current (coding-system-base buffer-file-coding-system)))
1203 ;; Generally use as a default the first preferred coding-system
1204 ;; different from the current coding-system, except for
1205 ;; the case of auto-cs since choosing anything else is asking
1206 ;; for trouble (would lead to using a different coding
1207 ;; system than specified in the coding tag).
1208 (or auto-cs
1209 (car (delq nil
1210 (mapcar (lambda (cs)
1211 (if (eq current (coding-system-base cs))
1212 nil
1213 cs))
1214 preferred))))))
1215 (completion-ignore-case t)
1216 (completion-pcm--delim-wild-regex ; Let "u8" complete to "utf-8".
1217 (concat completion-pcm--delim-wild-regex
1218 "\\|\\([[:alpha:]]\\)[[:digit:]]"))
1219 (cs (completing-read
1220 (format "Coding system for saving file (default %s): " default)
1221 combined-table
1222 nil t nil 'coding-system-history
1223 (if default (symbol-name default)))))
1224 (unless (zerop (length cs)) (intern cs))))
1225
1168(defun set-buffer-file-coding-system (coding-system &optional force nomodify) 1226(defun set-buffer-file-coding-system (coding-system &optional force nomodify)
1169 "Set the file coding-system of the current buffer to CODING-SYSTEM. 1227 "Set the file coding-system of the current buffer to CODING-SYSTEM.
1170This means that when you save the buffer, it will be converted 1228This means that when you save the buffer, it will be converted
@@ -1182,19 +1240,26 @@ surely saves the buffer with CODING-SYSTEM. From a program, if you
1182don't want to mark the buffer modified, specify t for NOMODIFY. 1240don't want to mark the buffer modified, specify t for NOMODIFY.
1183If you know exactly what coding system you want to use, 1241If you know exactly what coding system you want to use,
1184just set the variable `buffer-file-coding-system' directly." 1242just set the variable `buffer-file-coding-system' directly."
1185 (interactive "zCoding system for saving file (default nil): \nP") 1243 (interactive
1244 (list (read-buffer-file-coding-system)
1245 current-prefix-arg))
1186 (check-coding-system coding-system) 1246 (check-coding-system coding-system)
1187 (if (and coding-system buffer-file-coding-system (null force)) 1247 (if (and coding-system buffer-file-coding-system (null force))
1188 (setq coding-system 1248 (setq coding-system
1189 (merge-coding-systems coding-system buffer-file-coding-system))) 1249 (merge-coding-systems coding-system buffer-file-coding-system)))
1250 (when (called-interactively-p 'interactive)
1251 ;; Check whether save would succeed, and jump to the offending char(s)
1252 ;; if not.
1253 (let ((css (find-coding-systems-region (point-min) (point-max))))
1254 (unless (or (eq (car css) 'undecided)
1255 (memq (coding-system-base coding-system) css))
1256 (setq coding-system (select-safe-coding-system-interactively
1257 (point-min) (point-max) css
1258 (list coding-system))))))
1190 (setq buffer-file-coding-system coding-system) 1259 (setq buffer-file-coding-system coding-system)
1191 (if buffer-file-coding-system-explicit 1260 (if buffer-file-coding-system-explicit
1192 (setcdr buffer-file-coding-system-explicit coding-system) 1261 (setcdr buffer-file-coding-system-explicit coding-system)
1193 (setq buffer-file-coding-system-explicit (cons nil coding-system))) 1262 (setq buffer-file-coding-system-explicit (cons nil coding-system)))
1194 ;; This is in case of an explicit call. Normally, `normal-mode' and
1195 ;; `set-buffer-major-mode-hook' take care of setting the table.
1196 (if (fboundp 'ucs-set-table-for-input) ; don't lose when building
1197 (ucs-set-table-for-input))
1198 (unless nomodify 1263 (unless nomodify
1199 (set-buffer-modified-p t)) 1264 (set-buffer-modified-p t))
1200 (force-mode-line-update)) 1265 (force-mode-line-update))
diff --git a/lisp/language/indian.el b/lisp/language/indian.el
index dd5bf2960b1..3414da2e045 100644
--- a/lisp/language/indian.el
+++ b/lisp/language/indian.el
@@ -241,7 +241,7 @@ South Indian language Malayalam is supported in this language environment."))
241 ;; syllables with an independent vowel, or 241 ;; syllables with an independent vowel, or
242 "\\(?:RH\\)?Vn?\\(?:J?HR\\)?v*n?a?A?\\|" 242 "\\(?:RH\\)?Vn?\\(?:J?HR\\)?v*n?a?A?\\|"
243 ;; consonant-based syllables, or 243 ;; consonant-based syllables, or
244 "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?|v*n?a?A?\\)\\|" 244 "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?\\|v*n?a?A?\\)\\|"
245 ;; special consonant form, or 245 ;; special consonant form, or
246 "JHR\\|" 246 "JHR\\|"
247 ;; any other singleton characters 247 ;; any other singleton characters
@@ -256,8 +256,9 @@ South Indian language Malayalam is supported in this language environment."))
256 ("V" . "[\u0B05-\u0B14\u0B60-\u0B61]") ; independent vowel 256 ("V" . "[\u0B05-\u0B14\u0B60-\u0B61]") ; independent vowel
257 ("C" . "[\u0B15-\u0B39\u0B5C-\u0B5D\u0B71]") ; consonant 257 ("C" . "[\u0B15-\u0B39\u0B5C-\u0B5D\u0B71]") ; consonant
258 ("B" . "[\u0B15-\u0B17\u0B1B-\u0B1D\u0B1F-\u0B21\u0B23-\u0B24\u0B27-\u0B30\u0B32-\u0B35\u0B38-\u0B39]") ; consonant with below form 258 ("B" . "[\u0B15-\u0B17\u0B1B-\u0B1D\u0B1F-\u0B21\u0B23-\u0B24\u0B27-\u0B30\u0B32-\u0B35\u0B38-\u0B39]") ; consonant with below form
259 ("R" . "\u0B30") ; RA
259 ("n" . "\u0B3C") ; NUKTA 260 ("n" . "\u0B3C") ; NUKTA
260 ("v" . "[\u0B3E-\u0B44\u0B56-\u0B57\u0B62-\u0B63]") ; vowel sign 261 ("v" . "[\u0B3E-\u0B44\u0B47\u0B56-\u0B57\u0B62-\u0B63]") ; vowel sign
261 ("H" . "\u0B4D") ; VIRAMA 262 ("H" . "\u0B4D") ; VIRAMA
262 ("N" . "\u200C") ; ZWNJ 263 ("N" . "\u200C") ; ZWNJ
263 ("J" . "\u200D") ; ZWJ 264 ("J" . "\u200D") ; ZWJ
@@ -267,7 +268,7 @@ South Indian language Malayalam is supported in this language environment."))
267 ;; syllables with an independent vowel, or 268 ;; syllables with an independent vowel, or
268 "\\(?:RH\\)?Vn?\\(?:J?HB\\)?v*n?a?A?\\|" 269 "\\(?:RH\\)?Vn?\\(?:J?HB\\)?v*n?a?A?\\|"
269 ;; consonant-based syllables, or 270 ;; consonant-based syllables, or
270 "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?|v*n?a?A?\\)\\|" 271 "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?\\|v*n?a?A?\\)\\|"
271 ;; special consonant form, or 272 ;; special consonant form, or
272 "JHB\\|" 273 "JHB\\|"
273 ;; any other singleton characters 274 ;; any other singleton characters
@@ -288,7 +289,7 @@ South Indian language Malayalam is supported in this language environment."))
288 (indian-compose-regexp 289 (indian-compose-regexp
289 (concat 290 (concat
290 ;; consonant-based syllables, or 291 ;; consonant-based syllables, or
291 "C\\(?:J?HJ?C\\)*\\(?:H[NJ]?|v*a?\\)\\|" 292 "C\\(?:J?HJ?C\\)*\\(?:H[NJ]?\\|v*a?\\)\\|"
292 ;; syllables with an independent vowel, or 293 ;; syllables with an independent vowel, or
293 "Vv*a?\\|" 294 "Vv*a?\\|"
294 ;; any other singleton characters 295 ;; any other singleton characters
@@ -302,14 +303,14 @@ South Indian language Malayalam is supported in this language environment."))
302 ("V" . "[\u0C05-\u0C14\u0C60-\u0C61]") ; independent vowel 303 ("V" . "[\u0C05-\u0C14\u0C60-\u0C61]") ; independent vowel
303 ("C" . "[\u0C15-\u0C39\u0C58-\u0C59]") ; consonant 304 ("C" . "[\u0C15-\u0C39\u0C58-\u0C59]") ; consonant
304 ("v" . "[\u0C3E-\u0C4C\u0C55-\u0C56\u0C62-\u0C63]") ; vowel sign 305 ("v" . "[\u0C3E-\u0C4C\u0C55-\u0C56\u0C62-\u0C63]") ; vowel sign
305 ("H" . "\u0BCD") ; VIRAMA 306 ("H" . "\u0C4D") ; VIRAMA
306 ("N" . "\u200C") ; ZWNJ 307 ("N" . "\u200C") ; ZWNJ
307 ("J" . "\u200D") ; ZWJ 308 ("J" . "\u200D") ; ZWJ
308 ("X" . "[\u0C00-\u0C7F]")))) ; all coverage 309 ("X" . "[\u0C00-\u0C7F]")))) ; all coverage
309 (indian-compose-regexp 310 (indian-compose-regexp
310 (concat 311 (concat
311 ;; consonant-based syllables, or 312 ;; consonant-based syllables, or
312 "C\\(?:J?HJ?C\\)*\\(?:H[NJ]?|v*a?\\)\\|" 313 "C\\(?:J?HJ?C\\)*\\(?:H[NJ]?\\|v*a?\\)\\|"
313 ;; syllables with an independent vowel, or 314 ;; syllables with an independent vowel, or
314 "V\\(?:J?HC\\)?v*a?\\|" 315 "V\\(?:J?HC\\)?v*a?\\|"
315 ;; special consonant form, or 316 ;; special consonant form, or
@@ -324,7 +325,7 @@ South Indian language Malayalam is supported in this language environment."))
324 '(("A" . "[\u0C82-\u0C83]") ; SIGN ANUSVARA .. VISARGA 325 '(("A" . "[\u0C82-\u0C83]") ; SIGN ANUSVARA .. VISARGA
325 ("V" . "[\u0C85-\u0C94\u0CE0-\u0CE1]") ; independent vowel 326 ("V" . "[\u0C85-\u0C94\u0CE0-\u0CE1]") ; independent vowel
326 ("C" . "[\u0C95-\u0CB9\u0CDE]") ; consonant 327 ("C" . "[\u0C95-\u0CB9\u0CDE]") ; consonant
327 ("B" . "\u0CB0") ; RA 328 ("R" . "\u0CB0") ; RA
328 ("n" . "\u0CBC") ; NUKTA 329 ("n" . "\u0CBC") ; NUKTA
329 ("v" . "[\u0CBE-\u0CCC\u0CD5-\u0CD6\u0CE2-\u0CE3]") ; vowel sign 330 ("v" . "[\u0CBE-\u0CCC\u0CD5-\u0CD6\u0CE2-\u0CE3]") ; vowel sign
330 ("H" . "\u0CCD") ; VIRAMA 331 ("H" . "\u0CCD") ; VIRAMA
@@ -336,9 +337,9 @@ South Indian language Malayalam is supported in this language environment."))
336 ;; syllables with an independent vowel, or 337 ;; syllables with an independent vowel, or
337 "\\(?:RH\\)?Vn?\\(?:J?HC\\)?v?A?\\|" 338 "\\(?:RH\\)?Vn?\\(?:J?HC\\)?v?A?\\|"
338 ;; consonant-based syllables, or 339 ;; consonant-based syllables, or
339 "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?|v*n?A?\\)\\|" 340 "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?\\|v*n?A?\\)\\|"
340 ;; special consonant form, or 341 ;; special consonant form, or
341 "JHB\\|" 342 "JHC\\|"
342 ;; any other singleton characters 343 ;; any other singleton characters
343 "X") 344 "X")
344 table)) 345 table))
@@ -351,13 +352,14 @@ South Indian language Malayalam is supported in this language environment."))
351 ("C" . "[\u0D15-\u0D39]") ; consonant 352 ("C" . "[\u0D15-\u0D39]") ; consonant
352 ("Y" . "[\u0D2F-\u0D30\u0D32\u0D35]") ; YA, RA, LA, VA 353 ("Y" . "[\u0D2F-\u0D30\u0D32\u0D35]") ; YA, RA, LA, VA
353 ("v" . "[\u0D3E-\u0D48\u0D57\u0D62-\u0D63]") ; postbase matra 354 ("v" . "[\u0D3E-\u0D48\u0D57\u0D62-\u0D63]") ; postbase matra
355 ("H" . "\u0D4D") ; SIGN VIRAMA
354 ("N" . "\u200C") ; ZWNJ 356 ("N" . "\u200C") ; ZWNJ
355 ("J" . "\u200D") ; ZWJ 357 ("J" . "\u200D") ; ZWJ
356 ("X" . "[\u0D00-\u0D7F]")))) ; all coverage 358 ("X" . "[\u0D00-\u0D7F]")))) ; all coverage
357 (indian-compose-regexp 359 (indian-compose-regexp
358 (concat 360 (concat
359 ;; consonant-based syllables, or 361 ;; consonant-based syllables, or
360 "\\(?:CJ?HJ?C\\)*\\(?:H[NJ]?\\|v?A?\\)\\|" 362 "C\\(?:J?HJ?C\\)*\\(?:H[NJ]?\\|v?A?\\)\\|"
361 ;; syllables with an independent vowel, or 363 ;; syllables with an independent vowel, or
362 "V\\(?:J?HY\\)?v*?A?\\|" 364 "V\\(?:J?HY\\)?v*?A?\\|"
363 ;; special consonant form, or 365 ;; special consonant form, or
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 05cc13bd2e4..2730350c3df 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -381,21 +381,38 @@ the second failed attempt to complete."
381(defconst completion-styles-alist 381(defconst completion-styles-alist
382 '((emacs21 382 '((emacs21
383 completion-emacs21-try-completion completion-emacs21-all-completions 383 completion-emacs21-try-completion completion-emacs21-all-completions
384 "Simple prefix-based completion.") 384 "Simple prefix-based completion.
385I.e. when completing \"foo_bar\" (where _ is the position of point),
386it will consider all completions candidates matching the glob
387pattern \"foobar*\".")
385 (emacs22 388 (emacs22
386 completion-emacs22-try-completion completion-emacs22-all-completions 389 completion-emacs22-try-completion completion-emacs22-all-completions
387 "Prefix completion that only operates on the text before point.") 390 "Prefix completion that only operates on the text before point.
391I.e. when completing \"foo_bar\" (where _ is the position of point),
392it will consider all completions candidates matching the glob
393pattern \"foo*\" and will add back \"bar\" to the end of it.")
388 (basic 394 (basic
389 completion-basic-try-completion completion-basic-all-completions 395 completion-basic-try-completion completion-basic-all-completions
390 "Completion of the prefix before point and the suffix after point.") 396 "Completion of the prefix before point and the suffix after point.
397I.e. when completing \"foo_bar\" (where _ is the position of point),
398it will consider all completions candidates matching the glob
399pattern \"foo*bar*\".")
391 (partial-completion 400 (partial-completion
392 completion-pcm-try-completion completion-pcm-all-completions 401 completion-pcm-try-completion completion-pcm-all-completions
393 "Completion of multiple words, each one taken as a prefix. 402 "Completion of multiple words, each one taken as a prefix.
394E.g. M-x l-c-h can complete to list-command-history 403I.e. when completing \"l-co_h\" (where _ is the position of point),
395and C-x C-f /u/m/s to /usr/monnier/src.") 404it will consider all completions candidates matching the glob
405pattern \"l*-co*h*\".
406Furthermore, for completions that are done step by step in subfields,
407the method is applied to all the preceding fields that do not yet match.
408E.g. C-x C-f /u/mo/s TAB could complete to /usr/monnier/src.
409Additionally the user can use the char \"*\" as a glob pattern.")
396 (substring 410 (substring
397 completion-substring-try-completion completion-substring-all-completions 411 completion-substring-try-completion completion-substring-all-completions
398 "Completion of the string taken as a substring.") 412 "Completion of the string taken as a substring.
413I.e. when completing \"foo_bar\" (where _ is the position of point),
414it will consider all completions candidates matching the glob
415pattern \"*foo*bar*\".")
399 (initials 416 (initials
400 completion-initials-try-completion completion-initials-all-completions 417 completion-initials-try-completion completion-initials-all-completions
401 "Completion of acronyms and initialisms. 418 "Completion of acronyms and initialisms.
@@ -410,7 +427,19 @@ ALL-COMPLETIONS is the function that lists the completions (it should
410follow the calling convention of `completion-all-completions'), 427follow the calling convention of `completion-all-completions'),
411and DOC describes the way this style of completion works.") 428and DOC describes the way this style of completion works.")
412 429
413(defcustom completion-styles '(basic partial-completion emacs22) 430(defcustom completion-styles
431 ;; First, use `basic' because prefix completion has been the standard
432 ;; for "ever" and works well in most cases, so using it first
433 ;; ensures that we obey previous behavior in most cases.
434 '(basic
435 ;; Then use `partial-completion' because it has proven to
436 ;; be a very convenient extension.
437 partial-completion
438 ;; Finally use `emacs22' so as to maintain (in many/most cases)
439 ;; the previous behavior that when completing "foobar" with point
440 ;; between "foo" and "bar" the completion try to complete "foo"
441 ;; and simply add "bar" to the end of the result.
442 emacs22)
414 "List of completion styles to use. 443 "List of completion styles to use.
415The available styles are listed in `completion-styles-alist'." 444The available styles are listed in `completion-styles-alist'."
416 :type `(repeat (choice ,@(mapcar (lambda (x) (list 'const (car x))) 445 :type `(repeat (choice ,@(mapcar (lambda (x) (list 'const (car x)))
diff --git a/lisp/progmodes/fortran.el b/lisp/progmodes/fortran.el
index 6ba9fac608d..3784ba787c4 100644
--- a/lisp/progmodes/fortran.el
+++ b/lisp/progmodes/fortran.el
@@ -403,6 +403,28 @@ program\\|subroutine\\)\\>[ \t]*\\(\\sw+\\)?"
403 '("^ *\\([0-9]+\\)" . font-lock-constant-face))) 403 '("^ *\\([0-9]+\\)" . font-lock-constant-face)))
404 "Medium level highlighting for Fortran mode.") 404 "Medium level highlighting for Fortran mode.")
405 405
406;; See bug#1385. Never really looked into _why_ this matters...
407(defun fortran-match-and-skip-declaration (limit)
408 "Like `font-lock-match-c-style-declaration-item-and-skip-to-next'.
409The only difference is, it returns t in a case when the default returns nil."
410 (when (looking-at "[ \n\t*]*\\(\\sw+\\)[ \t\n]*\\(((?\\)?")
411 (when (and (match-end 2) (> (- (match-end 2) (match-beginning 2)) 1))
412 (let ((pos (point)))
413 (skip-chars-backward " \t\n")
414 (skip-syntax-backward "w")
415 (unless (looking-at "\\(\\sw+\\)[ \t\n]*\\sw+[ \t\n]*\\(((?\\)?")
416 (goto-char pos)
417 (looking-at "[ \n\t*]*\\(\\sw+\\)[ \t\n]*\\(((?\\)?"))))
418 (save-match-data
419 (condition-case nil
420 (save-restriction
421 (narrow-to-region (point-min) limit)
422 (goto-char (match-end 1))
423 (while (not (looking-at "[ \t\n]*\\(\\(,\\)\\|;\\|\\'\\)"))
424 (goto-char (or (scan-sexps (point) 1) (point-max))))
425 (goto-char (match-end 2)))
426 (error t)))))
427
406(defvar fortran-font-lock-keywords-3 428(defvar fortran-font-lock-keywords-3
407 (append 429 (append
408 fortran-font-lock-keywords-1 430 fortran-font-lock-keywords-1
@@ -412,7 +434,7 @@ program\\|subroutine\\)\\>[ \t]*\\(\\sw+\\)?"
412 ;; Type specifier. 434 ;; Type specifier.
413 '(1 font-lock-type-face) 435 '(1 font-lock-type-face)
414 ;; Declaration item (or just /.../ block name). 436 ;; Declaration item (or just /.../ block name).
415 `(font-lock-match-c-style-declaration-item-and-skip-to-next 437 `(fortran-match-and-skip-declaration
416 ;; Start after any *(...) expression. 438 ;; Start after any *(...) expression.
417 (condition-case nil 439 (condition-case nil
418 (and (match-beginning ,(1+ (regexp-opt-depth 440 (and (match-beginning ,(1+ (regexp-opt-depth
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el
index b13a75e3844..de94620c737 100644
--- a/lisp/progmodes/grep.el
+++ b/lisp/progmodes/grep.el
@@ -513,8 +513,8 @@ Set up `compilation-exit-message-function' and run `grep-setup-hook'."
513 grep-find-template grep-find-use-xargs 513 grep-find-template grep-find-use-xargs
514 grep-highlight-matches)) 514 grep-highlight-matches))
515 (set setting 515 (set setting
516 (or (cadr (assq setting host-defaults)) 516 (cadr (or (assq setting host-defaults)
517 (cadr (assq setting defaults))))) 517 (assq setting defaults)))))
518 518
519 (unless (or (not grep-use-null-device) (eq grep-use-null-device t)) 519 (unless (or (not grep-use-null-device) (eq grep-use-null-device t))
520 (setq grep-use-null-device 520 (setq grep-use-null-device
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index 38698af7885..5fc92a92d37 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -1060,7 +1060,7 @@ subshell is initiated, `tex-shell-hook' is run."
1060 "\\>\\|\\\\[a-z]*" (regexp-opt '("space" "skip" "page") t) 1060 "\\>\\|\\\\[a-z]*" (regexp-opt '("space" "skip" "page") t)
1061 "\\>\\)")) 1061 "\\>\\)"))
1062 (setq paragraph-separate 1062 (setq paragraph-separate
1063 (concat "[\f]\\|[ \t]*\\($\\|" 1063 (concat "[\f%]\\|[ \t]*\\($\\|"
1064 "\\\\[][]\\|" 1064 "\\\\[][]\\|"
1065 "\\\\" (regexp-opt (append 1065 "\\\\" (regexp-opt (append
1066 (mapcar 'car latex-section-alist) 1066 (mapcar 'car latex-section-alist)
diff --git a/lisp/tmm.el b/lisp/tmm.el
index e453dbde84b..0cbc72673a4 100644
--- a/lisp/tmm.el
+++ b/lisp/tmm.el
@@ -262,9 +262,6 @@ Its value should be an event that has a binding in MENU."
262 (condition-case nil 262 (condition-case nil
263 (require 'mouse) 263 (require 'mouse)
264 (error nil)) 264 (error nil))
265 (condition-case nil
266 (x-popup-menu nil choice) ; Get the shortcuts
267 (error nil))
268 (tmm-prompt choice)) 265 (tmm-prompt choice))
269 ;; We just handled a menu keymap and found a command. 266 ;; We just handled a menu keymap and found a command.
270 (choice 267 (choice
@@ -445,7 +442,7 @@ element of keymap, an `x-popup-menu' argument, or an element of
445`x-popup-menu' argument (when IN-X-MENU is not-nil). 442`x-popup-menu' argument (when IN-X-MENU is not-nil).
446This function adds the element only if it is not already present. 443This function adds the element only if it is not already present.
447It uses the free variable `tmm-table-undef' to keep undefined keys." 444It uses the free variable `tmm-table-undef' to keep undefined keys."
448 (let (km str cache plist filter visible enable (event (car elt))) 445 (let (km str plist filter visible enable (event (car elt)))
449 (setq elt (cdr elt)) 446 (setq elt (cdr elt))
450 (if (eq elt 'undefined) 447 (if (eq elt 'undefined)
451 (setq tmm-table-undef (cons (cons event nil) tmm-table-undef)) 448 (setq tmm-table-undef (cons (cons event nil) tmm-table-undef))
@@ -468,11 +465,7 @@ It uses the free variable `tmm-table-undef' to keep undefined keys."
468 (and (symbolp (cdr-safe (cdr-safe elt))) 465 (and (symbolp (cdr-safe (cdr-safe elt)))
469 (fboundp (cdr-safe (cdr-safe elt))))) 466 (fboundp (cdr-safe (cdr-safe elt)))))
470 (setq km (cddr elt)) 467 (setq km (cddr elt))
471 (and (stringp (car elt)) (setq str (car elt))) 468 (and (stringp (car elt)) (setq str (car elt))))
472 (and str
473 (stringp (cdr-safe (cadr elt))) ; keyseq cache
474 (setq cache (cdr (cadr elt)))
475 cache (setq str (concat str cache))))
476 469
477 ((eq (car-safe elt) 'menu-item) 470 ((eq (car-safe elt) 'menu-item)
478 ;; (menu-item TITLE COMMAND KEY ...) 471 ;; (menu-item TITLE COMMAND KEY ...)
@@ -489,13 +482,7 @@ It uses the free variable `tmm-table-undef' to keep undefined keys."
489 (setq km (and (eval visible) km))) 482 (setq km (and (eval visible) km)))
490 (setq enable (plist-get plist :enable)) 483 (setq enable (plist-get plist :enable))
491 (if enable 484 (if enable
492 (setq km (if (eval enable) km 'ignore))) 485 (setq km (if (eval enable) km 'ignore))))
493 (and str
494 (consp (nth 3 elt))
495 (stringp (cdr (nth 3 elt))) ; keyseq cache
496 (setq cache (cdr (nth 3 elt)))
497 cache
498 (setq str (concat str cache))))
499 486
500 ((if (listp (cdr-safe (cdr-safe (cdr-safe elt)))) 487 ((if (listp (cdr-safe (cdr-safe (cdr-safe elt))))
501 (or (keymapp (cdr-safe (cdr-safe (cdr-safe elt)))) 488 (or (keymapp (cdr-safe (cdr-safe (cdr-safe elt))))
@@ -504,16 +491,25 @@ It uses the free variable `tmm-table-undef' to keep undefined keys."
504 (fboundp (cdr-safe (cdr-safe (cdr-safe elt)))))) 491 (fboundp (cdr-safe (cdr-safe (cdr-safe elt))))))
505 ; New style of easy-menu 492 ; New style of easy-menu
506 (setq km (cdr (cddr elt))) 493 (setq km (cdr (cddr elt)))
507 (and (stringp (car elt)) (setq str (car elt))) 494 (and (stringp (car elt)) (setq str (car elt))))
508 (and str
509 (stringp (cdr-safe (car (cddr elt)))) ; keyseq cache
510 (setq cache (cdr (car (cdr (cdr elt)))))
511 cache (setq str (concat str cache))))
512 495
513 ((stringp event) ; x-popup or x-popup element 496 ((stringp event) ; x-popup or x-popup element
514 (if (or in-x-menu (stringp (car-safe elt))) 497 (if (or in-x-menu (stringp (car-safe elt)))
515 (setq str event event nil km elt) 498 (setq str event event nil km elt)
516 (setq str event event nil km (cons 'keymap elt)))))) 499 (setq str event event nil km (cons 'keymap elt)))))
500 (unless (eq km 'ignore)
501 (let ((binding (where-is-internal km nil t)))
502 (when binding
503 (setq binding (key-description binding))
504 ;; Try to align the keybindings.
505 (let ((colwidth (min 30 (- (/ (window-width) 2) 10))))
506 (setq str
507 (concat str
508 (make-string (max 2 (- colwidth
509 (string-width str)
510 (string-width binding)))
511 ?\s)
512 binding)))))))
517 (and km (stringp km) (setq str km)) 513 (and km (stringp km) (setq str km))
518 ;; Verify that the command is enabled; 514 ;; Verify that the command is enabled;
519 ;; if not, don't mention it. 515 ;; if not, don't mention it.
diff --git a/lisp/vc-bzr.el b/lisp/vc-bzr.el
index 2c576623120..64935f16dbd 100644
--- a/lisp/vc-bzr.el
+++ b/lisp/vc-bzr.el
@@ -899,10 +899,10 @@ stream. Standard error output is discarded."
899(defun vc-bzr-shelve-show (name) 899(defun vc-bzr-shelve-show (name)
900 "Show the contents of shelve NAME." 900 "Show the contents of shelve NAME."
901 (interactive "sShelve name: ") 901 (interactive "sShelve name: ")
902 (vc-setup-buffer "*vc-bzr-shelve*") 902 (vc-setup-buffer "*vc-diff*")
903 ;; FIXME: how can you show the contents of a shelf? 903 ;; FIXME: how can you show the contents of a shelf?
904 (vc-bzr-command "unshelve" "*vc-bzr-shelve*" 'async nil "--preview" name) 904 (vc-bzr-command "unshelve" "*vc-diff*" 'async nil "--preview" name)
905 (set-buffer "*vc-bzr-shelve*") 905 (set-buffer "*vc-diff*")
906 (diff-mode) 906 (diff-mode)
907 (setq buffer-read-only t) 907 (setq buffer-read-only t)
908 (pop-to-buffer (current-buffer))) 908 (pop-to-buffer (current-buffer)))
@@ -910,13 +910,13 @@ stream. Standard error output is discarded."
910(defun vc-bzr-shelve-apply (name) 910(defun vc-bzr-shelve-apply (name)
911 "Apply shelve NAME and remove it afterwards." 911 "Apply shelve NAME and remove it afterwards."
912 (interactive "sApply (and remove) shelf: ") 912 (interactive "sApply (and remove) shelf: ")
913 (vc-bzr-command "unshelve" "*vc-bzr-shelve*" 0 nil "--apply" name) 913 (vc-bzr-command "unshelve" nil 0 nil "--apply" name)
914 (vc-resynch-buffer (vc-bzr-root default-directory) t t)) 914 (vc-resynch-buffer (vc-bzr-root default-directory) t t))
915 915
916(defun vc-bzr-shelve-apply-and-keep (name) 916(defun vc-bzr-shelve-apply-and-keep (name)
917 "Apply shelve NAME and keep it afterwards." 917 "Apply shelve NAME and keep it afterwards."
918 (interactive "sApply (and keep) shelf: ") 918 (interactive "sApply (and keep) shelf: ")
919 (vc-bzr-command "unshelve" "*vc-bzr-shelve*" 0 nil "--apply" "--keep" name) 919 (vc-bzr-command "unshelve" nil 0 nil "--apply" "--keep" name)
920 (vc-resynch-buffer (vc-bzr-root default-directory) t t)) 920 (vc-resynch-buffer (vc-bzr-root default-directory) t t))
921 921
922(defun vc-bzr-shelve-snapshot () 922(defun vc-bzr-shelve-snapshot ()
@@ -927,7 +927,7 @@ stream. Standard error output is discarded."
927 (concat 927 (concat
928 (format-time-string "Snapshot on %Y-%m-%d" ct) 928 (format-time-string "Snapshot on %Y-%m-%d" ct)
929 (format-time-string " at %H:%M" ct)))) 929 (format-time-string " at %H:%M" ct))))
930 (vc-bzr-command "unshelve" "*vc-bzr-shelve*" 0 nil "--apply" "--keep") 930 (vc-bzr-command "unshelve" nil 0 nil "--apply" "--keep")
931 (vc-resynch-buffer (vc-bzr-root default-directory) t t)) 931 (vc-resynch-buffer (vc-bzr-root default-directory) t t))
932 932
933(defun vc-bzr-shelve-list () 933(defun vc-bzr-shelve-list ()
diff --git a/lisp/vc-git.el b/lisp/vc-git.el
index 6010aa20b35..14cdb4a1e38 100644
--- a/lisp/vc-git.el
+++ b/lisp/vc-git.el
@@ -420,6 +420,7 @@ or an empty string if none."
420 (vc-git-command (current-buffer) 'async files 420 (vc-git-command (current-buffer) 'async files
421 "ls-files" "-z" "-o" "-i" "--directory" 421 "ls-files" "-z" "-o" "-i" "--directory"
422 "--no-empty-directory" "--exclude-standard" "--")) 422 "--no-empty-directory" "--exclude-standard" "--"))
423 ;; --relative added in Git 1.5.5.
423 (diff-index 424 (diff-index
424 (vc-git-command (current-buffer) 'async files 425 (vc-git-command (current-buffer) 'async files
425 "diff-index" "--relative" "-z" "-M" "HEAD" "--"))) 426 "diff-index" "--relative" "-z" "-M" "HEAD" "--")))
@@ -578,7 +579,9 @@ or an empty string if none."
578;;; HISTORY FUNCTIONS 579;;; HISTORY FUNCTIONS
579 580
580(defun vc-git-print-log (files buffer &optional shortlog start-revision limit) 581(defun vc-git-print-log (files buffer &optional shortlog start-revision limit)
581 "Get change log associated with FILES." 582 "Get change log associated with FILES.
583Note that using SHORTLOG requires at least Git version 1.5.6,
584for the --graph option."
582 (let ((coding-system-for-read git-commits-coding-system)) 585 (let ((coding-system-for-read git-commits-coding-system))
583 ;; `vc-do-command' creates the buffer, but we need it before running 586 ;; `vc-do-command' creates the buffer, but we need it before running
584 ;; the command. 587 ;; the command.
diff --git a/lisp/vc-hg.el b/lisp/vc-hg.el
index fae9a15fed2..e67342d707a 100644
--- a/lisp/vc-hg.el
+++ b/lisp/vc-hg.el
@@ -196,16 +196,16 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
196 (let* 196 (let*
197 ((status nil) 197 ((status nil)
198 (default-directory (file-name-directory file)) 198 (default-directory (file-name-directory file))
199 ;; Avoid localization of messages so we can parse the output.
200 (avoid-local-env (append (list "TERM=dumb" "LANGUAGE=C" "HGRC=")
201 process-environment))
199 (out 202 (out
200 (with-output-to-string 203 (with-output-to-string
201 (with-current-buffer 204 (with-current-buffer
202 standard-output 205 standard-output
203 (setq status 206 (setq status
204 (condition-case nil 207 (condition-case nil
205 (let ((process-environment 208 (let ((process-environment avoid-local-env))
206 ;; Avoid localization of messages so we can parse the output.
207 (append (list "TERM=dumb" "LANGUAGE=C" "HGRC=")
208 process-environment)))
209 ;; Ignore all errors. 209 ;; Ignore all errors.
210 (process-file 210 (process-file
211 "hg" nil t nil 211 "hg" nil t nil
@@ -213,7 +213,23 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
213 ;; Some problem happened. E.g. We can't find an `hg' 213 ;; Some problem happened. E.g. We can't find an `hg'
214 ;; executable. 214 ;; executable.
215 (error nil))))))) 215 (error nil)))))))
216 (when (eq 0 status) out))) 216 (if (eq 0 status)
217 out
218 ;; Check if the file is in the 'added state, the above hg
219 ;; command does not distinguish between 'added and 'unregistered.
220 (setq status
221 (condition-case nil
222 (let ((process-environment avoid-local-env))
223 (process-file
224 "hg" nil nil nil
225 ;; We use "log" here, if there's a faster command
226 ;; that returns true for an 'added file and false
227 ;; for an 'unregistered one, we could use that.
228 "log" "-l1" (file-relative-name file)))
229 ;; Some problem happened. E.g. We can't find an `hg'
230 ;; executable.
231 (error nil)))
232 (when (eq 0 status) "0"))))
217 233
218;;; History functions 234;;; History functions
219 235
@@ -356,7 +372,8 @@ Optional arg REVISION is a revision to annotate from."
356 (if (match-beginning 3) 372 (if (match-beginning 3)
357 (match-string-no-properties 1) 373 (match-string-no-properties 1)
358 (cons (match-string-no-properties 1) 374 (cons (match-string-no-properties 1)
359 (expand-file-name (match-string-no-properties 4))))))) 375 (expand-file-name (match-string-no-properties 4)
376 (vc-hg-root default-directory)))))))
360 377
361(defun vc-hg-previous-revision (file rev) 378(defun vc-hg-previous-revision (file rev)
362 (let ((newrev (1- (string-to-number rev)))) 379 (let ((newrev (1- (string-to-number rev))))