aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2010-05-31 22:34:49 -0400
committerStefan Monnier2010-05-31 22:34:49 -0400
commitfd67a7000ee9e118b426df6ad779f3c86d4fe320 (patch)
tree9f39d84fb5eeee28ec6670794980c075ebe51b32 /src
parent06ac62b4db7cf64c9d65ac55bdfcefdf478e20b5 (diff)
parentfeceda26100f1b5712a85aadf0c428a1507b538d (diff)
downloademacs-fd67a7000ee9e118b426df6ad779f3c86d4fe320.tar.gz
emacs-fd67a7000ee9e118b426df6ad779f3c86d4fe320.zip
Merge from emacs-23
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog18
-rw-r--r--src/config.in65
-rw-r--r--src/keymap.c36
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
62010-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
62010-05-30 Eli Zaretskii <eliz@gnu.org> 112010-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
1312010-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
1262010-05-19 Eli Zaretskii <eliz@gnu.org> 1362010-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
22752010-02-21 Chong Yidong <cyd@stupidchicken.com> 22852010-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
23932010-01-27 Jason Rumney <jasonr@gnu.org> 24032010-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)