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 /src | |
| parent | 06ac62b4db7cf64c9d65ac55bdfcefdf478e20b5 (diff) | |
| parent | feceda26100f1b5712a85aadf0c428a1507b538d (diff) | |
| download | emacs-fd67a7000ee9e118b426df6ad779f3c86d4fe320.tar.gz emacs-fd67a7000ee9e118b426df6ad779f3c86d4fe320.zip | |
Merge from emacs-23
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 18 | ||||
| -rw-r--r-- | src/config.in | 65 | ||||
| -rw-r--r-- | src/keymap.c | 36 |
3 files changed, 70 insertions, 49 deletions
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) |