diff options
| author | Kenichi Handa | 2010-04-20 16:26:02 +0900 |
|---|---|---|
| committer | Kenichi Handa | 2010-04-20 16:26:02 +0900 |
| commit | 1f2f0b2818b884e44db792729a92ccff2f766a26 (patch) | |
| tree | 7b547b9a0a586d1dc76884ecbb1dcdd29415f740 /lisp | |
| parent | c0be27fda00b238ea82e43a8590a96c3a9ae9023 (diff) | |
| parent | ce5b453a449e4e7729abb5128114e2687f08360d (diff) | |
| download | emacs-1f2f0b2818b884e44db792729a92ccff2f766a26.tar.gz emacs-1f2f0b2818b884e44db792729a92ccff2f766a26.zip | |
merge trunk
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/ChangeLog | 179 | ||||
| -rw-r--r-- | lisp/cedet/ede/pmake.el | 7 | ||||
| -rw-r--r-- | lisp/gnus/ChangeLog | 11 | ||||
| -rw-r--r-- | lisp/gnus/nnir.el | 2 | ||||
| -rw-r--r-- | lisp/gnus/nnrss.el | 2 | ||||
| -rw-r--r-- | lisp/gnus/smime.el | 2 | ||||
| -rw-r--r-- | lisp/help.el | 7 | ||||
| -rw-r--r-- | lisp/htmlfontify.el | 2 | ||||
| -rw-r--r-- | lisp/ido.el | 8 | ||||
| -rw-r--r-- | lisp/info.el | 69 | ||||
| -rw-r--r-- | lisp/international/mule.el | 75 | ||||
| -rw-r--r-- | lisp/language/indian.el | 22 | ||||
| -rw-r--r-- | lisp/minibuffer.el | 43 | ||||
| -rw-r--r-- | lisp/progmodes/fortran.el | 24 | ||||
| -rw-r--r-- | lisp/progmodes/grep.el | 4 | ||||
| -rw-r--r-- | lisp/textmodes/tex-mode.el | 2 | ||||
| -rw-r--r-- | lisp/tmm.el | 40 | ||||
| -rw-r--r-- | lisp/vc-bzr.el | 12 | ||||
| -rw-r--r-- | lisp/vc-git.el | 5 | ||||
| -rw-r--r-- | lisp/vc-hg.el | 29 |
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 @@ | |||
| 1 | 2010-04-19 Stefan Monnier <monnier@iro.umontreal.ca> | 1 | 2010-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 | |||
| 13 | 2010-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 | |||
| 18 | 2010-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 | |||
| 24 | 2010-04-19 Glenn Morris <rgm@gnu.org> | ||
| 25 | |||
| 26 | * htmlfontify.el (htmlfontify-buffer) | ||
| 27 | (htmlfontify-copy-and-link-dir): Autoload entry points. | ||
| 28 | |||
| 29 | 2010-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 | |||
| 34 | 2010-04-19 Glenn Morris <rgm@gnu.org> | ||
| 35 | |||
| 36 | * vc-git.el (vc-git-print-log): Doc fix. | ||
| 37 | |||
| 38 | 2010-04-19 Óscar Fuentes <ofv@wanadoo.es> | ||
| 39 | |||
| 40 | * ido.el (ido-file-internal): Fix 2009-12-02 change. | ||
| 41 | |||
| 42 | 2010-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 | |||
| 47 | 2010-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 | |||
| 53 | 2010-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 | |||
| 63 | 2010-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 | |||
| 68 | 2010-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 | |||
| 85 | 2010-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 | |||
| 90 | 2010-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 | ||
| 5 | 2010-04-18 Juri Linkov <juri@jurta.org> | 98 | 2010-04-18 Juri Linkov <juri@jurta.org> |
| @@ -355,32 +448,31 @@ | |||
| 355 | 448 | ||
| 356 | 2010-04-07 Michael McNamara <mac@mail.brushroad.com> | 449 | 2010-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 | ||
| 373 | 2010-04-07 Wilson Snyder <wsnyder@wsnyder.org> | 466 | 2010-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 | ||
| 544 | 2010-03-31 Stefan Monnier <monnier@iro.umontreal.ca> | 636 | 2010-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 | ||
| 1270 | 2010-03-01 Alan Mackenzie <acm@muc.de> | ||
| 1271 | |||
| 1272 | * progmodes/cc-engine.el (c-remove-stale-state-cache): | ||
| 1273 | Correct previous patch. | ||
| 1274 | |||
| 1275 | 2010-03-01 Kenichi Handa <handa@m17n.org> | 1362 | 2010-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 | ||
| 1286 | 2010-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 | |||
| 1291 | 2010-02-28 Katsumi Yamaoka <yamaoka@jpl.org> | 1373 | 2010-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 | ||
| 1356 | 2010-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 | |||
| 1366 | 2010-02-24 Chong Yidong <cyd@stupidchicken.com> | 1438 | 2010-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 | ||
| 1703 | 2010-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 | |||
| 1730 | 2010-02-04 Michael Albinus <michael.albinus@gmx.de> | 1775 | 2010-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 @@ | |||
| 1 | 2010-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 | |||
| 1 | 2010-04-14 Stefan Monnier <monnier@iro.umontreal.ca> | 9 | 2010-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 | ||
| 5 | 2010-04-12 Stefan Monnier <monnier@iro.umontreal.ca> | 14 | 2010-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." | |||
| 1048 | Select WINDOW according to the value of `help-window-select'. | 1048 | Select WINDOW according to the value of `help-window-select'. |
| 1049 | Display message telling how to scroll and eventually quit WINDOW. | 1049 | Display message telling how to scroll and eventually quit WINDOW. |
| 1050 | 1050 | ||
| 1051 | Optional argument REUSE non-nil means WINDOW has been reused \(by | 1051 | Optional 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 |
| 1053 | KEEP-FRAME non-nil means that quitting must no delete the frame | 1053 | that quitting should not delete WINDOW's frame." |
| 1054 | of 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, |
| 1795 | containing an inline CSS-stylesheet and formatted CSS-markup HTML | 1796 | containing 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. |
| 2281 | F-EXT and L-EXT specify values for `hfy-extn' and `hfy-link-extn'.\n | 2283 | F-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. |
| 1170 | This means that when you save the buffer, it will be converted | 1228 | This 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 | |||
| 1182 | don't want to mark the buffer modified, specify t for NOMODIFY. | 1240 | don't want to mark the buffer modified, specify t for NOMODIFY. |
| 1183 | If you know exactly what coding system you want to use, | 1241 | If you know exactly what coding system you want to use, |
| 1184 | just set the variable `buffer-file-coding-system' directly." | 1242 | just 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. |
| 385 | I.e. when completing \"foo_bar\" (where _ is the position of point), | ||
| 386 | it will consider all completions candidates matching the glob | ||
| 387 | pattern \"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. |
| 391 | I.e. when completing \"foo_bar\" (where _ is the position of point), | ||
| 392 | it will consider all completions candidates matching the glob | ||
| 393 | pattern \"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. |
| 397 | I.e. when completing \"foo_bar\" (where _ is the position of point), | ||
| 398 | it will consider all completions candidates matching the glob | ||
| 399 | pattern \"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. |
| 394 | E.g. M-x l-c-h can complete to list-command-history | 403 | I.e. when completing \"l-co_h\" (where _ is the position of point), |
| 395 | and C-x C-f /u/m/s to /usr/monnier/src.") | 404 | it will consider all completions candidates matching the glob |
| 405 | pattern \"l*-co*h*\". | ||
| 406 | Furthermore, for completions that are done step by step in subfields, | ||
| 407 | the method is applied to all the preceding fields that do not yet match. | ||
| 408 | E.g. C-x C-f /u/mo/s TAB could complete to /usr/monnier/src. | ||
| 409 | Additionally 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. |
| 413 | I.e. when completing \"foo_bar\" (where _ is the position of point), | ||
| 414 | it will consider all completions candidates matching the glob | ||
| 415 | pattern \"*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 | |||
| 410 | follow the calling convention of `completion-all-completions'), | 427 | follow the calling convention of `completion-all-completions'), |
| 411 | and DOC describes the way this style of completion works.") | 428 | and 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. |
| 415 | The available styles are listed in `completion-styles-alist'." | 444 | The 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'. | ||
| 409 | The 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). |
| 446 | This function adds the element only if it is not already present. | 443 | This function adds the element only if it is not already present. |
| 447 | It uses the free variable `tmm-table-undef' to keep undefined keys." | 444 | It 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. |
| 583 | Note that using SHORTLOG requires at least Git version 1.5.6, | ||
| 584 | for 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)))) |