diff options
| author | Paul Eggert | 2012-04-10 14:59:42 -0700 |
|---|---|---|
| committer | Paul Eggert | 2012-04-10 14:59:42 -0700 |
| commit | 1530927cb9a3dca7c0f41975f2e9e62ef8be92a2 (patch) | |
| tree | 698ded24fc8f63cbbde51a4a5953ea6220e8acb3 /src | |
| parent | 271e61eb60721546bf373531852a88f14b840d12 (diff) | |
| parent | 2a718f6fbc7c06bed37d0c8441014b90f9c06b0e (diff) | |
| download | emacs-1530927cb9a3dca7c0f41975f2e9e62ef8be92a2.tar.gz emacs-1530927cb9a3dca7c0f41975f2e9e62ef8be92a2.zip | |
Merge from trunk.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 21 | ||||
| -rw-r--r-- | src/keyboard.c | 21 | ||||
| -rw-r--r-- | src/w32.c | 10 |
3 files changed, 42 insertions, 10 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 5abf92bc4e1..2b6a0b2246e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | 2012-04-09 Paul Eggert <eggert@cs.ucla.edu> | 1 | 2012-04-10 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 2 | ||
| 3 | configure: new option --enable-gcc-warnings (Bug#11207) | 3 | configure: new option --enable-gcc-warnings (Bug#11207) |
| 4 | * Makefile.in (C_WARNINGS_SWITCH): Remove. | 4 | * Makefile.in (C_WARNINGS_SWITCH): Remove. |
| @@ -11,6 +11,17 @@ | |||
| 11 | the Emacs and Gnulib regex code is merged. | 11 | the Emacs and Gnulib regex code is merged. |
| 12 | (xmalloc, xrealloc): Now static. | 12 | (xmalloc, xrealloc): Now static. |
| 13 | 13 | ||
| 14 | 2012-04-10 "Jason S. Cornez" <jcornez@ravenpack.com> (tiny change) | ||
| 15 | |||
| 16 | * keyboard.c: Override inhibit-quit after the third C-g (bug#6585). | ||
| 17 | (force_quit_count): New var. | ||
| 18 | (handle_interrupt): Use it. | ||
| 19 | |||
| 20 | 2012-04-10 Juanma Barranquero <lekktu@gmail.com> | ||
| 21 | |||
| 22 | * w32.c (w32_delayed_load): Record the full path of the library | ||
| 23 | being loaded (bug#10424). | ||
| 24 | |||
| 14 | 2012-04-09 Glenn Morris <rgm@gnu.org> | 25 | 2012-04-09 Glenn Morris <rgm@gnu.org> |
| 15 | 26 | ||
| 16 | * doc.c (Fsnarf_documentation): Check variables, functions are bound, | 27 | * doc.c (Fsnarf_documentation): Check variables, functions are bound, |
| @@ -25,8 +36,8 @@ | |||
| 25 | * process.h: Add integer `gnutls_handshakes_tried' member to | 36 | * process.h: Add integer `gnutls_handshakes_tried' member to |
| 26 | process struct. | 37 | process struct. |
| 27 | 38 | ||
| 28 | * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit. Add | 39 | * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit. |
| 29 | convenience `GNUTLS_LOG2i' macro. | 40 | Add convenience `GNUTLS_LOG2i' macro. |
| 30 | 41 | ||
| 31 | * gnutls.c (gnutls_log_function2i): Convenience log function. | 42 | * gnutls.c (gnutls_log_function2i): Convenience log function. |
| 32 | (emacs_gnutls_read): Use new log functions, | 43 | (emacs_gnutls_read): Use new log functions, |
| @@ -112,8 +123,8 @@ | |||
| 112 | (xml_cleanup_parser): New function, export for fn_xmlCleanupParser. | 123 | (xml_cleanup_parser): New function, export for fn_xmlCleanupParser. |
| 113 | Calls xmlCleanupParser only if libxml2 was loaded (or statically | 124 | Calls xmlCleanupParser only if libxml2 was loaded (or statically |
| 114 | linked in). | 125 | linked in). |
| 115 | (Flibxml_parse_html_region, Flibxml_parse_xml_region): Call | 126 | (Flibxml_parse_html_region, Flibxml_parse_xml_region): |
| 116 | init_libxml2_functions before calling libxml2 functions. | 127 | Call init_libxml2_functions before calling libxml2 functions. |
| 117 | (syms_of_xml) <Qlibxml2_dll>: DEFSYM it. | 128 | (syms_of_xml) <Qlibxml2_dll>: DEFSYM it. |
| 118 | 129 | ||
| 119 | * emacs.c: Don't include libxml/parser.h. | 130 | * emacs.c: Don't include libxml/parser.h. |
diff --git a/src/keyboard.c b/src/keyboard.c index 50b2ade8ee4..9ff19d61d41 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -10213,7 +10213,7 @@ DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector, | |||
| 10213 | 10213 | ||
| 10214 | memset (keybuf, 0, sizeof keybuf); | 10214 | memset (keybuf, 0, sizeof keybuf); |
| 10215 | GCPRO1 (keybuf[0]); | 10215 | GCPRO1 (keybuf[0]); |
| 10216 | gcpro1.nvars = (sizeof keybuf/sizeof (keybuf[0])); | 10216 | gcpro1.nvars = (sizeof keybuf / sizeof (keybuf[0])); |
| 10217 | 10217 | ||
| 10218 | if (NILP (continue_echo)) | 10218 | if (NILP (continue_echo)) |
| 10219 | { | 10219 | { |
| @@ -10227,7 +10227,7 @@ DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector, | |||
| 10227 | cancel_hourglass (); | 10227 | cancel_hourglass (); |
| 10228 | #endif | 10228 | #endif |
| 10229 | 10229 | ||
| 10230 | i = read_key_sequence (keybuf, (sizeof keybuf/sizeof (keybuf[0])), | 10230 | i = read_key_sequence (keybuf, (sizeof keybuf / sizeof (keybuf[0])), |
| 10231 | prompt, ! NILP (dont_downcase_last), | 10231 | prompt, ! NILP (dont_downcase_last), |
| 10232 | ! NILP (can_return_switch_frame), 0); | 10232 | ! NILP (can_return_switch_frame), 0); |
| 10233 | 10233 | ||
| @@ -10918,6 +10918,11 @@ interrupt_signal (int signalnum) /* If we don't have an argument, some */ | |||
| 10918 | errno = old_errno; | 10918 | errno = old_errno; |
| 10919 | } | 10919 | } |
| 10920 | 10920 | ||
| 10921 | /* If Emacs is stuck because `inhibit-quit' is true, then keep track | ||
| 10922 | of the number of times C-g has been requested. If C-g is pressed | ||
| 10923 | enough times, then quit anyway. See bug#6585. */ | ||
| 10924 | static int force_quit_count; | ||
| 10925 | |||
| 10921 | /* This routine is called at interrupt level in response to C-g. | 10926 | /* This routine is called at interrupt level in response to C-g. |
| 10922 | 10927 | ||
| 10923 | It is called from the SIGINT handler or kbd_buffer_store_event. | 10928 | It is called from the SIGINT handler or kbd_buffer_store_event. |
| @@ -11036,8 +11041,16 @@ handle_interrupt (void) | |||
| 11036 | UNGCPRO; | 11041 | UNGCPRO; |
| 11037 | } | 11042 | } |
| 11038 | else | 11043 | else |
| 11039 | /* Else request quit when it's safe */ | 11044 | { /* Else request quit when it's safe. */ |
| 11040 | Vquit_flag = Qt; | 11045 | if (NILP (Vquit_flag)) |
| 11046 | force_quit_count = 0; | ||
| 11047 | if (++force_quit_count == 3) | ||
| 11048 | { | ||
| 11049 | immediate_quit = 1; | ||
| 11050 | Vinhibit_quit = Qnil; | ||
| 11051 | } | ||
| 11052 | Vquit_flag = Qt; | ||
| 11053 | } | ||
| 11041 | } | 11054 | } |
| 11042 | 11055 | ||
| 11043 | /* TODO: The longjmp in this call throws the NS event loop integration off, | 11056 | /* TODO: The longjmp in this call throws the NS event loop integration off, |
| @@ -5816,7 +5816,15 @@ w32_delayed_load (Lisp_Object libraries, Lisp_Object library_id) | |||
| 5816 | CHECK_STRING_CAR (dlls); | 5816 | CHECK_STRING_CAR (dlls); |
| 5817 | if ((library_dll = LoadLibrary (SDATA (XCAR (dlls))))) | 5817 | if ((library_dll = LoadLibrary (SDATA (XCAR (dlls))))) |
| 5818 | { | 5818 | { |
| 5819 | found = XCAR (dlls); | 5819 | char name[MAX_PATH]; |
| 5820 | DWORD len; | ||
| 5821 | |||
| 5822 | len = GetModuleFileNameA (library_dll, name, sizeof (name)); | ||
| 5823 | found = Fcons (XCAR (dlls), | ||
| 5824 | (len > 0) | ||
| 5825 | /* Possibly truncated */ | ||
| 5826 | ? make_specified_string (name, -1, len, 1) | ||
| 5827 | : Qnil); | ||
| 5820 | break; | 5828 | break; |
| 5821 | } | 5829 | } |
| 5822 | } | 5830 | } |