aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2012-04-10 14:59:42 -0700
committerPaul Eggert2012-04-10 14:59:42 -0700
commit1530927cb9a3dca7c0f41975f2e9e62ef8be92a2 (patch)
tree698ded24fc8f63cbbde51a4a5953ea6220e8acb3 /src
parent271e61eb60721546bf373531852a88f14b840d12 (diff)
parent2a718f6fbc7c06bed37d0c8441014b90f9c06b0e (diff)
downloademacs-1530927cb9a3dca7c0f41975f2e9e62ef8be92a2.tar.gz
emacs-1530927cb9a3dca7c0f41975f2e9e62ef8be92a2.zip
Merge from trunk.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog21
-rw-r--r--src/keyboard.c21
-rw-r--r--src/w32.c10
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 @@
12012-04-09 Paul Eggert <eggert@cs.ucla.edu> 12012-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
142012-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
202012-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
142012-04-09 Glenn Morris <rgm@gnu.org> 252012-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. */
10924static 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,
diff --git a/src/w32.c b/src/w32.c
index 3d3d33453c6..248a91463e8 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -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 }