diff options
| author | Stefan Monnier | 2010-05-31 22:34:49 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2010-05-31 22:34:49 -0400 |
| commit | fd67a7000ee9e118b426df6ad779f3c86d4fe320 (patch) | |
| tree | 9f39d84fb5eeee28ec6670794980c075ebe51b32 | |
| parent | 06ac62b4db7cf64c9d65ac55bdfcefdf478e20b5 (diff) | |
| parent | feceda26100f1b5712a85aadf0c428a1507b538d (diff) | |
| download | emacs-fd67a7000ee9e118b426df6ad779f3c86d4fe320.tar.gz emacs-fd67a7000ee9e118b426df6ad779f3c86d4fe320.zip | |
Merge from emacs-23
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | doc/lispref/ChangeLog | 9 | ||||
| -rw-r--r-- | doc/lispref/minibuf.texi | 45 | ||||
| -rw-r--r-- | etc/TODO | 2 | ||||
| -rw-r--r-- | lisp/ChangeLog | 38 | ||||
| -rw-r--r-- | lisp/cedet/ede/cpp-root.el | 2 | ||||
| -rw-r--r-- | lisp/epa.el | 5 | ||||
| -rw-r--r-- | lisp/man.el | 3 | ||||
| -rw-r--r-- | lisp/vc-bzr.el | 8 | ||||
| -rw-r--r-- | src/ChangeLog | 18 | ||||
| -rw-r--r-- | src/config.in | 65 | ||||
| -rw-r--r-- | src/keymap.c | 36 |
12 files changed, 172 insertions, 64 deletions
| @@ -1,3 +1,8 @@ | |||
| 1 | 2010-05-30 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * .bzrignore: Ignore new files from trunk, which appear if you use | ||
| 4 | colocated branches (i.e. "bzr switch"). | ||
| 5 | |||
| 1 | 2010-05-28 Glenn Morris <rgm@gnu.org> | 6 | 2010-05-28 Glenn Morris <rgm@gnu.org> |
| 2 | 7 | ||
| 3 | * configure.in: Simplify some of the $canonical tests. | 8 | * configure.in: Simplify some of the $canonical tests. |
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 1ed5b7ea928..ca40b34b73b 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog | |||
| @@ -1,3 +1,12 @@ | |||
| 1 | 2010-05-30 Juanma Barranquero <lekktu@gmail.com> | ||
| 2 | |||
| 3 | * minibuf.texi (Basic Completion): Add missing "@end defun". | ||
| 4 | |||
| 5 | 2010-05-30 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 6 | |||
| 7 | * minibuf.texi (Basic Completion): Document completion-boundaries. | ||
| 8 | (Programmed Completion): Document the new fourth method for boundaries. | ||
| 9 | |||
| 1 | 2010-05-22 Chong Yidong <cyd@stupidchicken.com> | 10 | 2010-05-22 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 11 | ||
| 3 | * display.texi (Image Cache): Update documentation about image | 12 | * display.texi (Image Cache): Update documentation about image |
diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi index 66b4cb096cc..bfe73ce27f4 100644 --- a/doc/lispref/minibuf.texi +++ b/doc/lispref/minibuf.texi | |||
| @@ -814,6 +814,25 @@ the values @var{string}, @var{predicate} and @code{lambda}; whatever | |||
| 814 | it returns, @code{test-completion} returns in turn. | 814 | it returns, @code{test-completion} returns in turn. |
| 815 | @end defun | 815 | @end defun |
| 816 | 816 | ||
| 817 | @defun completion-boundaries string collection predicate suffix | ||
| 818 | This function returns the boundaries of the field on which @var{collection} | ||
| 819 | will operate, assuming that @var{string} holds the text before point | ||
| 820 | and @var{suffix} holds the text after point. | ||
| 821 | |||
| 822 | Normally completion operates on the whole string, so for all normal | ||
| 823 | collections, this will always return @code{(0 . (length | ||
| 824 | @var{suffix}))}. But more complex completion such as completion on | ||
| 825 | files is done one field at a time. For example, completion of | ||
| 826 | @code{"/usr/sh"} will include @code{"/usr/share/"} but not | ||
| 827 | @code{"/usr/share/doc"} even if @code{"/usr/share/doc"} exists. | ||
| 828 | Also @code{all-completions} on @code{"/usr/sh"} will not include | ||
| 829 | @code{"/usr/share/"} but only @code{"share/"}. So if @var{string} is | ||
| 830 | @code{"/usr/sh"} and @var{suffix} is @code{"e/doc"}, | ||
| 831 | @code{completion-boundaries} will return @code{(5 . 1)} which tells us | ||
| 832 | that the @var{collection} will only return completion information that | ||
| 833 | pertains to the area after @code{"/usr/"} and before @code{"/doc"}. | ||
| 834 | @end defun | ||
| 835 | |||
| 817 | If you store a completion alist in a variable, you should mark the | 836 | If you store a completion alist in a variable, you should mark the |
| 818 | variable as ``risky'' with a non-@code{nil} | 837 | variable as ``risky'' with a non-@code{nil} |
| 819 | @code{risky-local-variable} property. @xref{File Local Variables}. | 838 | @code{risky-local-variable} property. @xref{File Local Variables}. |
| @@ -1618,13 +1637,14 @@ containing all the intended possible completions. In such a case, you | |||
| 1618 | can supply your own function to compute the completion of a given | 1637 | can supply your own function to compute the completion of a given |
| 1619 | string. This is called @dfn{programmed completion}. Emacs uses | 1638 | string. This is called @dfn{programmed completion}. Emacs uses |
| 1620 | programmed completion when completing file names (@pxref{File Name | 1639 | programmed completion when completing file names (@pxref{File Name |
| 1621 | Completion}). | 1640 | Completion}), among many other cases. |
| 1622 | 1641 | ||
| 1623 | To use this feature, pass a symbol with a function definition as the | 1642 | To use this feature, pass a function as the @var{collection} |
| 1624 | @var{collection} argument to @code{completing-read}. The function | 1643 | argument to @code{completing-read}. The function |
| 1625 | @code{completing-read} arranges to pass your completion function along | 1644 | @code{completing-read} arranges to pass your completion function along |
| 1626 | to @code{try-completion} and @code{all-completions}, which will then let | 1645 | to @code{try-completion}, @code{all-completions}, and other basic |
| 1627 | your function do all the work. | 1646 | completion functions, which will then let your function do all |
| 1647 | the work. | ||
| 1628 | 1648 | ||
| 1629 | The completion function should accept three arguments: | 1649 | The completion function should accept three arguments: |
| 1630 | 1650 | ||
| @@ -1638,10 +1658,14 @@ none. Your function should call the predicate for each possible match, | |||
| 1638 | and ignore the possible match if the predicate returns @code{nil}. | 1658 | and ignore the possible match if the predicate returns @code{nil}. |
| 1639 | 1659 | ||
| 1640 | @item | 1660 | @item |
| 1641 | A flag specifying the type of operation. | 1661 | A flag specifying the type of operation. The best way to think about |
| 1662 | it is that the function stands for an object (in the | ||
| 1663 | ``object-oriented'' sense of the word), and this third argument | ||
| 1664 | specifies which method to run. | ||
| 1642 | @end itemize | 1665 | @end itemize |
| 1643 | 1666 | ||
| 1644 | There are three flag values for three operations: | 1667 | There are currently four methods, i.e. four flag values, one for |
| 1668 | each of the four different basic operations: | ||
| 1645 | 1669 | ||
| 1646 | @itemize @bullet | 1670 | @itemize @bullet |
| 1647 | @item | 1671 | @item |
| @@ -1663,6 +1687,13 @@ string. | |||
| 1663 | @code{lambda} specifies @code{test-completion}. The completion | 1687 | @code{lambda} specifies @code{test-completion}. The completion |
| 1664 | function should return @code{t} if the specified string is an exact | 1688 | function should return @code{t} if the specified string is an exact |
| 1665 | match for some possibility; @code{nil} otherwise. | 1689 | match for some possibility; @code{nil} otherwise. |
| 1690 | |||
| 1691 | @item | ||
| 1692 | @code{(boundaries . SUFFIX)} specifies @code{completion-boundaries}. | ||
| 1693 | The function should return a value of the form @code{(boundaries | ||
| 1694 | START . END)} where START is the position of the beginning boundary in | ||
| 1695 | in the string to complete, and END is the position of the end boundary | ||
| 1696 | in SUFFIX. | ||
| 1666 | @end itemize | 1697 | @end itemize |
| 1667 | 1698 | ||
| 1668 | It would be consistent and clean for completion functions to allow | 1699 | It would be consistent and clean for completion functions to allow |
| @@ -410,7 +410,7 @@ typically due to pilot errors and should thus be in debug-ignored-errors. | |||
| 410 | the whole menu bar. In the mean time, it should process other messages. | 410 | the whole menu bar. In the mean time, it should process other messages. |
| 411 | 411 | ||
| 412 | ** Get some major packages installed: W3 (development version needs | 412 | ** Get some major packages installed: W3 (development version needs |
| 413 | significant work), PSGML, _possibly_ Cedet and ECB. | 413 | significant work), PSGML, _possibly_ ECB. |
| 414 | http://lists.gnu.org/archive/html/emacs-devel/2007-05/msg01493.html | 414 | http://lists.gnu.org/archive/html/emacs-devel/2007-05/msg01493.html |
| 415 | Check the assignments file for other packages which might go in and | 415 | Check the assignments file for other packages which might go in and |
| 416 | have been missed. | 416 | have been missed. |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b8b1fee8e0c..11316a24222 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,17 @@ | |||
| 1 | 2010-06-01 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * vc-bzr.el (vc-bzr-revision-completion-table): Apply | ||
| 4 | `file-directory-p' to the filename part rather than to the whole text. | ||
| 5 | |||
| 6 | 2010-05-31 Jonathan Marchand <jonathlela@gmail.com> (tiny change) | ||
| 7 | |||
| 8 | * cedet/ede/cpp-root.el (ede-set-project-variables): Fix feature name | ||
| 9 | (bug#6231). | ||
| 10 | |||
| 11 | 2010-05-31 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 12 | |||
| 13 | * man.el (Man-completion-table): Let the user type "-k " (bug#6319). | ||
| 14 | |||
| 1 | 2010-05-31 Drew Adams <drew.adams@oracle.com> | 15 | 2010-05-31 Drew Adams <drew.adams@oracle.com> |
| 2 | 16 | ||
| 3 | * files.el (directory-files-no-dot-files-regexp): Doc fix (bug#6298). | 17 | * files.el (directory-files-no-dot-files-regexp): Doc fix (bug#6298). |
| @@ -66,6 +80,14 @@ | |||
| 66 | (ls-lisp-classify): Call ls-lisp-classify-file. | 80 | (ls-lisp-classify): Call ls-lisp-classify-file. |
| 67 | (insert-directory): Remove blanks from switches. | 81 | (insert-directory): Remove blanks from switches. |
| 68 | 82 | ||
| 83 | 2010-05-29 Chong Yidong <cyd@stupidchicken.com> | ||
| 84 | |||
| 85 | * ansi-color.el: Delete unused escape sequences (Bug#6085). | ||
| 86 | (ansi-color-drop-regexp): New constant. | ||
| 87 | (ansi-color-apply, ansi-color-filter-region) | ||
| 88 | (ansi-color-apply-on-region): Delete unrecognized control sequences. | ||
| 89 | (ansi-color-apply): Build string list before calling concat. | ||
| 90 | |||
| 69 | 2010-05-28 Juri Linkov <juri@jurta.org> | 91 | 2010-05-28 Juri Linkov <juri@jurta.org> |
| 70 | 92 | ||
| 71 | * image-dired.el (image-dired-dired-toggle-marked-thumbs): | 93 | * image-dired.el (image-dired-dired-toggle-marked-thumbs): |
| @@ -212,6 +234,16 @@ | |||
| 212 | (smie-next-sexp): Handle nil results from next-token. | 234 | (smie-next-sexp): Handle nil results from next-token. |
| 213 | (smie-indent-calculate): Add a new case for special `fixindent' comments. | 235 | (smie-indent-calculate): Add a new case for special `fixindent' comments. |
| 214 | 236 | ||
| 237 | 2010-05-27 Chong Yidong <cyd@stupidchicken.com> | ||
| 238 | |||
| 239 | * progmodes/verilog-mode.el (verilog-type-font-keywords): | ||
| 240 | Use font-lock-constant-face, not obsolete font-lock-reference-face. | ||
| 241 | |||
| 242 | 2010-05-27 Masatake YAMATO <yamato@redhat.com> | ||
| 243 | |||
| 244 | * htmlfontify.el (hfy-face-resolve-face): New function. | ||
| 245 | (hfy-face-to-style): Use it (Bug#6279). | ||
| 246 | |||
| 215 | 2010-05-26 Stefan Monnier <monnier@iro.umontreal.ca> | 247 | 2010-05-26 Stefan Monnier <monnier@iro.umontreal.ca> |
| 216 | 248 | ||
| 217 | * progmodes/ada-xref.el (ada-gnat-parse-gpr): | 249 | * progmodes/ada-xref.el (ada-gnat-parse-gpr): |
| @@ -316,7 +348,13 @@ | |||
| 316 | Register it in composition-function-table for all Hebrew combining | 348 | Register it in composition-function-table for all Hebrew combining |
| 317 | characters. | 349 | characters. |
| 318 | 350 | ||
| 351 | 2010-05-25 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 352 | |||
| 353 | * epa.el (epa--select-keys): Don't explicitly delete the window since | ||
| 354 | that can fail (e.g. sole window in frame). Use dedication instead. | ||
| 355 | |||
| 319 | 2010-05-24 Uday S Reddy <u.s.reddy@cs.bham.ac.uk> (tiny change) | 356 | 2010-05-24 Uday S Reddy <u.s.reddy@cs.bham.ac.uk> (tiny change) |
| 357 | 2010-05-19 Uday S Reddy <u.s.reddy@cs.bham.ac.uk> (tiny change) | ||
| 320 | 358 | ||
| 321 | * textmodes/fill.el (fill-region): Don't fill past the end (bug#6201). | 359 | * textmodes/fill.el (fill-region): Don't fill past the end (bug#6201). |
| 322 | 360 | ||
diff --git a/lisp/cedet/ede/cpp-root.el b/lisp/cedet/ede/cpp-root.el index 1592c3c2f5d..cae4d090a39 100644 --- a/lisp/cedet/ede/cpp-root.el +++ b/lisp/cedet/ede/cpp-root.el | |||
| @@ -467,7 +467,7 @@ This is for project include paths and spp source files." | |||
| 467 | "Set variables local to PROJECT in BUFFER. | 467 | "Set variables local to PROJECT in BUFFER. |
| 468 | Also set up the lexical preprocessor map." | 468 | Also set up the lexical preprocessor map." |
| 469 | (call-next-method) | 469 | (call-next-method) |
| 470 | (when (and (featurep 'semantic/c) (featurep 'semantic/lex-spp)) | 470 | (when (and (featurep 'semantic/bovine/c) (featurep 'semantic/lex-spp)) |
| 471 | (setq semantic-lex-spp-project-macro-symbol-obarray | 471 | (setq semantic-lex-spp-project-macro-symbol-obarray |
| 472 | (semantic-lex-make-spp-table (oref project spp-table))) | 472 | (semantic-lex-make-spp-table (oref project spp-table))) |
| 473 | )) | 473 | )) |
diff --git a/lisp/epa.el b/lisp/epa.el index ea438f0073a..8d77d6938b1 100644 --- a/lisp/epa.el +++ b/lisp/epa.el | |||
| @@ -508,13 +508,12 @@ If ARG is non-nil, mark the key." | |||
| 508 | (set-keymap-parent (current-local-map) widget-keymap) | 508 | (set-keymap-parent (current-local-map) widget-keymap) |
| 509 | (setq epa-exit-buffer-function #'abort-recursive-edit) | 509 | (setq epa-exit-buffer-function #'abort-recursive-edit) |
| 510 | (goto-char (point-min)) | 510 | (goto-char (point-min)) |
| 511 | (pop-to-buffer (current-buffer))) | 511 | (let ((display-buffer-mark-dedicated 'soft)) |
| 512 | (pop-to-buffer (current-buffer)))) | ||
| 512 | (unwind-protect | 513 | (unwind-protect |
| 513 | (progn | 514 | (progn |
| 514 | (recursive-edit) | 515 | (recursive-edit) |
| 515 | (epa--marked-keys)) | 516 | (epa--marked-keys)) |
| 516 | (if (get-buffer-window epa-keys-buffer) | ||
| 517 | (delete-window (get-buffer-window epa-keys-buffer))) | ||
| 518 | (kill-buffer epa-keys-buffer)))) | 517 | (kill-buffer epa-keys-buffer)))) |
| 519 | 518 | ||
| 520 | ;;;###autoload | 519 | ;;;###autoload |
diff --git a/lisp/man.el b/lisp/man.el index df5f4807cec..f448795c1cb 100644 --- a/lisp/man.el +++ b/lisp/man.el | |||
| @@ -759,6 +759,9 @@ POS defaults to `point'." | |||
| 759 | (cond | 759 | (cond |
| 760 | ((eq action 'lambda) | 760 | ((eq action 'lambda) |
| 761 | (not (string-match "([^)]*\\'" string))) | 761 | (not (string-match "([^)]*\\'" string))) |
| 762 | ((equal string "-k") | ||
| 763 | ;; Let SPC (minibuffer-complete-word) insert the space. | ||
| 764 | (complete-with-action action '("-k ") string pred)) | ||
| 762 | (t | 765 | (t |
| 763 | (let ((table (cdr Man-completion-cache)) | 766 | (let ((table (cdr Man-completion-cache)) |
| 764 | (section nil) | 767 | (section nil) |
diff --git a/lisp/vc-bzr.el b/lisp/vc-bzr.el index 0b6f8e6f39e..117712d58fe 100644 --- a/lisp/vc-bzr.el +++ b/lisp/vc-bzr.el | |||
| @@ -999,10 +999,12 @@ stream. Standard error output is discarded." | |||
| 999 | ((string-match "\\`\\(ancestor\\|branch\\|\\(revno:\\)?[-0-9]+:\\):" | 999 | ((string-match "\\`\\(ancestor\\|branch\\|\\(revno:\\)?[-0-9]+:\\):" |
| 1000 | string) | 1000 | string) |
| 1001 | (completion-table-with-context (substring string 0 (match-end 0)) | 1001 | (completion-table-with-context (substring string 0 (match-end 0)) |
| 1002 | 'completion-file-name-table | 1002 | (apply-partially |
| 1003 | 'completion-table-with-predicate | ||
| 1004 | 'completion-file-name-table | ||
| 1005 | 'file-directory-p t) | ||
| 1003 | (substring string (match-end 0)) | 1006 | (substring string (match-end 0)) |
| 1004 | ;; Dropping `pred' for no good reason. | 1007 | pred |
| 1005 | 'file-directory-p | ||
| 1006 | action)) | 1008 | action)) |
| 1007 | ((string-match "\\`\\(before\\):" string) | 1009 | ((string-match "\\`\\(before\\):" string) |
| 1008 | (completion-table-with-context (substring string 0 (match-end 0)) | 1010 | (completion-table-with-context (substring string 0 (match-end 0)) |
diff --git a/src/ChangeLog b/src/ChangeLog index cb41750a62c..b656b0e7dc7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -3,6 +3,11 @@ | |||
| 3 | * sysdep.c (child_setup_tty): Move the non-canonical initialization to | 3 | * sysdep.c (child_setup_tty): Move the non-canonical initialization to |
| 4 | the HAVE_TERMIO where it belongs (bug#6149). | 4 | the HAVE_TERMIO where it belongs (bug#6149). |
| 5 | 5 | ||
| 6 | 2010-05-31 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 7 | |||
| 8 | * keymap.c (Fwhere_is_internal): Fix handling of remapping (in thread | ||
| 9 | of bug#6305). | ||
| 10 | |||
| 6 | 2010-05-30 Eli Zaretskii <eliz@gnu.org> | 11 | 2010-05-30 Eli Zaretskii <eliz@gnu.org> |
| 7 | 12 | ||
| 8 | * bidi.c (bidi_move_to_visually_next): Make sure the sentinel | 13 | * bidi.c (bidi_move_to_visually_next): Make sure the sentinel |
| @@ -123,6 +128,11 @@ | |||
| 123 | 128 | ||
| 124 | * dispextern.h (init_iterator): Sync prototype with changed definition. | 129 | * dispextern.h (init_iterator): Sync prototype with changed definition. |
| 125 | 130 | ||
| 131 | 2010-05-20 enami tsugutomo <tsugutomo.enami@jp.sony.com> | ||
| 132 | |||
| 133 | * s/netbsd.h: If terminfo is found, use it in preference to | ||
| 134 | termcap. (Bug#6190) [Backport from trunk] | ||
| 135 | |||
| 126 | 2010-05-19 Eli Zaretskii <eliz@gnu.org> | 136 | 2010-05-19 Eli Zaretskii <eliz@gnu.org> |
| 127 | 137 | ||
| 128 | Redesign and reimplement bidi-aware edge positions of glyph rows. | 138 | Redesign and reimplement bidi-aware edge positions of glyph rows. |
| @@ -2270,7 +2280,7 @@ | |||
| 2270 | (xg_toggle_notify_cb, xg_set_toolkit_scroll_bar_thumb) | 2280 | (xg_toggle_notify_cb, xg_set_toolkit_scroll_bar_thumb) |
| 2271 | (xg_create_tool_bar): Remove unused variables. | 2281 | (xg_create_tool_bar): Remove unused variables. |
| 2272 | (x_wm_set_size_hint): Move declarations before statements. | 2282 | (x_wm_set_size_hint): Move declarations before statements. |
| 2273 | (xg_create_frame_widgets): Remove variable grav, | 2283 | (xg_create_frame_widgets): Remove variable grav. |
| 2274 | 2284 | ||
| 2275 | 2010-02-21 Chong Yidong <cyd@stupidchicken.com> | 2285 | 2010-02-21 Chong Yidong <cyd@stupidchicken.com> |
| 2276 | 2286 | ||
| @@ -2388,7 +2398,7 @@ | |||
| 2388 | 2398 | ||
| 2389 | * xfns.c (Fx_create_frame): Remove window size matching code from | 2399 | * xfns.c (Fx_create_frame): Remove window size matching code from |
| 2390 | 2010-01-15. | 2400 | 2010-01-15. |
| 2391 | (x_get_current_desktop, x_get_desktop_workarea): Remove | 2401 | (x_get_current_desktop, x_get_desktop_workarea): Remove. |
| 2392 | 2402 | ||
| 2393 | 2010-01-27 Jason Rumney <jasonr@gnu.org> | 2403 | 2010-01-27 Jason Rumney <jasonr@gnu.org> |
| 2394 | 2404 | ||
| @@ -3225,7 +3235,7 @@ | |||
| 3225 | fontconfig settings like hinting. | 3235 | fontconfig settings like hinting. |
| 3226 | (font_load_for_lface): If spec had a name in it, store it in entity. | 3236 | (font_load_for_lface): If spec had a name in it, store it in entity. |
| 3227 | 3237 | ||
| 3228 | * emacs.c (main): Call syms_of_xsettings | 3238 | * emacs.c (main): Call syms_of_xsettings. |
| 3229 | 3239 | ||
| 3230 | * config.in: HAVE_GCONF is new. | 3240 | * config.in: HAVE_GCONF is new. |
| 3231 | 3241 | ||
| @@ -8810,7 +8820,7 @@ | |||
| 8810 | (composition_adjust_point, Fcomposition_get_gstring): New functions. | 8820 | (composition_adjust_point, Fcomposition_get_gstring): New functions. |
| 8811 | (syms_of_composite): Initialize gstring_hash_table, gstrint_work, | 8821 | (syms_of_composite): Initialize gstring_hash_table, gstrint_work, |
| 8812 | and gstring_work_headers. DEFVAR_LISP composition-function-table. | 8822 | and gstring_work_headers. DEFVAR_LISP composition-function-table. |
| 8813 | Defsubr compostion_get_gstring. | 8823 | Defsubr composition_get_gstring. |
| 8814 | 8824 | ||
| 8815 | * dispextern.h (struct glyph): New union u.cmp. Delete the member | 8825 | * dispextern.h (struct glyph): New union u.cmp. Delete the member |
| 8816 | cmp_id. | 8826 | cmp_id. |
diff --git a/src/config.in b/src/config.in index e7122bf665b..9d845027db4 100644 --- a/src/config.in +++ b/src/config.in | |||
| @@ -312,10 +312,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 312 | /* Define to 1 if you have the <kerberos/krb.h> header file. */ | 312 | /* Define to 1 if you have the <kerberos/krb.h> header file. */ |
| 313 | #undef HAVE_KERBEROS_KRB_H | 313 | #undef HAVE_KERBEROS_KRB_H |
| 314 | 314 | ||
| 315 | /* Define to 1 if `e_text' is member of `krb5_error'. */ | 315 | /* Define to 1 if `e_text' is a member of `krb5_error'. */ |
| 316 | #undef HAVE_KRB5_ERROR_E_TEXT | 316 | #undef HAVE_KRB5_ERROR_E_TEXT |
| 317 | 317 | ||
| 318 | /* Define to 1 if `text' is member of `krb5_error'. */ | 318 | /* Define to 1 if `text' is a member of `krb5_error'. */ |
| 319 | #undef HAVE_KRB5_ERROR_TEXT | 319 | #undef HAVE_KRB5_ERROR_TEXT |
| 320 | 320 | ||
| 321 | /* Define to 1 if you have the <krb5.h> header file. */ | 321 | /* Define to 1 if you have the <krb5.h> header file. */ |
| @@ -606,25 +606,25 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 606 | /* Define to 1 if you have the `strsignal' function. */ | 606 | /* Define to 1 if you have the `strsignal' function. */ |
| 607 | #undef HAVE_STRSIGNAL | 607 | #undef HAVE_STRSIGNAL |
| 608 | 608 | ||
| 609 | /* Define to 1 if `ifr_addr' is member of `struct ifreq'. */ | 609 | /* Define to 1 if `ifr_addr' is a member of `struct ifreq'. */ |
| 610 | #undef HAVE_STRUCT_IFREQ_IFR_ADDR | 610 | #undef HAVE_STRUCT_IFREQ_IFR_ADDR |
| 611 | 611 | ||
| 612 | /* Define to 1 if `ifr_broadaddr' is member of `struct ifreq'. */ | 612 | /* Define to 1 if `ifr_broadaddr' is a member of `struct ifreq'. */ |
| 613 | #undef HAVE_STRUCT_IFREQ_IFR_BROADADDR | 613 | #undef HAVE_STRUCT_IFREQ_IFR_BROADADDR |
| 614 | 614 | ||
| 615 | /* Define to 1 if `ifr_flags' is member of `struct ifreq'. */ | 615 | /* Define to 1 if `ifr_flags' is a member of `struct ifreq'. */ |
| 616 | #undef HAVE_STRUCT_IFREQ_IFR_FLAGS | 616 | #undef HAVE_STRUCT_IFREQ_IFR_FLAGS |
| 617 | 617 | ||
| 618 | /* Define to 1 if `ifr_hwaddr' is member of `struct ifreq'. */ | 618 | /* Define to 1 if `ifr_hwaddr' is a member of `struct ifreq'. */ |
| 619 | #undef HAVE_STRUCT_IFREQ_IFR_HWADDR | 619 | #undef HAVE_STRUCT_IFREQ_IFR_HWADDR |
| 620 | 620 | ||
| 621 | /* Define to 1 if `ifr_netmask' is member of `struct ifreq'. */ | 621 | /* Define to 1 if `ifr_netmask' is a member of `struct ifreq'. */ |
| 622 | #undef HAVE_STRUCT_IFREQ_IFR_NETMASK | 622 | #undef HAVE_STRUCT_IFREQ_IFR_NETMASK |
| 623 | 623 | ||
| 624 | /* Define to 1 if `n_un.n_name' is member of `struct nlist'. */ | 624 | /* Define to 1 if `n_un.n_name' is a member of `struct nlist'. */ |
| 625 | #undef HAVE_STRUCT_NLIST_N_UN_N_NAME | 625 | #undef HAVE_STRUCT_NLIST_N_UN_N_NAME |
| 626 | 626 | ||
| 627 | /* Define to 1 if `tm_zone' is member of `struct tm'. */ | 627 | /* Define to 1 if `tm_zone' is a member of `struct tm'. */ |
| 628 | #undef HAVE_STRUCT_TM_TM_ZONE | 628 | #undef HAVE_STRUCT_TM_TM_ZONE |
| 629 | 629 | ||
| 630 | /* Define to 1 if `struct utimbuf' is declared by <utime.h>. */ | 630 | /* Define to 1 if `struct utimbuf' is declared by <utime.h>. */ |
| @@ -853,6 +853,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 853 | /* Define to the one symbol short name of this package. */ | 853 | /* Define to the one symbol short name of this package. */ |
| 854 | #undef PACKAGE_TARNAME | 854 | #undef PACKAGE_TARNAME |
| 855 | 855 | ||
| 856 | /* Define to the home page for this package. */ | ||
| 857 | #undef PACKAGE_URL | ||
| 858 | |||
| 856 | /* Define to the version of this package. */ | 859 | /* Define to the version of this package. */ |
| 857 | #undef PACKAGE_VERSION | 860 | #undef PACKAGE_VERSION |
| 858 | 861 | ||
| @@ -912,6 +915,28 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 912 | /* Define to 1 if using the Motif X toolkit. */ | 915 | /* Define to 1 if using the Motif X toolkit. */ |
| 913 | #undef USE_MOTIF | 916 | #undef USE_MOTIF |
| 914 | 917 | ||
| 918 | /* Enable extensions on AIX 3, Interix. */ | ||
| 919 | #ifndef _ALL_SOURCE | ||
| 920 | # undef _ALL_SOURCE | ||
| 921 | #endif | ||
| 922 | /* Enable GNU extensions on systems that have them. */ | ||
| 923 | #ifndef _GNU_SOURCE | ||
| 924 | # undef _GNU_SOURCE | ||
| 925 | #endif | ||
| 926 | /* Enable threading extensions on Solaris. */ | ||
| 927 | #ifndef _POSIX_PTHREAD_SEMANTICS | ||
| 928 | # undef _POSIX_PTHREAD_SEMANTICS | ||
| 929 | #endif | ||
| 930 | /* Enable extensions on HP NonStop. */ | ||
| 931 | #ifndef _TANDEM_SOURCE | ||
| 932 | # undef _TANDEM_SOURCE | ||
| 933 | #endif | ||
| 934 | /* Enable general extensions on Solaris. */ | ||
| 935 | #ifndef __EXTENSIONS__ | ||
| 936 | # undef __EXTENSIONS__ | ||
| 937 | #endif | ||
| 938 | |||
| 939 | |||
| 915 | /* Define to 1 if we should use toolkit scroll bars. */ | 940 | /* Define to 1 if we should use toolkit scroll bars. */ |
| 916 | #undef USE_TOOLKIT_SCROLL_BARS | 941 | #undef USE_TOOLKIT_SCROLL_BARS |
| 917 | 942 | ||
| @@ -947,28 +972,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 947 | /* Define to 1 if you need to in order for `stat' and other things to work. */ | 972 | /* Define to 1 if you need to in order for `stat' and other things to work. */ |
| 948 | #undef _POSIX_SOURCE | 973 | #undef _POSIX_SOURCE |
| 949 | 974 | ||
| 950 | /* Enable extensions on AIX 3, Interix. */ | ||
| 951 | #ifndef _ALL_SOURCE | ||
| 952 | # undef _ALL_SOURCE | ||
| 953 | #endif | ||
| 954 | /* Enable GNU extensions on systems that have them. */ | ||
| 955 | #ifndef _GNU_SOURCE | ||
| 956 | # undef _GNU_SOURCE | ||
| 957 | #endif | ||
| 958 | /* Enable threading extensions on Solaris. */ | ||
| 959 | #ifndef _POSIX_PTHREAD_SEMANTICS | ||
| 960 | # undef _POSIX_PTHREAD_SEMANTICS | ||
| 961 | #endif | ||
| 962 | /* Enable extensions on HP NonStop. */ | ||
| 963 | #ifndef _TANDEM_SOURCE | ||
| 964 | # undef _TANDEM_SOURCE | ||
| 965 | #endif | ||
| 966 | /* Enable general extensions on Solaris. */ | ||
| 967 | #ifndef __EXTENSIONS__ | ||
| 968 | # undef __EXTENSIONS__ | ||
| 969 | #endif | ||
| 970 | |||
| 971 | |||
| 972 | /* Define to rpl_ if the getopt replacement functions and variables should be | 975 | /* Define to rpl_ if the getopt replacement functions and variables should be |
| 973 | used. */ | 976 | used. */ |
| 974 | #undef __GETOPT_PREFIX | 977 | #undef __GETOPT_PREFIX |
diff --git a/src/keymap.c b/src/keymap.c index 88e0687272f..53b6795d623 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -2829,16 +2829,16 @@ remapped command in the returned list. */) | |||
| 2829 | Lisp_Object found = Qnil; | 2829 | Lisp_Object found = Qnil; |
| 2830 | /* 1 means ignore all menu bindings entirely. */ | 2830 | /* 1 means ignore all menu bindings entirely. */ |
| 2831 | int nomenus = !NILP (firstonly) && !EQ (firstonly, Qnon_ascii); | 2831 | int nomenus = !NILP (firstonly) && !EQ (firstonly, Qnon_ascii); |
| 2832 | struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5; | 2832 | struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5, gcpro6; |
| 2833 | /* List of sequences found via remapping. Keep them in a separate | 2833 | /* List of sequences found via remapping. Keep them in a separate |
| 2834 | variable, so as to push them later, since we prefer | 2834 | variable, so as to push them later, since we prefer |
| 2835 | non-remapped binding. */ | 2835 | non-remapped binding. */ |
| 2836 | Lisp_Object remapped_sequences = Qnil; | 2836 | Lisp_Object remapped_sequences = Qnil; |
| 2837 | /* Whether or not we're handling remapped sequences. This is needed | 2837 | /* Whether or not we're handling remapped sequences. This is needed |
| 2838 | because remapping is not done recursively by Fcommand_remapping: you | 2838 | because remapping is not done recursively by Fcommand_remapping: you |
| 2839 | can't remap and remapped command. */ | 2839 | can't remap a remapped command. */ |
| 2840 | int remapped = 0; | 2840 | int remapped = 0; |
| 2841 | Lisp_Object tem; | 2841 | Lisp_Object tem = Qnil; |
| 2842 | 2842 | ||
| 2843 | /* Refresh the C version of the modifier preference. */ | 2843 | /* Refresh the C version of the modifier preference. */ |
| 2844 | where_is_preferred_modifier | 2844 | where_is_preferred_modifier |
| @@ -2852,17 +2852,25 @@ remapped command in the returned list. */) | |||
| 2852 | else | 2852 | else |
| 2853 | keymaps = Fcurrent_active_maps (Qnil, Qnil); | 2853 | keymaps = Fcurrent_active_maps (Qnil, Qnil); |
| 2854 | 2854 | ||
| 2855 | GCPRO5 (definition, keymaps, found, sequences, remapped_sequences); | 2855 | GCPRO6 (definition, keymaps, found, sequences, remapped_sequences, tem); |
| 2856 | 2856 | ||
| 2857 | /* If this command is remapped, then it has no key bindings of its own. | 2857 | tem = Fcommand_remapping (definition, Qnil, keymaps); |
| 2858 | FIXME: Actually, this is not quite right: if A is remapped to | 2858 | /* If `definition' is remapped to tem', then OT1H no key will run |
| 2859 | `definition', then bindings to A will actually bind the key to | 2859 | that command (since they will run `tem' instead), so we should |
| 2860 | `definition' despite the remapping from `definition' to something else. | 2860 | return nil; but OTOH all keys bound to `definition' (or to `tem') |
| 2861 | Another corner case is if `definition' is remapped to itself. */ | 2861 | will run the same command. |
| 2862 | if (NILP (no_remap) | 2862 | So for menu-shortcut purposes, we want to find all the keys bound (maybe |
| 2863 | && SYMBOLP (definition) | 2863 | via remapping) to `tem'. But for the purpose of finding the keys that |
| 2864 | && !NILP (Fcommand_remapping (definition, Qnil, keymaps))) | 2864 | run `definition', then we'd want to just return nil. |
| 2865 | RETURN_UNGCPRO (Qnil); | 2865 | We choose to make it work right for menu-shortcuts, since it's the most |
| 2866 | common use. | ||
| 2867 | Known bugs: if you remap switch-to-buffer to toto, C-h f switch-to-buffer | ||
| 2868 | will tell you that switch-to-buffer is bound to C-x b even though C-x b | ||
| 2869 | will run toto instead. And if `toto' is itself remapped to forward-char, | ||
| 2870 | then C-h f toto will tell you that it's bound to C-f even though C-f does | ||
| 2871 | not run toto and it won't tell you that C-x b does run toto. */ | ||
| 2872 | if (NILP (no_remap) && !NILP (tem)) | ||
| 2873 | definition = tem; | ||
| 2866 | 2874 | ||
| 2867 | if (SYMBOLP (definition) | 2875 | if (SYMBOLP (definition) |
| 2868 | && !NILP (firstonly) | 2876 | && !NILP (firstonly) |