Now on revision 111586. ------------------------------------------------------------ revno: 111586 committer: Paul Eggert branch nick: trunk timestamp: Tue 2013-01-22 17:51:49 -0800 message: Undo stray change committed by mistake. diff: === modified file 'src/unexmacosx.c' --- src/unexmacosx.c 2013-01-23 01:47:44 +0000 +++ src/unexmacosx.c 2013-01-23 01:51:49 +0000 @@ -437,7 +437,7 @@ } -#define MAX_UNEXEC_REGIONS 800 +#define MAX_UNEXEC_REGIONS 400 static int num_unexec_regions; typedef struct { ------------------------------------------------------------ revno: 111585 committer: Paul Eggert branch nick: trunk timestamp: Tue 2013-01-22 17:47:44 -0800 message: Merge from gnulib. diff: === modified file 'ChangeLog' --- ChangeLog 2013-01-19 20:38:13 +0000 +++ ChangeLog 2013-01-23 01:47:44 +0000 @@ -1,3 +1,8 @@ +2013-01-23 Paul Eggert + + Merge from gnulib, incorporating: + 2013-01-16 unistd: port to recent mingw + 2013-01-19 Glenn Morris * Makefile.in (install-arch-indep): Put back a chmod that was === modified file 'lib/unistd.in.h' --- lib/unistd.in.h 2013-01-10 02:19:44 +0000 +++ lib/unistd.in.h 2013-01-23 01:47:44 +0000 @@ -14,29 +14,13 @@ You should have received a copy of the GNU General Public License along with this program; if not, see . */ +#ifndef _@GUARD_PREFIX@_UNISTD_H + #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ -/* Special invocation convention: - - On mingw, several headers, including , include , - but we need to ensure that both the system and - are completely included before we replace gethostname. */ -#if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ \ - && !defined _GL_WINSOCK2_H_WITNESS && defined _WINSOCK2_H -/* is being indirectly included for the first time from - ; avoid declaring any overrides. */ -# if @HAVE_UNISTD_H@ -# @INCLUDE_NEXT@ @NEXT_UNISTD_H@ -# else -# error unexpected; report this to bug-gnulib@gnu.org -# endif -# define _GL_WINSOCK2_H_WITNESS - -/* Normal invocation. */ -#elif !defined _@GUARD_PREFIX@_UNISTD_H - /* The include_next requires a split double-inclusion guard. */ #if @HAVE_UNISTD_H@ # @INCLUDE_NEXT@ @NEXT_UNISTD_H@ === modified file 'src/unexmacosx.c' --- src/unexmacosx.c 2013-01-01 09:11:05 +0000 +++ src/unexmacosx.c 2013-01-23 01:47:44 +0000 @@ -437,7 +437,7 @@ } -#define MAX_UNEXEC_REGIONS 400 +#define MAX_UNEXEC_REGIONS 800 static int num_unexec_regions; typedef struct { ------------------------------------------------------------ revno: 111584 committer: Dmitry Antipov branch nick: trunk timestamp: Tue 2013-01-22 15:48:00 +0400 message: * window.h (struct window): Change window_end_valid member from Lisp_Object to a bitfield. Adjust comments. (wset_window_end_valid): Remove. * window.c (adjust_window_count): Clear window_end_valid. (Fwindow_end): Adjust user. Remove ancient #if 0 code. (Fwindow_line_height, set_window_buffer, Frecenter) (Fsplit_window_internal, Fdelete_other_windows_internal) (Fset_window_fringes, Fset_window_scroll_bars): Adjust users. * dispnew.c (adjust_glyph_matrix, clear_window_matrices): Likewise. * xdisp.c (check_window_end, reconsider_clip_changes) (redisplay_internal, mark_window_display_accurate_1, redisplay_window) (try_window, try_window_reusing_current_matrix, note_mouse_highlight) (find_first_unchanged_at_end_row, try_window_id): Likewise. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-01-22 11:41:21 +0000 +++ src/ChangeLog 2013-01-22 11:48:00 +0000 @@ -1,5 +1,21 @@ 2013-01-22 Dmitry Antipov + * window.h (struct window): Change window_end_valid member from + Lisp_Object to a bitfield. Adjust comments. + (wset_window_end_valid): Remove. + * window.c (adjust_window_count): Clear window_end_valid. + (Fwindow_end): Adjust user. Remove ancient #if 0 code. + (Fwindow_line_height, set_window_buffer, Frecenter) + (Fsplit_window_internal, Fdelete_other_windows_internal) + (Fset_window_fringes, Fset_window_scroll_bars): Adjust users. + * dispnew.c (adjust_glyph_matrix, clear_window_matrices): Likewise. + * xdisp.c (check_window_end, reconsider_clip_changes) + (redisplay_internal, mark_window_display_accurate_1, redisplay_window) + (try_window, try_window_reusing_current_matrix, note_mouse_highlight) + (find_first_unchanged_at_end_row, try_window_id): Likewise. + +2013-01-22 Dmitry Antipov + * xdisp.c (mark_window_display_accurate): Simplify the loop assuming that the only one of vchild, hchild or buffer window slots is non-nil. Call mark_window_display_accurate_1 for === modified file 'src/dispnew.c' --- src/dispnew.c 2013-01-02 16:13:04 +0000 +++ src/dispnew.c 2013-01-22 11:48:00 +0000 @@ -607,7 +607,7 @@ are invalidated below. */ if (INTEGERP (w->window_end_vpos) && XFASTINT (w->window_end_vpos) >= i) - wset_window_end_valid (w, Qnil); + w->window_end_valid = 0; while (i < matrix->nrows) matrix->rows[i++].enabled_p = 0; @@ -862,7 +862,7 @@ else { clear_glyph_matrix (w->current_matrix); - wset_window_end_valid (w, Qnil); + w->window_end_valid = 0; } } === modified file 'src/window.c' --- src/window.c 2013-01-11 23:08:55 +0000 +++ src/window.c 2013-01-22 11:48:00 +0000 @@ -286,6 +286,8 @@ b = b->base_buffer; b->window_count += arg; eassert (b->window_count >= 0); + /* Catch redisplay's attention. */ + w->window_end_valid = 0; } } @@ -1489,17 +1491,8 @@ CHECK_BUFFER (buf); b = XBUFFER (buf); -#if 0 /* This change broke some things. We should make it later. */ - /* If we don't know the end position, return nil. - The user can compute it with vertical-motion if he wants to. - It would be nicer to do it automatically, - but that's so slow that it would probably bother people. */ - if (NILP (w->window_end_valid)) - return Qnil; -#endif - if (! NILP (update) - && (windows_or_buffers_changed || NILP (w->window_end_valid)) + && (windows_or_buffers_changed || !w->window_end_valid) && !noninteractive) { struct text_pos startp; @@ -1706,7 +1699,7 @@ b = XBUFFER (w->buffer); /* Fail if current matrix is not up-to-date. */ - if (NILP (w->window_end_valid) + if (!w->window_end_valid || current_buffer->clip_changed || current_buffer->prevent_redisplay_optimizations_p || w->last_modified < BUF_MODIFF (b) @@ -2038,7 +2031,7 @@ n->pseudo_window_p = 0; wset_window_end_vpos (n, make_number (0)); wset_window_end_pos (n, make_number (0)); - wset_window_end_valid (n, Qnil); + n->window_end_valid = 0; n->frozen_window_start_p = 0; } @@ -2973,7 +2966,7 @@ pos = *vmotion (startpos, -top, w); set_marker_both (w->start, w->buffer, pos.bufpos, pos.bytepos); - wset_window_end_valid (w, Qnil); + w->window_end_valid = 0; w->start_at_line_beg = (pos.bytepos == BEGV_BYTE || FETCH_BYTE (pos.bytepos - 1) == '\n'); /* We need to do this, so that the window-scroll-functions @@ -3189,7 +3182,7 @@ wset_window_end_pos (w, make_number (0)); wset_window_end_vpos (w, make_number (0)); memset (&w->last_cursor, 0, sizeof w->last_cursor); - wset_window_end_valid (w, Qnil); + if (!(keep_margins_p && samebuf)) { /* If we're not actually changing the buffer, don't reset hscroll and vscroll. This case happens for example when called from @@ -3958,7 +3951,7 @@ wset_next (o, new); } - wset_window_end_valid (n, Qnil); + n->window_end_valid = 0; memset (&n->last_cursor, 0, sizeof n->last_cursor); /* Get special geometry settings from reference window. */ @@ -5368,7 +5361,7 @@ /* Set the new window start. */ set_marker_both (w->start, w->buffer, charpos, bytepos); - wset_window_end_valid (w, Qnil); + w->window_end_valid = 0; w->optional_new_start = 1; @@ -6319,7 +6312,7 @@ adjust_window_margins (w); clear_glyph_matrix (w->current_matrix); - wset_window_end_valid (w, Qnil); + w->window_end_valid = 0; ++windows_or_buffers_changed; adjust_glyphs (XFRAME (WINDOW_FRAME (w))); @@ -6389,7 +6382,7 @@ adjust_window_margins (w); clear_glyph_matrix (w->current_matrix); - wset_window_end_valid (w, Qnil); + w->window_end_valid = 0; ++windows_or_buffers_changed; adjust_glyphs (XFRAME (WINDOW_FRAME (w))); === modified file 'src/window.h' --- src/window.h 2013-01-02 16:13:04 +0000 +++ src/window.h 2013-01-22 11:48:00 +0000 @@ -175,17 +175,13 @@ no scroll bar. A value of t means use frame value. */ Lisp_Object vertical_scroll_bar_type; - /* Z - the buffer position of the last glyph in the current matrix - of W. Only valid if WINDOW_END_VALID is not nil. */ + /* Z - the buffer position of the last glyph in the current + matrix of W. Only valid if window_end_valid is nonzero. */ Lisp_Object window_end_pos; + /* Glyph matrix row of the last glyph in the current matrix - of W. Only valid if WINDOW_END_VALID is not nil. */ + of W. Only valid if window_end_valid is nonzero. */ Lisp_Object window_end_vpos; - /* t if window_end_pos is truly valid. - This is nil if nontrivial redisplay is preempted - since in that case the frame image that window_end_pos - did not get onto the frame. */ - Lisp_Object window_end_valid; /* Display-table to use for displaying chars in this window. Nil means use the buffer's own display-table. */ @@ -339,12 +335,17 @@ Otherwise draw them between margin areas and text. */ unsigned fringes_outside_margins : 1; + /* Nonzero if window_end_pos and window_end_vpos are truly valid. + This is zero if nontrivial redisplay is preempted since in that case + the frame image that window_end_pos did not get onto the frame. */ + unsigned window_end_valid : 1; + /* Amount by which lines of this window are scrolled in y-direction (smooth scrolling). */ int vscroll; - /* Z_BYTE - Buffer position of the last glyph in the current matrix of W. - Should be nonnegative, and only valid if window_end_valid is not nil. */ + /* Z_BYTE - buffer position of the last glyph in the current matrix of W. + Should be nonnegative, and only valid if window_end_valid is nonzero. */ ptrdiff_t window_end_bytepos; }; @@ -401,11 +402,6 @@ w->window_end_pos = val; } WINDOW_INLINE void -wset_window_end_valid (struct window *w, Lisp_Object val) -{ - w->window_end_valid = val; -} -WINDOW_INLINE void wset_window_end_vpos (struct window *w, Lisp_Object val) { w->window_end_vpos = val; === modified file 'src/xdisp.c' --- src/xdisp.c 2013-01-22 11:41:21 +0000 +++ src/xdisp.c 2013-01-22 11:48:00 +0000 @@ -2539,8 +2539,7 @@ static void check_window_end (struct window *w) { - if (!MINI_WINDOW_P (w) - && !NILP (w->window_end_valid)) + if (!MINI_WINDOW_P (w) && w->window_end_valid) { struct glyph_row *row; eassert ((row = MATRIX_ROW (w->current_matrix, @@ -12922,10 +12921,10 @@ reconsider_clip_changes (struct window *w, struct buffer *b) { if (b->clip_changed - && !NILP (w->window_end_valid) - && w->current_matrix->buffer == b - && w->current_matrix->zv == BUF_ZV (b) - && w->current_matrix->begv == BUF_BEGV (b)) + && w->window_end_valid + && w->current_matrix->buffer == b + && w->current_matrix->zv == BUF_ZV (b) + && w->current_matrix->begv == BUF_BEGV (b)) b->clip_changed = 0; /* If display wasn't paused, and W is not a tool bar window, see if @@ -12933,8 +12932,7 @@ we set b->clip_changed to 1 to force updating the screen. If b->clip_changed has already been set to 1, we can skip this check. */ - if (!b->clip_changed - && BUFFERP (w->buffer) && !NILP (w->window_end_valid)) + if (!b->clip_changed && BUFFERP (w->buffer) && w->window_end_valid) { ptrdiff_t pt; @@ -13328,7 +13326,7 @@ else if (XFASTINT (w->window_end_vpos) == this_line_vpos && this_line_vpos > 0) wset_window_end_vpos (w, make_number (this_line_vpos - 1)); - wset_window_end_valid (w, Qnil); + w->window_end_valid = 0; /* Update hint: No need to try to scroll in update_window. */ w->desired_matrix->no_scrolling_p = 1; @@ -13758,7 +13756,7 @@ else w->last_point = marker_position (w->pointm); - wset_window_end_valid (w, w->buffer); + w->window_end_valid = 1; w->update_mode_line = 0; } } @@ -15460,7 +15458,7 @@ set_buffer_internal_1 (XBUFFER (w->buffer)); current_matrix_up_to_date_p - = (!NILP (w->window_end_valid) + = (w->window_end_valid && !current_buffer->clip_changed && !current_buffer->prevent_redisplay_optimizations_p && !window_outdated (w)); @@ -15483,7 +15481,7 @@ specbind (Qinhibit_point_motion_hooks, Qt); buffer_unchanged_p - = (!NILP (w->window_end_valid) + = (w->window_end_valid && !current_buffer->clip_changed && !window_outdated (w)); @@ -15496,7 +15494,7 @@ if (XMARKER (w->start)->buffer == current_buffer) compute_window_start_on_continuation_line (w); - wset_window_end_valid (w, Qnil); + w->window_end_valid = 0; } /* Some sanity checks. */ @@ -15585,7 +15583,7 @@ w->force_start = 0; w->vscroll = 0; - wset_window_end_valid (w, Qnil); + w->window_end_valid = 0; /* Forget any recorded base line for line number display. */ if (!buffer_unchanged_p) @@ -16034,8 +16032,7 @@ line.) */ if (w->cursor.vpos < 0) { - if (!NILP (w->window_end_valid) - && PT >= Z - XFASTINT (w->window_end_pos)) + if (w->window_end_valid && PT >= Z - XFASTINT (w->window_end_pos)) { clear_glyph_matrix (w->desired_matrix); move_it_by_lines (&it, 1); @@ -16352,7 +16349,7 @@ } /* But that is not valid info until redisplay finishes. */ - wset_window_end_valid (w, Qnil); + w->window_end_valid = 0; return 1; } @@ -16599,7 +16596,7 @@ wset_window_end_pos (w, make_number (Z - ZV)); wset_window_end_vpos (w, make_number (0)); } - wset_window_end_valid (w, Qnil); + w->window_end_valid = 0; /* Update hint: don't try scrolling again in update_window. */ w->desired_matrix->no_scrolling_p = 1; @@ -16797,7 +16794,7 @@ (w, make_number (XFASTINT (w->window_end_vpos) - nrows_scrolled)); } - wset_window_end_valid (w, Qnil); + w->window_end_valid = 0; w->desired_matrix->no_scrolling_p = 1; #ifdef GLYPH_DEBUG @@ -16930,7 +16927,7 @@ /* Display must not have been paused, otherwise the current matrix is not up to date. */ - eassert (!NILP (w->window_end_valid)); + eassert (w->window_end_valid); /* A value of window_end_pos >= END_UNCHANGED means that the window end is in the range of changed text. If so, there is no @@ -17114,7 +17111,7 @@ /* Try to redisplay window W by reusing its existing display. W's current matrix must be up to date when this function is called, - i.e. window_end_valid must not be nil. + i.e. window_end_valid must be nonzero. Value is @@ -17222,7 +17219,7 @@ GIVE_UP (7); /* Verify that display wasn't paused. */ - if (NILP (w->window_end_valid)) + if (!w->window_end_valid) GIVE_UP (8); /* Can't use this if highlighting a region because a cursor movement @@ -17873,7 +17870,7 @@ debug_end_vpos = XFASTINT (w->window_end_vpos)); /* Record that display has not been completed. */ - wset_window_end_valid (w, Qnil); + w->window_end_valid = 0; w->desired_matrix->no_scrolling_p = 1; return 3; @@ -27782,7 +27779,7 @@ And verify the buffer's text has not changed. */ b = XBUFFER (w->buffer); if (part == ON_TEXT - && EQ (w->window_end_valid, w->buffer) + && w->window_end_valid && w->last_modified == BUF_MODIFF (b) && w->last_overlay_modified == BUF_OVERLAY_MODIFF (b)) { ------------------------------------------------------------ revno: 111583 committer: Dmitry Antipov branch nick: trunk timestamp: Tue 2013-01-22 15:41:21 +0400 message: * xdisp.c (mark_window_display_accurate): Simplify the loop assuming that the only one of vchild, hchild or buffer window slots is non-nil. Call mark_window_display_accurate_1 for the leaf windows only. (mark_window_display_accurate_1): Always assume leaf window. Adjust comment. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-01-22 07:48:59 +0000 +++ src/ChangeLog 2013-01-22 11:41:21 +0000 @@ -1,3 +1,12 @@ +2013-01-22 Dmitry Antipov + + * xdisp.c (mark_window_display_accurate): Simplify the loop + assuming that the only one of vchild, hchild or buffer window + slots is non-nil. Call mark_window_display_accurate_1 for + the leaf windows only. + (mark_window_display_accurate_1): Always assume leaf window. + Adjust comment. + 2013-01-22 Paul Eggert * emacs.c (Qkill_emacs_hook): Now static. === modified file 'src/xdisp.c' --- src/xdisp.c 2013-01-05 21:18:01 +0000 +++ src/xdisp.c 2013-01-22 11:41:21 +0000 @@ -13722,49 +13722,42 @@ } -/* Mark the display of window W as accurate or inaccurate. If - ACCURATE_P is non-zero mark display of W as accurate. If - ACCURATE_P is zero, arrange for W to be redisplayed the next time - redisplay_internal is called. */ +/* Mark the display of leaf window W as accurate or inaccurate. + If ACCURATE_P is non-zero mark display of W as accurate. If + ACCURATE_P is zero, arrange for W to be redisplayed the next + time redisplay_internal is called. */ static void mark_window_display_accurate_1 (struct window *w, int accurate_p) { - if (BUFFERP (w->buffer)) - { - struct buffer *b = XBUFFER (w->buffer); - - w->last_modified = accurate_p ? BUF_MODIFF (b) : 0; - w->last_overlay_modified = accurate_p ? BUF_OVERLAY_MODIFF (b) : 0; - w->last_had_star - = BUF_MODIFF (b) > BUF_SAVE_MODIFF (b); - - if (accurate_p) - { - b->clip_changed = 0; - b->prevent_redisplay_optimizations_p = 0; - - BUF_UNCHANGED_MODIFIED (b) = BUF_MODIFF (b); - BUF_OVERLAY_UNCHANGED_MODIFIED (b) = BUF_OVERLAY_MODIFF (b); - BUF_BEG_UNCHANGED (b) = BUF_GPT (b) - BUF_BEG (b); - BUF_END_UNCHANGED (b) = BUF_Z (b) - BUF_GPT (b); - - w->current_matrix->buffer = b; - w->current_matrix->begv = BUF_BEGV (b); - w->current_matrix->zv = BUF_ZV (b); - - w->last_cursor = w->cursor; - w->last_cursor_off_p = w->cursor_off_p; - - if (w == XWINDOW (selected_window)) - w->last_point = BUF_PT (b); - else - w->last_point = marker_position (w->pointm); - } - } + struct buffer *b = XBUFFER (w->buffer); + + w->last_modified = accurate_p ? BUF_MODIFF (b) : 0; + w->last_overlay_modified = accurate_p ? BUF_OVERLAY_MODIFF (b) : 0; + w->last_had_star = BUF_MODIFF (b) > BUF_SAVE_MODIFF (b); if (accurate_p) { + b->clip_changed = 0; + b->prevent_redisplay_optimizations_p = 0; + + BUF_UNCHANGED_MODIFIED (b) = BUF_MODIFF (b); + BUF_OVERLAY_UNCHANGED_MODIFIED (b) = BUF_OVERLAY_MODIFF (b); + BUF_BEG_UNCHANGED (b) = BUF_GPT (b) - BUF_BEG (b); + BUF_END_UNCHANGED (b) = BUF_Z (b) - BUF_GPT (b); + + w->current_matrix->buffer = b; + w->current_matrix->begv = BUF_BEGV (b); + w->current_matrix->zv = BUF_ZV (b); + + w->last_cursor = w->cursor; + w->last_cursor_off_p = w->cursor_off_p; + + if (w == XWINDOW (selected_window)) + w->last_point = BUF_PT (b); + else + w->last_point = marker_position (w->pointm); + wset_window_end_valid (w, w->buffer); w->update_mode_line = 0; } @@ -13784,25 +13777,21 @@ for (; !NILP (window); window = w->next) { w = XWINDOW (window); - mark_window_display_accurate_1 (w, accurate_p); - if (!NILP (w->vchild)) mark_window_display_accurate (w->vchild, accurate_p); - if (!NILP (w->hchild)) + else if (!NILP (w->hchild)) mark_window_display_accurate (w->hchild, accurate_p); + else if (BUFFERP (w->buffer)) + mark_window_display_accurate_1 (w, accurate_p); } if (accurate_p) - { - update_overlay_arrows (1); - } + update_overlay_arrows (1); else - { - /* Force a thorough redisplay the next time by setting - last_arrow_position and last_arrow_string to t, which is - unequal to any useful value of Voverlay_arrow_... */ - update_overlay_arrows (-1); - } + /* Force a thorough redisplay the next time by setting + last_arrow_position and last_arrow_string to t, which is + unequal to any useful value of Voverlay_arrow_... */ + update_overlay_arrows (-1); } ------------------------------------------------------------ revno: 111582 committer: Michael Albinus + + * net/tramp-cmds.el (tramp-bug, tramp-append-tramp-buffers): Mark + descriptive parts with `display' property. + 2013-01-21 Agustín Martín Domingo * textmodes/ispell.el (ispell-hunspell-dictionary-equivs-alist): === modified file 'lisp/net/tramp-cmds.el' --- lisp/net/tramp-cmds.el 2013-01-01 09:11:05 +0000 +++ lisp/net/tramp-cmds.el 2013-01-22 08:49:03 +0000 @@ -186,7 +186,7 @@ 'tramp-load-report-modules ; pre-hook 'tramp-append-tramp-buffers ; post-hook - "\ + (propertize "\n" 'display "\ Enter your bug report in this message, including as much detail as you possibly can about the problem, what you did to cause it and what the local and remote machines are. @@ -209,7 +209,7 @@ buffer in your bug report. --bug report follows this line-- -")))) +"))))) (defun tramp-reporter-dump-variable (varsym mailbuf) "Pretty-print the value of the variable in symbol VARSYM." @@ -348,10 +348,10 @@ (kill-buffer nil) (switch-to-buffer curbuf) (goto-char (point-max)) - (insert "\n\ + (insert (propertize "\n" 'display "\n\ This is a special notion of the `gnus/message' package. If you use another mail agent (by copying the contents of this buffer) -please ensure that the buffers are attached to your email.\n\n") +please ensure that the buffers are attached to your email.\n\n")) (dolist (buffer buffer-list) (tramp-compat-funcall 'mml-insert-empty-tag 'part 'type "text/plain" ------------------------------------------------------------ revno: 111581 committer: Paul Eggert branch nick: trunk timestamp: Mon 2013-01-21 23:48:59 -0800 message: * emacs.c (Qkill_emacs_hook): Now static. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-01-22 06:10:20 +0000 +++ src/ChangeLog 2013-01-22 07:48:59 +0000 @@ -1,5 +1,7 @@ 2013-01-22 Paul Eggert + * emacs.c (Qkill_emacs_hook): Now static. + * fileio.c (Finsert_file_contents): Simplify. Remove unnecessary assignments and tests. === modified file 'src/emacs.c' --- src/emacs.c 2013-01-19 08:49:17 +0000 +++ src/emacs.c 2013-01-22 07:48:59 +0000 @@ -133,7 +133,8 @@ Lisp_Object Qrisky_local_variable; -Lisp_Object Qkill_emacs, Qkill_emacs_hook; +Lisp_Object Qkill_emacs; +static Lisp_Object Qkill_emacs_hook; /* If true, Emacs should not attempt to use a window-specific code, but instead should use the virtual terminal under which it was started. */