aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2011-11-19 19:07:02 -0800
committerPaul Eggert2011-11-19 19:07:02 -0800
commit615a3b8d0d2c88cd664f1e0beb5a32b5b8e08f90 (patch)
treee0458a9eac443c36a3a4bfa117fde01bbd6e4140 /src
parentc3ca24d48c10fb771ee02eb58f7d49bd82d6306e (diff)
parente1dbe924b53c541fdf238a5a722b7177d5c8760b (diff)
downloademacs-615a3b8d0d2c88cd664f1e0beb5a32b5b8e08f90.tar.gz
emacs-615a3b8d0d2c88cd664f1e0beb5a32b5b8e08f90.zip
Merge from trunk.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog105
-rw-r--r--src/ChangeLog.15
-rw-r--r--src/ChangeLog.1015
-rw-r--r--src/ChangeLog.1126
-rw-r--r--src/ChangeLog.217
-rw-r--r--src/ChangeLog.318
-rw-r--r--src/ChangeLog.48
-rw-r--r--src/ChangeLog.52
-rw-r--r--src/ChangeLog.66
-rw-r--r--src/ChangeLog.76
-rw-r--r--src/ChangeLog.810
-rw-r--r--src/ChangeLog.92
-rw-r--r--src/alloc.c4
-rw-r--r--src/buffer.c4
-rw-r--r--src/buffer.h2
-rw-r--r--src/bytecode.c2
-rw-r--r--src/ccl.c8
-rw-r--r--src/character.c6
-rw-r--r--src/character.h2
-rw-r--r--src/charset.c4
-rw-r--r--src/charset.h6
-rw-r--r--src/chartab.c6
-rw-r--r--src/coding.h2
-rw-r--r--src/composite.c2
-rw-r--r--src/composite.h2
-rw-r--r--src/data.c2
-rw-r--r--src/dbusbind.c2
-rw-r--r--src/dired.c2
-rw-r--r--src/dispextern.h3
-rw-r--r--src/dispnew.c38
-rw-r--r--src/doprnt.c2
-rw-r--r--src/emacs.c2
-rw-r--r--src/fileio.c6
-rw-r--r--src/fns.c2
-rw-r--r--src/font.c6
-rw-r--r--src/font.h2
-rw-r--r--src/fontset.c8
-rw-r--r--src/frame.c11
-rw-r--r--src/frame.h2
-rw-r--r--src/ftfont.c4
-rw-r--r--src/ftxfont.c2
-rw-r--r--src/gtkutil.c12
-rw-r--r--src/image.c14
-rw-r--r--src/indent.c2
-rw-r--r--src/indent.h4
-rw-r--r--src/insdel.c2
-rw-r--r--src/intervals.c43
-rw-r--r--src/intervals.h68
-rw-r--r--src/keyboard.c12
-rw-r--r--src/keymap.c6
-rw-r--r--src/lisp.h2
-rw-r--r--src/lread.c2
-rw-r--r--src/msdos.c2
-rw-r--r--src/nsfns.m6
-rw-r--r--src/nsterm.h2
-rw-r--r--src/nsterm.m4
-rw-r--r--src/print.c2
-rw-r--r--src/process.c8
-rw-r--r--src/ralloc.c16
-rw-r--r--src/regex.c2
-rw-r--r--src/regex.h2
-rw-r--r--src/s/msdos.h3
-rw-r--r--src/sound.c2
-rw-r--r--src/syssignal.h2
-rw-r--r--src/unexelf.c2
-rw-r--r--src/w32.c6
-rw-r--r--src/w32console.c3
-rw-r--r--src/w32fns.c8
-rw-r--r--src/w32font.c10
-rw-r--r--src/w32font.h5
-rw-r--r--src/w32menu.c2
-rw-r--r--src/w32proc.c14
-rw-r--r--src/w32term.c14
-rw-r--r--src/w32term.h2
-rw-r--r--src/w32uniscribe.c3
-rw-r--r--src/w32xfns.c3
-rw-r--r--src/window.c145
-rw-r--r--src/window.h7
-rw-r--r--src/xdisp.c138
-rw-r--r--src/xfaces.c4
-rw-r--r--src/xfns.c4
-rw-r--r--src/xfont.c6
-rw-r--r--src/xmenu.c2
-rw-r--r--src/xselect.c2
-rw-r--r--src/xsettings.c2
-rw-r--r--src/xsmfns.c2
-rw-r--r--src/xterm.c4
-rw-r--r--src/xterm.h2
88 files changed, 577 insertions, 395 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 533f5cf4327..17c27bc3048 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,4 +1,4 @@
12011-11-14 Paul Eggert <eggert@cs.ucla.edu> 12011-11-20 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 Standardize on VIRT_ADDR_VARIES behavior; otherwise, valgrind 3 Standardize on VIRT_ADDR_VARIES behavior; otherwise, valgrind
4 does not work on some platforms. Problem reported by Andreas Schwab in 4 does not work on some platforms. Problem reported by Andreas Schwab in
@@ -17,6 +17,99 @@
17 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h: 17 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
18 Remove VIRT_ADDR_VARIES no longer needed. 18 Remove VIRT_ADDR_VARIES no longer needed.
19 19
202011-11-19 Eli Zaretskii <eliz@gnu.org>
21
22 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
23 (erase_phys_cursor, update_window_cursor, show_mouse_face)
24 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
25 behave as if the cursor position were at the window margin.
26
27 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
28 and the cursor position is out of bounds, behave as if the cursor
29 position were at the window margin. (Bug#10075)
30
312011-11-18 Chong Yidong <cyd@gnu.org>
32
33 * window.c (Fwindow_combination_limit): Make first argument
34 non-optional, since it is meaningless for live windows like the
35 selected window.
36
372011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
38
39 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
40
412011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
42
43 * intervals.c: Fix grafting over the whole buffer (bug#10071).
44 (graft_intervals_into_buffer): Simplify.
45
462011-11-18 Eli Zaretskii <eliz@gnu.org>
47
48 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
49 hash values of the two rows.
50 (copy_row_except_pointers): Preserve the used[] arrays and the
51 hash values of the two rows. (Bug#10035)
52 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
53
54 * xdisp.c (row_hash): New function, body extracted from
55 compute_line_metrics.
56 (compute_line_metrics): Call row_hash, instead of computing the
57 hash code inline.
58
59 * dispnew.c (verify_row_hash): Call row_hash for computing the
60 hash code of a row, instead of duplicating code from xdisp.c.
61
62 * dispextern.h (row_hash): Add prototype.
63
642011-11-18 Tassilo Horn <tassilo@member.fsf.org>
65
66 * frame.c (delete_frame): Don't delete the terminal when the last
67 X frame is closed if emacs is built with GTK toolkit.
68
692011-11-17 Juanma Barranquero <lekktu@gmail.com>
70
71 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
72
732011-11-17 Martin Rudalics <rudalics@gmx.at>
74
75 * window.c (Vwindow_splits): Rename to
76 Vwindow_combination_resize. Suggested by Juri Linkov.
77 (Fsplit_window_internal): Use Vwindow_combination_resize instead
78 of Vwindow_splits.
79
802011-11-16 Juanma Barranquero <lekktu@gmail.com>
81
82 * nsfns.m (Fns_font_name):
83 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
84
852011-11-16 Martin Rudalics <rudalics@gmx.at>
86
87 * window.h (window): Rename slot "nest" to "combination_limit".
88 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
89 (Fset_window_nest): Rename to Fset_window_combination_limit.
90 (Vwindow_nest): Rename to Vwindow_combination_limit.
91 (recombine_windows, make_parent_window, make_window)
92 (Fsplit_window_internal, saved_window)
93 (Fset_window_configuration, save_window_save): Rename all
94 occurrences of window_nest to window_combination_limit.
95
962011-11-15 Juanma Barranquero <lekktu@gmail.com>
97
98 * image.c (imagemagick_load_image): Fix typo.
99
1002011-11-14 Eli Zaretskii <eliz@gnu.org>
101
102 * xdisp.c (display_line): Move the call to
103 highlight_trailing_whitespace before the call to
104 compute_line_metrics, since the latter needs to see the final
105 faces of all the glyphs to compute ROW's hash value. Fixes
106 assertion violations in row_equal_p. (Bug#10035)
107
1082011-11-14 Juanma Barranquero <lekktu@gmail.com>
109
110 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
111 just return (bug#10044).
112
202011-11-12 Eli Zaretskii <eliz@gnu.org> 1132011-11-12 Eli Zaretskii <eliz@gnu.org>
21 114
22 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs 115 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
@@ -50,7 +143,7 @@
50 143
512011-11-11 Dmitry Antipov <dmantipov@yandex.ru> 1442011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
52 145
53 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext. 146 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
54 147
552011-11-11 Kenichi Handa <handa@m17n.org> 1482011-11-11 Kenichi Handa <handa@m17n.org>
56 149
@@ -250,7 +343,7 @@
250 343
251 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version. 344 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
252 345
2532011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change) 3462011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
254 347
255 Support MSVC build with newer versions of Visual Studio. 348 Support MSVC build with newer versions of Visual Studio.
256 * w32.c: Don't include w32api.h for MSVC. 349 * w32.c: Don't include w32api.h for MSVC.
@@ -312,7 +405,7 @@
312 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented 405 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
313 past the beginning of the current glyph matrix. 406 past the beginning of the current glyph matrix.
314 407
3152011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change) 4082011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
316 409
317 * xterm.c: Include X11/Xproto.h if HAVE_GTK3. 410 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
318 (x_error_handler): Ignore BadMatch for X_SetInputFocus for 411 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
@@ -346,7 +439,7 @@
346 439
347 Fix the `xbytecode' command. 440 Fix the `xbytecode' command.
348 * .gdbinit (xprintbytestr): New command. 441 * .gdbinit (xprintbytestr): New command.
349 (xwhichsymbols): Renamed from `which'; all callers changed. 442 (xwhichsymbols): Rename from `which'; all callers changed.
350 (xbytecode): Print the byte-code string as well. 443 (xbytecode): Print the byte-code string as well.
351 444
3522011-10-29 Kim Storm <storm@cua.dk> 4452011-10-29 Kim Storm <storm@cua.dk>
@@ -3040,7 +3133,7 @@
3040 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods 3133 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
3041 cString and lossyCString on OSX >= 10.4 3134 cString and lossyCString on OSX >= 10.4
3042 3135
3043 * nsmenu.m (fillWithWidgetValue): Don't use depercated method 3136 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
3044 sizeToFit on OSX >= 10.2. 3137 sizeToFit on OSX >= 10.2.
3045 3138
3046 * nsimage.m (allocInitFromFile): Don't use deprecated method 3139 * nsimage.m (allocInitFromFile): Don't use deprecated method
diff --git a/src/ChangeLog.1 b/src/ChangeLog.1
index e32db190cd0..efe77648458 100644
--- a/src/ChangeLog.1
+++ b/src/ChangeLog.1
@@ -405,7 +405,7 @@
405 Copy their own header field a_scovfrl from ohdr. 405 Copy their own header field a_scovfrl from ohdr.
406 406
407 * unexec.c [COFF]: 407 * unexec.c [COFF]:
408 Round positions of text and and data sections in output file 408 Round positions of text and data sections in output file
409 to page boundaries. 409 to page boundaries.
410 410
411 * crt0.c: Install version for Encore machines. 411 * crt0.c: Install version for Encore machines.
@@ -2375,7 +2375,7 @@
2375 Often, just return what it returned. 2375 Often, just return what it returned.
2376 `error' still never returns to its caller. 2376 `error' still never returns to its caller.
2377 2377
2378 * Signalling Qargs_out_of_range: 2378 * Signaling Qargs_out_of_range:
2379 Use new functions args_out_of_range and args_out_of_range_3 2379 Use new functions args_out_of_range and args_out_of_range_3
2380 (in data.c) to do this. 2380 (in data.c) to do this.
2381 2381
@@ -3537,4 +3537,3 @@
3537 3537
3538 You should have received a copy of the GNU General Public License 3538 You should have received a copy of the GNU General Public License
3539 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. 3539 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
3540
diff --git a/src/ChangeLog.10 b/src/ChangeLog.10
index 6152b4c76af..1992ef96e0a 100644
--- a/src/ChangeLog.10
+++ b/src/ChangeLog.10
@@ -5133,7 +5133,7 @@
5133 it can be called in a signal handler. 5133 it can be called in a signal handler.
5134 (x_catch_errors_unwind): Function deleted. 5134 (x_catch_errors_unwind): Function deleted.
5135 (x_uncatch_errors): Deallocate last x_error_message_stack struct. 5135 (x_uncatch_errors): Deallocate last x_error_message_stack struct.
5136 (x_check_errors): Call x_uncatch_errors before signalling error. 5136 (x_check_errors): Call x_uncatch_errors before signaling error.
5137 5137
5138 (x_load_font, x_term_init, XTmouse_position, handle_one_xevent) 5138 (x_load_font, x_term_init, XTmouse_position, handle_one_xevent)
5139 (x_connection_closed, x_list_fonts): Use new versions of 5139 (x_connection_closed, x_list_fonts): Use new versions of
@@ -6387,7 +6387,7 @@
63872005-11-20 Nick Roberts <nickrob@snap.net.nz> 63872005-11-20 Nick Roberts <nickrob@snap.net.nz>
6388 6388
6389 * lisp.h: Use typedef when Lisp_Object is EMACS_INT so that 6389 * lisp.h: Use typedef when Lisp_Object is EMACS_INT so that
6390 this type is recognised when debugging. 6390 this type is recognized when debugging.
6391 6391
63922005-11-19 Andreas Schwab <schwab@suse.de> 63922005-11-19 Andreas Schwab <schwab@suse.de>
6393 6393
@@ -13398,7 +13398,7 @@
133982004-07-04 John Paul Wallington <jpw@gnu.org> 133982004-07-04 John Paul Wallington <jpw@gnu.org>
13399 13399
13400 * fileio.c (read_file_name_completion_ignore_case): New variable. 13400 * fileio.c (read_file_name_completion_ignore_case): New variable.
13401 (syms_of_fileio): Declare and initialise it. 13401 (syms_of_fileio): Declare and initialize it.
13402 (Fread_file_name): Bind `completion-ignore-case' to respect it. 13402 (Fread_file_name): Bind `completion-ignore-case' to respect it.
13403 13403
134042004-07-03 Eli Zaretskii <eliz@gnu.org> 134042004-07-03 Eli Zaretskii <eliz@gnu.org>
@@ -19139,7 +19139,7 @@
19139 (font_rescale_ratio): New function. 19139 (font_rescale_ratio): New function.
19140 (split_font_name): If NUMERIC_P is nonzero, set font->rescale_ratio. 19140 (split_font_name): If NUMERIC_P is nonzero, set font->rescale_ratio.
19141 (better_font_p): On comparing point sized, pay attention to 19141 (better_font_p): On comparing point sized, pay attention to
19142 recale_ratio member of fonts. 19142 rescale_ratio member of fonts.
19143 (build_scalable_font_name): Reflect font->rescale_ratio in the 19143 (build_scalable_font_name): Reflect font->rescale_ratio in the
19144 font name. 19144 font name.
19145 (syms_of_xfaces): Declare Vface_font_rescale_alist as a Lisp variable. 19145 (syms_of_xfaces): Declare Vface_font_rescale_alist as a Lisp variable.
@@ -20702,11 +20702,11 @@
20702 (free_frame_menubar): Only compile if not USE_GTK. GTK version 20702 (free_frame_menubar): Only compile if not USE_GTK. GTK version
20703 is in gtkutil.c. 20703 is in gtkutil.c.
20704 (popup_selection_callback): New version for USE_GTK. 20704 (popup_selection_callback): New version for USE_GTK.
20705 (create_and_show_popup_menu): New fuction, one USE_GTK version and 20705 (create_and_show_popup_menu): New function, one USE_GTK version and
20706 one USE_X_TOOLKIT version. 20706 one USE_X_TOOLKIT version.
20707 (xmenu_show): Call create_and_show_popup_menu. 20707 (xmenu_show): Call create_and_show_popup_menu.
20708 (dialog_selection_callback): New version for USE_GTK. 20708 (dialog_selection_callback): New version for USE_GTK.
20709 (create_and_show_dialog): New fuction, one USE_GTK version and 20709 (create_and_show_dialog): New function, one USE_GTK version and
20710 one USE_X_TOOLKIT version. 20710 one USE_X_TOOLKIT version.
20711 (xdialog_show): Call create_and_show_dialog. 20711 (xdialog_show): Call create_and_show_dialog.
20712 20712
@@ -22780,7 +22780,7 @@
227802002-07-23 Kenichi Handa <handa@etl.go.jp> 227802002-07-23 Kenichi Handa <handa@etl.go.jp>
22781 22781
22782 * xdisp.c (face_before_or_after_it_pos): 22782 * xdisp.c (face_before_or_after_it_pos):
22783 Call FETCH_MULTIBYTE_CHAR with byte postion, not char position. 22783 Call FETCH_MULTIBYTE_CHAR with byte position, not char position.
22784 22784
227852002-07-22 Juanma Barranquero <lektu@terra.es> 227852002-07-22 Juanma Barranquero <lektu@terra.es>
22786 22786
@@ -27928,4 +27928,3 @@ See ChangeLog.9 for earlier changes.
27928 27928
27929 You should have received a copy of the GNU General Public License 27929 You should have received a copy of the GNU General Public License
27930 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. 27930 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
27931
diff --git a/src/ChangeLog.11 b/src/ChangeLog.11
index bd1a6ec5918..37a75c3c998 100644
--- a/src/ChangeLog.11
+++ b/src/ChangeLog.11
@@ -5896,7 +5896,7 @@
5896 * eval.c (Feval, Ffuncall): Use the new names. 5896 * eval.c (Feval, Ffuncall): Use the new names.
5897 5897
5898 * lisp.h (struct Lisp_Subr): Rename `am' to aMANY and add aUNEVALLED. 5898 * lisp.h (struct Lisp_Subr): Rename `am' to aMANY and add aUNEVALLED.
5899 (DEFUN): Add braces around the union initialisation and use ## to 5899 (DEFUN): Add braces around the union initialization and use ## to
5900 specify the right union alternative and avoid a cast. 5900 specify the right union alternative and avoid a cast.
5901 5901
59022010-07-18 Juanma Barranquero <lekktu@gmail.com> 59022010-07-18 Juanma Barranquero <lekktu@gmail.com>
@@ -9266,7 +9266,7 @@
9266 9266
9267 Get rid of the direct_output optimizations. 9267 Get rid of the direct_output optimizations.
9268 * keyboard.c (nonundocount): Remove extern declaration. 9268 * keyboard.c (nonundocount): Remove extern declaration.
9269 (command_loop_1): Remove brittle optimisation for cheap and 9269 (command_loop_1): Remove brittle optimization for cheap and
9270 common operations. 9270 common operations.
9271 * xdisp.c (redisplay_internal): Don't bother checking 9271 * xdisp.c (redisplay_internal): Don't bother checking
9272 redisplay_performed_directly_p any more. 9272 redisplay_performed_directly_p any more.
@@ -11972,7 +11972,7 @@
11972 11972
11973 * image.c (xbm_read_bitmap_data): New arg inhibit_image_error. 11973 * image.c (xbm_read_bitmap_data): New arg inhibit_image_error.
11974 (xbm_load_image): Caller changed. 11974 (xbm_load_image): Caller changed.
11975 (xbm_file_p): Avoid signalling an image_error (Bug#4107). 11975 (xbm_file_p): Avoid signaling an image_error (Bug#4107).
11976 11976
119772009-08-13 Nick Roberts <nickrob@snap.net.nz> 119772009-08-13 Nick Roberts <nickrob@snap.net.nz>
11978 11978
@@ -12481,7 +12481,7 @@
12481 12481
12482 * dbusbind.c (XD_SYMBOL_TO_DBUS_TYPE): Convert macro into function 12482 * dbusbind.c (XD_SYMBOL_TO_DBUS_TYPE): Convert macro into function
12483 xd_symbol_to_dbus_type. With Solaris 2.11, it was said to compile 12483 xd_symbol_to_dbus_type. With Solaris 2.11, it was said to compile
12484 for hours, when optimzation is enabled. 12484 for hours, when optimization is enabled.
12485 (xd_signature, xd_append_arg, xd_retrieve_arg, xd_initialize) 12485 (xd_signature, xd_append_arg, xd_retrieve_arg, xd_initialize)
12486 (xd_read_message): Make them static. 12486 (xd_read_message): Make them static.
12487 12487
@@ -13149,7 +13149,7 @@
13149 (ftfont_has_char): Special handling of `ja' and `ko' adstyle. 13149 (ftfont_has_char): Special handling of `ja' and `ko' adstyle.
13150 13150
13151 * font.c (font_sort_entites): Change the meaning of the arg 13151 * font.c (font_sort_entites): Change the meaning of the arg
13152 BEST-ONLY. Don't optimize for VEC of lenght 1. 13152 BEST-ONLY. Don't optimize for VEC of length 1.
13153 (font_select_entity): Just return the value of font_sort_entites. 13153 (font_select_entity): Just return the value of font_sort_entites.
13154 13154
13155 * xfaces.c (merge_face_vectors): Reflect font properties in 13155 * xfaces.c (merge_face_vectors): Reflect font properties in
@@ -16072,7 +16072,7 @@
160722008-09-07 Andreas Schwab <schwab@suse.de> 160722008-09-07 Andreas Schwab <schwab@suse.de>
16073 16073
16074 * callproc.c (Fcall_process): Don't hold references to string data 16074 * callproc.c (Fcall_process): Don't hold references to string data
16075 across garbage collection. Move initialisation of new_argv down 16075 across garbage collection. Move initialization of new_argv down
16076 to avoid compiler bug. 16076 to avoid compiler bug.
16077 16077
160782008-09-07 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> 160782008-09-07 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
@@ -16658,7 +16658,7 @@
166582008-08-20 Chong Yidong <cyd@stupidchicken.com> 166582008-08-20 Chong Yidong <cyd@stupidchicken.com>
16659 16659
16660 * xselect.c (x_get_foreign_selection): Return nil if desired 16660 * xselect.c (x_get_foreign_selection): Return nil if desired
16661 selection could not be obtained, instead of signalling an error. 16661 selection could not be obtained, instead of signaling an error.
16662 16662
166632008-08-20 David Reitter <david.reitter@gmail.com> 166632008-08-20 David Reitter <david.reitter@gmail.com>
16664 16664
@@ -19248,7 +19248,7 @@
19248 * w32menu.c (Fx_popup_menu): Unwind protect while building menu. 19248 * w32menu.c (Fx_popup_menu): Unwind protect while building menu.
19249 (parse_single_submenu): Remove. 19249 (parse_single_submenu): Remove.
19250 (digest_single_submenu): Remove. 19250 (digest_single_submenu): Remove.
19251 (syms_of_w32menu): Don't initialise variables that have moved 19251 (syms_of_w32menu): Don't initialize variables that have moved
19252 to menu.c. 19252 to menu.c.
19253 (set_frame_menubar): Sync with version in xmenu.c. 19253 (set_frame_menubar): Sync with version in xmenu.c.
19254 (w32_menu_show): Sync with xmenu_show in xmenu.c. 19254 (w32_menu_show): Sync with xmenu_show in xmenu.c.
@@ -21290,7 +21290,7 @@
21290 (CACHE_BLOCKSIZE): New constants. 21290 (CACHE_BLOCKSIZE): New constants.
21291 21291
21292 * w32font.c (Qja, Qko, Qzh): New symbols. 21292 * w32font.c (Qja, Qko, Qzh): New symbols.
21293 (syms_of_w32font): Initialise them. 21293 (syms_of_w32font): Initialize them.
21294 (font_matches_spec): Use them to filter by language. 21294 (font_matches_spec): Use them to filter by language.
21295 (recompute_cached_metrics): Remove function. 21295 (recompute_cached_metrics): Remove function.
21296 (compute_metrics, clear_cached_metrics): New functions. 21296 (compute_metrics, clear_cached_metrics): New functions.
@@ -23551,7 +23551,7 @@
23551 STORE_XCHARB a valid l-value. 23551 STORE_XCHARB a valid l-value.
23552 23552
23553 * w32term.c (w32_native_per_char_metric): Swap width and rbearing 23553 * w32term.c (w32_native_per_char_metric): Swap width and rbearing
23554 calculations for non-Truetype fonts. 23554 calculations for non-TrueType fonts.
23555 (x_draw_glyph_string): Sync with xterm.c. 23555 (x_draw_glyph_string): Sync with xterm.c.
23556 (x_draw_glyph_string_foreground) [USE_FONT_BACKEND]: 23556 (x_draw_glyph_string_foreground) [USE_FONT_BACKEND]:
23557 Remove redundant code. 23557 Remove redundant code.
@@ -26748,7 +26748,7 @@
267482008-02-01 Kenichi Handa <handa@m17n.org> 267482008-02-01 Kenichi Handa <handa@m17n.org>
26749 26749
26750 * xdisp.c (face_before_or_after_it_pos): 26750 * xdisp.c (face_before_or_after_it_pos):
26751 Call FETCH_MULTIBYTE_CHAR with byte postion, not char position. 26751 Call FETCH_MULTIBYTE_CHAR with byte position, not char position.
26752 26752
267532008-02-01 Kenichi Handa <handa@m17n.org> 267532008-02-01 Kenichi Handa <handa@m17n.org>
26754 26754
@@ -29651,7 +29651,7 @@
29651 29651
29652 * callproc.c (child_setup, getenv_internal): Use the 29652 * callproc.c (child_setup, getenv_internal): Use the
29653 display-environment-variable and term-environment-variable frame params. 29653 display-environment-variable and term-environment-variable frame params.
29654 (set_initial_environment): Initialise Vprocess_environment. 29654 (set_initial_environment): Initialize Vprocess_environment.
29655 29655
29656 * config.in: Disable multi-keyboard support on a mac. 29656 * config.in: Disable multi-keyboard support on a mac.
29657 29657
@@ -31298,7 +31298,7 @@
31298 (term_mouse_highlight, term_mouse_movement, term_mouse_position) 31298 (term_mouse_highlight, term_mouse_movement, term_mouse_position)
31299 (term_mouse_click, handle_one_term_event, Fterm_open_connection) 31299 (term_mouse_click, handle_one_term_event, Fterm_open_connection)
31300 (Fterm_close_connection): New functions. 31300 (Fterm_close_connection): New functions.
31301 (term_init): Initialise mouse_face_window. 31301 (term_init): Initialize mouse_face_window.
31302 31302
313032007-05-19 Chong Yidong <cyd@stupidchicken.com> 313032007-05-19 Chong Yidong <cyd@stupidchicken.com>
31304 31304
diff --git a/src/ChangeLog.2 b/src/ChangeLog.2
index ca7feaee9f5..62e3de22b09 100644
--- a/src/ChangeLog.2
+++ b/src/ChangeLog.2
@@ -1152,7 +1152,7 @@
1152 1152
11531987-07-29 Richard Mlynarik (mly@prep) 11531987-07-29 Richard Mlynarik (mly@prep)
1154 1154
1155 * lread.c (init_read): Initialise load_in_progress. 1155 * lread.c (init_read): Initialize load_in_progress.
1156 1156
11571987-07-28 Richard M. Stallman (rms@prep) 11571987-07-28 Richard M. Stallman (rms@prep)
1158 1158
@@ -1222,7 +1222,7 @@
12221987-07-10 Chris Hanson (cph@prep) 12221987-07-10 Chris Hanson (cph@prep)
1223 1223
1224 * xterm.h: Define macros to abstract control of input signals. 1224 * xterm.h: Define macros to abstract control of input signals.
1225 Alternate set of macros for hp-ux does no signalling. 1225 Alternate set of macros for hp-ux does no signaling.
1226 1226
1227 * xterm.c: 1227 * xterm.c:
1228 * xfns.c: 1228 * xfns.c:
@@ -2251,7 +2251,7 @@
22511987-01-16 Richard Mlynarik (mly@prep) 22511987-01-16 Richard Mlynarik (mly@prep)
2252 2252
2253 * xfns.c (Fx_set_{background,cursor,mouse}_color): 2253 * xfns.c (Fx_set_{background,cursor,mouse}_color):
2254 Initialise save_color. 2254 Initialize save_color.
2255 2255
2256 * fileio.c, search.c, sysdep.c, filelock.c, editfns.c, process.c: 2256 * fileio.c, search.c, sysdep.c, filelock.c, editfns.c, process.c:
2257 Delete/replace unused/conditionalised variables 2257 Delete/replace unused/conditionalised variables
@@ -3002,7 +3002,7 @@
30021986-11-18 Richard Mlynarik (mly@prep) 30021986-11-18 Richard Mlynarik (mly@prep)
3003 3003
3004 * emacs.c (main): 3004 * emacs.c (main):
3005 Giving `inhibit_x_windows' an initialisation loses; 3005 Giving `inhibit_x_windows' an initialization loses;
3006 do it explicitly. 3006 do it explicitly.
3007 3007
3008 * xfns.c (Fx_rubber_band): 3008 * xfns.c (Fx_rubber_band):
@@ -3291,7 +3291,7 @@
32911986-11-03 Richard Mlynarik (mly@prep) 32911986-11-03 Richard Mlynarik (mly@prep)
3292 3292
3293 * xterm.c (stufflines): 3293 * xterm.c (stufflines):
3294 Initialise signal mask. 3294 Initialize signal mask.
3295 3295
3296 * xterm.h: 3296 * xterm.h:
3297 Add definition of sigmask 3297 Add definition of sigmask
@@ -3346,7 +3346,7 @@
3346 New function. 3346 New function.
3347 3347
3348 * window.c (Fset_window_hscroll): 3348 * window.c (Fset_window_hscroll):
3349 Don't inhibit redisplay optimisations if hscroll is same. 3349 Don't inhibit redisplay optimizations if hscroll is same.
3350 3350
3351 * ymakefile: 3351 * ymakefile:
3352 rm ../etc/DOC to avoid make-docfile overwriting any files which 3352 rm ../etc/DOC to avoid make-docfile overwriting any files which
@@ -3358,7 +3358,7 @@
3358 VMS changes from Sasaki 3358 VMS changes from Sasaki
3359 3359
3360 * termcap.c (tgetent): 3360 * termcap.c (tgetent):
3361 Make sure `indirect' initialised. 3361 Make sure `indirect' initialized.
3362 3362
3363 * xfns.c (grey_p and callers): 3363 * xfns.c (grey_p and callers):
3364 New function to compensate for ugly chauvinistic American 3364 New function to compensate for ugly chauvinistic American
@@ -3496,7 +3496,7 @@
3496 core-dump) 3496 core-dump)
3497 3497
3498 Dike out global-minor-modes. This wasn't actually being used by 3498 Dike out global-minor-modes. This wasn't actually being used by
3499 anything (due to a bug) and wasn't even being initialised! 3499 anything (due to a bug) and wasn't even being initialized!
3500 minor-mode-alist does what this thought it was doing. 3500 minor-mode-alist does what this thought it was doing.
3501 3501
35021986-10-11 Richard Mlynarik (mly@prep) 35021986-10-11 Richard Mlynarik (mly@prep)
@@ -4787,4 +4787,3 @@ See ChangeLog.1 for earlier changes.
4787 4787
4788 You should have received a copy of the GNU General Public License 4788 You should have received a copy of the GNU General Public License
4789 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. 4789 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
4790
diff --git a/src/ChangeLog.3 b/src/ChangeLog.3
index 79a580938d7..fb3ec172055 100644
--- a/src/ChangeLog.3
+++ b/src/ChangeLog.3
@@ -900,9 +900,9 @@
900 invalid overlay. 900 invalid overlay.
901 (syms_of_buffer): defsubr Soverlayp; initialize Qoverlayp. 901 (syms_of_buffer): defsubr Soverlayp; initialize Qoverlayp.
902 (Fdelete_overlay): Set the overlay's markers to point nowhere. 902 (Fdelete_overlay): Set the overlay's markers to point nowhere.
903 Use CHECK_OVERLAY instead of signalling a special error. 903 Use CHECK_OVERLAY instead of signaling a special error.
904 (Fmove_overlay, Foverlay_put): Use CHECK_OVERLAY instead of 904 (Fmove_overlay, Foverlay_put): Use CHECK_OVERLAY instead of
905 signalling a special error. 905 signaling a special error.
906 (Foverlay_get): Use CHECK_OVERLAY. 906 (Foverlay_get): Use CHECK_OVERLAY.
907 * fns.c (internal_equal): Define this for overlays. 907 * fns.c (internal_equal): Define this for overlays.
908 * buffer.h (OVERLAY_VALID): Define in terms of OVERLAYP. 908 * buffer.h (OVERLAY_VALID): Define in terms of OVERLAYP.
@@ -5549,7 +5549,7 @@
5549 h->poll_suppress_count. 5549 h->poll_suppress_count.
5550 5550
5551 * eval.c (Fsignal): It's okay for the debugger to return to the 5551 * eval.c (Fsignal): It's okay for the debugger to return to the
5552 caller if the caller was signalling a quit. 5552 caller if the caller was signaling a quit.
5553 5553
5554 * eval.c (unbind_catch): Restore the polling suppression count 5554 * eval.c (unbind_catch): Restore the polling suppression count
5555 here, instead of in Fsignal and Fthrow. 5555 here, instead of in Fsignal and Fthrow.
@@ -9010,7 +9010,7 @@
9010 * keyboard.c (cmd_error): If an error occurs before somebody has 9010 * keyboard.c (cmd_error): If an error occurs before somebody has
9011 provided a screen to print it on, print it to stderr and exit 9011 provided a screen to print it on, print it to stderr and exit
9012 Emacs. Handle batch-mode errors with the same code. 9012 Emacs. Handle batch-mode errors with the same code.
9013 * lisp.h (Qexternal_debugging_ouput): New extern declaration, for 9013 * lisp.h (Qexternal_debugging_output): New extern declaration, for
9014 use in cmd_error. 9014 use in cmd_error.
9015 9015
9016 * screen.c (Fscreen_pixel_size, Fset_screen_position): Doc fix. 9016 * screen.c (Fscreen_pixel_size, Fset_screen_position): Doc fix.
@@ -10592,7 +10592,7 @@
10592 (init_x_parm_symbols, x_set_screen_param): Use x_screen_parms 10592 (init_x_parm_symbols, x_set_screen_param): Use x_screen_parms
10593 instead of a large switch statement. 10593 instead of a large switch statement.
10594 (x_figure_window_size): Make the default case of the switch call 10594 (x_figure_window_size): Make the default case of the switch call
10595 abort instead of signalling an error, since window_prompting's 10595 abort instead of signaling an error, since window_prompting's
10596 value is internally generated. 10596 value is internally generated.
10597 10597
105981991-05-01 Jim Blandy (jimb@churchy.gnu.ai.mit.edu) 105981991-05-01 Jim Blandy (jimb@churchy.gnu.ai.mit.edu)
@@ -13137,7 +13137,7 @@
13137 * print.c: Include dispextern.h. 13137 * print.c: Include dispextern.h.
13138 (printchar, strout): Use message_buf. 13138 (printchar, strout): Use message_buf.
13139 13139
13140 * sysdep.c (get_screen_size): Don't use MscreenWidth, MscreenLenght. 13140 * sysdep.c (get_screen_size): Don't use MscreenWidth, MscreenLength.
13141 * term.c: Likewise. 13141 * term.c: Likewise.
13142 13142
13143 * scroll.c (CalcIDCosts, CalcIDCosts1, CalcLID): These now take a 13143 * scroll.c (CalcIDCosts, CalcIDCosts1, CalcLID): These now take a
@@ -13147,7 +13147,7 @@
13147 (do_scrolling): Use alloca for queue. 13147 (do_scrolling): Use alloca for queue.
13148 13148
13149 * dispnew.c (remake_screen_structures): Allocate message_buf. 13149 * dispnew.c (remake_screen_structures): Allocate message_buf.
13150 Don't use MscreenWidth, MscreenLenght. 13150 Don't use MscreenWidth, MscreenLength.
13151 13151
13152 * xdisp.c: bf_cur replaced with current_buffer. 13152 * xdisp.c: bf_cur replaced with current_buffer.
13153 Calls to SetBfx deleted. 13153 Calls to SetBfx deleted.
@@ -14884,7 +14884,7 @@
14884 14884
148851989-08-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu) 148851989-08-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14886 14886
14887 * fileio.c (barf_or_query_if_file_exists): When signalling, 14887 * fileio.c (barf_or_query_if_file_exists): When signaling,
14888 provide the expected args for a file-error. 14888 provide the expected args for a file-error.
14889 14889
148901989-08-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu) 148901989-08-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
@@ -15414,7 +15414,7 @@
15414 * xfns.c (Fx_create_screen): If user has specified 15414 * xfns.c (Fx_create_screen): If user has specified
15415 `x-iconic-startup' then start emacs in iconic form. 15415 `x-iconic-startup' then start emacs in iconic form.
15416 Look for icon position in `icon-left' and `icon-top', or use 15416 Look for icon position in `icon-left' and `icon-top', or use
15417 window postion. 15417 window position.
15418 15418
15419 * xterm.c (x_term_init): If server doesn't respond, use fatal 15419 * xterm.c (x_term_init): If server doesn't respond, use fatal
15420 instead of error. Also tell user about -d option. 15420 instead of error. Also tell user about -d option.
diff --git a/src/ChangeLog.4 b/src/ChangeLog.4
index dc8fe23a221..88c9e3dbf71 100644
--- a/src/ChangeLog.4
+++ b/src/ChangeLog.4
@@ -811,7 +811,7 @@
811 811
8121994-04-28 Michael D. Ernst (mernst@monozygote.research.microsoft.com) 8121994-04-28 Michael D. Ernst (mernst@monozygote.research.microsoft.com)
813 813
814 * fileio.c (inhibit-file-name-handers): Correct documentation. 814 * fileio.c (inhibit-file-name-handlers): Correct documentation.
815 815
8161994-04-28 Karl Heuer (kwzh@hal.gnu.ai.mit.edu) 8161994-04-28 Karl Heuer (kwzh@hal.gnu.ai.mit.edu)
817 817
@@ -1885,7 +1885,7 @@
18851994-03-22 Frederic Pierresteguy (fp@mole.gnu.ai.mit.edu) 18851994-03-22 Frederic Pierresteguy (fp@mole.gnu.ai.mit.edu)
1886 1886
1887 * widget.c (set_frame_size): Put #if 0 around a lot of useless code. 1887 * widget.c (set_frame_size): Put #if 0 around a lot of useless code.
1888 Compute explicitely the geometry of the toplevel widget. 1888 Compute explicitly the geometry of the toplevel widget.
1889 Call XtSetValues not XtVaSetValues. 1889 Call XtSetValues not XtVaSetValues.
1890 1890
18911994-03-22 Richard Stallman (rms@mole.gnu.ai.mit.edu) 18911994-03-22 Richard Stallman (rms@mole.gnu.ai.mit.edu)
@@ -3656,7 +3656,7 @@
3656 3656
3657 * m/delta.h (BROKEN_CLOSEDIR): Added because closedir is interruptible. 3657 * m/delta.h (BROKEN_CLOSEDIR): Added because closedir is interruptible.
3658 (HAVE_UNISTD_H): Deleted because configure takes care of it. 3658 (HAVE_UNISTD_H): Deleted because configure takes care of it.
3659 (C_SWITCH_MACHINE): Added optimisation options for gnu cc. 3659 (C_SWITCH_MACHINE): Added optimization options for gnu cc.
3660 3660
36611993-12-17 Mike Long (mike.long@analog.com) 36611993-12-17 Mike Long (mike.long@analog.com)
3662 3662
@@ -5007,7 +5007,7 @@
5007 Change display code to handle the `invisible' text property. 5007 Change display code to handle the `invisible' text property.
5008 * dispnew.c (direct_output_for_insert): Fail if character 5008 * dispnew.c (direct_output_for_insert): Fail if character
5009 just inserted has text properties. 5009 just inserted has text properties.
5010 (direct_ouput_forward_char): Fail if moving near invisible chars. 5010 (direct_output_forward_char): Fail if moving near invisible chars.
5011 * indent.c (compute_motion): Compute correctly for invisible text. 5011 * indent.c (compute_motion): Compute correctly for invisible text.
5012 (vmotion): Take care of invisible newlines. 5012 (vmotion): Take care of invisible newlines.
5013 * intervals.c (set_point): Ignore `invisible' property 5013 * intervals.c (set_point): Ignore `invisible' property
diff --git a/src/ChangeLog.5 b/src/ChangeLog.5
index 1f21e9fb99c..ee79917a34d 100644
--- a/src/ChangeLog.5
+++ b/src/ChangeLog.5
@@ -3463,7 +3463,7 @@
3463 3463
3464 * lisp.h (running_asynch_code): New global flag. 3464 * lisp.h (running_asynch_code): New global flag.
3465 * emacs.c (running_asynch_code): New global flag. 3465 * emacs.c (running_asynch_code): New global flag.
3466 (main): Initialise it. 3466 (main): Initialize it.
3467 * process.c (read_process_output, exec_sentinel): Set and 3467 * process.c (read_process_output, exec_sentinel): Set and
3468 reset the running_asynch_code global flag and restore match data. 3468 reset the running_asynch_code global flag and restore match data.
3469 3469
diff --git a/src/ChangeLog.6 b/src/ChangeLog.6
index f9372aa666a..af97d0de7b4 100644
--- a/src/ChangeLog.6
+++ b/src/ChangeLog.6
@@ -1138,7 +1138,7 @@
1138 ntproc.c and simplified to match other changes (all handles are 1138 ntproc.c and simplified to match other changes (all handles are
1139 already non-inheritable). 1139 already non-inheritable).
1140 1140
1141 (get_emacs_configuration): Detect Windows flavour (Windows 95 or 1141 (get_emacs_configuration): Detect Windows flavor (Windows 95 or
1142 NT) at run-time. Change OS name for Windows 95 to be "win95". 1142 NT) at run-time. Change OS name for Windows 95 to be "win95".
1143 1143
1144 (fd_info): New variable. Array of extra info for file descriptors 1144 (fd_info): New variable. Array of extra info for file descriptors
@@ -1182,7 +1182,7 @@
1182 support in sys_select. 1182 support in sys_select.
1183 1183
1184 (term_ntproc): New function. 1184 (term_ntproc): New function.
1185 (init_ntproc): New function to initialise socket support and make 1185 (init_ntproc): New function to initialize socket support and make
1186 initial std handles non-inheritable. Also ensure stdin, stdout 1186 initial std handles non-inheritable. Also ensure stdin, stdout
1187 and stderr have valid handles so that pipes and sockets can't 1187 and stderr have valid handles so that pipes and sockets can't
1188 inadvertently use fd 0, 1, or 2. 1188 inadvertently use fd 0, 1, or 2.
@@ -1440,7 +1440,7 @@
1440 Correctly detect when default_directory is absolute. 1440 Correctly detect when default_directory is absolute.
1441 Be strict when looking for MSDOS drive specifier; defer calling 1441 Be strict when looking for MSDOS drive specifier; defer calling
1442 getdefdir. Ignore drive specifier if name now has UNC prefix. 1442 getdefdir. Ignore drive specifier if name now has UNC prefix.
1443 Correctly recognise if name is not absolute when trying simple 1443 Correctly recognize if name is not absolute when trying simple
1444 method to expand; return original string if possible. 1444 method to expand; return original string if possible.
1445 Skip dir sep after ~ or ~user. 1445 Skip dir sep after ~ or ~user.
1446 Use getpwnam instead of HOME for ~user on NT. 1446 Use getpwnam instead of HOME for ~user on NT.
diff --git a/src/ChangeLog.7 b/src/ChangeLog.7
index fa55d6974ad..ec4c27a4d9e 100644
--- a/src/ChangeLog.7
+++ b/src/ChangeLog.7
@@ -5943,7 +5943,7 @@
5943 Vauto_file_coding_system. 5943 Vauto_file_coding_system.
5944 (syms_of_fileio): Adjusted for the above change. Doc change. 5944 (syms_of_fileio): Adjusted for the above change. Doc change.
5945 (Finsert_file_contents): The argument for Vset_auto_coding is a 5945 (Finsert_file_contents): The argument for Vset_auto_coding is a
5946 concatination of the heading 1K-byte and the tailing 3K-byte. 5946 concatenation of the heading 1K-byte and the tailing 3K-byte.
5947 5947
5948 * cmds.c (internal_self_insert): Only set TARGET_CLM when C2 is tab. 5948 * cmds.c (internal_self_insert): Only set TARGET_CLM when C2 is tab.
5949 When multibyte characters are disabled, 5949 When multibyte characters are disabled,
@@ -7485,7 +7485,7 @@
7485 7485
74861997-06-09 Kenichi Handa <handa@etl.go.jp> 74861997-06-09 Kenichi Handa <handa@etl.go.jp>
7487 7487
7488 * buffer.c (init_buffer_once): Inititialize the member 7488 * buffer.c (init_buffer_once): Initialize the member
7489 buffer_file_coding_system. 7489 buffer_file_coding_system.
7490 (syms_of_buffer): Declare Lisp variables 7490 (syms_of_buffer): Declare Lisp variables
7491 default-buffer-file-coding-system and buffer-file-coding-system. 7491 default-buffer-file-coding-system and buffer-file-coding-system.
@@ -10963,7 +10963,7 @@
109631996-08-28 Morten Welinder <terra@diku.dk> 109631996-08-28 Morten Welinder <terra@diku.dk>
10964 10964
10965 * minibuf.c (Vhistory_length, Qhistory_length): New variables. 10965 * minibuf.c (Vhistory_length, Qhistory_length): New variables.
10966 (syms_of_minibuf): Register and initialise these. 10966 (syms_of_minibuf): Register and initialize these.
10967 (read_minibuf): Truncate history list if needed. 10967 (read_minibuf): Truncate history list if needed.
10968 10968
109691996-08-28 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> 109691996-08-28 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
diff --git a/src/ChangeLog.8 b/src/ChangeLog.8
index 6fd4d5dea27..bd51e55cdc6 100644
--- a/src/ChangeLog.8
+++ b/src/ChangeLog.8
@@ -919,7 +919,7 @@
9191999-11-28 Eli Zaretskii <eliz@is.elta.co.il> 9191999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
920 920
921 * charset.c (Fmake_char_internal): Print the charset ID when 921 * charset.c (Fmake_char_internal): Print the charset ID when
922 signalling an error. 922 signaling an error.
923 923
924 * emacs.c (synchronize_locale): Avoid compiler warnings about 924 * emacs.c (synchronize_locale): Avoid compiler warnings about
925 pointer type mismatch. 925 pointer type mismatch.
@@ -2196,7 +2196,7 @@
2196 2196
21971999-09-14 Gerd Moellmann <gerd@gnu.org> 21971999-09-14 Gerd Moellmann <gerd@gnu.org>
2198 2198
2199 * sound.c (Fplay_sound): Remove usused variables. 2199 * sound.c (Fplay_sound): Remove unused variables.
2200 (be2hs): Put in #if 0 because it's currently not used. 2200 (be2hs): Put in #if 0 because it's currently not used.
2201 2201
22021999-09-14 Ken Raeburn <raeburn@gnu.org> 22021999-09-14 Ken Raeburn <raeburn@gnu.org>
@@ -7367,7 +7367,7 @@
7367 7367
7368 * xfaces.c (free_font): Removed. 7368 * xfaces.c (free_font): Removed.
7369 (load_face_font_or_fontset): Renamed from load_font. 7369 (load_face_font_or_fontset): Renamed from load_font.
7370 (load_face_font_or_fontset): Use message2 instead of signalling. 7370 (load_face_font_or_fontset): Use message2 instead of signaling.
7371 (load_color): Likewise. 7371 (load_color): Likewise.
7372 (load_pixmap): Likewise. 7372 (load_pixmap): Likewise.
7373 7373
@@ -13266,7 +13266,7 @@
13266 13266
13267 * charset.c (Fchar_bytes): Doc fix. 13267 * charset.c (Fchar_bytes): Doc fix.
13268 (char_bytes): Fix returned value to match returned type. 13268 (char_bytes): Fix returned value to match returned type.
13269 (syms_of_charset): Fix type clash in initialisation of 13269 (syms_of_charset): Fix type clash in initialization of
13270 Vauto_fill_chars. 13270 Vauto_fill_chars.
13271 13271
132721998-10-29 Geoff Voelker <voelker@cs.washington.edu> 132721998-10-29 Geoff Voelker <voelker@cs.washington.edu>
@@ -13429,7 +13429,7 @@
13429 `x-list-fonts.c'. 13429 `x-list-fonts.c'.
13430 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New 13430 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
13431 functions for fontset support - adapted from x_ equivalents. 13431 functions for fontset support - adapted from x_ equivalents.
13432 (syms_of_w32fns): New lisp variables initialised. Function 13432 (syms_of_w32fns): New lisp variables initialized. Function
13433 pointers for fontset.c set up. 13433 pointers for fontset.c set up.
13434 13434
13435 * w32term.c: Include fontset.h. Define codepage macros. 13435 * w32term.c: Include fontset.h. Define codepage macros.
diff --git a/src/ChangeLog.9 b/src/ChangeLog.9
index 1a4abfab61b..9e7bd24f792 100644
--- a/src/ChangeLog.9
+++ b/src/ChangeLog.9
@@ -8409,7 +8409,7 @@
8409 (encode_coding_iso2022): New local variable safe_chars. Check 8409 (encode_coding_iso2022): New local variable safe_chars. Check
8410 unsafe chars. 8410 unsafe chars.
8411 (setup_coding_system): Delete the code to initialize 8411 (setup_coding_system): Delete the code to initialize
8412 coding->safe_charses. 8412 coding->safe_charsets.
8413 (intersection, find_safe_codings): New functions. 8413 (intersection, find_safe_codings): New functions.
8414 (Ffind_coding_systems_region_internal): New function. 8414 (Ffind_coding_systems_region_internal): New function.
8415 (syms_of_coding): Defsubr it. Initialize Qsafe_chars, 8415 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
diff --git a/src/alloc.c b/src/alloc.c
index 639a35c3f36..96d63f53cf9 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -876,7 +876,7 @@ safe_alloca_unwind (Lisp_Object arg)
876 876
877/* Like malloc but used for allocating Lisp data. NBYTES is the 877/* Like malloc but used for allocating Lisp data. NBYTES is the
878 number of bytes to allocate, TYPE describes the intended use of the 878 number of bytes to allocate, TYPE describes the intended use of the
879 allcated memory block (for strings, for conses, ...). */ 879 allocated memory block (for strings, for conses, ...). */
880 880
881#ifndef USE_LSB_TAG 881#ifndef USE_LSB_TAG
882static void *lisp_malloc_loser; 882static void *lisp_malloc_loser;
@@ -1406,7 +1406,7 @@ uninterrupt_malloc (void)
1406#ifdef DOUG_LEA_MALLOC 1406#ifdef DOUG_LEA_MALLOC
1407 pthread_mutexattr_t attr; 1407 pthread_mutexattr_t attr;
1408 1408
1409 /* GLIBC has a faster way to do this, but lets keep it portable. 1409 /* GLIBC has a faster way to do this, but let's keep it portable.
1410 This is according to the Single UNIX Specification. */ 1410 This is according to the Single UNIX Specification. */
1411 pthread_mutexattr_init (&attr); 1411 pthread_mutexattr_init (&attr);
1412 pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE); 1412 pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE);
diff --git a/src/buffer.c b/src/buffer.c
index fdf006a41eb..8bc6e37732d 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -4431,7 +4431,7 @@ static int mmap_initialized_p;
4431 is currently mapped. Used to prevent overwriting an existing 4431 is currently mapped. Used to prevent overwriting an existing
4432 memory mapping. 4432 memory mapping.
4433 4433
4434 Default is to conservativly assume the address range is occupied by 4434 Default is to conservatively assume the address range is occupied by
4435 something else. This can be overridden by system configuration 4435 something else. This can be overridden by system configuration
4436 files if system-specific means to determine this exists. */ 4436 files if system-specific means to determine this exists. */
4437 4437
@@ -4439,7 +4439,7 @@ static int mmap_initialized_p;
4439#define MMAP_ALLOCATED_P(start, end) 1 4439#define MMAP_ALLOCATED_P(start, end) 1
4440#endif 4440#endif
4441 4441
4442/* Perform necessary intializations for the use of mmap. */ 4442/* Perform necessary initializations for the use of mmap. */
4443 4443
4444static void 4444static void
4445mmap_init (void) 4445mmap_init (void)
diff --git a/src/buffer.h b/src/buffer.h
index a6b82abf053..fa65a4b81fd 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -978,7 +978,7 @@ extern int last_per_buffer_idx;
978 variable has an index > 0 associated with it, except when it always 978 variable has an index > 0 associated with it, except when it always
979 has buffer-local values, in which case the index is -1. If this is 979 has buffer-local values, in which case the index is -1. If this is
980 0, this is a bug and means that the slot of VAR in 980 0, this is a bug and means that the slot of VAR in
981 buffer_local_flags wasn't intiialized. */ 981 buffer_local_flags wasn't initialized. */
982 982
983#define PER_BUFFER_VAR_IDX(VAR) \ 983#define PER_BUFFER_VAR_IDX(VAR) \
984 PER_BUFFER_IDX (PER_BUFFER_VAR_OFFSET (VAR)) 984 PER_BUFFER_IDX (PER_BUFFER_VAR_OFFSET (VAR))
diff --git a/src/bytecode.c b/src/bytecode.c
index 9ed29e94b54..3af0abd63cf 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -271,7 +271,7 @@ struct byte_stack
271/* A list of currently active byte-code execution value stacks. 271/* A list of currently active byte-code execution value stacks.
272 Fbyte_code adds an entry to the head of this list before it starts 272 Fbyte_code adds an entry to the head of this list before it starts
273 processing byte-code, and it removed the entry again when it is 273 processing byte-code, and it removed the entry again when it is
274 done. Signalling an error truncates the list analoguous to 274 done. Signaling an error truncates the list analogous to
275 gcprolist. */ 275 gcprolist. */
276 276
277struct byte_stack *byte_stack_list; 277struct byte_stack *byte_stack_list;
diff --git a/src/ccl.c b/src/ccl.c
index 01943eddf58..2b4f04d1247 100644
--- a/src/ccl.c
+++ b/src/ccl.c
@@ -47,7 +47,7 @@ static Lisp_Object Qcode_conversion_map;
47static Lisp_Object Qcode_conversion_map_id; 47static Lisp_Object Qcode_conversion_map_id;
48 48
49/* Symbols of ccl program have this property, a value of the property 49/* Symbols of ccl program have this property, a value of the property
50 is an index for Vccl_protram_table. */ 50 is an index for Vccl_program_table. */
51static Lisp_Object Qccl_program_idx; 51static Lisp_Object Qccl_program_idx;
52 52
53/* Table of registered CCL programs. Each element is a vector of 53/* Table of registered CCL programs. Each element is a vector of
@@ -484,7 +484,7 @@ static Lisp_Object Vccl_program_table;
484 If the element is t or lambda, finish without changing reg[rrr]. 484 If the element is t or lambda, finish without changing reg[rrr].
485 If the element is a number, set reg[rrr] to the number and finish. 485 If the element is a number, set reg[rrr] to the number and finish.
486 486
487 Detail of the map structure is descibed in the comment for 487 Detail of the map structure is described in the comment for
488 CCL_MapMultiple below. */ 488 CCL_MapMultiple below. */
489 489
490#define CCL_IterateMultipleMap 0x10 /* Iterate multiple maps 490#define CCL_IterateMultipleMap 0x10 /* Iterate multiple maps
@@ -1762,7 +1762,7 @@ ccl_driver (struct ccl_program *ccl, int *source, int *destination, int src_size
1762 1762
1763 case CCL_STAT_QUIT: 1763 case CCL_STAT_QUIT:
1764 if (! ccl->quit_silently) 1764 if (! ccl->quit_silently)
1765 sprintf (msg, "\nCCL: Quited."); 1765 sprintf (msg, "\nCCL: Quitted.");
1766 break; 1766 break;
1767 1767
1768 default: 1768 default:
@@ -1808,7 +1808,7 @@ ccl_driver (struct ccl_program *ccl, int *source, int *destination, int src_size
1808 1808
1809/* Resolve symbols in the specified CCL code (Lisp vector). This 1809/* Resolve symbols in the specified CCL code (Lisp vector). This
1810 function converts symbols of code conversion maps and character 1810 function converts symbols of code conversion maps and character
1811 translation tables embeded in the CCL code into their ID numbers. 1811 translation tables embedded in the CCL code into their ID numbers.
1812 1812
1813 The return value is a vector (CCL itself or a new vector in which 1813 The return value is a vector (CCL itself or a new vector in which
1814 all symbols are resolved), Qt if resolving of some symbol failed, 1814 all symbols are resolved), Qt if resolving of some symbol failed,
diff --git a/src/character.c b/src/character.c
index fb9b8a9b93e..88b1f11b96b 100644
--- a/src/character.c
+++ b/src/character.c
@@ -588,7 +588,7 @@ parse_str_as_multibyte (const unsigned char *str, EMACS_INT len,
588} 588}
589 589
590/* Arrange unibyte text at STR of NBYTES bytes as a multibyte text. 590/* Arrange unibyte text at STR of NBYTES bytes as a multibyte text.
591 It actually converts only such 8-bit characters that don't contruct 591 It actually converts only such 8-bit characters that don't construct
592 a multibyte sequence to multibyte forms of Latin-1 characters. If 592 a multibyte sequence to multibyte forms of Latin-1 characters. If
593 NCHARS is nonzero, set *NCHARS to the number of characters in the 593 NCHARS is nonzero, set *NCHARS to the number of characters in the
594 text. It is assured that we can use LEN bytes at STR as a work 594 text. It is assured that we can use LEN bytes at STR as a work
@@ -669,7 +669,7 @@ str_as_multibyte (unsigned char *str, EMACS_INT len, EMACS_INT nbytes,
669} 669}
670 670
671/* Parse unibyte string at STR of LEN bytes, and return the number of 671/* Parse unibyte string at STR of LEN bytes, and return the number of
672 bytes it may ocupy when converted to multibyte string by 672 bytes it may occupy when converted to multibyte string by
673 `str_to_multibyte'. */ 673 `str_to_multibyte'. */
674 674
675EMACS_INT 675EMACS_INT
@@ -969,7 +969,7 @@ character is a target to get a byte value. In this case, POSITION, if
969non-nil, is an index of a target character in the string. 969non-nil, is an index of a target character in the string.
970 970
971If the current buffer (or STRING) is multibyte, and the target 971If the current buffer (or STRING) is multibyte, and the target
972character is not ASCII nor 8-bit character, an error is signalled. */) 972character is not ASCII nor 8-bit character, an error is signaled. */)
973 (Lisp_Object position, Lisp_Object string) 973 (Lisp_Object position, Lisp_Object string)
974{ 974{
975 int c; 975 int c;
diff --git a/src/character.h b/src/character.h
index 09bcf17ab96..5ae6cb8c49c 100644
--- a/src/character.h
+++ b/src/character.h
@@ -596,7 +596,7 @@ sanitize_char_width (EMACS_INT width)
596 ? ASCII_CHAR_WIDTH (c) \ 596 ? ASCII_CHAR_WIDTH (c) \
597 : sanitize_char_width (XINT (CHAR_TABLE_REF (Vchar_width_table, c)))) 597 : sanitize_char_width (XINT (CHAR_TABLE_REF (Vchar_width_table, c))))
598 598
599/* If C is a variation selector, return the index numnber of the 599/* If C is a variation selector, return the index of the
600 variation selector (1..256). Otherwise, return 0. */ 600 variation selector (1..256). Otherwise, return 0. */
601 601
602#define CHAR_VARIATION_SELECTOR_P(c) \ 602#define CHAR_VARIATION_SELECTOR_P(c) \
diff --git a/src/charset.c b/src/charset.c
index 8d6a3982d14..266753f9d05 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -162,8 +162,8 @@ static struct
162 /* 1 iff the following table is used for encoder. */ 162 /* 1 iff the following table is used for encoder. */
163 short for_encoder; 163 short for_encoder;
164 164
165 /* When the following table is used for encoding, mininum and 165 /* When the following table is used for encoding, minimum and
166 maxinum character of the current charset. */ 166 maximum character of the current charset. */
167 int min_char, max_char; 167 int min_char, max_char;
168 168
169 /* A Unicode character correspoinding to the code indice 0 (i.e. the 169 /* A Unicode character correspoinding to the code indice 0 (i.e. the
diff --git a/src/charset.h b/src/charset.h
index be02bc0feae..fc35d6bb991 100644
--- a/src/charset.h
+++ b/src/charset.h
@@ -153,7 +153,7 @@ struct charset
153 /* Dimension of the charset: 1, 2, 3, or 4. */ 153 /* Dimension of the charset: 1, 2, 3, or 4. */
154 int dimension; 154 int dimension;
155 155
156 /* Byte code range of each dimension. <code_space>[4N] is a mininum 156 /* Byte code range of each dimension. <code_space>[4N] is a minimum
157 byte code of the (N+1)th dimension, <code_space>[4N+1] is a 157 byte code of the (N+1)th dimension, <code_space>[4N+1] is a
158 maximum byte code of the (N+1)th dimension, <code_space>[4N+2] is 158 maximum byte code of the (N+1)th dimension, <code_space>[4N+2] is
159 (<code_space>[4N+1] - <code_space>[4N] + 1), <code_space>[4N+3] 159 (<code_space>[4N+1] - <code_space>[4N] + 1), <code_space>[4N+3]
@@ -199,14 +199,14 @@ struct charset
199 /* The method for encoding/decoding characters of the charset. */ 199 /* The method for encoding/decoding characters of the charset. */
200 enum charset_method method; 200 enum charset_method method;
201 201
202 /* Mininum and Maximum code points of the charset. */ 202 /* Minimum and Maximum code points of the charset. */
203 unsigned min_code, max_code; 203 unsigned min_code, max_code;
204 204
205 /* Offset value used by macros CODE_POINT_TO_INDEX and 205 /* Offset value used by macros CODE_POINT_TO_INDEX and
206 INDEX_TO_CODE_POINT. . */ 206 INDEX_TO_CODE_POINT. . */
207 unsigned char_index_offset; 207 unsigned char_index_offset;
208 208
209 /* Mininum and Maximum character codes of the charset. If the 209 /* Minimum and Maximum character codes of the charset. If the
210 charset is compatible with ASCII, min_char is a minimum non-ASCII 210 charset is compatible with ASCII, min_char is a minimum non-ASCII
211 character of the charset. If the method of charset is 211 character of the charset. If the method of charset is
212 CHARSET_METHOD_OFFSET, even if the charset is unified, min_char 212 CHARSET_METHOD_OFFSET, even if the charset is unified, min_char
diff --git a/src/chartab.c b/src/chartab.c
index 1d4ac04312a..8d903749284 100644
--- a/src/chartab.c
+++ b/src/chartab.c
@@ -747,7 +747,7 @@ equivalent and can be merged. It defaults to `equal'. */)
747 ARG is passed to C_FUNCTION when that is called. 747 ARG is passed to C_FUNCTION when that is called.
748 748
749 It returns the value of last character covered by TABLE (not the 749 It returns the value of last character covered by TABLE (not the
750 value inheritted from the parent), and by side-effect, the car part 750 value inherited from the parent), and by side-effect, the car part
751 of RANGE is updated to the minimum character C where C and all the 751 of RANGE is updated to the minimum character C where C and all the
752 following characters in TABLE have the same value. */ 752 following characters in TABLE have the same value. */
753 753
@@ -758,7 +758,7 @@ map_sub_char_table (void (*c_function) (Lisp_Object, Lisp_Object, Lisp_Object),
758{ 758{
759 /* Depth of TABLE. */ 759 /* Depth of TABLE. */
760 int depth; 760 int depth;
761 /* Minimum and maxinum characters covered by TABLE. */ 761 /* Minimum and maximum characters covered by TABLE. */
762 int min_char, max_char; 762 int min_char, max_char;
763 /* Number of characters covered by one element of TABLE. */ 763 /* Number of characters covered by one element of TABLE. */
764 int chars_in_block; 764 int chars_in_block;
@@ -1196,7 +1196,7 @@ uniprop_table_uncompress (Lisp_Object table, int idx)
1196} 1196}
1197 1197
1198 1198
1199/* Decode VALUE as an elemnet of char-table TABLE. */ 1199/* Decode VALUE as an element of char-table TABLE. */
1200 1200
1201static Lisp_Object 1201static Lisp_Object
1202uniprop_decode_value_run_length (Lisp_Object table, Lisp_Object value) 1202uniprop_decode_value_run_length (Lisp_Object table, Lisp_Object value)
diff --git a/src/coding.h b/src/coding.h
index fdf9b762e75..2621928adc3 100644
--- a/src/coding.h
+++ b/src/coding.h
@@ -518,7 +518,7 @@ struct coding_system
518#define CODING_REQUIRE_DETECTION_MASK 0x1000 518#define CODING_REQUIRE_DETECTION_MASK 0x1000
519#define CODING_RESET_AT_BOL_MASK 0x2000 519#define CODING_RESET_AT_BOL_MASK 0x2000
520 520
521/* Return 1 if the coding context CODING requires annotaion 521/* Return 1 if the coding context CODING requires annotation
522 handling. */ 522 handling. */
523#define CODING_REQUIRE_ANNOTATION(coding) \ 523#define CODING_REQUIRE_ANNOTATION(coding) \
524 ((coding)->common_flags & CODING_ANNOTATION_MASK) 524 ((coding)->common_flags & CODING_ANNOTATION_MASK)
diff --git a/src/composite.c b/src/composite.c
index c8e4dd082ae..885e0262673 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -1307,7 +1307,7 @@ composition_reseat_it (struct composition_it *cmp_it, EMACS_INT charpos, EMACS_I
1307 if (cmp_it->lookback == 0) 1307 if (cmp_it->lookback == 0)
1308 goto no_composition; 1308 goto no_composition;
1309 lgstring = Qnil; 1309 lgstring = Qnil;
1310 /* Try to find a shorter compostion that starts after CPOS. */ 1310 /* Try to find a shorter composition that starts after CPOS. */
1311 composition_compute_stop_pos (cmp_it, charpos, bytepos, cpos, 1311 composition_compute_stop_pos (cmp_it, charpos, bytepos, cpos,
1312 string); 1312 string);
1313 if (cmp_it->ch == -2 || cmp_it->stop_pos < charpos) 1313 if (cmp_it->ch == -2 || cmp_it->stop_pos < charpos)
diff --git a/src/composite.h b/src/composite.h
index c57e2a0e9b3..60145b10bd9 100644
--- a/src/composite.h
+++ b/src/composite.h
@@ -41,7 +41,7 @@ enum composition_method {
41 COMPOSITION_NO 41 COMPOSITION_NO
42}; 42};
43 43
44/* Maximum number of compoments a single composition can have. */ 44/* Maximum number of components a single composition can have. */
45#define MAX_COMPOSITION_COMPONENTS 16 45#define MAX_COMPOSITION_COMPONENTS 16
46 46
47/* These macros access information about a composition that 47/* These macros access information about a composition that
diff --git a/src/data.c b/src/data.c
index 76a54547a5d..e8d2b43198f 100644
--- a/src/data.c
+++ b/src/data.c
@@ -2028,7 +2028,7 @@ DEFUN ("indirect-function", Findirect_function, Sindirect_function, 1, 2, 0,
2028If OBJECT is not a symbol, just return it. Otherwise, follow all 2028If OBJECT is not a symbol, just return it. Otherwise, follow all
2029function indirections to find the final function binding and return it. 2029function indirections to find the final function binding and return it.
2030If the final symbol in the chain is unbound, signal a void-function error. 2030If the final symbol in the chain is unbound, signal a void-function error.
2031Optional arg NOERROR non-nil means to return nil instead of signalling. 2031Optional arg NOERROR non-nil means to return nil instead of signaling.
2032Signal a cyclic-function-indirection error if there is a loop in the 2032Signal a cyclic-function-indirection error if there is a loop in the
2033function chain of symbols. */) 2033function chain of symbols. */)
2034 (register Lisp_Object object, Lisp_Object noerror) 2034 (register Lisp_Object object, Lisp_Object noerror)
diff --git a/src/dbusbind.c b/src/dbusbind.c
index 52e08d8ee2a..7984be3564b 100644
--- a/src/dbusbind.c
+++ b/src/dbusbind.c
@@ -184,7 +184,7 @@ static int xd_in_read_queued_messages = 0;
184#endif 184#endif
185 185
186/* This was a macro. On Solaris 2.11 it was said to compile for 186/* This was a macro. On Solaris 2.11 it was said to compile for
187 hours, when optimzation is enabled. So we have transferred it into 187 hours, when optimization is enabled. So we have transferred it into
188 a function. */ 188 a function. */
189/* Determine the DBusType of a given Lisp symbol. OBJECT must be one 189/* Determine the DBusType of a given Lisp symbol. OBJECT must be one
190 of the predefined D-Bus type symbols. */ 190 of the predefined D-Bus type symbols. */
diff --git a/src/dired.c b/src/dired.c
index fac3a34ab9b..acc81a6ed9d 100644
--- a/src/dired.c
+++ b/src/dired.c
@@ -628,7 +628,7 @@ file_name_completion (Lisp_Object file, Lisp_Object dirname, int all_flag, int v
628 628
629 if (includeall && !canexclude) 629 if (includeall && !canexclude)
630 { /* If we have one non-excludable file, we want to exclude the 630 { /* If we have one non-excludable file, we want to exclude the
631 excudable files. */ 631 excludable files. */
632 includeall = 0; 632 includeall = 0;
633 /* Throw away any previous excludable match found. */ 633 /* Throw away any previous excludable match found. */
634 bestmatch = Qnil; 634 bestmatch = Qnil;
diff --git a/src/dispextern.h b/src/dispextern.h
index 5c60a5499da..486aa4f7a40 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -3126,6 +3126,9 @@ void compute_fringe_widths (struct frame *, int);
3126void w32_init_fringe (struct redisplay_interface *); 3126void w32_init_fringe (struct redisplay_interface *);
3127void w32_reset_fringes (void); 3127void w32_reset_fringes (void);
3128#endif 3128#endif
3129
3130extern unsigned row_hash (struct glyph_row *);
3131
3129/* Defined in image.c */ 3132/* Defined in image.c */
3130 3133
3131#ifdef HAVE_WINDOW_SYSTEM 3134#ifdef HAVE_WINDOW_SYSTEM
diff --git a/src/dispnew.c b/src/dispnew.c
index 7b594c5b4e8..d6bf6666ee2 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -434,18 +434,7 @@ margin_glyphs_to_reserve (struct window *w, int total_glyphs, Lisp_Object margin
434int 434int
435verify_row_hash (struct glyph_row *row) 435verify_row_hash (struct glyph_row *row)
436{ 436{
437 int area, k; 437 return row->hash == row_hash (row);
438 unsigned row_hash = 0;
439
440 for (area = LEFT_MARGIN_AREA; area < LAST_AREA; ++area)
441 for (k = 0; k < row->used[area]; ++k)
442 row_hash = ((((row_hash << 4) + (row_hash >> 24)) & 0x0fffffff)
443 + row->glyphs[area][k].u.val
444 + row->glyphs[area][k].face_id
445 + row->glyphs[area][k].padding_p
446 + (row->glyphs[area][k].type << 2));
447
448 return row_hash == row->hash;
449} 438}
450#endif 439#endif
451 440
@@ -1083,37 +1072,55 @@ swap_glyphs_in_rows (struct glyph_row *a, struct glyph_row *b)
1083 1072
1084#endif /* 0 */ 1073#endif /* 0 */
1085 1074
1086/* Exchange pointers to glyph memory between glyph rows A and B. */ 1075/* Exchange pointers to glyph memory between glyph rows A and B. Also
1076 exchange the used[] array and the hash values of the rows, because
1077 these should all go together for the row's hash value to be
1078 correct. */
1087 1079
1088static inline void 1080static inline void
1089swap_glyph_pointers (struct glyph_row *a, struct glyph_row *b) 1081swap_glyph_pointers (struct glyph_row *a, struct glyph_row *b)
1090{ 1082{
1091 int i; 1083 int i;
1084 unsigned hash_tem = a->hash;
1085
1092 for (i = 0; i < LAST_AREA + 1; ++i) 1086 for (i = 0; i < LAST_AREA + 1; ++i)
1093 { 1087 {
1094 struct glyph *temp = a->glyphs[i]; 1088 struct glyph *temp = a->glyphs[i];
1089 short used_tem = a->used[i];
1090
1095 a->glyphs[i] = b->glyphs[i]; 1091 a->glyphs[i] = b->glyphs[i];
1096 b->glyphs[i] = temp; 1092 b->glyphs[i] = temp;
1093 a->used[i] = b->used[i];
1094 b->used[i] = used_tem;
1097 } 1095 }
1096 a->hash = b->hash;
1097 b->hash = hash_tem;
1098} 1098}
1099 1099
1100 1100
1101/* Copy glyph row structure FROM to glyph row structure TO, except 1101/* Copy glyph row structure FROM to glyph row structure TO, except
1102 that glyph pointers in the structures are left unchanged. */ 1102 that glyph pointers, the `used' counts, and the hash values in the
1103 structures are left unchanged. */
1103 1104
1104static inline void 1105static inline void
1105copy_row_except_pointers (struct glyph_row *to, struct glyph_row *from) 1106copy_row_except_pointers (struct glyph_row *to, struct glyph_row *from)
1106{ 1107{
1107 struct glyph *pointers[1 + LAST_AREA]; 1108 struct glyph *pointers[1 + LAST_AREA];
1109 short used[1 + LAST_AREA];
1110 unsigned hashval;
1108 1111
1109 /* Save glyph pointers of TO. */ 1112 /* Save glyph pointers of TO. */
1110 memcpy (pointers, to->glyphs, sizeof to->glyphs); 1113 memcpy (pointers, to->glyphs, sizeof to->glyphs);
1114 memcpy (used, to->used, sizeof to->used);
1115 hashval = to->hash;
1111 1116
1112 /* Do a structure assignment. */ 1117 /* Do a structure assignment. */
1113 *to = *from; 1118 *to = *from;
1114 1119
1115 /* Restore original pointers of TO. */ 1120 /* Restore original pointers of TO. */
1116 memcpy (to->glyphs, pointers, sizeof to->glyphs); 1121 memcpy (to->glyphs, pointers, sizeof to->glyphs);
1122 memcpy (to->used, used, sizeof to->used);
1123 to->hash = hashval;
1117} 1124}
1118 1125
1119 1126
@@ -3491,7 +3498,7 @@ redraw_overlapping_rows (struct window *w, int yb)
3491 if (row->used[RIGHT_MARGIN_AREA]) 3498 if (row->used[RIGHT_MARGIN_AREA])
3492 rif->fix_overlapping_area (w, row, RIGHT_MARGIN_AREA, overlaps); 3499 rif->fix_overlapping_area (w, row, RIGHT_MARGIN_AREA, overlaps);
3493 3500
3494 /* Record in neighbour rows that ROW overwrites part of 3501 /* Record in neighbor rows that ROW overwrites part of
3495 their display. */ 3502 their display. */
3496 if (overlaps & OVERLAPS_PRED) 3503 if (overlaps & OVERLAPS_PRED)
3497 MATRIX_ROW (w->current_matrix, i - 1)->overlapped_p = 1; 3504 MATRIX_ROW (w->current_matrix, i - 1)->overlapped_p = 1;
@@ -4233,6 +4240,7 @@ add_row_entry (struct glyph_row *row)
4233 ptrdiff_t i = row->hash % row_table_size; 4240 ptrdiff_t i = row->hash % row_table_size;
4234 4241
4235 entry = row_table[i]; 4242 entry = row_table[i];
4243 xassert (entry || verify_row_hash (row));
4236 while (entry && !row_equal_p (entry->row, row, 1)) 4244 while (entry && !row_equal_p (entry->row, row, 1))
4237 entry = entry->next; 4245 entry = entry->next;
4238 4246
diff --git a/src/doprnt.c b/src/doprnt.c
index b4d13c59137..35af2297ff4 100644
--- a/src/doprnt.c
+++ b/src/doprnt.c
@@ -26,7 +26,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
26 of the (`int') argument, suitable for display in an Emacs buffer. 26 of the (`int') argument, suitable for display in an Emacs buffer.
27 27
28 . For %s and %c, when field width is specified (e.g., %25s), it accounts for 28 . For %s and %c, when field width is specified (e.g., %25s), it accounts for
29 the diplay width of each character, according to char-width-table. That 29 the display width of each character, according to char-width-table. That
30 is, it does not assume that each character takes one column on display. 30 is, it does not assume that each character takes one column on display.
31 31
32 . If the size of the buffer is not enough to produce the formatted string in 32 . If the size of the buffer is not enough to produce the formatted string in
diff --git a/src/emacs.c b/src/emacs.c
index 12be7bc0808..529fa35a5bd 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -1402,7 +1402,7 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem
1402#endif 1402#endif
1403 1403
1404 /* argmatch must not be used after here, 1404 /* argmatch must not be used after here,
1405 except when bulding temacs 1405 except when building temacs
1406 because the -d argument has not been skipped in skip_args. */ 1406 because the -d argument has not been skipped in skip_args. */
1407 1407
1408#ifdef MSDOS 1408#ifdef MSDOS
diff --git a/src/fileio.c b/src/fileio.c
index 44a85ab1977..e3586c50056 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -70,7 +70,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
70#define IS_DRIVE(x) isalpha ((unsigned char) (x)) 70#define IS_DRIVE(x) isalpha ((unsigned char) (x))
71#endif 71#endif
72/* Need to lower-case the drive letter, or else expanded 72/* Need to lower-case the drive letter, or else expanded
73 filenames will sometimes compare inequal, because 73 filenames will sometimes compare unequal, because
74 `expand-file-name' doesn't always down-case the drive letter. */ 74 `expand-file-name' doesn't always down-case the drive letter. */
75#define DRIVE_LETTER(x) (tolower ((unsigned char) (x))) 75#define DRIVE_LETTER(x) (tolower ((unsigned char) (x)))
76#endif 76#endif
@@ -338,7 +338,7 @@ Given a Unix syntax file name, returns a string ending in slash. */)
338 338
339 while (p != beg && !IS_DIRECTORY_SEP (p[-1]) 339 while (p != beg && !IS_DIRECTORY_SEP (p[-1])
340#ifdef DOS_NT 340#ifdef DOS_NT
341 /* only recognise drive specifier at the beginning */ 341 /* only recognize drive specifier at the beginning */
342 && !(p[-1] == ':' 342 && !(p[-1] == ':'
343 /* handle the "/:d:foo" and "/:foo" cases correctly */ 343 /* handle the "/:d:foo" and "/:foo" cases correctly */
344 && ((p == beg + 2 && !IS_DIRECTORY_SEP (*beg)) 344 && ((p == beg + 2 && !IS_DIRECTORY_SEP (*beg))
@@ -401,7 +401,7 @@ or the entire name if it contains no slash. */)
401 401
402 while (p != beg && !IS_DIRECTORY_SEP (p[-1]) 402 while (p != beg && !IS_DIRECTORY_SEP (p[-1])
403#ifdef DOS_NT 403#ifdef DOS_NT
404 /* only recognise drive specifier at beginning */ 404 /* only recognize drive specifier at beginning */
405 && !(p[-1] == ':' 405 && !(p[-1] == ':'
406 /* handle the "/:d:foo" case correctly */ 406 /* handle the "/:d:foo" case correctly */
407 && (p == beg + 2 || (p == beg + 4 && IS_DIRECTORY_SEP (*beg)))) 407 && (p == beg + 2 || (p == beg + 4 && IS_DIRECTORY_SEP (*beg))))
diff --git a/src/fns.c b/src/fns.c
index 392f447a6d8..04b51d10d9b 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -3252,7 +3252,7 @@ DEFUN ("base64-decode-string", Fbase64_decode_string, Sbase64_decode_string,
3252 return decoded_string; 3252 return decoded_string;
3253} 3253}
3254 3254
3255/* Base64-decode the data at FROM of LENGHT bytes into TO. If 3255/* Base64-decode the data at FROM of LENGTH bytes into TO. If
3256 MULTIBYTE is nonzero, the decoded result should be in multibyte 3256 MULTIBYTE is nonzero, the decoded result should be in multibyte
3257 form. If NCHARS_RETRUN is not NULL, store the number of produced 3257 form. If NCHARS_RETRUN is not NULL, store the number of produced
3258 characters in *NCHARS_RETURN. */ 3258 characters in *NCHARS_RETURN. */
diff --git a/src/font.c b/src/font.c
index f6723157de1..9559c65e7ed 100644
--- a/src/font.c
+++ b/src/font.c
@@ -802,7 +802,7 @@ font_expand_wildcards (Lisp_Object *field, int n)
802 struct { 802 struct {
803 /* Minimum possible field. */ 803 /* Minimum possible field. */
804 int from; 804 int from;
805 /* Maxinum possible field. */ 805 /* Maximum possible field. */
806 int to; 806 int to;
807 /* Bit mask of possible field. Nth bit corresponds to Nth field. */ 807 /* Bit mask of possible field. Nth bit corresponds to Nth field. */
808 int mask; 808 int mask;
@@ -954,7 +954,7 @@ font_expand_wildcards (Lisp_Object *field, int n)
954 } 954 }
955 } 955 }
956 956
957 /* Decide all fileds from restrictions in RANGE. */ 957 /* Decide all fields from restrictions in RANGE. */
958 for (i = j = 0; i < n ; i++) 958 for (i = j = 0; i < n ; i++)
959 { 959 {
960 if (j < range[i].from) 960 if (j < range[i].from)
@@ -5144,7 +5144,7 @@ the corresponding glyph code. If ENCODING is a char-table, looking up
5144the table by a character gives the corresponding glyph code. 5144the table by a character gives the corresponding glyph code.
5145 5145
5146REPERTORY specifies a repertory of characters supported by the font. 5146REPERTORY specifies a repertory of characters supported by the font.
5147If REPERTORY is a charset, all characters beloging to the charset are 5147If REPERTORY is a charset, all characters belonging to the charset are
5148supported. If REPERTORY is a char-table, all characters who have a 5148supported. If REPERTORY is a char-table, all characters who have a
5149non-nil value in the table are supported. If REPERTORY is nil, Emacs 5149non-nil value in the table are supported. If REPERTORY is nil, Emacs
5150gets the repertory information by an opened font and ENCODING. */); 5150gets the repertory information by an opened font and ENCODING. */);
diff --git a/src/font.h b/src/font.h
index e50eaff9a1f..42fc050b670 100644
--- a/src/font.h
+++ b/src/font.h
@@ -599,7 +599,7 @@ struct font_driver
599 599
600 /* Optional. 600 /* Optional.
601 Store bitmap data for glyph-code CODE of FONT in BITMAP. It is 601 Store bitmap data for glyph-code CODE of FONT in BITMAP. It is
602 intended that this method is callled from the other font-driver 602 intended that this method is called from the other font-driver
603 for actual drawing. */ 603 for actual drawing. */
604 int (*get_bitmap) (struct font *font, unsigned code, 604 int (*get_bitmap) (struct font *font, unsigned code,
605 struct font_bitmap *bitmap, 605 struct font_bitmap *bitmap,
diff --git a/src/fontset.c b/src/fontset.c
index 74a25a1ca04..e20d7957c7f 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -1088,7 +1088,7 @@ fontset_pattern_regexp (Lisp_Object pattern)
1088 nescs++; 1088 nescs++;
1089 } 1089 }
1090 1090
1091 /* If PATTERN is not full XLFD we conert "*" to ".*". Otherwise 1091 /* If PATTERN is not full XLFD we convert "*" to ".*". Otherwise
1092 we convert "*" to "[^-]*" which is much faster in regular 1092 we convert "*" to "[^-]*" which is much faster in regular
1093 expression matching. */ 1093 expression matching. */
1094 if (ndashes < 14) 1094 if (ndashes < 14)
@@ -1346,7 +1346,7 @@ accumulate_script_ranges (Lisp_Object arg, Lisp_Object range, Lisp_Object val)
1346 1346
1347 In FONTSET, set FONT_DEF in a fashion specified by ADD for 1347 In FONTSET, set FONT_DEF in a fashion specified by ADD for
1348 characters in RANGE and ranges in SCRIPT_RANGE_LIST before RANGE. 1348 characters in RANGE and ranges in SCRIPT_RANGE_LIST before RANGE.
1349 The consumed ranges are poped up from SCRIPT_RANGE_LIST, and the 1349 The consumed ranges are popped up from SCRIPT_RANGE_LIST, and the
1350 new SCRIPT_RANGE_LIST is stored in ARG. 1350 new SCRIPT_RANGE_LIST is stored in ARG.
1351 1351
1352 If ASCII is nil, don't set FONT_DEF for ASCII characters. It is 1352 If ASCII is nil, don't set FONT_DEF for ASCII characters. It is
@@ -1702,7 +1702,7 @@ static Lisp_Object auto_fontset_alist;
1702/* Number of automatically created fontsets. */ 1702/* Number of automatically created fontsets. */
1703static printmax_t num_auto_fontsets; 1703static printmax_t num_auto_fontsets;
1704 1704
1705/* Retun a fontset synthesized from FONT-OBJECT. This is called from 1705/* Return a fontset synthesized from FONT-OBJECT. This is called from
1706 x_new_font when FONT-OBJECT is used for the default ASCII font of a 1706 x_new_font when FONT-OBJECT is used for the default ASCII font of a
1707 frame, and the returned fontset is used for the default fontset of 1707 frame, and the returned fontset is used for the default fontset of
1708 that frame. The fontset specifies a font of the same registry as 1708 that frame. The fontset specifies a font of the same registry as
@@ -1788,7 +1788,7 @@ update_auto_fontset_alist (Lisp_Object font_object, Lisp_Object fontset)
1788/* Return a cons (FONT-OBJECT . GLYPH-CODE). 1788/* Return a cons (FONT-OBJECT . GLYPH-CODE).
1789 FONT-OBJECT is the font for the character at POSITION in the current 1789 FONT-OBJECT is the font for the character at POSITION in the current
1790 buffer. This is computed from all the text properties and overlays 1790 buffer. This is computed from all the text properties and overlays
1791 that apply to POSITION. POSTION may be nil, in which case, 1791 that apply to POSITION. POSITION may be nil, in which case,
1792 FONT-SPEC is the font for displaying the character CH with the 1792 FONT-SPEC is the font for displaying the character CH with the
1793 default face. 1793 default face.
1794 1794
diff --git a/src/frame.c b/src/frame.c
index d56a2efb17f..984651ae9ce 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -1237,7 +1237,7 @@ delete_frame (Lisp_Object frame, Lisp_Object force)
1237 else 1237 else
1238 { 1238 {
1239#ifdef HAVE_X_WINDOWS 1239#ifdef HAVE_X_WINDOWS
1240 /* Also, save clipboard to the the clipboard manager. */ 1240 /* Also, save clipboard to the clipboard manager. */
1241 x_clipboard_manager_save_frame (frame); 1241 x_clipboard_manager_save_frame (frame);
1242#endif 1242#endif
1243 1243
@@ -1359,6 +1359,13 @@ delete_frame (Lisp_Object frame, Lisp_Object force)
1359 /* If needed, delete the terminal that this frame was on. 1359 /* If needed, delete the terminal that this frame was on.
1360 (This must be done after the frame is killed.) */ 1360 (This must be done after the frame is killed.) */
1361 terminal->reference_count--; 1361 terminal->reference_count--;
1362#ifdef USE_GTK
1363 /* FIXME: Deleting the terminal crashes emacs because of a GTK
1364 bug.
1365 http://lists.gnu.org/archive/html/emacs-devel/2011-10/msg00363.html */
1366 if (terminal->reference_count == 0 && terminal->type == output_x_window)
1367 terminal->reference_count = 1;
1368#endif /* USE_GTK */
1362 if (terminal->reference_count == 0) 1369 if (terminal->reference_count == 0)
1363 { 1370 {
1364 Lisp_Object tmp; 1371 Lisp_Object tmp;
@@ -2487,7 +2494,7 @@ If FRAME is omitted, the selected frame is used. The exact value
2487of the result depends on the window-system and toolkit in use: 2494of the result depends on the window-system and toolkit in use:
2488 2495
2489In the Gtk+ version of Emacs, it includes only any window (including 2496In the Gtk+ version of Emacs, it includes only any window (including
2490the minibuffer or eacho area), mode line, and header line. It does not 2497the minibuffer or echo area), mode line, and header line. It does not
2491include the tool bar or menu bar. 2498include the tool bar or menu bar.
2492 2499
2493With the Motif or Lucid toolkits, it also includes the tool bar (but 2500With the Motif or Lucid toolkits, it also includes the tool bar (but
diff --git a/src/frame.h b/src/frame.h
index e096807b02e..a32d1c549b5 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -371,7 +371,7 @@ struct frame
371 if greater than 1, then the frame is obscured - we still consider 371 if greater than 1, then the frame is obscured - we still consider
372 it to be "visible" as seen from lisp, but we don't bother 372 it to be "visible" as seen from lisp, but we don't bother
373 updating it. We must take care to garbage the frame when it 373 updating it. We must take care to garbage the frame when it
374 ceaces to be obscured though. 374 ceases to be obscured though.
375 375
376 iconified is nonzero if the frame is currently iconified. 376 iconified is nonzero if the frame is currently iconified.
377 377
diff --git a/src/ftfont.c b/src/ftfont.c
index 7858a31be21..5c540f9bf82 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -272,7 +272,7 @@ ftfont_pattern_entity (FcPattern *p, Lisp_Object extra)
272 } 272 }
273 else 273 else
274 { 274 {
275 /* As this font is not scalable, parhaps this is a BDF or PCF 275 /* As this font is not scalable, perhaps this is a BDF or PCF
276 font. */ 276 font. */
277 FT_Face ft_face; 277 FT_Face ft_face;
278 278
@@ -730,7 +730,7 @@ ftfont_spec_pattern (Lisp_Object spec, char *otlayout, struct OpenTypeSpec **ots
730 730
731 if ((n = FONT_SLANT_NUMERIC (spec)) >= 0 731 if ((n = FONT_SLANT_NUMERIC (spec)) >= 0
732 && n < 100) 732 && n < 100)
733 /* Fontconfig doesn't support reverse-italic/obligue. */ 733 /* Fontconfig doesn't support reverse-italic/oblique. */
734 return NULL; 734 return NULL;
735 735
736 if (INTEGERP (AREF (spec, FONT_DPI_INDEX))) 736 if (INTEGERP (AREF (spec, FONT_DPI_INDEX)))
diff --git a/src/ftxfont.c b/src/ftxfont.c
index bbba3ca8163..608cfd8d44d 100644
--- a/src/ftxfont.c
+++ b/src/ftxfont.c
@@ -55,7 +55,7 @@ struct ftxfont_frame_data
55{ 55{
56 /* Background and foreground colors. */ 56 /* Background and foreground colors. */
57 XColor colors[2]; 57 XColor colors[2];
58 /* GCs interporationg the above colors. gcs[0] is for a color 58 /* GCs interpolating the above colors. gcs[0] is for a color
59 closest to BACKGROUND, and gcs[5] is for a color closest to 59 closest to BACKGROUND, and gcs[5] is for a color closest to
60 FOREGROUND. */ 60 FOREGROUND. */
61 GC gcs[6]; 61 GC gcs[6];
diff --git a/src/gtkutil.c b/src/gtkutil.c
index af697c72673..3df46afcd3a 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -127,7 +127,7 @@ xg_set_screen (GtkWidget *w, FRAME_PTR f)
127 127
128 Returns non-zero if display could be opened, zero if display could not 128 Returns non-zero if display could be opened, zero if display could not
129 be opened, and less than zero if the GTK version doesn't support 129 be opened, and less than zero if the GTK version doesn't support
130 multipe displays. */ 130 multiple displays. */
131 131
132void 132void
133xg_display_open (char *display_name, Display **dpy) 133xg_display_open (char *display_name, Display **dpy)
@@ -348,7 +348,7 @@ file_for_image (Lisp_Object image)
348 348
349/* For the image defined in IMG, make and return a GtkImage. For displays with 349/* For the image defined in IMG, make and return a GtkImage. For displays with
350 8 planes or less we must make a GdkPixbuf and apply the mask manually. 350 8 planes or less we must make a GdkPixbuf and apply the mask manually.
351 Otherwise the highlightning and dimming the tool bar code in GTK does 351 Otherwise the highlighting and dimming the tool bar code in GTK does
352 will look bad. For display with more than 8 planes we just use the 352 will look bad. For display with more than 8 planes we just use the
353 pixmap and mask directly. For monochrome displays, GTK doesn't seem 353 pixmap and mask directly. For monochrome displays, GTK doesn't seem
354 able to use external pixmaps, it looks bad whatever we do. 354 able to use external pixmaps, it looks bad whatever we do.
@@ -891,7 +891,7 @@ xg_frame_resized (FRAME_PTR f, int pixelwidth, int pixelheight)
891 } 891 }
892} 892}
893 893
894/* Resize the outer window of frame F after chainging the height. 894/* Resize the outer window of frame F after changing the height.
895 COLUMNS/ROWS is the size the edit area shall have after the resize. */ 895 COLUMNS/ROWS is the size the edit area shall have after the resize. */
896 896
897void 897void
@@ -1423,7 +1423,7 @@ get_dialog_title (char key)
1423/* Callback for dialogs that get WM_DELETE_WINDOW. We pop down 1423/* Callback for dialogs that get WM_DELETE_WINDOW. We pop down
1424 the dialog, but return TRUE so the event does not propagate further 1424 the dialog, but return TRUE so the event does not propagate further
1425 in GTK. This prevents GTK from destroying the dialog widget automatically 1425 in GTK. This prevents GTK from destroying the dialog widget automatically
1426 and we can always destrou the widget manually, regardles of how 1426 and we can always destroy the widget manually, regardless of how
1427 it was popped down (button press or WM_DELETE_WINDOW). 1427 it was popped down (button press or WM_DELETE_WINDOW).
1428 W is the dialog widget. 1428 W is the dialog widget.
1429 EVENT is the GdkEvent that represents WM_DELETE_WINDOW (not used). 1429 EVENT is the GdkEvent that represents WM_DELETE_WINDOW (not used).
@@ -2294,7 +2294,7 @@ tearoff_activate (GtkWidget *widget, gpointer client_data)
2294 2294
2295 2295
2296/* Create a menu item widget, and connect the callbacks. 2296/* Create a menu item widget, and connect the callbacks.
2297 ITEM decribes the menu item. 2297 ITEM describes the menu item.
2298 F is the frame the created menu belongs to. 2298 F is the frame the created menu belongs to.
2299 SELECT_CB is the callback to use when a menu item is selected. 2299 SELECT_CB is the callback to use when a menu item is selected.
2300 HIGHLIGHT_CB is the callback to call when entering/leaving menu items. 2300 HIGHLIGHT_CB is the callback to call when entering/leaving menu items.
@@ -4262,7 +4262,7 @@ xg_make_tool_item (FRAME_PTR f,
4262#endif 4262#endif
4263 gtk_tool_item_set_homogeneous (ti, FALSE); 4263 gtk_tool_item_set_homogeneous (ti, FALSE);
4264 4264
4265 /* Callback to save modifyer mask (Shift/Control, etc). GTK makes 4265 /* Callback to save modifier mask (Shift/Control, etc). GTK makes
4266 no distinction based on modifiers in the activate callback, 4266 no distinction based on modifiers in the activate callback,
4267 so we have to do it ourselves. */ 4267 so we have to do it ourselves. */
4268 g_signal_connect (wb, "button-release-event", 4268 g_signal_connect (wb, "button-release-event",
diff --git a/src/image.c b/src/image.c
index 14c74f10607..8b61c7eefbc 100644
--- a/src/image.c
+++ b/src/image.c
@@ -7552,7 +7552,7 @@ imagemagick_image_p (Lisp_Object object)
7552} 7552}
7553 7553
7554/* The GIF library also defines DrawRectangle, but its never used in Emacs. 7554/* The GIF library also defines DrawRectangle, but its never used in Emacs.
7555 Therefore rename the function so it doesnt collide with ImageMagick. */ 7555 Therefore rename the function so it doesn't collide with ImageMagick. */
7556#define DrawRectangle DrawRectangleGif 7556#define DrawRectangle DrawRectangleGif
7557#include <wand/MagickWand.h> 7557#include <wand/MagickWand.h>
7558 7558
@@ -7754,7 +7754,7 @@ imagemagick_load_image (struct frame *f, struct image *img,
7754 } 7754 }
7755 7755
7756 /* Finally we are done manipulating the image. Figure out the 7756 /* Finally we are done manipulating the image. Figure out the
7757 resulting width/height and transfer ownerwship to Emacs. */ 7757 resulting width/height and transfer ownership to Emacs. */
7758 height = MagickGetImageHeight (image_wand); 7758 height = MagickGetImageHeight (image_wand);
7759 width = MagickGetImageWidth (image_wand); 7759 width = MagickGetImageWidth (image_wand);
7760 7760
@@ -7786,7 +7786,7 @@ imagemagick_load_image (struct frame *f, struct image *img,
7786 goto imagemagick_error; 7786 goto imagemagick_error;
7787 } 7787 }
7788 7788
7789 /* Copy imagegmagick image to x with primitive yet robust pixel 7789 /* Copy imagemagick image to x with primitive yet robust pixel
7790 pusher loop. This has been tested a lot with many different 7790 pusher loop. This has been tested a lot with many different
7791 images. */ 7791 images. */
7792 7792
@@ -7824,7 +7824,7 @@ imagemagick_load_image (struct frame *f, struct image *img,
7824 7824
7825 if (imagemagick_rendermethod == 1) 7825 if (imagemagick_rendermethod == 1)
7826 { 7826 {
7827 /* Magicexportimage is normaly faster than pixelpushing. This 7827 /* Magicexportimage is normally faster than pixelpushing. This
7828 method is also well tested. Some aspects of this method are 7828 method is also well tested. Some aspects of this method are
7829 ad-hoc and needs to be more researched. */ 7829 ad-hoc and needs to be more researched. */
7830 int imagedepth = 24;/*MagickGetImageDepth(image_wand);*/ 7830 int imagedepth = 24;/*MagickGetImageDepth(image_wand);*/
@@ -7841,7 +7841,7 @@ imagemagick_load_image (struct frame *f, struct image *img,
7841 } 7841 }
7842 7842
7843 7843
7844 /* Oddly, the below code doesnt seem to work:*/ 7844 /* Oddly, the below code doesn't seem to work:*/
7845 /* switch(ximg->bitmap_unit){ */ 7845 /* switch(ximg->bitmap_unit){ */
7846 /* case 8: */ 7846 /* case 8: */
7847 /* pixelwidth=CharPixel; */ 7847 /* pixelwidth=CharPixel; */
@@ -7870,7 +7870,7 @@ imagemagick_load_image (struct frame *f, struct image *img,
7870 /*&(img->pixmap));*/ 7870 /*&(img->pixmap));*/
7871 ximg->data); 7871 ximg->data);
7872#else 7872#else
7873 image_error ("You dont have MagickExportImagePixels, upgrade ImageMagick!", 7873 image_error ("You don't have MagickExportImagePixels, upgrade ImageMagick!",
7874 Qnil, Qnil); 7874 Qnil, Qnil);
7875#endif 7875#endif
7876 } 7876 }
@@ -8781,7 +8781,7 @@ syms_of_image (void)
8781 operation on GNU/Linux of calling dump-emacs after loading some images. */ 8781 operation on GNU/Linux of calling dump-emacs after loading some images. */
8782 image_types = NULL; 8782 image_types = NULL;
8783 8783
8784 /* Must be defined now becase we're going to update it below, while 8784 /* Must be defined now because we're going to update it below, while
8785 defining the supported image types. */ 8785 defining the supported image types. */
8786 DEFVAR_LISP ("image-types", Vimage_types, 8786 DEFVAR_LISP ("image-types", Vimage_types,
8787 doc: /* List of potentially supported image types. 8787 doc: /* List of potentially supported image types.
diff --git a/src/indent.c b/src/indent.c
index a70b7971b96..07a54c0c1b7 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -1675,7 +1675,7 @@ compute_motion (EMACS_INT from, EMACS_INT fromvpos, EMACS_INT fromhpos, int did_
1675 val_compute_motion.prevhpos = contin_hpos; 1675 val_compute_motion.prevhpos = contin_hpos;
1676 else 1676 else
1677 val_compute_motion.prevhpos = prev_hpos; 1677 val_compute_motion.prevhpos = prev_hpos;
1678 /* We alalways handle all of them here; none of them remain to do. */ 1678 /* We always handle all of them here; none of them remain to do. */
1679 val_compute_motion.ovstring_chars_done = 0; 1679 val_compute_motion.ovstring_chars_done = 0;
1680 1680
1681 /* Nonzero if have just continued a line */ 1681 /* Nonzero if have just continued a line */
diff --git a/src/indent.h b/src/indent.h
index 07ca4dd87a5..55ee934f574 100644
--- a/src/indent.h
+++ b/src/indent.h
@@ -19,7 +19,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19/* We introduce new member `tab_offset'. We need it because of the 19/* We introduce new member `tab_offset'. We need it because of the
20 existence of wide-column characters. There is a case that the 20 existence of wide-column characters. There is a case that the
21 line-break occurs at a wide-column character and the number of 21 line-break occurs at a wide-column character and the number of
22 colums of the line gets less than width. 22 columns of the line gets less than width.
23 23
24 Example (where W_ stands for a wide-column character): 24 Example (where W_ stands for a wide-column character):
25 ---------- 25 ----------
@@ -73,5 +73,3 @@ int disptab_matches_widthtab (struct Lisp_Char_Table *disptab,
73/* Recompute BUF's width table, using the display table DISPTAB. */ 73/* Recompute BUF's width table, using the display table DISPTAB. */
74void recompute_width_table (struct buffer *buf, 74void recompute_width_table (struct buffer *buf,
75 struct Lisp_Char_Table *disptab); 75 struct Lisp_Char_Table *disptab);
76
77
diff --git a/src/insdel.c b/src/insdel.c
index 01e5c57b2b0..e39a362eac7 100644
--- a/src/insdel.c
+++ b/src/insdel.c
@@ -1316,7 +1316,7 @@ replace_range (EMACS_INT from, EMACS_INT to, Lisp_Object new,
1316 1316
1317 UNGCPRO; 1317 UNGCPRO;
1318 1318
1319 /* Make args be valid */ 1319 /* Make args be valid. */
1320 if (from < BEGV) 1320 if (from < BEGV)
1321 from = BEGV; 1321 from = BEGV;
1322 if (to > ZV) 1322 if (to > ZV)
diff --git a/src/intervals.c b/src/intervals.c
index a78c7f07f6c..05b7175ac3f 100644
--- a/src/intervals.c
+++ b/src/intervals.c
@@ -1317,7 +1317,7 @@ interval_deletion_adjustment (register INTERVAL tree, register EMACS_INT from,
1317 if (NULL_INTERVAL_P (tree)) 1317 if (NULL_INTERVAL_P (tree))
1318 return 0; 1318 return 0;
1319 1319
1320 /* Left branch */ 1320 /* Left branch. */
1321 if (relative_position < LEFT_TOTAL_LENGTH (tree)) 1321 if (relative_position < LEFT_TOTAL_LENGTH (tree))
1322 { 1322 {
1323 EMACS_INT subtract = interval_deletion_adjustment (tree->left, 1323 EMACS_INT subtract = interval_deletion_adjustment (tree->left,
@@ -1327,7 +1327,7 @@ interval_deletion_adjustment (register INTERVAL tree, register EMACS_INT from,
1327 CHECK_TOTAL_LENGTH (tree); 1327 CHECK_TOTAL_LENGTH (tree);
1328 return subtract; 1328 return subtract;
1329 } 1329 }
1330 /* Right branch */ 1330 /* Right branch. */
1331 else if (relative_position >= (TOTAL_LENGTH (tree) 1331 else if (relative_position >= (TOTAL_LENGTH (tree)
1332 - RIGHT_TOTAL_LENGTH (tree))) 1332 - RIGHT_TOTAL_LENGTH (tree)))
1333 { 1333 {
@@ -1699,54 +1699,37 @@ graft_intervals_into_buffer (INTERVAL source, EMACS_INT position,
1699 Qnil, buf, 0); 1699 Qnil, buf, 0);
1700 } 1700 }
1701 if (! NULL_INTERVAL_P (BUF_INTERVALS (buffer))) 1701 if (! NULL_INTERVAL_P (BUF_INTERVALS (buffer)))
1702 /* Shouldn't be necessary. -stef */ 1702 /* Shouldn't be necessary. --Stef */
1703 BUF_INTERVALS (buffer) = balance_an_interval (BUF_INTERVALS (buffer)); 1703 BUF_INTERVALS (buffer) = balance_an_interval (BUF_INTERVALS (buffer));
1704 return; 1704 return;
1705 } 1705 }
1706 1706
1707 if (NULL_INTERVAL_P (tree)) 1707 eassert (length == TOTAL_LENGTH (source));
1708 { 1708
1709 /* The inserted text constitutes the whole buffer, so 1709 if ((BUF_Z (buffer) - BUF_BEG (buffer)) == length)
1710 { /* The inserted text constitutes the whole buffer, so
1710 simply copy over the interval structure. */ 1711 simply copy over the interval structure. */
1711 if ((BUF_Z (buffer) - BUF_BEG (buffer)) == TOTAL_LENGTH (source))
1712 {
1713 Lisp_Object buf; 1712 Lisp_Object buf;
1714 XSETBUFFER (buf, buffer); 1713 XSETBUFFER (buf, buffer);
1715 BUF_INTERVALS (buffer) = reproduce_tree_obj (source, buf); 1714 BUF_INTERVALS (buffer) = reproduce_tree_obj (source, buf);
1716 BUF_INTERVALS (buffer)->position = BEG; 1715 BUF_INTERVALS (buffer)->position = BUF_BEG (buffer);
1717 BUF_INTERVALS (buffer)->up_obj = 1; 1716 eassert (BUF_INTERVALS (buffer)->up_obj == 1);
1718
1719 return; 1717 return;
1720 } 1718 }
1721 1719 else if (NULL_INTERVAL_P (tree))
1722 /* Create an interval tree in which to place a copy 1720 { /* Create an interval tree in which to place a copy
1723 of the intervals of the inserted string. */ 1721 of the intervals of the inserted string. */
1724 {
1725 Lisp_Object buf; 1722 Lisp_Object buf;
1726 XSETBUFFER (buf, buffer); 1723 XSETBUFFER (buf, buffer);
1727 tree = create_root_interval (buf); 1724 tree = create_root_interval (buf);
1728 } 1725 }
1729 }
1730 else if (TOTAL_LENGTH (tree) == TOTAL_LENGTH (source))
1731 /* If the buffer contains only the new string, but
1732 there was already some interval tree there, then it may be
1733 some zero length intervals. Eventually, do something clever
1734 about inserting properly. For now, just waste the old intervals. */
1735 {
1736 BUF_INTERVALS (buffer) = reproduce_tree (source, INTERVAL_PARENT (tree));
1737 BUF_INTERVALS (buffer)->position = BEG;
1738 BUF_INTERVALS (buffer)->up_obj = 1;
1739 /* Explicitly free the old tree here. */
1740
1741 return;
1742 }
1743 /* Paranoia -- the text has already been added, so this buffer 1726 /* Paranoia -- the text has already been added, so this buffer
1744 should be of non-zero length. */ 1727 should be of non-zero length. */
1745 else if (TOTAL_LENGTH (tree) == 0) 1728 else if (TOTAL_LENGTH (tree) == 0)
1746 abort (); 1729 abort ();
1747 1730
1748 this = under = find_interval (tree, position); 1731 this = under = find_interval (tree, position);
1749 if (NULL_INTERVAL_P (under)) /* Paranoia */ 1732 if (NULL_INTERVAL_P (under)) /* Paranoia. */
1750 abort (); 1733 abort ();
1751 over = find_interval (source, interval_start_pos (source)); 1734 over = find_interval (source, interval_start_pos (source));
1752 1735
@@ -1917,7 +1900,7 @@ set_point (EMACS_INT charpos)
1917 current buffer, and the invisible property has a `stickiness' such that 1900 current buffer, and the invisible property has a `stickiness' such that
1918 inserting a character at position POS would inherit the property it, 1901 inserting a character at position POS would inherit the property it,
1919 return POS + ADJ, otherwise return POS. If TEST_INTANG is non-zero, 1902 return POS + ADJ, otherwise return POS. If TEST_INTANG is non-zero,
1920 then intangibility is required as well as invisibleness. 1903 then intangibility is required as well as invisibility.
1921 1904
1922 TEST_OFFS should be either 0 or -1, and ADJ should be either 1 or -1. 1905 TEST_OFFS should be either 0 or -1, and ADJ should be either 1 or -1.
1923 1906
diff --git a/src/intervals.h b/src/intervals.h
index 720598fe7a6..977f3d965a4 100644
--- a/src/intervals.h
+++ b/src/intervals.h
@@ -64,71 +64,71 @@ struct interval
64 Lisp_Object plist; 64 Lisp_Object plist;
65}; 65};
66 66
67/* These are macros for dealing with the interval tree. */ 67/* These are macros for dealing with the interval tree. */
68 68
69/* Size of the structure used to represent an interval */ 69/* Size of the structure used to represent an interval. */
70#define INTERVAL_SIZE (sizeof (struct interval)) 70#define INTERVAL_SIZE (sizeof (struct interval))
71 71
72/* Size of a pointer to an interval structure */ 72/* Size of a pointer to an interval structure. */
73#define INTERVAL_PTR_SIZE (sizeof (struct interval *)) 73#define INTERVAL_PTR_SIZE (sizeof (struct interval *))
74 74
75#define NULL_INTERVAL_P(i) ((i) == NULL_INTERVAL) 75#define NULL_INTERVAL_P(i) ((i) == NULL_INTERVAL)
76 76
77/* True if this interval has no right child. */ 77/* True if this interval has no right child. */
78#define NULL_RIGHT_CHILD(i) ((i)->right == NULL_INTERVAL) 78#define NULL_RIGHT_CHILD(i) ((i)->right == NULL_INTERVAL)
79 79
80/* True if this interval has no left child. */ 80/* True if this interval has no left child. */
81#define NULL_LEFT_CHILD(i) ((i)->left == NULL_INTERVAL) 81#define NULL_LEFT_CHILD(i) ((i)->left == NULL_INTERVAL)
82 82
83/* True if this interval has no parent. */ 83/* True if this interval has no parent. */
84#define NULL_PARENT(i) ((i)->up_obj || (i)->up.interval == 0) 84#define NULL_PARENT(i) ((i)->up_obj || (i)->up.interval == 0)
85 85
86/* True if this interval is the left child of some other interval. */ 86/* True if this interval is the left child of some other interval. */
87#define AM_LEFT_CHILD(i) (! NULL_PARENT (i) \ 87#define AM_LEFT_CHILD(i) (! NULL_PARENT (i) \
88 && INTERVAL_PARENT (i)->left == (i)) 88 && INTERVAL_PARENT (i)->left == (i))
89 89
90/* True if this interval is the right child of some other interval. */ 90/* True if this interval is the right child of some other interval. */
91#define AM_RIGHT_CHILD(i) (! NULL_PARENT (i) \ 91#define AM_RIGHT_CHILD(i) (! NULL_PARENT (i) \
92 && INTERVAL_PARENT (i)->right == (i)) 92 && INTERVAL_PARENT (i)->right == (i))
93 93
94/* True if this interval has no children. */ 94/* True if this interval has no children. */
95#define LEAF_INTERVAL_P(i) ((i)->left == NULL_INTERVAL \ 95#define LEAF_INTERVAL_P(i) ((i)->left == NULL_INTERVAL \
96 && (i)->right == NULL_INTERVAL) 96 && (i)->right == NULL_INTERVAL)
97 97
98/* True if this interval has no parent and is therefore the root. */ 98/* True if this interval has no parent and is therefore the root. */
99#define ROOT_INTERVAL_P(i) (NULL_PARENT (i)) 99#define ROOT_INTERVAL_P(i) (NULL_PARENT (i))
100 100
101/* True if this interval is the only interval in the interval tree. */ 101/* True if this interval is the only interval in the interval tree. */
102#define ONLY_INTERVAL_P(i) (ROOT_INTERVAL_P ((i)) && LEAF_INTERVAL_P ((i))) 102#define ONLY_INTERVAL_P(i) (ROOT_INTERVAL_P ((i)) && LEAF_INTERVAL_P ((i)))
103 103
104/* True if this interval has both left and right children. */ 104/* True if this interval has both left and right children. */
105#define BOTH_KIDS_P(i) ((i)->left != NULL_INTERVAL \ 105#define BOTH_KIDS_P(i) ((i)->left != NULL_INTERVAL \
106 && (i)->right != NULL_INTERVAL) 106 && (i)->right != NULL_INTERVAL)
107 107
108/* The total size of all text represented by this interval and all its 108/* The total size of all text represented by this interval and all its
109 children in the tree. This is zero if the interval is null. */ 109 children in the tree. This is zero if the interval is null. */
110#define TOTAL_LENGTH(i) ((i) == NULL_INTERVAL ? 0 : (i)->total_length) 110#define TOTAL_LENGTH(i) ((i) == NULL_INTERVAL ? 0 : (i)->total_length)
111 111
112/* The size of text represented by this interval alone. */ 112/* The size of text represented by this interval alone. */
113#define LENGTH(i) ((i) == NULL_INTERVAL ? 0 : (TOTAL_LENGTH ((i)) \ 113#define LENGTH(i) ((i) == NULL_INTERVAL ? 0 : (TOTAL_LENGTH ((i)) \
114 - TOTAL_LENGTH ((i)->right) \ 114 - TOTAL_LENGTH ((i)->right) \
115 - TOTAL_LENGTH ((i)->left))) 115 - TOTAL_LENGTH ((i)->left)))
116 116
117/* The position of the character just past the end of I. Note that 117/* The position of the character just past the end of I. Note that
118 the position cache i->position must be valid for this to work. */ 118 the position cache i->position must be valid for this to work. */
119#define INTERVAL_LAST_POS(i) ((i)->position + LENGTH ((i))) 119#define INTERVAL_LAST_POS(i) ((i)->position + LENGTH ((i)))
120 120
121/* The total size of the left subtree of this interval. */ 121/* The total size of the left subtree of this interval. */
122#define LEFT_TOTAL_LENGTH(i) ((i)->left ? (i)->left->total_length : 0) 122#define LEFT_TOTAL_LENGTH(i) ((i)->left ? (i)->left->total_length : 0)
123 123
124/* The total size of the right subtree of this interval. */ 124/* The total size of the right subtree of this interval. */
125#define RIGHT_TOTAL_LENGTH(i) ((i)->right ? (i)->right->total_length : 0) 125#define RIGHT_TOTAL_LENGTH(i) ((i)->right ? (i)->right->total_length : 0)
126 126
127 127
128/* These macros are for dealing with the interval properties. */ 128/* These macros are for dealing with the interval properties. */
129 129
130/* True if this is a default interval, which is the same as being null 130/* True if this is a default interval, which is the same as being null
131 or having no properties. */ 131 or having no properties. */
132#define DEFAULT_INTERVAL_P(i) (NULL_INTERVAL_P (i) || EQ ((i)->plist, Qnil)) 132#define DEFAULT_INTERVAL_P(i) (NULL_INTERVAL_P (i) || EQ ((i)->plist, Qnil))
133 133
134/* Test what type of parent we have. Three possibilities: another 134/* Test what type of parent we have. Three possibilities: another
@@ -169,7 +169,7 @@ struct interval
169 } \ 169 } \
170 while (0) 170 while (0)
171 171
172/* Reset this interval to its vanilla, or no-property state. */ 172/* Reset this interval to its vanilla, or no-property state. */
173#define RESET_INTERVAL(i) \ 173#define RESET_INTERVAL(i) \
174{ \ 174{ \
175 (i)->total_length = (i)->position = 0; \ 175 (i)->total_length = (i)->position = 0; \
@@ -181,7 +181,7 @@ struct interval
181 (i)->plist = Qnil; \ 181 (i)->plist = Qnil; \
182} 182}
183 183
184/* Copy the cached property values of interval FROM to interval TO. */ 184/* Copy the cached property values of interval FROM to interval TO. */
185#define COPY_INTERVAL_CACHE(from,to) \ 185#define COPY_INTERVAL_CACHE(from,to) \
186{ \ 186{ \
187 (to)->write_protect = (from)->write_protect; \ 187 (to)->write_protect = (from)->write_protect; \
@@ -190,7 +190,7 @@ struct interval
190 (to)->rear_sticky = (from)->rear_sticky; \ 190 (to)->rear_sticky = (from)->rear_sticky; \
191} 191}
192 192
193/* Copy only the set bits of FROM's cache. */ 193/* Copy only the set bits of FROM's cache. */
194#define MERGE_INTERVAL_CACHE(from,to) \ 194#define MERGE_INTERVAL_CACHE(from,to) \
195{ \ 195{ \
196 if ((from)->write_protect) (to)->write_protect = 1; \ 196 if ((from)->write_protect) (to)->write_protect = 1; \
@@ -201,18 +201,18 @@ struct interval
201 201
202/* Macro determining whether the properties of an interval being 202/* Macro determining whether the properties of an interval being
203 inserted should be merged with the properties of the text where 203 inserted should be merged with the properties of the text where
204 they are being inserted. */ 204 they are being inserted. */
205#define MERGE_INSERTIONS(i) 1 205#define MERGE_INSERTIONS(i) 1
206 206
207/* Macro determining if an invisible interval should be displayed 207/* Macro determining if an invisible interval should be displayed
208 as a special glyph, or not at all. */ 208 as a special glyph, or not at all. */
209#define DISPLAY_INVISIBLE_GLYPH(i) 0 209#define DISPLAY_INVISIBLE_GLYPH(i) 0
210 210
211/* Is this interval visible? Replace later with cache access */ 211/* Is this interval visible? Replace later with cache access. */
212#define INTERVAL_VISIBLE_P(i) \ 212#define INTERVAL_VISIBLE_P(i) \
213 (! NULL_INTERVAL_P (i) && NILP (textget ((i)->plist, Qinvisible))) 213 (! NULL_INTERVAL_P (i) && NILP (textget ((i)->plist, Qinvisible)))
214 214
215/* Is this interval writable? Replace later with cache access */ 215/* Is this interval writable? Replace later with cache access. */
216#define INTERVAL_WRITABLE_P(i) \ 216#define INTERVAL_WRITABLE_P(i) \
217 (! NULL_INTERVAL_P (i) \ 217 (! NULL_INTERVAL_P (i) \
218 && (NILP (textget ((i)->plist, Qread_only)) \ 218 && (NILP (textget ((i)->plist, Qread_only)) \
@@ -222,7 +222,7 @@ struct interval
222 : !NILP (Vinhibit_read_only))))) \ 222 : !NILP (Vinhibit_read_only))))) \
223 223
224/* Macros to tell whether insertions before or after this interval 224/* Macros to tell whether insertions before or after this interval
225 should stick to it. */ 225 should stick to it. */
226/* Replace later with cache access */ 226/* Replace later with cache access */
227/*#define FRONT_STICKY_P(i) ((i)->front_sticky != 0) 227/*#define FRONT_STICKY_P(i) ((i)->front_sticky != 0)
228 #define END_STICKY_P(i) ((i)->rear_sticky != 0)*/ 228 #define END_STICKY_P(i) ((i)->rear_sticky != 0)*/
@@ -245,11 +245,11 @@ struct interval
245 ? !NILP (prop) \ 245 ? !NILP (prop) \
246 : invisible_p (prop, BVAR (current_buffer, invisibility_spec))) 246 : invisible_p (prop, BVAR (current_buffer, invisibility_spec)))
247 247
248/* Declared in alloc.c */ 248/* Declared in alloc.c. */
249 249
250extern INTERVAL make_interval (void); 250extern INTERVAL make_interval (void);
251 251
252/* Declared in intervals.c */ 252/* Declared in intervals.c. */
253 253
254extern INTERVAL create_root_interval (Lisp_Object); 254extern INTERVAL create_root_interval (Lisp_Object);
255extern void copy_properties (INTERVAL, INTERVAL); 255extern void copy_properties (INTERVAL, INTERVAL);
@@ -288,12 +288,12 @@ extern INTERVAL validate_interval_range (Lisp_Object, Lisp_Object *,
288 Lisp_Object *, int); 288 Lisp_Object *, int);
289extern INTERVAL interval_of (EMACS_INT, Lisp_Object); 289extern INTERVAL interval_of (EMACS_INT, Lisp_Object);
290 290
291/* Defined in xdisp.c */ 291/* Defined in xdisp.c. */
292extern int invisible_p (Lisp_Object, Lisp_Object); 292extern int invisible_p (Lisp_Object, Lisp_Object);
293 293
294/* Declared in textprop.c */ 294/* Declared in textprop.c. */
295 295
296/* Types of hooks. */ 296/* Types of hooks. */
297extern Lisp_Object Qpoint_left; 297extern Lisp_Object Qpoint_left;
298extern Lisp_Object Qpoint_entered; 298extern Lisp_Object Qpoint_entered;
299extern Lisp_Object Qmodification_hooks; 299extern Lisp_Object Qmodification_hooks;
@@ -301,11 +301,11 @@ extern Lisp_Object Qcategory;
301extern Lisp_Object Qlocal_map; 301extern Lisp_Object Qlocal_map;
302extern Lisp_Object Qkeymap; 302extern Lisp_Object Qkeymap;
303 303
304/* Visual properties text (including strings) may have. */ 304/* Visual properties text (including strings) may have. */
305extern Lisp_Object Qfont; 305extern Lisp_Object Qfont;
306extern Lisp_Object Qinvisible, Qintangible; 306extern Lisp_Object Qinvisible, Qintangible;
307 307
308/* Sticky properties */ 308/* Sticky properties. */
309extern Lisp_Object Qfront_sticky, Qrear_nonsticky; 309extern Lisp_Object Qfront_sticky, Qrear_nonsticky;
310 310
311EXFUN (Fget_char_property, 3); 311EXFUN (Fget_char_property, 3);
diff --git a/src/keyboard.c b/src/keyboard.c
index f8c31af3fbe..80873fcb57a 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -932,7 +932,7 @@ pop_kboard (void)
932 state later. 932 state later.
933 933
934 If Emacs is already in single_kboard mode, and F's keyboard is 934 If Emacs is already in single_kboard mode, and F's keyboard is
935 locked, then this function will throw an errow. */ 935 locked, then this function will throw an error. */
936 936
937void 937void
938temporarily_switch_to_single_kboard (struct frame *f) 938temporarily_switch_to_single_kboard (struct frame *f)
@@ -1060,7 +1060,7 @@ cmd_error_internal (Lisp_Object data, const char *context)
1060 struct frame *sf = SELECTED_FRAME (); 1060 struct frame *sf = SELECTED_FRAME ();
1061 1061
1062 /* The immediate context is not interesting for Quits, 1062 /* The immediate context is not interesting for Quits,
1063 since they are asyncronous. */ 1063 since they are asynchronous. */
1064 if (EQ (XCAR (data), Qquit)) 1064 if (EQ (XCAR (data), Qquit))
1065 Vsignaling_function = Qnil; 1065 Vsignaling_function = Qnil;
1066 1066
@@ -5393,7 +5393,7 @@ make_lispy_event (struct input_event *event)
5393 || !lispy_function_keys[event->code - FUNCTION_KEY_OFFSET]) 5393 || !lispy_function_keys[event->code - FUNCTION_KEY_OFFSET])
5394 { 5394 {
5395 /* We need to use an alist rather than a vector as the cache 5395 /* We need to use an alist rather than a vector as the cache
5396 since we can't make a vector long enuf. */ 5396 since we can't make a vector long enough. */
5397 if (NILP (KVAR (current_kboard, system_key_syms))) 5397 if (NILP (KVAR (current_kboard, system_key_syms)))
5398 KVAR (current_kboard, system_key_syms) = Fcons (Qnil, Qnil); 5398 KVAR (current_kboard, system_key_syms) = Fcons (Qnil, Qnil);
5399 return modify_event_symbol (event->code, 5399 return modify_event_symbol (event->code,
@@ -8782,7 +8782,7 @@ typedef struct keyremap
8782 /* Positions [START, END) in the key sequence buffer 8782 /* Positions [START, END) in the key sequence buffer
8783 are the key that we have scanned so far. 8783 are the key that we have scanned so far.
8784 Those events are the ones that we will replace 8784 Those events are the ones that we will replace
8785 if PAREHT maps them into a key sequence. */ 8785 if PARENT maps them into a key sequence. */
8786 int start, end; 8786 int start, end;
8787} keyremap; 8787} keyremap;
8788 8788
@@ -10137,7 +10137,7 @@ will read just one key sequence. */)
10137 ! NILP (can_return_switch_frame), 0); 10137 ! NILP (can_return_switch_frame), 0);
10138 10138
10139#if 0 /* The following is fine for code reading a key sequence and 10139#if 0 /* The following is fine for code reading a key sequence and
10140 then proceeding with a lenghty computation, but it's not good 10140 then proceeding with a lengthy computation, but it's not good
10141 for code reading keys in a loop, like an input method. */ 10141 for code reading keys in a loop, like an input method. */
10142#ifdef HAVE_WINDOW_SYSTEM 10142#ifdef HAVE_WINDOW_SYSTEM
10143 if (display_hourglass_p) 10143 if (display_hourglass_p)
@@ -12100,7 +12100,7 @@ This variable is keyboard-local. */);
12100Function key definitions that apply to all terminal devices should go 12100Function key definitions that apply to all terminal devices should go
12101here. If a mapping is defined in both the current 12101here. If a mapping is defined in both the current
12102`local-function-key-map' binding and this variable, then the local 12102`local-function-key-map' binding and this variable, then the local
12103definition will take precendence. */); 12103definition will take precedence. */);
12104 Vfunction_key_map = Fmake_sparse_keymap (Qnil); 12104 Vfunction_key_map = Fmake_sparse_keymap (Qnil);
12105 12105
12106 DEFVAR_LISP ("key-translation-map", Vkey_translation_map, 12106 DEFVAR_LISP ("key-translation-map", Vkey_translation_map,
diff --git a/src/keymap.c b/src/keymap.c
index 739dfd8f2de..b429ca968d7 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -998,7 +998,7 @@ copy_keymap_item (Lisp_Object elt)
998 } 998 }
999 else 999 else
1000 { 1000 {
1001 /* It may be an old fomat menu item. 1001 /* It may be an old format menu item.
1002 Skip the optional menu string. */ 1002 Skip the optional menu string. */
1003 if (STRINGP (XCAR (tem))) 1003 if (STRINGP (XCAR (tem)))
1004 { 1004 {
@@ -2624,11 +2624,11 @@ remapped command in the returned list. */)
2624 /* We have a list of advertised bindings. */ 2624 /* We have a list of advertised bindings. */
2625 while (CONSP (tem)) 2625 while (CONSP (tem))
2626 if (EQ (shadow_lookup (keymaps, XCAR (tem), Qnil, 0), definition)) 2626 if (EQ (shadow_lookup (keymaps, XCAR (tem), Qnil, 0), definition))
2627 return XCAR (tem); 2627 RETURN_UNGCPRO (XCAR (tem));
2628 else 2628 else
2629 tem = XCDR (tem); 2629 tem = XCDR (tem);
2630 if (EQ (shadow_lookup (keymaps, tem, Qnil, 0), definition)) 2630 if (EQ (shadow_lookup (keymaps, tem, Qnil, 0), definition))
2631 return tem; 2631 RETURN_UNGCPRO (tem);
2632 } 2632 }
2633 2633
2634 sequences = Freverse (where_is_internal (definition, keymaps, 2634 sequences = Freverse (where_is_internal (definition, keymaps,
diff --git a/src/lisp.h b/src/lisp.h
index 880de65bf65..dcd1167e0a2 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -943,7 +943,7 @@ struct Lisp_Vector
943 943
944/* Compute A OP B, using the unsigned comparison operator OP. A and B 944/* Compute A OP B, using the unsigned comparison operator OP. A and B
945 should be integer expressions. This is not the same as 945 should be integer expressions. This is not the same as
946 mathemeatical comparison; for example, UNSIGNED_CMP (0, <, -1) 946 mathematical comparison; for example, UNSIGNED_CMP (0, <, -1)
947 returns 1. For efficiency, prefer plain unsigned comparison if A 947 returns 1. For efficiency, prefer plain unsigned comparison if A
948 and B's sizes both fit (after integer promotion). */ 948 and B's sizes both fit (after integer promotion). */
949#define UNSIGNED_CMP(a, op, b) \ 949#define UNSIGNED_CMP(a, op, b) \
diff --git a/src/lread.c b/src/lread.c
index 110f3e62f71..f1f6f0cbd78 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -3984,7 +3984,7 @@ init_obarray (void)
3984 Qnil = intern_c_string ("nil"); 3984 Qnil = intern_c_string ("nil");
3985 3985
3986 /* Fmake_symbol inits fields of new symbols with Qunbound and Qnil, 3986 /* Fmake_symbol inits fields of new symbols with Qunbound and Qnil,
3987 so those two need to be fixed manally. */ 3987 so those two need to be fixed manually. */
3988 SET_SYMBOL_VAL (XSYMBOL (Qunbound), Qunbound); 3988 SET_SYMBOL_VAL (XSYMBOL (Qunbound), Qunbound);
3989 XSYMBOL (Qunbound)->function = Qunbound; 3989 XSYMBOL (Qunbound)->function = Qunbound;
3990 XSYMBOL (Qunbound)->plist = Qnil; 3990 XSYMBOL (Qunbound)->plist = Qnil;
diff --git a/src/msdos.c b/src/msdos.c
index 6b6e365a165..4c08c5b29e0 100644
--- a/src/msdos.c
+++ b/src/msdos.c
@@ -1342,7 +1342,7 @@ static void
1342IT_copy_glyphs (int xfrom, int xto, size_t len, int ypos) 1342IT_copy_glyphs (int xfrom, int xto, size_t len, int ypos)
1343{ 1343{
1344 /* The offsets of source and destination relative to the 1344 /* The offsets of source and destination relative to the
1345 conventional memorty selector. */ 1345 conventional memory selector. */
1346 int from = 2 * (xfrom + screen_size_X * ypos) + ScreenPrimary; 1346 int from = 2 * (xfrom + screen_size_X * ypos) + ScreenPrimary;
1347 int to = 2 * (xto + screen_size_X * ypos) + ScreenPrimary; 1347 int to = 2 * (xto + screen_size_X * ypos) + ScreenPrimary;
1348 1348
diff --git a/src/nsfns.m b/src/nsfns.m
index 20b021c6f5d..280fee0b27b 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -1267,7 +1267,7 @@ This function is an internal primitive--use `make-frame' instead. */)
1267#endif 1267#endif
1268 1268
1269 init_frame_faces (f); 1269 init_frame_faces (f);
1270 1270
1271 /* The resources controlling the menu-bar and tool-bar are 1271 /* The resources controlling the menu-bar and tool-bar are
1272 processed specially at startup, and reflected in the mode 1272 processed specially at startup, and reflected in the mode
1273 variables; ignore them here. */ 1273 variables; ignore them here. */
@@ -1656,7 +1656,7 @@ If omitted or nil, the selected frame's display is used. */)
1656 1656
1657DEFUN ("x-display-backing-store", Fx_display_backing_store, 1657DEFUN ("x-display-backing-store", Fx_display_backing_store,
1658 Sx_display_backing_store, 0, 1, 0, 1658 Sx_display_backing_store, 0, 1, 0,
1659 doc: /* Return whether the Nexstep display DISPLAY supports backing store. 1659 doc: /* Return whether the Nextstep display DISPLAY supports backing store.
1660The value may be `buffered', `retained', or `non-retained'. 1660The value may be `buffered', `retained', or `non-retained'.
1661DISPLAY should be a frame, the display name as a string, or a terminal ID. 1661DISPLAY should be a frame, the display name as a string, or a terminal ID.
1662If omitted or nil, the selected frame's display is used. */) 1662If omitted or nil, the selected frame's display is used. */)
@@ -1846,7 +1846,7 @@ DEFUN ("ns-emacs-info-panel", Fns_emacs_info_panel, Sns_emacs_info_panel,
1846 1846
1847 1847
1848DEFUN ("ns-font-name", Fns_font_name, Sns_font_name, 1, 1, 0, 1848DEFUN ("ns-font-name", Fns_font_name, Sns_font_name, 1, 1, 0,
1849 doc: /* Determine font postscript or family name for font NAME. 1849 doc: /* Determine font PostScript or family name for font NAME.
1850NAME should be a string containing either the font name or an XLFD 1850NAME should be a string containing either the font name or an XLFD
1851font descriptor. If string contains `fontset' and not 1851font descriptor. If string contains `fontset' and not
1852`fontset-startup', it is left alone. */) 1852`fontset-startup', it is left alone. */)
diff --git a/src/nsterm.h b/src/nsterm.h
index b54e182780a..574d31c962a 100644
--- a/src/nsterm.h
+++ b/src/nsterm.h
@@ -447,7 +447,7 @@ struct nsfont_info
447{ 447{
448 struct font font; 448 struct font font;
449 449
450 char *name; /* postscript name, uniquely identifies on NS systems */ 450 char *name; /* PostScript name, uniquely identifies on NS systems */
451 float width; /* this and following metrics stored as float rather than int */ 451 float width; /* this and following metrics stored as float rather than int */
452 float height; 452 float height;
453 float underpos; 453 float underpos;
diff --git a/src/nsterm.m b/src/nsterm.m
index 3d3723fc28c..c5b28d57ac5 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -3035,7 +3035,7 @@ ns_dumpglyphs_image (struct glyph_string *s, NSRect r)
3035 /* Currently on NS img->mask is always 0. Since 3035 /* Currently on NS img->mask is always 0. Since
3036 get_window_cursor_type specifies a hollow box cursor when on 3036 get_window_cursor_type specifies a hollow box cursor when on
3037 a non-masked image we never reach this clause. But we put it 3037 a non-masked image we never reach this clause. But we put it
3038 in in antipication of better support for image masks on 3038 in in anticipation of better support for image masks on
3039 NS. */ 3039 NS. */
3040 tdCol = ns_lookup_indexed_color (NS_FACE_FOREGROUND (face), s->f); 3040 tdCol = ns_lookup_indexed_color (NS_FACE_FOREGROUND (face), s->f);
3041 } 3041 }
@@ -4503,7 +4503,7 @@ ns_term_shutdown (int sig)
4503 //ns_app_active=YES; 4503 //ns_app_active=YES;
4504 4504
4505 ns_update_auto_hide_menu_bar (); 4505 ns_update_auto_hide_menu_bar ();
4506 // No constrining takes place when the application is not active. 4506 // No constraining takes place when the application is not active.
4507 ns_constrain_all_frames (); 4507 ns_constrain_all_frames ();
4508} 4508}
4509- (void)applicationDidResignActive: (NSNotification *)notification 4509- (void)applicationDidResignActive: (NSNotification *)notification
diff --git a/src/print.c b/src/print.c
index 62bd048cf97..fc36d29da7c 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1635,7 +1635,7 @@ print_object (Lisp_Object obj, register Lisp_Object printcharfun, int escapeflag
1635 /* Detect circular list. */ 1635 /* Detect circular list. */
1636 if (NILP (Vprint_circle)) 1636 if (NILP (Vprint_circle))
1637 { 1637 {
1638 /* Simple but imcomplete way. */ 1638 /* Simple but incomplete way. */
1639 if (i != 0 && EQ (obj, halftail)) 1639 if (i != 0 && EQ (obj, halftail))
1640 { 1640 {
1641 sprintf (buf, " . #%"pMd, i / 2); 1641 sprintf (buf, " . #%"pMd, i / 2);
diff --git a/src/process.c b/src/process.c
index 301274676d6..bea9e72019b 100644
--- a/src/process.c
+++ b/src/process.c
@@ -1414,7 +1414,7 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */)
1414 val = XCDR (Vdefault_process_coding_system); 1414 val = XCDR (Vdefault_process_coding_system);
1415 } 1415 }
1416 XPROCESS (proc)->encode_coding_system = val; 1416 XPROCESS (proc)->encode_coding_system = val;
1417 /* Note: At this momemnt, the above coding system may leave 1417 /* Note: At this moment, the above coding system may leave
1418 text-conversion or eol-conversion unspecified. They will be 1418 text-conversion or eol-conversion unspecified. They will be
1419 decided after we read output from the process and decode it by 1419 decided after we read output from the process and decode it by
1420 some coding system, or just before we actually send a text to 1420 some coding system, or just before we actually send a text to
@@ -3120,7 +3120,7 @@ usage: (make-network-process &rest ARGS) */)
3120 { 3120 {
3121 struct hostent *host_info_ptr; 3121 struct hostent *host_info_ptr;
3122 3122
3123 /* gethostbyname may fail with TRY_AGAIN, but we don't honour that, 3123 /* gethostbyname may fail with TRY_AGAIN, but we don't honor that,
3124 as it may `hang' Emacs for a very long time. */ 3124 as it may `hang' Emacs for a very long time. */
3125 immediate_quit = 1; 3125 immediate_quit = 1;
3126 QUIT; 3126 QUIT;
@@ -5377,8 +5377,8 @@ send_process (volatile Lisp_Object proc, const char *volatile buf,
5377 sending a multibyte text, thus we must encode it by the 5377 sending a multibyte text, thus we must encode it by the
5378 original coding system specified for the current process. 5378 original coding system specified for the current process.
5379 5379
5380 Another reason we comming here is that the coding system 5380 Another reason we come here is that the coding system
5381 was just complemented and new one was returned by 5381 was just complemented and a new one was returned by
5382 complement_process_encoding_system. */ 5382 complement_process_encoding_system. */
5383 setup_coding_system (p->encode_coding_system, coding); 5383 setup_coding_system (p->encode_coding_system, coding);
5384 Vlast_coding_system_used = p->encode_coding_system; 5384 Vlast_coding_system_used = p->encode_coding_system;
diff --git a/src/ralloc.c b/src/ralloc.c
index 50d322523c1..62189ad8fc7 100644
--- a/src/ralloc.c
+++ b/src/ralloc.c
@@ -219,13 +219,13 @@ find_heap (POINTER address)
219 If enough space is not presently available in our reserve, this means 219 If enough space is not presently available in our reserve, this means
220 getting more page-aligned space from the system. If the returned space 220 getting more page-aligned space from the system. If the returned space
221 is not contiguous to the last heap, allocate a new heap, and append it 221 is not contiguous to the last heap, allocate a new heap, and append it
222 to the heap list.
222 223
223 obtain does not try to keep track of whether space is in use 224 obtain does not try to keep track of whether space is in use or not
224 or not in use. It just returns the address of SIZE bytes that 225 in use. It just returns the address of SIZE bytes that fall within a
225 fall within a single heap. If you call obtain twice in a row 226 single heap. If you call obtain twice in a row with the same arguments,
226 with the same arguments, you typically get the same value. 227 you typically get the same value. It's the caller's responsibility to
227 to the heap list. It's the caller's responsibility to keep 228 keep track of what space is in use.
228 track of what space is in use.
229 229
230 Return the address of the space if all went well, or zero if we couldn't 230 Return the address of the space if all went well, or zero if we couldn't
231 allocate the memory. */ 231 allocate the memory. */
@@ -389,7 +389,7 @@ find_bloc (POINTER *ptr)
389 while (p != NIL_BLOC) 389 while (p != NIL_BLOC)
390 { 390 {
391 /* Consistency check. Don't return inconsistent blocs. 391 /* Consistency check. Don't return inconsistent blocs.
392 Don't abort here, as callers might be expecting this, but 392 Don't abort here, as callers might be expecting this, but
393 callers that always expect a bloc to be returned should abort 393 callers that always expect a bloc to be returned should abort
394 if one isn't to avoid a memory corruption bug that is 394 if one isn't to avoid a memory corruption bug that is
395 difficult to track down. */ 395 difficult to track down. */
@@ -1180,7 +1180,7 @@ r_alloc_reset_variable (POINTER *old, POINTER *new)
1180 1180
1181 /* Find the bloc that corresponds to the data pointed to by pointer. 1181 /* Find the bloc that corresponds to the data pointed to by pointer.
1182 find_bloc cannot be used, as it has internal consistency checks 1182 find_bloc cannot be used, as it has internal consistency checks
1183 which fail when the variable needs reseting. */ 1183 which fail when the variable needs resetting. */
1184 while (bloc != NIL_BLOC) 1184 while (bloc != NIL_BLOC)
1185 { 1185 {
1186 if (bloc->data == *new) 1186 if (bloc->data == *new)
diff --git a/src/regex.c b/src/regex.c
index ccbad58abb3..b7699378f5a 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -637,7 +637,7 @@ typedef enum
637 on_failure_jump_nastyloop, 637 on_failure_jump_nastyloop,
638 638
639 /* A smart `on_failure_jump' used for greedy * and + operators. 639 /* A smart `on_failure_jump' used for greedy * and + operators.
640 It analyses the loop before which it is put and if the 640 It analyzes the loop before which it is put and if the
641 loop does not require backtracking, it changes itself to 641 loop does not require backtracking, it changes itself to
642 `on_failure_keep_string_jump' and short-circuits the loop, 642 `on_failure_keep_string_jump' and short-circuits the loop,
643 else it just defaults to changing itself into `on_failure_jump'. 643 else it just defaults to changing itself into `on_failure_jump'.
diff --git a/src/regex.h b/src/regex.h
index 7747ec57629..eba62f2e769 100644
--- a/src/regex.h
+++ b/src/regex.h
@@ -415,7 +415,7 @@ struct re_pattern_buffer
415typedef struct re_pattern_buffer regex_t; 415typedef struct re_pattern_buffer regex_t;
416 416
417/* Type for byte offsets within the string. POSIX mandates this to be an int, 417/* Type for byte offsets within the string. POSIX mandates this to be an int,
418 but the Open Group has signalled its intention to change the requirement to 418 but the Open Group has signaled its intention to change the requirement to
419 be that regoff_t be at least as wide as ptrdiff_t and ssize_t. Current 419 be that regoff_t be at least as wide as ptrdiff_t and ssize_t. Current
420 gnulib sources also use ssize_t, and we need this for supporting buffers and 420 gnulib sources also use ssize_t, and we need this for supporting buffers and
421 strings > 2GB on 64-bit hosts. */ 421 strings > 2GB on 64-bit hosts. */
diff --git a/src/s/msdos.h b/src/s/msdos.h
index 29ca0629899..9ee13d12867 100644
--- a/src/s/msdos.h
+++ b/src/s/msdos.h
@@ -119,7 +119,7 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */
119#ifdef HAVE_X_WINDOWS 119#ifdef HAVE_X_WINDOWS
120/* We need a little extra space, see ../../lisp/loadup.el and the 120/* We need a little extra space, see ../../lisp/loadup.el and the
121 commentary below, in the non-X branch. The 140KB number was 121 commentary below, in the non-X branch. The 140KB number was
122 measured on GNU/Linux and on MS-WIndows. */ 122 measured on GNU/Linux and on MS-Windows. */
123#define SYSTEM_PURESIZE_EXTRA (-170000+140000) 123#define SYSTEM_PURESIZE_EXTRA (-170000+140000)
124#else 124#else
125/* We need a little extra space, see ../../lisp/loadup.el. 125/* We need a little extra space, see ../../lisp/loadup.el.
@@ -138,4 +138,3 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */
138 registers relevant for conservative garbage collection in the jmp_buf. */ 138 registers relevant for conservative garbage collection in the jmp_buf. */
139#define GC_SETJMP_WORKS 1 139#define GC_SETJMP_WORKS 1
140#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS 140#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
141
diff --git a/src/sound.c b/src/sound.c
index 362c04b7d40..39007574afc 100644
--- a/src/sound.c
+++ b/src/sound.c
@@ -226,7 +226,7 @@ struct sound_device
226 /* Close device SD. */ 226 /* Close device SD. */
227 void (* close) (struct sound_device *sd); 227 void (* close) (struct sound_device *sd);
228 228
229 /* Configure SD accoring to device-dependent parameters. */ 229 /* Configure SD according to device-dependent parameters. */
230 void (* configure) (struct sound_device *device); 230 void (* configure) (struct sound_device *device);
231 231
232 /* Choose a device-dependent format for outputting sound S. */ 232 /* Choose a device-dependent format for outputting sound S. */
diff --git a/src/syssignal.h b/src/syssignal.h
index 7533a5a64fd..315400d8498 100644
--- a/src/syssignal.h
+++ b/src/syssignal.h
@@ -39,7 +39,7 @@ extern sigset_t empty_mask;
39 39
40/* POSIX pretty much destroys any possibility of writing sigmask as a 40/* POSIX pretty much destroys any possibility of writing sigmask as a
41 macro in standard C. We always define our own version because the 41 macro in standard C. We always define our own version because the
42 predefined macro in Glibc 2.1 is only provided for compatility for old 42 predefined macro in Glibc 2.1 is only provided for compatibility for old
43 programs that use int as signal mask type. */ 43 programs that use int as signal mask type. */
44#undef sigmask 44#undef sigmask
45#ifdef __GNUC__ 45#ifdef __GNUC__
diff --git a/src/unexelf.c b/src/unexelf.c
index 979d6dce629..04c029f7e80 100644
--- a/src/unexelf.c
+++ b/src/unexelf.c
@@ -1019,7 +1019,7 @@ temacs:
1019 /* The conditional bit below was in Oliva's original code 1019 /* The conditional bit below was in Oliva's original code
1020 (1999-08-25) and seems to have been dropped by mistake 1020 (1999-08-25) and seems to have been dropped by mistake
1021 subsequently. It prevents a crash at startup under X in 1021 subsequently. It prevents a crash at startup under X in
1022 `IRIX64 6.5 6.5.17m', whether compiled on that relase or 1022 `IRIX64 6.5 6.5.17m', whether compiled on that release or
1023 an earlier one. It causes no trouble on the other ELF 1023 an earlier one. It causes no trouble on the other ELF
1024 platforms I could test (Irix 6.5.15m, Solaris 8, Debian 1024 platforms I could test (Irix 6.5.15m, Solaris 8, Debian
1025 Potato x86, Debian Woody SPARC); however, it's reported 1025 Potato x86, Debian Woody SPARC); however, it's reported
diff --git a/src/w32.c b/src/w32.c
index c752333c68d..304445e2238 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -3057,7 +3057,7 @@ generate_inode_val (const char * name)
3057 unsigned hash; 3057 unsigned hash;
3058 3058
3059 /* Get the truly canonical filename, if it exists. (Note: this 3059 /* Get the truly canonical filename, if it exists. (Note: this
3060 doesn't resolve aliasing due to subst commands, or recognise hard 3060 doesn't resolve aliasing due to subst commands, or recognize hard
3061 links. */ 3061 links. */
3062 if (!w32_get_long_filename ((char *)name, fullname, MAX_PATH)) 3062 if (!w32_get_long_filename ((char *)name, fullname, MAX_PATH))
3063 abort (); 3063 abort ();
@@ -3403,7 +3403,7 @@ stat (const char * path, struct stat * buf)
3403 FILE_FLAG_BACKUP_SEMANTICS, NULL)) 3403 FILE_FLAG_BACKUP_SEMANTICS, NULL))
3404 != INVALID_HANDLE_VALUE) 3404 != INVALID_HANDLE_VALUE)
3405 { 3405 {
3406 /* This is more accurate in terms of gettting the correct number 3406 /* This is more accurate in terms of getting the correct number
3407 of links, but is quite slow (it is noticeable when Emacs is 3407 of links, but is quite slow (it is noticeable when Emacs is
3408 making a list of file name completions). */ 3408 making a list of file name completions). */
3409 BY_HANDLE_FILE_INFORMATION info; 3409 BY_HANDLE_FILE_INFORMATION info;
@@ -5845,7 +5845,7 @@ term_ntproc (void)
5845void 5845void
5846init_ntproc (void) 5846init_ntproc (void)
5847{ 5847{
5848 /* Initialise the socket interface now if available and requested by 5848 /* Initialize the socket interface now if available and requested by
5849 the user by defining PRELOAD_WINSOCK; otherwise loading will be 5849 the user by defining PRELOAD_WINSOCK; otherwise loading will be
5850 delayed until open-network-stream is called (w32-has-winsock can 5850 delayed until open-network-stream is called (w32-has-winsock can
5851 also be used to dynamically load or reload winsock). 5851 also be used to dynamically load or reload winsock).
diff --git a/src/w32console.c b/src/w32console.c
index 49bf56ddee9..30c71f1c276 100644
--- a/src/w32console.c
+++ b/src/w32console.c
@@ -748,7 +748,7 @@ syms_of_ntterm (void)
748 doc: /* Non-nil means make terminal frames use the full screen buffer dimensions. 748 doc: /* Non-nil means make terminal frames use the full screen buffer dimensions.
749This is desirable when running Emacs over telnet. 749This is desirable when running Emacs over telnet.
750A value of nil means use the current console window dimensions; this 750A value of nil means use the current console window dimensions; this
751may be preferrable when working directly at the console with a large 751may be preferable when working directly at the console with a large
752scroll-back buffer. */); 752scroll-back buffer. */);
753 w32_use_full_screen_buffer = 0; 753 w32_use_full_screen_buffer = 0;
754 754
@@ -757,4 +757,3 @@ scroll-back buffer. */);
757 defsubr (&Sset_cursor_size); 757 defsubr (&Sset_cursor_size);
758 defsubr (&Sset_message_beep); 758 defsubr (&Sset_message_beep);
759} 759}
760
diff --git a/src/w32fns.c b/src/w32fns.c
index ffbcff86694..5b936195aa5 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -2088,7 +2088,7 @@ w32_key_to_modifier (int key)
2088 key_mapping = Qnil; 2088 key_mapping = Qnil;
2089 } 2089 }
2090 2090
2091 /* NB. This code runs in the input thread, asychronously to the lisp 2091 /* NB. This code runs in the input thread, asynchronously to the lisp
2092 thread, so we must be careful to ensure access to lisp data is 2092 thread, so we must be careful to ensure access to lisp data is
2093 thread-safe. The following code is safe because the modifier 2093 thread-safe. The following code is safe because the modifier
2094 variable values are updated atomically from lisp and symbols are 2094 variable values are updated atomically from lisp and symbols are
@@ -2262,7 +2262,7 @@ w32_msg_pump (deferred_msg * msg_buf)
2262 some third party shell extensions can cause it to be used in 2262 some third party shell extensions can cause it to be used in
2263 system dialogs, which causes a crash if it is not initialized. 2263 system dialogs, which causes a crash if it is not initialized.
2264 This is a known bug in Windows, which was fixed long ago, but 2264 This is a known bug in Windows, which was fixed long ago, but
2265 the patch for XP is not publically available until XP SP3, 2265 the patch for XP is not publicly available until XP SP3,
2266 and older versions will never be patched. */ 2266 and older versions will never be patched. */
2267 CoInitialize (NULL); 2267 CoInitialize (NULL);
2268 w32_createwindow ((struct frame *) msg.wParam); 2268 w32_createwindow ((struct frame *) msg.wParam);
@@ -2880,7 +2880,7 @@ w32_wnd_proc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
2880 key.dwControlKeyState = modifiers; 2880 key.dwControlKeyState = modifiers;
2881 2881
2882 add = w32_kbd_patch_key (&key); 2882 add = w32_kbd_patch_key (&key);
2883 /* 0 means an unrecognised keycode, negative means 2883 /* 0 means an unrecognized keycode, negative means
2884 dead key. Ignore both. */ 2884 dead key. Ignore both. */
2885 while (--add >= 0) 2885 while (--add >= 0)
2886 { 2886 {
@@ -6709,7 +6709,7 @@ DEFUN ("default-printer-name", Fdefault_printer_name, Sdefault_printer_name,
6709 ClosePrinter (hPrn); 6709 ClosePrinter (hPrn);
6710 return Qnil; 6710 return Qnil;
6711 } 6711 }
6712 /* Call GetPrinter again with big enouth memory block */ 6712 /* Call GetPrinter again with big enough memory block. */
6713 err = GetPrinter (hPrn, 2, (LPBYTE)ppi2, dwNeeded, &dwReturned); 6713 err = GetPrinter (hPrn, 2, (LPBYTE)ppi2, dwNeeded, &dwReturned);
6714 ClosePrinter (hPrn); 6714 ClosePrinter (hPrn);
6715 if (!err) 6715 if (!err)
diff --git a/src/w32font.c b/src/w32font.c
index 365f8b78a5e..bd58e7e757b 100644
--- a/src/w32font.c
+++ b/src/w32font.c
@@ -330,7 +330,7 @@ w32font_list (Lisp_Object frame, Lisp_Object font_spec)
330 330
331/* w32 implementation of match for font backend. 331/* w32 implementation of match for font backend.
332 Return a font entity most closely matching with FONT_SPEC on 332 Return a font entity most closely matching with FONT_SPEC on
333 FRAME. The closeness is detemined by the font backend, thus 333 FRAME. The closeness is determined by the font backend, thus
334 `face-font-selection-order' is ignored here. */ 334 `face-font-selection-order' is ignored here. */
335static Lisp_Object 335static Lisp_Object
336w32font_match (Lisp_Object frame, Lisp_Object font_spec) 336w32font_match (Lisp_Object frame, Lisp_Object font_spec)
@@ -1284,8 +1284,8 @@ font_matches_spec (DWORD type, NEWTEXTMETRICEX *font,
1284 { 1284 {
1285 /* Only truetype fonts will have information about what 1285 /* Only truetype fonts will have information about what
1286 scripts they support. This probably means the user 1286 scripts they support. This probably means the user
1287 will have to force Emacs to use raster, postscript 1287 will have to force Emacs to use raster, PostScript
1288 or atm fonts for non-ASCII text. */ 1288 or ATM fonts for non-ASCII text. */
1289 if (type & TRUETYPE_FONTTYPE) 1289 if (type & TRUETYPE_FONTTYPE)
1290 { 1290 {
1291 Lisp_Object support 1291 Lisp_Object support
@@ -1464,7 +1464,7 @@ check_face_name (LOGFONT *font, char *full_name)
1464 /* Helvetica is mapped to Arial in Windows, but if a Type-1 Helvetica is 1464 /* Helvetica is mapped to Arial in Windows, but if a Type-1 Helvetica is
1465 installed, we run into problems with the Uniscribe backend which tries 1465 installed, we run into problems with the Uniscribe backend which tries
1466 to avoid non-truetype fonts, and ends up mixing the Type-1 Helvetica 1466 to avoid non-truetype fonts, and ends up mixing the Type-1 Helvetica
1467 with Arial's characteristics, since that attempt to use Truetype works 1467 with Arial's characteristics, since that attempt to use TrueType works
1468 some places, but not others. */ 1468 some places, but not others. */
1469 if (!xstrcasecmp (font->lfFaceName, "helvetica")) 1469 if (!xstrcasecmp (font->lfFaceName, "helvetica"))
1470 { 1470 {
@@ -1492,7 +1492,7 @@ check_face_name (LOGFONT *font, char *full_name)
1492 1492
1493 1493
1494/* Callback function for EnumFontFamiliesEx. 1494/* Callback function for EnumFontFamiliesEx.
1495 * Checks if a font matches everything we are trying to check agaist, 1495 * Checks if a font matches everything we are trying to check against,
1496 * and if so, adds it to a list. Both the data we are checking against 1496 * and if so, adds it to a list. Both the data we are checking against
1497 * and the list to which the fonts are added are passed in via the 1497 * and the list to which the fonts are added are passed in via the
1498 * lparam argument, in the form of a font_callback_data struct. */ 1498 * lparam argument, in the form of a font_callback_data struct. */
diff --git a/src/w32font.h b/src/w32font.h
index 45c06897195..f77866b869f 100644
--- a/src/w32font.h
+++ b/src/w32font.h
@@ -20,8 +20,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
20#define EMACS_W32FONT_H 20#define EMACS_W32FONT_H
21 21
22 22
23/* Bit 17 of ntmFlags in NEWTEXTMETRIC is set for Postscript OpenType fonts, 23/* Bit 17 of ntmFlags in NEWTEXTMETRIC is set for PostScript OpenType fonts,
24 bit 18 for Truetype OpenType fonts, bit 20 for Type1 fonts. */ 24 bit 18 for TrueType OpenType fonts, bit 20 for Type1 fonts. */
25#ifndef NTM_PS_OPENTYPE 25#ifndef NTM_PS_OPENTYPE
26#define NTM_PS_OPENTYPE 0x00020000 26#define NTM_PS_OPENTYPE 0x00020000
27#endif 27#endif
@@ -84,4 +84,3 @@ int uniscribe_check_otf (LOGFONT *font, Lisp_Object otf_spec);
84Lisp_Object intern_font_name (char *); 84Lisp_Object intern_font_name (char *);
85 85
86#endif 86#endif
87
diff --git a/src/w32menu.c b/src/w32menu.c
index c31a8c1fd96..39d101e7bd5 100644
--- a/src/w32menu.c
+++ b/src/w32menu.c
@@ -1443,7 +1443,7 @@ add_menu_item (HMENU menu, widget_value *wv, HMENU item)
1443 out_string = (char *) local_alloc (strlen (wv->name) + 1); 1443 out_string = (char *) local_alloc (strlen (wv->name) + 1);
1444 strcpy (out_string, wv->name); 1444 strcpy (out_string, wv->name);
1445#ifdef MENU_DEBUG 1445#ifdef MENU_DEBUG
1446 DebPrint ("Menu: allocing %ld for owner-draw", out_string); 1446 DebPrint ("Menu: allocating %ld for owner-draw", out_string);
1447#endif 1447#endif
1448 fuFlags = MF_OWNERDRAW | MF_DISABLED; 1448 fuFlags = MF_OWNERDRAW | MF_DISABLED;
1449 } 1449 }
diff --git a/src/w32proc.c b/src/w32proc.c
index 47cbf57d9ea..254a32503c4 100644
--- a/src/w32proc.c
+++ b/src/w32proc.c
@@ -122,12 +122,12 @@ new_child (void)
122 122
123 for (cp = child_procs + (child_proc_count-1); cp >= child_procs; cp--) 123 for (cp = child_procs + (child_proc_count-1); cp >= child_procs; cp--)
124 if (!CHILD_ACTIVE (cp)) 124 if (!CHILD_ACTIVE (cp))
125 goto Initialise; 125 goto Initialize;
126 if (child_proc_count == MAX_CHILDREN) 126 if (child_proc_count == MAX_CHILDREN)
127 return NULL; 127 return NULL;
128 cp = &child_procs[child_proc_count++]; 128 cp = &child_procs[child_proc_count++];
129 129
130 Initialise: 130 Initialize:
131 memset (cp, 0, sizeof (*cp)); 131 memset (cp, 0, sizeof (*cp));
132 cp->fd = -1; 132 cp->fd = -1;
133 cp->pid = -1; 133 cp->pid = -1;
@@ -174,7 +174,7 @@ delete_child (child_process *cp)
174 cp->status = STATUS_READ_ERROR; 174 cp->status = STATUS_READ_ERROR;
175 SetEvent (cp->char_consumed); 175 SetEvent (cp->char_consumed);
176#if 0 176#if 0
177 /* We used to forceably terminate the thread here, but it 177 /* We used to forcibly terminate the thread here, but it
178 is normally unnecessary, and in abnormal cases, the worst that 178 is normally unnecessary, and in abnormal cases, the worst that
179 will happen is we have an extra idle thread hanging around 179 will happen is we have an extra idle thread hanging around
180 waiting for the zombie process. */ 180 waiting for the zombie process. */
@@ -241,7 +241,8 @@ reader_thread (void *arg)
241 241
242 /* We have to wait for the go-ahead before we can start */ 242 /* We have to wait for the go-ahead before we can start */
243 if (cp == NULL 243 if (cp == NULL
244 || WaitForSingleObject (cp->char_consumed, INFINITE) != WAIT_OBJECT_0) 244 || WaitForSingleObject (cp->char_consumed, INFINITE) != WAIT_OBJECT_0
245 || cp->fd < 0)
245 return 1; 246 return 1;
246 247
247 for (;;) 248 for (;;)
@@ -820,7 +821,7 @@ sys_spawnve (int mode, char *cmdname, char **argv, char **envp)
820 821
821 The w32 GNU-based library from Cygnus doubles quotes to escape 822 The w32 GNU-based library from Cygnus doubles quotes to escape
822 them, while MSVC uses backslash for escaping. (Actually the MSVC 823 them, while MSVC uses backslash for escaping. (Actually the MSVC
823 startup code does attempt to recognise doubled quotes and accept 824 startup code does attempt to recognize doubled quotes and accept
824 them, but gets it wrong and ends up requiring three quotes to get a 825 them, but gets it wrong and ends up requiring three quotes to get a
825 single embedded quote!) So by default we decide whether to use 826 single embedded quote!) So by default we decide whether to use
826 quote or backslash as the escape character based on whether the 827 quote or backslash as the escape character based on whether the
@@ -2295,7 +2296,7 @@ filesystems via ange-ftp. */);
2295 doc: /* Non-nil means attempt to fake realistic inode values. 2296 doc: /* Non-nil means attempt to fake realistic inode values.
2296This works by hashing the truename of files, and should detect 2297This works by hashing the truename of files, and should detect
2297aliasing between long and short (8.3 DOS) names, but can have 2298aliasing between long and short (8.3 DOS) names, but can have
2298false positives because of hash collisions. Note that determing 2299false positives because of hash collisions. Note that determining
2299the truename of a file can be slow. */); 2300the truename of a file can be slow. */);
2300 Vw32_generate_fake_inodes = Qnil; 2301 Vw32_generate_fake_inodes = Qnil;
2301#endif 2302#endif
@@ -2319,4 +2320,3 @@ where the performance impact may be noticeable even on modern hardware. */);
2319 staticpro (&Vw32_valid_codepages); 2320 staticpro (&Vw32_valid_codepages);
2320} 2321}
2321/* end of w32proc.c */ 2322/* end of w32proc.c */
2322
diff --git a/src/w32term.c b/src/w32term.c
index f876cff0363..a2ccdd21f7d 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -3287,7 +3287,7 @@ w32_mouse_position (FRAME_PTR *fp, int insist, Lisp_Object *bar_window,
3287 3287
3288/* Handle mouse button event on the tool-bar of frame F, at 3288/* Handle mouse button event on the tool-bar of frame F, at
3289 frame-relative coordinates X/Y. EVENT_TYPE is either ButtionPress 3289 frame-relative coordinates X/Y. EVENT_TYPE is either ButtionPress
3290 or ButtonRelase. */ 3290 or ButtonRelease. */
3291 3291
3292static void 3292static void
3293w32_handle_tool_bar_click (struct frame *f, struct input_event *button_event) 3293w32_handle_tool_bar_click (struct frame *f, struct input_event *button_event)
@@ -4506,7 +4506,7 @@ w32_read_socket (struct terminal *terminal, int expected,
4506 } 4506 }
4507 4507
4508 /* If window has been obscured or exposed by another window 4508 /* If window has been obscured or exposed by another window
4509 being maximised or minimised/restored, then recheck 4509 being maximized or minimized/restored, then recheck
4510 visibility of all frames. Direct changes to our own 4510 visibility of all frames. Direct changes to our own
4511 windows get handled by WM_SIZE. */ 4511 windows get handled by WM_SIZE. */
4512#if 0 4512#if 0
@@ -5576,7 +5576,7 @@ x_raise_frame (struct frame *f)
5576 input focus anyway (so the window with focus will never be 5576 input focus anyway (so the window with focus will never be
5577 completely obscured) - if not, then just moving the mouse over it 5577 completely obscured) - if not, then just moving the mouse over it
5578 is sufficient to give it focus. On Windows, the user must actually 5578 is sufficient to give it focus. On Windows, the user must actually
5579 click on the frame (preferrably the title bar so as not to move 5579 click on the frame (preferably the title bar so as not to move
5580 point), which is more awkward. Also, no other Windows program 5580 point), which is more awkward. Also, no other Windows program
5581 raises a window to the top but leaves another window (possibly now 5581 raises a window to the top but leaves another window (possibly now
5582 completely obscured) with input focus. 5582 completely obscured) with input focus.
@@ -5691,11 +5691,11 @@ x_make_frame_visible (struct frame *f)
5691 f->output_data.w32->asked_for_visible = 1; 5691 f->output_data.w32->asked_for_visible = 1;
5692 5692
5693 /* According to a report in emacs-devel 2008-06-03, SW_SHOWNORMAL 5693 /* According to a report in emacs-devel 2008-06-03, SW_SHOWNORMAL
5694 causes unexpected behaviour when unminimizing frames that were 5694 causes unexpected behavior when unminimizing frames that were
5695 previously maximised. But only SW_SHOWNORMAL works properly for 5695 previously maximized. But only SW_SHOWNORMAL works properly for
5696 frames that were truely hidden (using make-frame-invisible), so 5696 frames that were truely hidden (using make-frame-invisible), so
5697 we need it to avoid Bug#5482. It seems that async_iconified 5697 we need it to avoid Bug#5482. It seems that async_iconified
5698 is only set for minimised windows that are still visible, so 5698 is only set for minimized windows that are still visible, so
5699 use that to determine the appropriate flag to pass ShowWindow. */ 5699 use that to determine the appropriate flag to pass ShowWindow. */
5700 my_show_window (f, FRAME_W32_WINDOW (f), 5700 my_show_window (f, FRAME_W32_WINDOW (f),
5701 f->async_iconified ? SW_RESTORE : SW_SHOWNORMAL); 5701 f->async_iconified ? SW_RESTORE : SW_SHOWNORMAL);
@@ -6164,7 +6164,7 @@ w32_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name)
6164 dpyinfo->has_palette = GetDeviceCaps (hdc, RASTERCAPS) & RC_PALETTE; 6164 dpyinfo->has_palette = GetDeviceCaps (hdc, RASTERCAPS) & RC_PALETTE;
6165 ReleaseDC (NULL, hdc); 6165 ReleaseDC (NULL, hdc);
6166 6166
6167 /* initialise palette with white and black */ 6167 /* initialize palette with white and black */
6168 { 6168 {
6169 XColor color; 6169 XColor color;
6170 w32_defined_color (0, "white", &color, 1); 6170 w32_defined_color (0, "white", &color, 1);
diff --git a/src/w32term.h b/src/w32term.h
index 710394583e4..02392133837 100644
--- a/src/w32term.h
+++ b/src/w32term.h
@@ -637,7 +637,7 @@ extern void x_delete_display (struct w32_display_info *dpyinfo);
637 637
638/* Keypad command key support. W32 doesn't have virtual keys defined 638/* Keypad command key support. W32 doesn't have virtual keys defined
639 for the function keys on the keypad (they are mapped to the standard 639 for the function keys on the keypad (they are mapped to the standard
640 fuction keys), so we define our own. */ 640 function keys), so we define our own. */
641#define VK_NUMPAD_BEGIN 0x92 641#define VK_NUMPAD_BEGIN 0x92
642#define VK_NUMPAD_CLEAR (VK_NUMPAD_BEGIN + 0) 642#define VK_NUMPAD_CLEAR (VK_NUMPAD_BEGIN + 0)
643#define VK_NUMPAD_ENTER (VK_NUMPAD_BEGIN + 1) 643#define VK_NUMPAD_ENTER (VK_NUMPAD_BEGIN + 1)
diff --git a/src/w32uniscribe.c b/src/w32uniscribe.c
index f6347bb88f7..36197b3b28a 100644
--- a/src/w32uniscribe.c
+++ b/src/w32uniscribe.c
@@ -507,7 +507,7 @@ uniscribe_encode_char (struct font *font, int c)
507 if (SUCCEEDED (result) && nglyphs == 1) 507 if (SUCCEEDED (result) && nglyphs == 1)
508 { 508 {
509 /* Some fonts return .notdef glyphs instead of failing. 509 /* Some fonts return .notdef glyphs instead of failing.
510 (Truetype spec reserves glyph code 0 for .notdef) */ 510 (TrueType spec reserves glyph code 0 for .notdef) */
511 if (glyphs[0]) 511 if (glyphs[0])
512 code = glyphs[0]; 512 code = glyphs[0];
513 } 513 }
@@ -961,4 +961,3 @@ syms_of_w32uniscribe (void)
961 961
962 register_font_driver (&uniscribe_font_driver, NULL); 962 register_font_driver (&uniscribe_font_driver, NULL);
963} 963}
964
diff --git a/src/w32xfns.c b/src/w32xfns.c
index fbbf11bd65c..fc2d5904d67 100644
--- a/src/w32xfns.c
+++ b/src/w32xfns.c
@@ -188,7 +188,7 @@ get_next_msg (W32Msg * lpmsg, BOOL bWait)
188 } 188 }
189 189
190 nQueue--; 190 nQueue--;
191 /* Consolidate WM_PAINT messages to optimise redrawing. */ 191 /* Consolidate WM_PAINT messages to optimize redrawing. */
192 if (lpmsg->msg.message == WM_PAINT && nQueue) 192 if (lpmsg->msg.message == WM_PAINT && nQueue)
193 { 193 {
194 int_msg * lpCur = lpHead; 194 int_msg * lpCur = lpHead;
@@ -441,4 +441,3 @@ void
441x_sync (void *f) 441x_sync (void *f)
442{ 442{
443} 443}
444
diff --git a/src/window.c b/src/window.c
index 0a780a0170a..776f097b59e 100644
--- a/src/window.c
+++ b/src/window.c
@@ -465,32 +465,29 @@ Return nil if WINDOW has no previous sibling. */)
465 return decode_any_window (window)->prev; 465 return decode_any_window (window)->prev;
466} 466}
467 467
468DEFUN ("window-nest", Fwindow_nest, Swindow_nest, 0, 1, 0, 468DEFUN ("window-combination-limit", Fwindow_combination_limit, Swindow_combination_limit, 1, 1, 0,
469 doc: /* Return nest status of window WINDOW. 469 doc: /* Return combination limit of window WINDOW.
470If WINDOW is omitted or nil, it defaults to the selected window.
471
472If the return value is nil, child windows of WINDOW can be recombined with 470If the return value is nil, child windows of WINDOW can be recombined with
473WINDOW's siblings. A return value of non-nil means that child windows of 471WINDOW's siblings. A return value of t means that child windows of
474WINDOW are never \(re-)combined with WINDOW's siblings. */) 472WINDOW are never \(re-)combined with WINDOW's siblings. */)
475 (Lisp_Object window) 473 (Lisp_Object window)
476{ 474{
477 return decode_any_window (window)->nest; 475 return decode_any_window (window)->combination_limit;
478} 476}
479 477
480DEFUN ("set-window-nest", Fset_window_nest, Sset_window_nest, 2, 2, 0, 478DEFUN ("set-window-combination-limit", Fset_window_combination_limit, Sset_window_combination_limit, 2, 2, 0,
481 doc: /* Set nest status of window WINDOW to STATUS; return STATUS. 479 doc: /* Set combination limit of window WINDOW to STATUS; return STATUS.
482If WINDOW is omitted or nil, it defaults to the selected window. 480If STATUS is nil, child windows of WINDOW can be recombined with
483 481WINDOW's siblings. STATUS t means that child windows of WINDOW are
484If STATUS is nil, child windows of WINDOW can be recombined with WINDOW's 482never \(re-)combined with WINDOW's siblings. Other values are reserved
485siblings. STATUS non-nil means that child windows of WINDOW are never 483for future use. */)
486\(re-)combined with WINDOW's siblings. */)
487 (Lisp_Object window, Lisp_Object status) 484 (Lisp_Object window, Lisp_Object status)
488{ 485{
489 register struct window *w = decode_any_window (window); 486 register struct window *w = decode_any_window (window);
490 487
491 w->nest = status; 488 w->combination_limit = status;
492 489
493 return w->nest; 490 return w->combination_limit;
494} 491}
495 492
496DEFUN ("window-use-time", Fwindow_use_time, Swindow_use_time, 0, 1, 0, 493DEFUN ("window-use-time", Fwindow_use_time, Swindow_use_time, 0, 1, 0,
@@ -1879,7 +1876,7 @@ recombine_windows (Lisp_Object window)
1879 1876
1880 w = XWINDOW (window); 1877 w = XWINDOW (window);
1881 parent = w->parent; 1878 parent = w->parent;
1882 if (!NILP (parent) && NILP (w->nest)) 1879 if (!NILP (parent) && NILP (w->combination_limit))
1883 { 1880 {
1884 p = XWINDOW (parent); 1881 p = XWINDOW (parent);
1885 if (((!NILP (p->vchild) && !NILP (w->vchild)) 1882 if (((!NILP (p->vchild) && !NILP (w->vchild))
@@ -2344,7 +2341,7 @@ Anything else means consider all windows on WINDOW's frame and no
2344others. 2341others.
2345 2342
2346If WINDOW is not on the list of windows returned, some other window will 2343If WINDOW is not on the list of windows returned, some other window will
2347be listed first but no error is signalled. */) 2344be listed first but no error is signaled. */)
2348 (Lisp_Object window, Lisp_Object minibuf, Lisp_Object all_frames) 2345 (Lisp_Object window, Lisp_Object minibuf, Lisp_Object all_frames)
2349{ 2346{
2350 return window_list_1 (window, minibuf, all_frames); 2347 return window_list_1 (window, minibuf, all_frames);
@@ -3248,7 +3245,7 @@ make_parent_window (Lisp_Object window, int horflag)
3248 p->start = Qnil; 3245 p->start = Qnil;
3249 p->pointm = Qnil; 3246 p->pointm = Qnil;
3250 p->buffer = Qnil; 3247 p->buffer = Qnil;
3251 p->nest = Qnil; 3248 p->combination_limit = Qnil;
3252 p->window_parameters = Qnil; 3249 p->window_parameters = Qnil;
3253} 3250}
3254 3251
@@ -3295,7 +3292,7 @@ make_window (void)
3295 w->start_at_line_beg = w->display_table = w->dedicated = Qnil; 3292 w->start_at_line_beg = w->display_table = w->dedicated = Qnil;
3296 w->base_line_number = w->base_line_pos = w->region_showing = Qnil; 3293 w->base_line_number = w->base_line_pos = w->region_showing = Qnil;
3297 w->column_number_displayed = w->redisplay_end_trigger = Qnil; 3294 w->column_number_displayed = w->redisplay_end_trigger = Qnil;
3298 w->nest = w->window_parameters = Qnil; 3295 w->combination_limit = w->window_parameters = Qnil;
3299 w->prev_buffers = w->next_buffers = Qnil; 3296 w->prev_buffers = w->next_buffers = Qnil;
3300 /* Initialize non-Lisp data. */ 3297 /* Initialize non-Lisp data. */
3301 w->desired_matrix = w->current_matrix = 0; 3298 w->desired_matrix = w->current_matrix = 0;
@@ -3668,7 +3665,7 @@ set correctly. See the code of `split-window' for how this is done. */)
3668 int horflag 3665 int horflag
3669 /* HORFLAG is 1 when we split side-by-side, 0 otherwise. */ 3666 /* HORFLAG is 1 when we split side-by-side, 0 otherwise. */
3670 = EQ (side, Qt) || EQ (side, Qleft) || EQ (side, Qright); 3667 = EQ (side, Qt) || EQ (side, Qleft) || EQ (side, Qright);
3671 int do_nest = 0; 3668 int combination_limit = 0;
3672 3669
3673 CHECK_WINDOW (old); 3670 CHECK_WINDOW (old);
3674 o = XWINDOW (old); 3671 o = XWINDOW (old);
@@ -3677,11 +3674,11 @@ set correctly. See the code of `split-window' for how this is done. */)
3677 3674
3678 CHECK_NUMBER (total_size); 3675 CHECK_NUMBER (total_size);
3679 3676
3680 /* Set do_nest to 1 if we have to make a new parent window. We do 3677 /* Set combination_limit to 1 if we have to make a new parent window.
3681 that if either `window-nest' is non-nil, or OLD has no parent, or 3678 We do that if either `window-combination-limit' is t, or OLD has no
3682 OLD is ortho-combined. */ 3679 parent, or OLD is ortho-combined. */
3683 do_nest = 3680 combination_limit =
3684 !NILP (Vwindow_nest) 3681 !NILP (Vwindow_combination_limit)
3685 || NILP (o->parent) 3682 || NILP (o->parent)
3686 || NILP (horflag 3683 || NILP (horflag
3687 ? (XWINDOW (o->parent)->hchild) 3684 ? (XWINDOW (o->parent)->hchild)
@@ -3701,8 +3698,8 @@ set correctly. See the code of `split-window' for how this is done. */)
3701 error ("Attempt to split minibuffer window"); 3698 error ("Attempt to split minibuffer window");
3702 else if (XINT (total_size) < (horflag ? 2 : 1)) 3699 else if (XINT (total_size) < (horflag ? 2 : 1))
3703 error ("Size of new window too small (after split)"); 3700 error ("Size of new window too small (after split)");
3704 else if (!do_nest && !NILP (Vwindow_splits)) 3701 else if (!combination_limit && !NILP (Vwindow_combination_resize))
3705 /* `window-splits' non-nil means try to resize OLD's siblings 3702 /* `window-combination-resize' non-nil means try to resize OLD's siblings
3706 proportionally. */ 3703 proportionally. */
3707 { 3704 {
3708 p = XWINDOW (o->parent); 3705 p = XWINDOW (o->parent);
@@ -3726,7 +3723,7 @@ set correctly. See the code of `split-window' for how this is done. */)
3726 } 3723 }
3727 3724
3728 /* This is our point of no return. */ 3725 /* This is our point of no return. */
3729 if (do_nest) 3726 if (combination_limit)
3730 { 3727 {
3731 /* Save the old value of o->normal_cols/lines. It gets corrupted 3728 /* Save the old value of o->normal_cols/lines. It gets corrupted
3732 by make_parent_window and we need it below for assigning it to 3729 by make_parent_window and we need it below for assigning it to
@@ -3735,8 +3732,9 @@ set correctly. See the code of `split-window' for how this is done. */)
3735 3732
3736 make_parent_window (old, horflag); 3733 make_parent_window (old, horflag);
3737 p = XWINDOW (o->parent); 3734 p = XWINDOW (o->parent);
3738 /* Store value of `window-nest' in new parent's nest slot. */ 3735 /* Store value of `window-combination-limit' in new parent's
3739 p->nest = Vwindow_nest; 3736 combination_limit slot. */
3737 p->combination_limit = Vwindow_combination_limit;
3740 /* These get applied below. */ 3738 /* These get applied below. */
3741 p->new_total = horflag ? o->total_cols : o->total_lines; 3739 p->new_total = horflag ? o->total_cols : o->total_lines;
3742 p->new_normal = new_normal; 3740 p->new_normal = new_normal;
@@ -3923,7 +3921,7 @@ Signal an error when WINDOW is the only window on its frame. */)
3923 /* Put SIBLING into PARENT's place. */ 3921 /* Put SIBLING into PARENT's place. */
3924 replace_window (parent, sibling, 0); 3922 replace_window (parent, sibling, 0);
3925 /* Have SIBLING inherit the following three slot values from 3923 /* Have SIBLING inherit the following three slot values from
3926 PARENT (the nest slot is not inherited). */ 3924 PARENT (the combination_limit slot is not inherited). */
3927 s->normal_cols = p->normal_cols; 3925 s->normal_cols = p->normal_cols;
3928 s->normal_lines = p->normal_lines; 3926 s->normal_lines = p->normal_lines;
3929 /* Mark PARENT as deleted. */ 3927 /* Mark PARENT as deleted. */
@@ -5312,7 +5310,7 @@ struct saved_window
5312 Lisp_Object left_margin_cols, right_margin_cols; 5310 Lisp_Object left_margin_cols, right_margin_cols;
5313 Lisp_Object left_fringe_width, right_fringe_width, fringes_outside_margins; 5311 Lisp_Object left_fringe_width, right_fringe_width, fringes_outside_margins;
5314 Lisp_Object scroll_bar_width, vertical_scroll_bar_type, dedicated; 5312 Lisp_Object scroll_bar_width, vertical_scroll_bar_type, dedicated;
5315 Lisp_Object nest, window_parameters; 5313 Lisp_Object combination_limit, window_parameters;
5316}; 5314};
5317 5315
5318#define SAVED_WINDOW_N(swv,n) \ 5316#define SAVED_WINDOW_N(swv,n) \
@@ -5543,7 +5541,7 @@ the return value is nil. Otherwise the value is t. */)
5543 w->scroll_bar_width = p->scroll_bar_width; 5541 w->scroll_bar_width = p->scroll_bar_width;
5544 w->vertical_scroll_bar_type = p->vertical_scroll_bar_type; 5542 w->vertical_scroll_bar_type = p->vertical_scroll_bar_type;
5545 w->dedicated = p->dedicated; 5543 w->dedicated = p->dedicated;
5546 w->nest = p->nest; 5544 w->combination_limit = p->combination_limit;
5547 w->window_parameters = p->window_parameters; 5545 w->window_parameters = p->window_parameters;
5548 XSETFASTINT (w->last_modified, 0); 5546 XSETFASTINT (w->last_modified, 0);
5549 XSETFASTINT (w->last_overlay_modified, 0); 5547 XSETFASTINT (w->last_overlay_modified, 0);
@@ -5775,13 +5773,30 @@ get_phys_cursor_glyph (struct window *w)
5775{ 5773{
5776 struct glyph_row *row; 5774 struct glyph_row *row;
5777 struct glyph *glyph; 5775 struct glyph *glyph;
5776 int hpos = w->phys_cursor.hpos;
5777
5778 if (!(w->phys_cursor.vpos >= 0
5779 && w->phys_cursor.vpos < w->current_matrix->nrows))
5780 return NULL;
5781
5782 row = MATRIX_ROW (w->current_matrix, w->phys_cursor.vpos);
5783 if (!row->enabled_p)
5784 return NULL;
5778 5785
5779 if (w->phys_cursor.vpos >= 0 5786 if (w->hscroll)
5780 && w->phys_cursor.vpos < w->current_matrix->nrows 5787 {
5781 && (row = MATRIX_ROW (w->current_matrix, w->phys_cursor.vpos), 5788 /* When the window is hscrolled, cursor hpos can legitimately be
5782 row->enabled_p) 5789 out of bounds, but we draw the cursor at the corresponding
5783 && row->used[TEXT_AREA] > w->phys_cursor.hpos) 5790 window margin in that case. */
5784 glyph = row->glyphs[TEXT_AREA] + w->phys_cursor.hpos; 5791 if (!row->reversed_p && hpos < 0)
5792 hpos = 0;
5793 if (row->reversed_p && hpos >= row->used[TEXT_AREA])
5794 hpos = row->used[TEXT_AREA] - 1;
5795 }
5796
5797 if (row->used[TEXT_AREA] > hpos
5798 && 0 <= hpos)
5799 glyph = row->glyphs[TEXT_AREA] + hpos;
5785 else 5800 else
5786 glyph = NULL; 5801 glyph = NULL;
5787 5802
@@ -5821,7 +5836,7 @@ save_window_save (Lisp_Object window, struct Lisp_Vector *vector, int i)
5821 p->scroll_bar_width = w->scroll_bar_width; 5836 p->scroll_bar_width = w->scroll_bar_width;
5822 p->vertical_scroll_bar_type = w->vertical_scroll_bar_type; 5837 p->vertical_scroll_bar_type = w->vertical_scroll_bar_type;
5823 p->dedicated = w->dedicated; 5838 p->dedicated = w->dedicated;
5824 p->nest = w->nest; 5839 p->combination_limit = w->combination_limit;
5825 p->window_parameters = w->window_parameters; 5840 p->window_parameters = w->window_parameters;
5826 if (!NILP (w->buffer)) 5841 if (!NILP (w->buffer))
5827 { 5842 {
@@ -6284,7 +6299,8 @@ freeze_window_starts (struct frame *f, int freeze_p)
6284 and the like. 6299 and the like.
6285 6300
6286 This ignores a couple of things like the dedicatedness status of 6301 This ignores a couple of things like the dedicatedness status of
6287 window, nest and the like. This might have to be fixed. */ 6302 window, combination_limit and the like. This might have to be
6303 fixed. */
6288 6304
6289int 6305int
6290compare_window_configurations (Lisp_Object configuration1, Lisp_Object configuration2, int ignore_positions) 6306compare_window_configurations (Lisp_Object configuration1, Lisp_Object configuration2, int ignore_positions)
@@ -6488,32 +6504,39 @@ will redraw the entire frame; the special value `tty' causes the
6488frame to be redrawn only if it is a tty frame. */); 6504frame to be redrawn only if it is a tty frame. */);
6489 Vrecenter_redisplay = Qtty; 6505 Vrecenter_redisplay = Qtty;
6490 6506
6491 DEFVAR_LISP ("window-splits", Vwindow_splits, 6507 DEFVAR_LISP ("window-combination-resize", Vwindow_combination_resize,
6492 doc: /* Non-nil means splitting windows is handled specially. 6508 doc: /* Non-nil means resize window combinations proportionally.
6493If this variable is nil, splitting a window gets the entire screen space 6509If this variable is nil, splitting a window gets the entire screen space
6494for displaying the new window from the window to split. If this 6510for displaying the new window from the window to split. Deleting and
6495variable is non-nil, splitting a window may resize all windows in the 6511resizing a window preferably resizes one adjacent window only.
6496same combination. This also allows to split a window that is otherwise
6497too small or of fixed size.
6498 6512
6499This variable takes no effect if `window-nest' is non-nil. */); 6513If this variable is non-nil, splitting a window tries to get the space
6500 Vwindow_splits = Qnil; 6514proportionally from all windows in the same combination. This also
6515allows to split a window that is otherwise too small or of fixed size.
6516Resizing and deleting a window proportionally resize all windows in the
6517same combination.
6501 6518
6502 DEFVAR_LISP ("window-nest", Vwindow_nest, 6519This variable takes no effect if `window-combination-limit' is non-nil. */);
6520 Vwindow_combination_resize = Qnil;
6521
6522 DEFVAR_LISP ("window-combination-limit", Vwindow_combination_limit,
6503 doc: /* Non-nil means splitting a window makes a new parent window. 6523 doc: /* Non-nil means splitting a window makes a new parent window.
6504If this variable is nil, splitting a window will create a new parent 6524If this variable is nil, splitting a window will create a new parent
6505window only if the window has no parent window or the window shall 6525window only if the window has no parent window or the window shall
6506become a combination orthogonal to the one it it is part of. 6526become a combination orthogonal to the one it is part of.
6527
6528If this variable is t, splitting a window always creates a new parent
6529window. If all splits behave this way, each frame's window tree is a
6530binary tree and every window but the frame's root window has exactly one
6531sibling.
6507 6532
6508If this variable is non-nil, splitting a window always creates a new 6533Other values are reserved for future use.
6509parent window. If all splits behave this way, each frame's window tree
6510is a binary tree and every window but the frame's root window has
6511exactly one sibling.
6512 6534
6513The value of this variable is also assigned to the nest status of the 6535The value of this variable is also assigned to the combination-limit
6514new parent window. The nest status of a window can be retrieved via the 6536status of the new parent window. The combination-limit status of a
6515function `window-nest' and altered by the function `set-window-nest'. */); 6537window can be retrieved via the function `window-combination-limit' and
6516 Vwindow_nest = Qnil; 6538altered by the function `set-window-combination-limit'. */);
6539 Vwindow_combination_limit = Qnil;
6517 6540
6518 defsubr (&Sselected_window); 6541 defsubr (&Sselected_window);
6519 defsubr (&Sminibuffer_window); 6542 defsubr (&Sminibuffer_window);
@@ -6533,8 +6556,8 @@ function `window-nest' and altered by the function `set-window-nest'. */);
6533 defsubr (&Swindow_left_child); 6556 defsubr (&Swindow_left_child);
6534 defsubr (&Swindow_next_sibling); 6557 defsubr (&Swindow_next_sibling);
6535 defsubr (&Swindow_prev_sibling); 6558 defsubr (&Swindow_prev_sibling);
6536 defsubr (&Swindow_nest); 6559 defsubr (&Swindow_combination_limit);
6537 defsubr (&Sset_window_nest); 6560 defsubr (&Sset_window_combination_limit);
6538 defsubr (&Swindow_use_time); 6561 defsubr (&Swindow_use_time);
6539 defsubr (&Swindow_top_line); 6562 defsubr (&Swindow_top_line);
6540 defsubr (&Swindow_left_column); 6563 defsubr (&Swindow_left_column);
diff --git a/src/window.h b/src/window.h
index c11235bd67b..df29ca1368f 100644
--- a/src/window.h
+++ b/src/window.h
@@ -258,9 +258,8 @@ struct window
258 must run the redisplay-end-trigger-hook. */ 258 must run the redisplay-end-trigger-hook. */
259 Lisp_Object redisplay_end_trigger; 259 Lisp_Object redisplay_end_trigger;
260 260
261 /* Non-nil means this window's child windows are never 261 /* t means this window's child windows are not (re-)combined. */
262 (re-)combined. */ 262 Lisp_Object combination_limit;
263 Lisp_Object nest;
264 263
265 /* Alist of <buffer, window-start, window-point> triples listing 264 /* Alist of <buffer, window-start, window-point> triples listing
266 buffers previously shown in this window. */ 265 buffers previously shown in this window. */
@@ -269,7 +268,7 @@ struct window
269 /* List of buffers re-shown in this window. */ 268 /* List of buffers re-shown in this window. */
270 Lisp_Object next_buffers; 269 Lisp_Object next_buffers;
271 270
272 /* An alist with parameteres. */ 271 /* An alist with parameters. */
273 Lisp_Object window_parameters; 272 Lisp_Object window_parameters;
274 273
275 /* No Lisp data may follow below this point without changing 274 /* No Lisp data may follow below this point without changing
diff --git a/src/xdisp.c b/src/xdisp.c
index dfb794f38d3..8a8c1d08994 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -1445,7 +1445,7 @@ pos_visible_p (struct window *w, EMACS_INT charpos, int *x, int *y,
1445 position is CHARPOS. For the contingency that we 1445 position is CHARPOS. For the contingency that we
1446 didn't, and stopped at the first newline from the 1446 didn't, and stopped at the first newline from the
1447 display string, move back over the glyphs 1447 display string, move back over the glyphs
1448 prfoduced from the string, until we find the 1448 produced from the string, until we find the
1449 rightmost glyph not from the string. */ 1449 rightmost glyph not from the string. */
1450 if (IT_CHARPOS (it3) != charpos && EQ (it3.object, string)) 1450 if (IT_CHARPOS (it3) != charpos && EQ (it3.object, string))
1451 { 1451 {
@@ -14109,7 +14109,7 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
14109 || (STRINGP (g1->object) 14109 || (STRINGP (g1->object)
14110 && (!NILP (Fget_char_property (make_number (g1->charpos), 14110 && (!NILP (Fget_char_property (make_number (g1->charpos),
14111 Qcursor, g1->object)) 14111 Qcursor, g1->object))
14112 /* pevious candidate is from the same display 14112 /* previous candidate is from the same display
14113 string as this one, and the display string 14113 string as this one, and the display string
14114 came from a text property */ 14114 came from a text property */
14115 || (EQ (g1->object, glyph->object) 14115 || (EQ (g1->object, glyph->object)
@@ -15031,7 +15031,7 @@ redisplay_window (Lisp_Object window, int just_this_one_p)
15031 int current_matrix_up_to_date_p = 0; 15031 int current_matrix_up_to_date_p = 0;
15032 int used_current_matrix_p = 0; 15032 int used_current_matrix_p = 0;
15033 /* This is less strict than current_matrix_up_to_date_p. 15033 /* This is less strict than current_matrix_up_to_date_p.
15034 It indictes that the buffer contents and narrowing are unchanged. */ 15034 It indicates that the buffer contents and narrowing are unchanged. */
15035 int buffer_unchanged_p = 0; 15035 int buffer_unchanged_p = 0;
15036 int temp_scroll_step = 0; 15036 int temp_scroll_step = 0;
15037 int count = SPECPDL_INDEX (); 15037 int count = SPECPDL_INDEX ();
@@ -17020,7 +17020,7 @@ try_window_id (struct window *w)
17020 last_unchanged_at_beg_row = find_last_unchanged_at_beg_row (w); 17020 last_unchanged_at_beg_row = find_last_unchanged_at_beg_row (w);
17021 if (last_unchanged_at_beg_row) 17021 if (last_unchanged_at_beg_row)
17022 { 17022 {
17023 /* Avoid starting to display in the moddle of a character, a TAB 17023 /* Avoid starting to display in the middle of a character, a TAB
17024 for instance. This is easier than to set up the iterator 17024 for instance. This is easier than to set up the iterator
17025 exactly, and it's not a frequent case, so the additional 17025 exactly, and it's not a frequent case, so the additional
17026 effort wouldn't really pay off. */ 17026 effort wouldn't really pay off. */
@@ -17949,6 +17949,23 @@ insert_left_trunc_glyphs (struct it *it)
17949 } 17949 }
17950} 17950}
17951 17951
17952/* Compute the hash code for ROW. */
17953unsigned
17954row_hash (struct glyph_row *row)
17955{
17956 int area, k;
17957 unsigned hashval = 0;
17958
17959 for (area = LEFT_MARGIN_AREA; area < LAST_AREA; ++area)
17960 for (k = 0; k < row->used[area]; ++k)
17961 hashval = ((((hashval << 4) + (hashval >> 24)) & 0x0fffffff)
17962 + row->glyphs[area][k].u.val
17963 + row->glyphs[area][k].face_id
17964 + row->glyphs[area][k].padding_p
17965 + (row->glyphs[area][k].type << 2));
17966
17967 return hashval;
17968}
17952 17969
17953/* Compute the pixel height and width of IT->glyph_row. 17970/* Compute the pixel height and width of IT->glyph_row.
17954 17971
@@ -18035,17 +18052,7 @@ compute_line_metrics (struct it *it)
18035 } 18052 }
18036 18053
18037 /* Compute a hash code for this row. */ 18054 /* Compute a hash code for this row. */
18038 { 18055 row->hash = row_hash (row);
18039 int area, i;
18040 row->hash = 0;
18041 for (area = LEFT_MARGIN_AREA; area < LAST_AREA; ++area)
18042 for (i = 0; i < row->used[area]; ++i)
18043 row->hash = ((((row->hash << 4) + (row->hash >> 24)) & 0x0fffffff)
18044 + row->glyphs[area][i].u.val
18045 + row->glyphs[area][i].face_id
18046 + row->glyphs[area][i].padding_p
18047 + (row->glyphs[area][i].type << 2));
18048 }
18049 18056
18050 it->max_ascent = it->max_descent = 0; 18057 it->max_ascent = it->max_descent = 0;
18051 it->max_phys_ascent = it->max_phys_descent = 0; 18058 it->max_phys_ascent = it->max_phys_descent = 0;
@@ -19382,9 +19389,18 @@ display_line (struct it *it)
19382 overlay_arrow_seen = 1; 19389 overlay_arrow_seen = 1;
19383 } 19390 }
19384 19391
19392 /* Highlight trailing whitespace. */
19393 if (!NILP (Vshow_trailing_whitespace))
19394 highlight_trailing_whitespace (it->f, it->glyph_row);
19395
19385 /* Compute pixel dimensions of this line. */ 19396 /* Compute pixel dimensions of this line. */
19386 compute_line_metrics (it); 19397 compute_line_metrics (it);
19387 19398
19399 /* Implementation note: No changes in the glyphs of ROW or in their
19400 faces can be done past this point, because compute_line_metrics
19401 computes ROW's hash value and stores it within the glyph_row
19402 structure. */
19403
19388 /* Record whether this row ends inside an ellipsis. */ 19404 /* Record whether this row ends inside an ellipsis. */
19389 row->ends_in_ellipsis_p 19405 row->ends_in_ellipsis_p
19390 = (it->method == GET_FROM_DISPLAY_VECTOR 19406 = (it->method == GET_FROM_DISPLAY_VECTOR
@@ -19419,10 +19435,6 @@ display_line (struct it *it)
19419 && cursor_row_p (row)) 19435 && cursor_row_p (row))
19420 set_cursor_from_row (it->w, row, it->w->desired_matrix, 0, 0, 0, 0); 19436 set_cursor_from_row (it->w, row, it->w->desired_matrix, 0, 0, 0, 0);
19421 19437
19422 /* Highlight trailing whitespace. */
19423 if (!NILP (Vshow_trailing_whitespace))
19424 highlight_trailing_whitespace (it->f, it->glyph_row);
19425
19426 /* Prepare for the next line. This line starts horizontally at (X 19438 /* Prepare for the next line. This line starts horizontally at (X
19427 HPOS) = (0 0). Vertical positions are incremented. As a 19439 HPOS) = (0 0). Vertical positions are incremented. As a
19428 convenience for the caller, IT->glyph_row is set to the next 19440 convenience for the caller, IT->glyph_row is set to the next
@@ -22049,7 +22061,7 @@ get_glyph_face_and_encoding (struct frame *f, struct glyph *glyph,
22049 22061
22050 22062
22051/* Get glyph code of character C in FONT in the two-byte form CHAR2B. 22063/* Get glyph code of character C in FONT in the two-byte form CHAR2B.
22052 Retunr 1 if FONT has a glyph for C, otherwise return 0. */ 22064 Return 1 if FONT has a glyph for C, otherwise return 0. */
22053 22065
22054static inline int 22066static inline int
22055get_char_glyph_code (int c, struct font *font, XChar2b *char2b) 22067get_char_glyph_code (int c, struct font *font, XChar2b *char2b)
@@ -23622,7 +23634,7 @@ produce_stretch_glyph (struct it *it)
23622 { 23634 {
23623 width = it->last_visible_x - it->current_x; 23635 width = it->last_visible_x - it->current_x;
23624#ifdef HAVE_WINDOW_SYSTEM 23636#ifdef HAVE_WINDOW_SYSTEM
23625 /* Subtact one more pixel from the stretch width, but only on 23637 /* Subtract one more pixel from the stretch width, but only on
23626 GUI frames, since on a TTY each glyph is one "pixel" wide. */ 23638 GUI frames, since on a TTY each glyph is one "pixel" wide. */
23627 width -= FRAME_WINDOW_P (it->f); 23639 width -= FRAME_WINDOW_P (it->f);
23628#endif 23640#endif
@@ -24659,9 +24671,17 @@ x_produce_glyphs (struct it *it)
24659void 24671void
24660x_write_glyphs (struct glyph *start, int len) 24672x_write_glyphs (struct glyph *start, int len)
24661{ 24673{
24662 int x, hpos; 24674 int x, hpos, chpos = updated_window->phys_cursor.hpos;
24663 24675
24664 xassert (updated_window && updated_row); 24676 xassert (updated_window && updated_row);
24677 /* When the window is hscrolled, cursor hpos can legitimately be out
24678 of bounds, but we draw the cursor at the corresponding window
24679 margin in that case. */
24680 if (!updated_row->reversed_p && chpos < 0)
24681 chpos = 0;
24682 if (updated_row->reversed_p && chpos >= updated_row->used[TEXT_AREA])
24683 chpos = updated_row->used[TEXT_AREA] - 1;
24684
24665 BLOCK_INPUT; 24685 BLOCK_INPUT;
24666 24686
24667 /* Write glyphs. */ 24687 /* Write glyphs. */
@@ -24676,8 +24696,8 @@ x_write_glyphs (struct glyph *start, int len)
24676 if (updated_area == TEXT_AREA 24696 if (updated_area == TEXT_AREA
24677 && updated_window->phys_cursor_on_p 24697 && updated_window->phys_cursor_on_p
24678 && updated_window->phys_cursor.vpos == output_cursor.vpos 24698 && updated_window->phys_cursor.vpos == output_cursor.vpos
24679 && updated_window->phys_cursor.hpos >= hpos 24699 && chpos >= hpos
24680 && updated_window->phys_cursor.hpos < hpos + len) 24700 && chpos < hpos + len)
24681 updated_window->phys_cursor_on_p = 0; 24701 updated_window->phys_cursor_on_p = 0;
24682 24702
24683 UNBLOCK_INPUT; 24703 UNBLOCK_INPUT;
@@ -25187,8 +25207,17 @@ draw_phys_cursor_glyph (struct window *w, struct glyph_row *row,
25187 { 25207 {
25188 int on_p = w->phys_cursor_on_p; 25208 int on_p = w->phys_cursor_on_p;
25189 int x1; 25209 int x1;
25190 x1 = draw_glyphs (w, w->phys_cursor.x, row, TEXT_AREA, 25210 int hpos = w->phys_cursor.hpos;
25191 w->phys_cursor.hpos, w->phys_cursor.hpos + 1, 25211
25212 /* When the window is hscrolled, cursor hpos can legitimately be
25213 out of bounds, but we draw the cursor at the corresponding
25214 window margin in that case. */
25215 if (!row->reversed_p && hpos < 0)
25216 hpos = 0;
25217 if (row->reversed_p && hpos >= row->used[TEXT_AREA])
25218 hpos = row->used[TEXT_AREA] - 1;
25219
25220 x1 = draw_glyphs (w, w->phys_cursor.x, row, TEXT_AREA, hpos, hpos + 1,
25192 hl, 0); 25221 hl, 0);
25193 w->phys_cursor_on_p = on_p; 25222 w->phys_cursor_on_p = on_p;
25194 25223
@@ -25276,6 +25305,14 @@ erase_phys_cursor (struct window *w)
25276 : (w->phys_cursor.hpos >= cursor_row->used[TEXT_AREA]))) 25305 : (w->phys_cursor.hpos >= cursor_row->used[TEXT_AREA])))
25277 goto mark_cursor_off; 25306 goto mark_cursor_off;
25278 25307
25308 /* When the window is hscrolled, cursor hpos can legitimately be out
25309 of bounds, but we draw the cursor at the corresponding window
25310 margin in that case. */
25311 if (!cursor_row->reversed_p && hpos < 0)
25312 hpos = 0;
25313 if (cursor_row->reversed_p && hpos >= cursor_row->used[TEXT_AREA])
25314 hpos = cursor_row->used[TEXT_AREA] - 1;
25315
25279 /* If the cursor is in the mouse face area, redisplay that when 25316 /* If the cursor is in the mouse face area, redisplay that when
25280 we clear the cursor. */ 25317 we clear the cursor. */
25281 if (! NILP (hlinfo->mouse_face_window) 25318 if (! NILP (hlinfo->mouse_face_window)
@@ -25419,8 +25456,26 @@ update_window_cursor (struct window *w, int on)
25419 of being deleted. */ 25456 of being deleted. */
25420 if (w->current_matrix) 25457 if (w->current_matrix)
25421 { 25458 {
25459 int hpos = w->phys_cursor.hpos;
25460 int vpos = w->phys_cursor.vpos;
25461 struct glyph_row *row;
25462
25463 if (vpos >= w->current_matrix->nrows
25464 || hpos >= w->current_matrix->matrix_w)
25465 return;
25466
25467 row = MATRIX_ROW (w->current_matrix, vpos);
25468
25469 /* When the window is hscrolled, cursor hpos can legitimately be
25470 out of bounds, but we draw the cursor at the corresponding
25471 window margin in that case. */
25472 if (!row->reversed_p && hpos < 0)
25473 hpos = 0;
25474 if (row->reversed_p && hpos >= row->used[TEXT_AREA])
25475 hpos = row->used[TEXT_AREA] - 1;
25476
25422 BLOCK_INPUT; 25477 BLOCK_INPUT;
25423 display_and_set_cursor (w, on, w->phys_cursor.hpos, w->phys_cursor.vpos, 25478 display_and_set_cursor (w, on, hpos, vpos,
25424 w->phys_cursor.x, w->phys_cursor.y); 25479 w->phys_cursor.x, w->phys_cursor.y);
25425 UNBLOCK_INPUT; 25480 UNBLOCK_INPUT;
25426 } 25481 }
@@ -25590,9 +25645,18 @@ show_mouse_face (Mouse_HLInfo *hlinfo, enum draw_glyphs_face draw)
25590 if (FRAME_WINDOW_P (f) 25645 if (FRAME_WINDOW_P (f)
25591 && phys_cursor_on_p && !w->phys_cursor_on_p) 25646 && phys_cursor_on_p && !w->phys_cursor_on_p)
25592 { 25647 {
25648 int hpos = w->phys_cursor.hpos;
25649
25650 /* When the window is hscrolled, cursor hpos can legitimately be
25651 out of bounds, but we draw the cursor at the corresponding
25652 window margin in that case. */
25653 if (!row->reversed_p && hpos < 0)
25654 hpos = 0;
25655 if (row->reversed_p && hpos >= row->used[TEXT_AREA])
25656 hpos = row->used[TEXT_AREA] - 1;
25657
25593 BLOCK_INPUT; 25658 BLOCK_INPUT;
25594 display_and_set_cursor (w, 1, 25659 display_and_set_cursor (w, 1, hpos, w->phys_cursor.vpos,
25595 w->phys_cursor.hpos, w->phys_cursor.vpos,
25596 w->phys_cursor.x, w->phys_cursor.y); 25660 w->phys_cursor.x, w->phys_cursor.y);
25597 UNBLOCK_INPUT; 25661 UNBLOCK_INPUT;
25598 } 25662 }
@@ -25691,7 +25755,19 @@ coords_in_mouse_face_p (struct window *w, int hpos, int vpos)
25691int 25755int
25692cursor_in_mouse_face_p (struct window *w) 25756cursor_in_mouse_face_p (struct window *w)
25693{ 25757{
25694 return coords_in_mouse_face_p (w, w->phys_cursor.hpos, w->phys_cursor.vpos); 25758 int hpos = w->phys_cursor.hpos;
25759 int vpos = w->phys_cursor.vpos;
25760 struct glyph_row *row = MATRIX_ROW (w->current_matrix, vpos);
25761
25762 /* When the window is hscrolled, cursor hpos can legitimately be out
25763 of bounds, but we draw the cursor at the corresponding window
25764 margin in that case. */
25765 if (!row->reversed_p && hpos < 0)
25766 hpos = 0;
25767 if (row->reversed_p && hpos >= row->used[TEXT_AREA])
25768 hpos = row->used[TEXT_AREA] - 1;
25769
25770 return coords_in_mouse_face_p (w, hpos, vpos);
25695} 25771}
25696 25772
25697 25773
@@ -28442,7 +28518,7 @@ To add a prefix to continuation lines, use `wrap-prefix'. */);
28442 DEFVAR_INT ("overline-margin", overline_margin, 28518 DEFVAR_INT ("overline-margin", overline_margin,
28443 doc: /* *Space between overline and text, in pixels. 28519 doc: /* *Space between overline and text, in pixels.
28444The default value is 2: the height of the overline (1 pixel) plus 1 pixel 28520The default value is 2: the height of the overline (1 pixel) plus 1 pixel
28445margin to the caracter height. */); 28521margin to the character height. */);
28446 overline_margin = 2; 28522 overline_margin = 2;
28447 28523
28448 DEFVAR_INT ("underline-minimum-offset", 28524 DEFVAR_INT ("underline-minimum-offset",
diff --git a/src/xfaces.c b/src/xfaces.c
index 0ed6fa1d8e2..849ad6bbdf4 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -4189,12 +4189,12 @@ prepare_face_for_display (struct frame *f, struct face *face)
4189static int 4189static int
4190color_distance (XColor *x, XColor *y) 4190color_distance (XColor *x, XColor *y)
4191{ 4191{
4192 /* This formula is from a paper title `Colour metric' by Thiadmer Riemersma. 4192 /* This formula is from a paper titled `Colour metric' by Thiadmer Riemersma.
4193 Quoting from that paper: 4193 Quoting from that paper:
4194 4194
4195 This formula has results that are very close to L*u*v* (with the 4195 This formula has results that are very close to L*u*v* (with the
4196 modified lightness curve) and, more importantly, it is a more even 4196 modified lightness curve) and, more importantly, it is a more even
4197 algorithm: it does not have a range of colours where it suddenly 4197 algorithm: it does not have a range of colors where it suddenly
4198 gives far from optimal results. 4198 gives far from optimal results.
4199 4199
4200 See <http://www.compuphase.com/cmetric.htm> for more info. */ 4200 See <http://www.compuphase.com/cmetric.htm> for more info. */
diff --git a/src/xfns.c b/src/xfns.c
index 2359a1a82c2..88e8ac595c5 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -2962,7 +2962,7 @@ x_default_font_parameter (struct frame *f, Lisp_Object parms)
2962 2962
2963 if (NILP (font_param)) 2963 if (NILP (font_param))
2964 { 2964 {
2965 /* System font should take precedendce over X resources. We suggest this 2965 /* System font should take precedence over X resources. We suggest this
2966 regardless of font-use-system-font because .emacs may not have been 2966 regardless of font-use-system-font because .emacs may not have been
2967 read yet. */ 2967 read yet. */
2968 const char *system_font = xsettings_get_system_font (); 2968 const char *system_font = xsettings_get_system_font ();
@@ -3691,7 +3691,7 @@ If omitted or nil, that stands for the selected frame's display. */)
3691 3691
3692DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0, 3692DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0,
3693 doc: /* Return the "vendor ID" string of the X server of display TERMINAL. 3693 doc: /* Return the "vendor ID" string of the X server of display TERMINAL.
3694\(Labelling every distributor as a "vendor" embodies the false assumption 3694\(Labeling every distributor as a "vendor" embodies the false assumption
3695that operating systems cannot be developed and distributed noncommercially.) 3695that operating systems cannot be developed and distributed noncommercially.)
3696The optional argument TERMINAL specifies which display to ask about. 3696The optional argument TERMINAL specifies which display to ask about.
3697TERMINAL should be a terminal object, a frame or a display name (a string). 3697TERMINAL should be a terminal object, a frame or a display name (a string).
diff --git a/src/xfont.c b/src/xfont.c
index 2c3ca911623..60e5aa6e98e 100644
--- a/src/xfont.c
+++ b/src/xfont.c
@@ -272,8 +272,8 @@ xfont_chars_supported (Lisp_Object chars, XFontStruct *xfont,
272 return 0; 272 return 0;
273} 273}
274 274
275/* A hash table recoding which font supports which scritps. Each key 275/* A hash table recoding which font supports which scripts. Each key
276 is a vector of characteristic font propertis FOUNDRY to WIDTH and 276 is a vector of characteristic font properties FOUNDRY to WIDTH and
277 ADDSTYLE, and each value is a list of script symbols. 277 ADDSTYLE, and each value is a list of script symbols.
278 278
279 We assume that fonts that have the same value in the above 279 We assume that fonts that have the same value in the above
@@ -281,7 +281,7 @@ xfont_chars_supported (Lisp_Object chars, XFontStruct *xfont,
281 281
282static Lisp_Object xfont_scripts_cache; 282static Lisp_Object xfont_scripts_cache;
283 283
284/* Re-usable vector to store characteristic font properites. */ 284/* Re-usable vector to store characteristic font properties. */
285static Lisp_Object xfont_scratch_props; 285static Lisp_Object xfont_scratch_props;
286 286
287/* Return a list of scripts supported by the font of FONTNAME whose 287/* Return a list of scripts supported by the font of FONTNAME whose
diff --git a/src/xmenu.c b/src/xmenu.c
index 0dd652b566d..4b7bbfd73dc 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -1304,7 +1304,7 @@ free_frame_menubar (FRAME_PTR f)
1304#ifdef USE_MOTIF 1304#ifdef USE_MOTIF
1305 /* Removing the menu bar magically changes the shell widget's x 1305 /* Removing the menu bar magically changes the shell widget's x
1306 and y position of (0, 0) which, when the menu bar is turned 1306 and y position of (0, 0) which, when the menu bar is turned
1307 on again, leads to pull-down menuss appearing in strange 1307 on again, leads to pull-down menus appearing in strange
1308 positions near the upper-left corner of the display. This 1308 positions near the upper-left corner of the display. This
1309 happens only with some window managers like twm and ctwm, 1309 happens only with some window managers like twm and ctwm,
1310 but not with other like Motif's mwm or kwm, because the 1310 but not with other like Motif's mwm or kwm, because the
diff --git a/src/xselect.c b/src/xselect.c
index adee1872dba..4bfab4143cc 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -2355,7 +2355,7 @@ x_fill_property_data (Display *dpy, Lisp_Object data, void *ret, int format)
2355 F is the frame to be used to look up X atoms if the TYPE is XA_ATOM. 2355 F is the frame to be used to look up X atoms if the TYPE is XA_ATOM.
2356 DATA is a C array of values to be converted. 2356 DATA is a C array of values to be converted.
2357 TYPE is the type of the data. Only XA_ATOM is special, it converts 2357 TYPE is the type of the data. Only XA_ATOM is special, it converts
2358 each number in DATA to its corresponfing X atom as a symbol. 2358 each number in DATA to its corresponding X atom as a symbol.
2359 FORMAT is 8, 16 or 32 and gives the size in bits for each C value to 2359 FORMAT is 8, 16 or 32 and gives the size in bits for each C value to
2360 be stored in RET. 2360 be stored in RET.
2361 SIZE is the number of elements in DATA. 2361 SIZE is the number of elements in DATA.
diff --git a/src/xsettings.c b/src/xsettings.c
index d57f3b5be81..a8604ac5897 100644
--- a/src/xsettings.c
+++ b/src/xsettings.c
@@ -121,7 +121,7 @@ store_font_name_changed (const char *newfont)
121} 121}
122#endif /* HAVE_XFT */ 122#endif /* HAVE_XFT */
123 123
124/* Map TOOL_BAR_STYLE from a string to its correspinding Lisp value. 124/* Map TOOL_BAR_STYLE from a string to its corresponding Lisp value.
125 Return Qnil if TOOL_BAR_STYLE is not known. */ 125 Return Qnil if TOOL_BAR_STYLE is not known. */
126 126
127static Lisp_Object 127static Lisp_Object
diff --git a/src/xsmfns.c b/src/xsmfns.c
index 55daec73307..7deac7b14e4 100644
--- a/src/xsmfns.c
+++ b/src/xsmfns.c
@@ -462,7 +462,7 @@ x_session_initialize (struct x_display_info *dpyinfo)
462 Vx_session_id = build_string (client_id); 462 Vx_session_id = build_string (client_id);
463 463
464#ifdef USE_GTK 464#ifdef USE_GTK
465 /* GTK creats a leader window by itself, but we need to tell 465 /* GTK creates a leader window by itself, but we need to tell
466 it about our client_id. */ 466 it about our client_id. */
467 gdk_x11_set_sm_client_id (client_id); 467 gdk_x11_set_sm_client_id (client_id);
468#else 468#else
diff --git a/src/xterm.c b/src/xterm.c
index fb77faa75fe..0e529714eb6 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -4184,7 +4184,7 @@ static Boolean xaw3d_arrow_scroll;
4184 4184
4185/* Whether the drag scrolling maintains the mouse at the top of the 4185/* Whether the drag scrolling maintains the mouse at the top of the
4186 thumb. If not, resizing the thumb needs to be done more carefully 4186 thumb. If not, resizing the thumb needs to be done more carefully
4187 to avoid jerkyness. */ 4187 to avoid jerkiness. */
4188 4188
4189static Boolean xaw3d_pick_top; 4189static Boolean xaw3d_pick_top;
4190 4190
@@ -6120,7 +6120,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, XEvent *eventptr,
6120 { 6120 {
6121 /* Gnome shell does not iconify us when C-z is pressed. It hides 6121 /* Gnome shell does not iconify us when C-z is pressed. It hides
6122 the frame. So if our state says we aren't hidden anymore, 6122 the frame. So if our state says we aren't hidden anymore,
6123 treat is as deiconfied. */ 6123 treat it as deiconified. */
6124 if (! f->async_iconified) 6124 if (! f->async_iconified)
6125 SET_FRAME_GARBAGED (f); 6125 SET_FRAME_GARBAGED (f);
6126 f->async_visible = 1; 6126 f->async_visible = 1;
diff --git a/src/xterm.h b/src/xterm.h
index e10a6bc34f0..1d2ce9a2d3c 100644
--- a/src/xterm.h
+++ b/src/xterm.h
@@ -330,7 +330,7 @@ struct x_display_info
330 ptrdiff_t x_dnd_atoms_length; 330 ptrdiff_t x_dnd_atoms_length;
331 331
332 /* Extended window manager hints, Atoms supported by the window manager and 332 /* Extended window manager hints, Atoms supported by the window manager and
333 atoms for settig the window type. */ 333 atoms for setting the window type. */
334 Atom Xatom_net_supported, Xatom_net_supporting_wm_check; 334 Atom Xatom_net_supported, Xatom_net_supporting_wm_check;
335 Atom *net_supported_atoms; 335 Atom *net_supported_atoms;
336 int nr_net_supported_atoms; 336 int nr_net_supported_atoms;