aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2012-10-17 23:07:59 +0200
committerEli Zaretskii2012-10-17 23:07:59 +0200
commit8cd879af4a393715c1c7f44a174248e85f7810ab (patch)
treef0779e2a9c855ccba82628f6bcda43ef0d800ff3 /src
parent37a4dabe8aaa51e15cf63e43710ee4b8f35d434b (diff)
parenta68089e4a4dd41c9b838d82d1d96d971b01398c8 (diff)
downloademacs-8cd879af4a393715c1c7f44a174248e85f7810ab.tar.gz
emacs-8cd879af4a393715c1c7f44a174248e85f7810ab.zip
Merge from trunk.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog199
-rw-r--r--src/alloc.c2
-rw-r--r--src/buffer.c38
-rw-r--r--src/buffer.h16
-rw-r--r--src/cygw32.c4
-rw-r--r--src/dbusbind.c8
-rw-r--r--src/dispnew.c4
-rw-r--r--src/editfns.c9
-rw-r--r--src/fileio.c1
-rw-r--r--src/image.c6
-rw-r--r--src/indent.c6
-rw-r--r--src/lisp.h1
-rw-r--r--src/makefile.w32-in7
-rw-r--r--src/nsterm.m5
-rw-r--r--src/print.c2
-rw-r--r--src/process.c5
-rw-r--r--src/term.c1
-rw-r--r--src/unexw32.c2
-rw-r--r--src/vm-limit.c2
-rw-r--r--src/w32.c12
-rw-r--r--src/w32.h22
-rw-r--r--src/w32fns.c4
-rw-r--r--src/w32proc.c3
-rw-r--r--src/w32term.h4
-rw-r--r--src/window.c8
-rw-r--r--src/xdisp.c2
-rw-r--r--src/xrdb.c12
27 files changed, 274 insertions, 111 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index b573f8c1476..007a73f7988 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,103 @@
12012-10-17 Eli Zaretskii <eliz@gnu.org>
2
3 * makefile.w32-in ($(BLD)/w32.$(O)):
4 ($(BLD)/vm-limit.$(O)):
5 ($(BLD)/term.$(O)):
6 ($(BLD)/unexw32.$(O)):
7 ($(BLD)/fileio.$(O)):
8 ($(BLD)/dispnew.$(O)): Update dependencies.
9
10 * w32term.h (w32_initialize_display_info, initialize_w32_display):
11 Add prototypes.
12
13 * w32proc.c: Include ctype.h.
14
15 * w32.h (init_environment, check_windows_init_file)
16 (syms_of_ntproc, syms_of_ntterm, dostounix_filename)
17 (unixtodos_filename, init_winsock, srandom, random, sys_pipe)
18 (set_process_dir, sys_spawnve, register_child, sys_sleep, getwd)
19 (sys_link): Add prototypes.
20
21 * w32.c: Include w32select.h.
22 (sys_access, e_malloc, sys_select): Add prototypes.
23 (emacs_gnutls_pull): 'timeout' is now EMACS_TIME, not struct timeval.
24
25 * vm-limit.c [WINDOWSNT]: Include w32heap.h.
26
27 * unexw32.c: Include lisp.h and w32.h.
28
29 * term.c [WINDOWSNT]: Include w32term.h.
30
31 * process.c [WINDOWSNT]: Add prototype of sys_select.
32
33 * fileio.c [WINDOWSNT]: Include w32.h.
34
35 * dispnew.c [WINDOWSNT]: Include w32.h.
36
37 * cygw32.c (Fcygwin_convert_path_to_windows)
38 (Fcygwin_convert_path_from_windows): Use EQ to compare 2
39 Lisp_Object values. (Bug#12661)
40
41 * w32fns.c (w32_msg_pump): Use XIL instead of casting an integer
42 to Lisp_Object. (Bug#12661)
43
442012-10-17 Kenichi Handa <handa@gnu.org>
45
46 * xdisp.c (reseat_1): Make the information stored in it->cmp_it
47 invalidate.
48
492012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
50
51 * buffer.c (Fkill_buffer): When unchaining the marker,
52 reset its buffer pointer to NULL (Bug#12652).
53
542012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
55
56 Do not verify indirection counters of killed buffers (Bug#12579).
57 * buffer.h (BUFFER_CHECK_INDIRECTION): New macro.
58 * buffer.c (compact_buffer, set_buffer_internal_1): Use it.
59
602012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
61
62 * alloc.c (Fmake_byte_code): Fix typo in comment.
63 * print.c (print_interval): Define as static to match prototype.
64 * indent.c (disptab_matches_widthtab, recompute_width_table):
65 Convert to eassert.
66
672012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
68
69 * editfns.c (get_system_name): Remove.
70 * lisp.h (get_system_name): Remove prototype.
71 * xrdb.c (getenv, getpwuid, getpwnam): Remove prototypes.
72 (get_environ_db): Use Vsystem_name. Avoid call to strlen.
73
742012-10-15 Daniel Colascione <dancol@dancol.org>
75
76 * dbusbind.c: Add comment explaining reason for previous change.
77
782012-10-15 Martin Rudalics <rudalics@gmx.at>
79
80 * window.c (Fwindow_end): Rewrite check whether cached position
81 can be used (Bug#12600).
82 (resize_frame_windows, grow_mini_window, shrink_mini_window):
83 Set windows_or_buffers_changed.
84
852012-10-15 Daniel Colascione <dancol@dancol.org>
86
87 * dbusbind.c: Fix cygw32 build break when compiling with dbus
88 enabled by undefining the symbol "interface", which the platform
89 headers define to something incompatible.
90
912012-10-14 Daniel Colascione <dancol@dancol.org>
92
93 * image.c (init_tiff_functions, init_imagemagick_functions)
94 (init_svg_functions): Fix cygw32 build break by using these
95 functions only when WINDOWSNT _and_ HAVE_NTGUI.
96
972012-10-14 Jan Djärv <jan.h.d@swipnet.se>
98
99 * nsterm.m (ns_select): Count fd:s in writefs also (Bug#12422).
100
12012-10-13 Jan Djärv <jan.h.d@swipnet.se> 1012012-10-13 Jan Djärv <jan.h.d@swipnet.se>
2 102
3 * gtkutil.c (xg_set_widget_bg): Divide by 65535 (Bug#12612). 103 * gtkutil.c (xg_set_widget_bg): Divide by 65535 (Bug#12612).
@@ -53,8 +153,7 @@
53 a file exists. This avoids expensive system calls on MS-Windows. 153 a file exists. This avoids expensive system calls on MS-Windows.
54 (Bug#12587) 154 (Bug#12587)
55 155
56 * w32.c (init_environment): Call 'check_existing' instead of 156 * w32.c (init_environment): Call 'check_existing' instead of 'stat'.
57 'stat'.
58 157
59 * lread.c (openp) [WINDOWSNT]: Call 'access' instead of 'stat' to 158 * lread.c (openp) [WINDOWSNT]: Call 'access' instead of 'stat' to
60 determine whether a file exists and is not a directory. 159 determine whether a file exists and is not a directory.
@@ -194,7 +293,7 @@
194 * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles 293 * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles
195 caching. 294 caching.
196 (nsfont_open): Remove setting of Vfonts_in_cache. 295 (nsfont_open): Remove setting of Vfonts_in_cache.
197 (syms_of_nsfont): Remove initialization of Vfonts_in_cache 296 (syms_of_nsfont): Remove initialization of Vfonts_in_cache.
198 297
1992012-10-09 Eli Zaretskii <eliz@gnu.org> 2982012-10-09 Eli Zaretskii <eliz@gnu.org>
200 299
@@ -261,7 +360,7 @@
261 * w32select.h (HAVE_W32SELECT): Remove. 360 * w32select.h (HAVE_W32SELECT): Remove.
262 361
263 * w32select.c, w32proc.c, w32menu.c, w32console.c, w32.c: Include 362 * w32select.c, w32proc.c, w32menu.c, w32console.c, w32.c: Include
264 w32common.h instead of w32heap.h 363 w32common.h instead of w32heap.h.
265 364
266 * w32heap.h (ROUND_UP, ROUND_DOWN, get_page_size) 365 * w32heap.h (ROUND_UP, ROUND_DOWN, get_page_size)
267 (get_allocation_unit, get_processor_type, get_w32_major_version) 366 (get_allocation_unit, get_processor_type, get_w32_major_version)
@@ -272,8 +371,8 @@
272 371
273 * w32heap.c: Include w32common.h. 372 * w32heap.c: Include w32common.h.
274 (sysinfo_cache, syspage_mask, osinfo_cache, w32_major_version) 373 (sysinfo_cache, syspage_mask, osinfo_cache, w32_major_version)
275 (w32_minor_version, w32_build_number, w32_subtype): Remove 374 (w32_minor_version, w32_build_number, w32_subtype):
276 duplicate definitions. 375 Remove duplicate definitions.
277 376
278 * w32fns.c: Include w32common.h; include w32heap.h only in 377 * w32fns.c: Include w32common.h; include w32heap.h only in
279 WINDOWSNT. 378 WINDOWSNT.
@@ -384,7 +483,7 @@
384 Cygwin builds. Remove w32select declarations. 483 Cygwin builds. Remove w32select declarations.
385 484
386 * w32console.c (w32_sys_ring_bell, Fset_message_beep): Move to 485 * w32console.c (w32_sys_ring_bell, Fset_message_beep): Move to
387 w32fns.c. w32console.c is WINDOWSNT-only. 486 w32fns.c. w32console.c is WINDOWSNT-only.
388 487
389 * w32fns.c: Include cygw32.h or w32.h depending on CYGWIN; more 488 * w32fns.c: Include cygw32.h or w32.h depending on CYGWIN; more
390 NTGUI_UNICODE tweaks. (See above.) Change _snprintf to the more 489 NTGUI_UNICODE tweaks. (See above.) Change _snprintf to the more
@@ -460,6 +559,39 @@
460 but it still has blocs in it, don't return it to the system, 559 but it still has blocs in it, don't return it to the system,
461 instead of aborting. (Bug#12402) 560 instead of aborting. (Bug#12402)
462 561
5622012-10-07 Jan Djärv <jan.h.d@swipnet.se>
563
564 * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506).
565
566 * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of
567 MAC_OS_X_VERSION_10_6.
568 (syms_of_nsterm): Remove comment about Panther and above for
569 ns-antialias-text.
570 * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove.
571 (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4.
572 (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3.
573
574 * nsselect.m (ns_string_from_pasteboard): Remove check for >=
575 MAC_OS_X_VERSION_10_4.
576
577 * nsmenu.m (fillWithWidgetValue:): Remove code for <
578 MAC_OS_X_VERSION_10_2.
579
580 * nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger.
581
582 * nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4.
583 (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4.
584
585 * nsterm.m (ns_in_resize): Remove (Bug#12479).
586 (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove.
587 (ns_clear_frame, sendEvent, windowDidResize, drawRect:):
588 Remove ns_in_resize check.
589 (ns_clear_frame_area): Remove resize handle code.
590
591 * nsfns.m (ns_in_resize): Remove.
592 (x_set_icon_name, ns_set_name, ns_set_name_as_filename): Remove
593 ns_in_resize check.
594
4632012-10-07 Eli Zaretskii <eliz@gnu.org> 5952012-10-07 Eli Zaretskii <eliz@gnu.org>
464 596
465 * w32term.h (WM_EMACS_FILENOTIFY): New custom message. 597 * w32term.h (WM_EMACS_FILENOTIFY): New custom message.
@@ -494,39 +626,6 @@
494 626
495 * alloc.c (NSTATICS): Enlarge to 0x660. 627 * alloc.c (NSTATICS): Enlarge to 0x660.
496 628
4972012-10-07 Jan Djärv <jan.h.d@swipnet.se>
498
499 * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506).
500
501 * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of
502 MAC_OS_X_VERSION_10_6.
503 (syms_of_nsterm): Remove comment about Panther and above for
504 ns-antialias-text.
505 * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove.
506 (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4.
507 (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3.
508
509 * nsselect.m (ns_string_from_pasteboard): Remove check for >=
510 MAC_OS_X_VERSION_10_4.
511
512 * nsmenu.m (fillWithWidgetValue:): Remove code for <
513 MAC_OS_X_VERSION_10_2.
514
515 * nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger.
516
517 * nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4.
518 (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4.
519
520 * nsterm.m (ns_in_resize): Remove (Bug#12479).
521 (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove.
522 (ns_clear_frame, sendEvent, windowDidResize, drawRect:): Remove
523 ns_in_resize check.
524 (ns_clear_frame_area): Remove resize handle code.
525
526 * nsfns.m (ns_in_resize): Remove.
527 (x_set_icon_name, ns_set_name, ns_set_name_as_filename): Remove
528 ns_in_resize check.
529
5302012-10-07 Paul Eggert <eggert@cs.ucla.edu> 6292012-10-07 Paul Eggert <eggert@cs.ucla.edu>
531 630
532 Improve sys_siglist detection. 631 Improve sys_siglist detection.
@@ -553,7 +652,7 @@
553 (initFrameFromEmacs:): tbar_height renamed tibar_height. 652 (initFrameFromEmacs:): tbar_height renamed tibar_height.
554 (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix 653 (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix
555 error in drawing background. 654 error in drawing background.
556 (toggleFullScreen:): Remove comment. Rearrange calls. 655 (toggleFullScreen:): Remove comment. Rearrange calls.
557 Set toolbar values to zero, save old height in tobar_height. 656 Set toolbar values to zero, save old height in tobar_height.
558 Restore tool bar height when leaving fullscreen. 657 Restore tool bar height when leaving fullscreen.
559 (canBecomeMainWindow): New function. 658 (canBecomeMainWindow): New function.
@@ -567,8 +666,8 @@
567 * w32proc.c (stop_timer_thread): Fix declaration of 'err'. 666 * w32proc.c (stop_timer_thread): Fix declaration of 'err'.
568 667
569 * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so 668 * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so
570 that time stamps of directories could also be changed. Don't 669 that time stamps of directories could also be changed.
571 request the too broad GENERIC_WRITE, only the more restrictive 670 Don't request the too broad GENERIC_WRITE, only the more restrictive
572 FILE_WRITE_ATTRIBUTES access rights. 671 FILE_WRITE_ATTRIBUTES access rights.
573 672
574 * fileio.c (Fset_file_times): Special-case ignoring errors for 673 * fileio.c (Fset_file_times): Special-case ignoring errors for
@@ -976,7 +1075,7 @@
976 Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and 1075 Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and
977 tbar_height. 1076 tbar_height.
978 (windowWillUseStandardFrame:defaultFrame:): Update frame parameter 1077 (windowWillUseStandardFrame:defaultFrame:): Update frame parameter
979 fullscreen. Set maximized_width/height. Act on next_maximized. 1078 fullscreen. Set maximized_width/height. Act on next_maximized.
980 1079
981 * nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New. 1080 * nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New.
982 (EmacsView): Add variables for fullscreen. 1081 (EmacsView): Add variables for fullscreen.
@@ -1632,7 +1731,7 @@
16322012-09-19 Paul Eggert <eggert@cs.ucla.edu> 17312012-09-19 Paul Eggert <eggert@cs.ucla.edu>
1633 1732
1634 * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0. 1733 * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0.
1635 Ignore 'expected'. See Eli Zaretskii in 1734 Ignore 'expected'. See Eli Zaretskii in
1636 <http://bugs.gnu.org/12471#8> (last line). 1735 <http://bugs.gnu.org/12471#8> (last line).
1637 1736
1638 * frame.c (read_integer): Remove. All uses replaced by strtol/strtoul. 1737 * frame.c (read_integer): Remove. All uses replaced by strtol/strtoul.
@@ -1699,7 +1798,7 @@
1699 (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc) 1798 (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
1700 (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc): 1799 (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
1701 [!SYSTEM_MALLOC && !SYNC_INPUT]: 1800 [!SYSTEM_MALLOC && !SYNC_INPUT]:
1702 Remove. All uses removed. 1801 Remove. All uses removed.
1703 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different 1802 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
1704 implementation, one that depends on whether the new macro 1803 implementation, one that depends on whether the new macro
1705 XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT 1804 XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
@@ -1989,7 +2088,7 @@
1989 * alloc.c (discard_killed_buffers): New function. 2088 * alloc.c (discard_killed_buffers): New function.
1990 (mark_object): Use it for deleted windows and frames. 2089 (mark_object): Use it for deleted windows and frames.
1991 (mark_object): If symbol's value is set up for a killed buffer 2090 (mark_object): If symbol's value is set up for a killed buffer
1992 or deleted frame, restore it's global binding. 2091 or deleted frame, restore its global binding.
1993 * data.c (swap_in_global_binding): Add GC notice. 2092 * data.c (swap_in_global_binding): Add GC notice.
1994 (swap_in_symval_forwarding): Use convenient set_blv_where. 2093 (swap_in_symval_forwarding): Use convenient set_blv_where.
1995 * window.c (wset_next_buffers, wset_prev_buffers): Move ... 2094 * window.c (wset_next_buffers, wset_prev_buffers): Move ...
@@ -4296,7 +4395,7 @@
4296 4395
4297 * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar) 4396 * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar)
4298 (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:) 4397 (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:)
4299 (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114) 4398 (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114)
4300 * nsfns.m (ns_set_name_as_filename): Likewise. 4399 * nsfns.m (ns_set_name_as_filename): Likewise.
4301 * nsmenu.m (ns_update_menubar): Likewise. 4400 * nsmenu.m (ns_update_menubar): Likewise.
4302 * nsselect.m (symbol_to_nsstring): Adjust to use SVAR. 4401 * nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
@@ -6392,7 +6491,7 @@
6392 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE 6491 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
6393 values which aren't power of 2. 6492 values which aren't power of 2.
6394 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro. 6493 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro.
6395 Verify it's value and the value of VECTOR_BLOCK_SIZE. Adjust users 6494 Verify its value and the value of VECTOR_BLOCK_SIZE. Adjust users
6396 accordingly. 6495 accordingly.
6397 6496
63982012-07-03 Stefan Monnier <monnier@iro.umontreal.ca> 64972012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
@@ -7561,7 +7660,7 @@
7561 bitfields where appropriate, remove unused fields. 7660 bitfields where appropriate, remove unused fields.
7562 * window.h (struct window): Remove unused 'last_mark_x' and 7661 * window.h (struct window): Remove unused 'last_mark_x' and
7563 'last_mark_y' fields. Rename 'mini_p' field to 'mini', 7662 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
7564 change it's type from Lisp_Object to bitfield. 7663 change its type from Lisp_Object to bitfield.
7565 Change type of 'force_start', 'optional_new_start', 7664 Change type of 'force_start', 'optional_new_start',
7566 'last_had_star', 'update_mode_line' and 'start_at_line_beg' 7665 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
7567 fields from Lisp_Object to bitfield. Adjust users accordingly. 7666 fields from Lisp_Object to bitfield. Adjust users accordingly.
diff --git a/src/alloc.c b/src/alloc.c
index 4fd659bd001..f2dd7c8cee7 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -3100,7 +3100,7 @@ usage: (make-byte-code ARGLIST BYTE-CODE CONSTANTS DEPTH &optional DOCSTRING INT
3100 ptrdiff_t i; 3100 ptrdiff_t i;
3101 register struct Lisp_Vector *p; 3101 register struct Lisp_Vector *p;
3102 3102
3103 /* We used to purecopy everything here, if purify-flga was set. This worked 3103 /* We used to purecopy everything here, if purify-flag was set. This worked
3104 OK for Emacs-23, but with Emacs-24's lexical binding code, it can be 3104 OK for Emacs-23, but with Emacs-24's lexical binding code, it can be
3105 dangerous, since make-byte-code is used during execution to build 3105 dangerous, since make-byte-code is used during execution to build
3106 closures, so any closure built during the preload phase would end up 3106 closures, so any closure built during the preload phase would end up
diff --git a/src/buffer.c b/src/buffer.c
index 861a89b5a0f..0b3dde27968 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1663,18 +1663,11 @@ No argument or nil as argument means do this for the current buffer. */)
1663void 1663void
1664compact_buffer (struct buffer *buffer) 1664compact_buffer (struct buffer *buffer)
1665{ 1665{
1666 /* Verify indirection counters. */ 1666 BUFFER_CHECK_INDIRECTION (buffer);
1667 if (buffer->base_buffer)
1668 {
1669 eassert (buffer->indirections == -1);
1670 eassert (buffer->base_buffer->indirections > 0);
1671 }
1672 else
1673 eassert (buffer->indirections >= 0);
1674 1667
1675 /* Skip dead buffers, indirect buffers and buffers 1668 /* Skip dead buffers, indirect buffers and buffers
1676 which aren't changed since last compaction. */ 1669 which aren't changed since last compaction. */
1677 if (!NILP (buffer->INTERNAL_FIELD (name)) 1670 if (BUFFER_LIVE_P (buffer)
1678 && (buffer->base_buffer == NULL) 1671 && (buffer->base_buffer == NULL)
1679 && (buffer->text->compact != buffer->text->modiff)) 1672 && (buffer->text->compact != buffer->text->modiff))
1680 { 1673 {
@@ -1888,19 +1881,20 @@ cleaning up all windows currently displaying the buffer to be killed. */)
1888 1881
1889 if (b->base_buffer) 1882 if (b->base_buffer)
1890 { 1883 {
1891 { /* Unchain all markers that belong to this indirect buffer. 1884 /* Unchain all markers that belong to this indirect buffer.
1892 Don't unchain the markers that belong to the base buffer 1885 Don't unchain the markers that belong to the base buffer
1893 or its other indirect buffers. */ 1886 or its other indirect buffers. */
1894 struct Lisp_Marker **mp; 1887 struct Lisp_Marker **mp = &BUF_MARKERS (b);
1895 for (mp = &BUF_MARKERS (b); *mp; ) 1888 while ((m = *mp))
1896 { 1889 {
1897 struct Lisp_Marker *m = *mp; 1890 if (m->buffer == b)
1898 if (m->buffer == b) 1891 {
1892 m->buffer = NULL;
1899 *mp = m->next; 1893 *mp = m->next;
1900 else 1894 }
1901 mp = &m->next; 1895 else
1902 } 1896 mp = &m->next;
1903 } 1897 }
1904 } 1898 }
1905 else 1899 else
1906 { 1900 {
@@ -2114,6 +2108,8 @@ set_buffer_internal_1 (register struct buffer *b)
2114 if (current_buffer == b) 2108 if (current_buffer == b)
2115 return; 2109 return;
2116 2110
2111 BUFFER_CHECK_INDIRECTION (b);
2112
2117 old_buf = current_buffer; 2113 old_buf = current_buffer;
2118 current_buffer = b; 2114 current_buffer = b;
2119 last_known_column_point = -1; /* invalidate indentation cache */ 2115 last_known_column_point = -1; /* invalidate indentation cache */
diff --git a/src/buffer.h b/src/buffer.h
index d18ef30ea38..9e0e9eef0b1 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -963,6 +963,22 @@ bset_width_table (struct buffer *b, Lisp_Object val)
963 963
964#define BUFFER_LIVE_P(b) (!NILP (BVAR (b, name))) 964#define BUFFER_LIVE_P(b) (!NILP (BVAR (b, name)))
965 965
966/* Verify indirection counters. */
967
968#define BUFFER_CHECK_INDIRECTION(b) \
969 do { \
970 if (BUFFER_LIVE_P (b)) \
971 { \
972 if (b->base_buffer) \
973 { \
974 eassert (b->indirections == -1); \
975 eassert (b->base_buffer->indirections > 0); \
976 } \
977 else \
978 eassert (b->indirections >= 0); \
979 } \
980 } while (0)
981
966/* Chain of all buffers, including killed ones. */ 982/* Chain of all buffers, including killed ones. */
967 983
968extern struct buffer *all_buffers; 984extern struct buffer *all_buffers;
diff --git a/src/cygw32.c b/src/cygw32.c
index c45a45648e9..8f63461da2a 100644
--- a/src/cygw32.c
+++ b/src/cygw32.c
@@ -145,7 +145,7 @@ DEFUN ("cygwin-convert-path-to-windows",
145 (Lisp_Object path, Lisp_Object absolute_p) 145 (Lisp_Object path, Lisp_Object absolute_p)
146{ 146{
147 return from_unicode ( 147 return from_unicode (
148 conv_filename_to_w32_unicode (path, absolute_p == Qnil ? 0 : 1)); 148 conv_filename_to_w32_unicode (path, EQ (absolute_p, Qnil) ? 0 : 1));
149} 149}
150 150
151DEFUN ("cygwin-convert-path-from-windows", 151DEFUN ("cygwin-convert-path-from-windows",
@@ -156,7 +156,7 @@ DEFUN ("cygwin-convert-path-from-windows",
156 (Lisp_Object path, Lisp_Object absolute_p) 156 (Lisp_Object path, Lisp_Object absolute_p)
157{ 157{
158 return conv_filename_from_w32_unicode (to_unicode (path, &path), 158 return conv_filename_from_w32_unicode (to_unicode (path, &path),
159 absolute_p == Qnil ? 0 : 1); 159 EQ (absolute_p, Qnil) ? 0 : 1);
160} 160}
161 161
162void 162void
diff --git a/src/dbusbind.c b/src/dbusbind.c
index c2eefd605bb..08f34f47042 100644
--- a/src/dbusbind.c
+++ b/src/dbusbind.c
@@ -32,6 +32,14 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
32#define DBUS_NUM_MESSAGE_TYPES 5 32#define DBUS_NUM_MESSAGE_TYPES 5
33#endif 33#endif
34 34
35
36/* Some platforms define the symbol "interface", but we want to use it
37 * as a variable name below. */
38
39#ifdef interface
40#undef interface
41#endif
42
35 43
36/* Subroutines. */ 44/* Subroutines. */
37static Lisp_Object Qdbus_init_bus; 45static Lisp_Object Qdbus_init_bus;
diff --git a/src/dispnew.c b/src/dispnew.c
index 0956e3f2905..fa24408aa43 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -60,6 +60,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
60#if defined (HAVE_TERM_H) && defined (GNU_LINUX) 60#if defined (HAVE_TERM_H) && defined (GNU_LINUX)
61#include <term.h> /* for tgetent */ 61#include <term.h> /* for tgetent */
62#endif 62#endif
63
64#ifdef WINDOWSNT
65#include "w32.h"
66#endif
63 67
64/* Structure to pass dimensions around. Used for character bounding 68/* Structure to pass dimensions around. Used for character bounding
65 boxes, glyph matrix dimensions and alike. */ 69 boxes, glyph matrix dimensions and alike. */
diff --git a/src/editfns.c b/src/editfns.c
index 19fad7130a7..c5d4ed295ab 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -1339,15 +1339,6 @@ DEFUN ("system-name", Fsystem_name, Ssystem_name, 0, 0, 0,
1339 return Vsystem_name; 1339 return Vsystem_name;
1340} 1340}
1341 1341
1342const char *
1343get_system_name (void)
1344{
1345 if (STRINGP (Vsystem_name))
1346 return SSDATA (Vsystem_name);
1347 else
1348 return "";
1349}
1350
1351DEFUN ("emacs-pid", Femacs_pid, Semacs_pid, 0, 0, 0, 1342DEFUN ("emacs-pid", Femacs_pid, Semacs_pid, 0, 0, 0,
1352 doc: /* Return the process ID of Emacs, as a number. */) 1343 doc: /* Return the process ID of Emacs, as a number. */)
1353 (void) 1344 (void)
diff --git a/src/fileio.c b/src/fileio.c
index e3a91c2c9da..d47d7dd9e0b 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -53,6 +53,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
53#include <windows.h> 53#include <windows.h>
54#include <fcntl.h> 54#include <fcntl.h>
55#include <sys/file.h> 55#include <sys/file.h>
56#include "w32.h"
56#endif /* not WINDOWSNT */ 57#endif /* not WINDOWSNT */
57 58
58#ifdef MSDOS 59#ifdef MSDOS
diff --git a/src/image.c b/src/image.c
index d52c3a29a27..538ae2b7772 100644
--- a/src/image.c
+++ b/src/image.c
@@ -6577,7 +6577,7 @@ static const struct image_keyword tiff_format[TIFF_LAST] =
6577 {":index", IMAGE_NON_NEGATIVE_INTEGER_VALUE, 0} 6577 {":index", IMAGE_NON_NEGATIVE_INTEGER_VALUE, 0}
6578}; 6578};
6579 6579
6580#ifdef HAVE_NTGUI 6580#if defined HAVE_NTGUI && defined WINDOWSNT
6581static bool init_tiff_functions (void); 6581static bool init_tiff_functions (void);
6582#else 6582#else
6583#define init_tiff_functions NULL 6583#define init_tiff_functions NULL
@@ -7529,7 +7529,7 @@ static struct image_keyword imagemagick_format[IMAGEMAGICK_LAST] =
7529 {":crop", IMAGE_DONT_CHECK_VALUE_TYPE, 0} 7529 {":crop", IMAGE_DONT_CHECK_VALUE_TYPE, 0}
7530 }; 7530 };
7531 7531
7532#ifdef HAVE_NTGUI 7532#if defined HAVE_NTGUI && defined WINDOWSNT
7533static bool init_imagemagick_functions (void); 7533static bool init_imagemagick_functions (void);
7534#else 7534#else
7535#define init_imagemagick_functions NULL 7535#define init_imagemagick_functions NULL
@@ -8083,7 +8083,7 @@ static const struct image_keyword svg_format[SVG_LAST] =
8083 {":background", IMAGE_STRING_OR_NIL_VALUE, 0} 8083 {":background", IMAGE_STRING_OR_NIL_VALUE, 0}
8084}; 8084};
8085 8085
8086#ifdef HAVE_NTGUI 8086#if defined HAVE_NTGUI && defined WINDOWSNT
8087static bool init_svg_functions (void); 8087static bool init_svg_functions (void);
8088#else 8088#else
8089#define init_svg_functions NULL 8089#define init_svg_functions NULL
diff --git a/src/indent.c b/src/indent.c
index 81a63455ecb..bbc944d2518 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -119,8 +119,7 @@ disptab_matches_widthtab (struct Lisp_Char_Table *disptab, struct Lisp_Vector *w
119{ 119{
120 int i; 120 int i;
121 121
122 if (widthtab->header.size != 256) 122 eassert (widthtab->header.size == 256);
123 emacs_abort ();
124 123
125 for (i = 0; i < 256; i++) 124 for (i = 0; i < 256; i++)
126 if (character_width (i, disptab) 125 if (character_width (i, disptab)
@@ -141,8 +140,7 @@ recompute_width_table (struct buffer *buf, struct Lisp_Char_Table *disptab)
141 if (!VECTORP (BVAR (buf, width_table))) 140 if (!VECTORP (BVAR (buf, width_table)))
142 bset_width_table (buf, Fmake_vector (make_number (256), make_number (0))); 141 bset_width_table (buf, Fmake_vector (make_number (256), make_number (0)));
143 widthtab = XVECTOR (BVAR (buf, width_table)); 142 widthtab = XVECTOR (BVAR (buf, width_table));
144 if (widthtab->header.size != 256) 143 eassert (widthtab->header.size == 256);
145 emacs_abort ();
146 144
147 for (i = 0; i < 256; i++) 145 for (i = 0; i < 256; i++)
148 XSETFASTINT (widthtab->contents[i], character_width (i, disptab)); 146 XSETFASTINT (widthtab->contents[i], character_width (i, disptab));
diff --git a/src/lisp.h b/src/lisp.h
index 113ae16fc14..b9e78385313 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -3127,7 +3127,6 @@ extern Lisp_Object make_buffer_string (ptrdiff_t, ptrdiff_t, bool);
3127extern Lisp_Object make_buffer_string_both (ptrdiff_t, ptrdiff_t, ptrdiff_t, 3127extern Lisp_Object make_buffer_string_both (ptrdiff_t, ptrdiff_t, ptrdiff_t,
3128 ptrdiff_t, bool); 3128 ptrdiff_t, bool);
3129extern void init_editfns (void); 3129extern void init_editfns (void);
3130const char *get_system_name (void);
3131extern void syms_of_editfns (void); 3130extern void syms_of_editfns (void);
3132extern void set_time_zone_rule (const char *); 3131extern void set_time_zone_rule (const char *);
3133 3132
diff --git a/src/makefile.w32-in b/src/makefile.w32-in
index 3e817fd58ca..7cb6667c7ea 100644
--- a/src/makefile.w32-in
+++ b/src/makefile.w32-in
@@ -736,6 +736,7 @@ $(BLD)/dispnew.$(O) : \
736 $(SRC)/disptab.h \ 736 $(SRC)/disptab.h \
737 $(SRC)/indent.h \ 737 $(SRC)/indent.h \
738 $(SRC)/termchar.h \ 738 $(SRC)/termchar.h \
739 $(SRC)/w32.h \
739 $(NT_INC)/unistd.h \ 740 $(NT_INC)/unistd.h \
740 $(BUFFER_H) \ 741 $(BUFFER_H) \
741 $(CHARACTER_H) \ 742 $(CHARACTER_H) \
@@ -833,6 +834,7 @@ $(BLD)/fileio.$(O) : \
833 $(SRC)/fileio.c \ 834 $(SRC)/fileio.c \
834 $(SRC)/blockinput.h \ 835 $(SRC)/blockinput.h \
835 $(SRC)/commands.h \ 836 $(SRC)/commands.h \
837 $(SRC)/w32.h \
836 $(NT_INC)/pwd.h \ 838 $(NT_INC)/pwd.h \
837 $(NT_INC)/sys/file.h \ 839 $(NT_INC)/sys/file.h \
838 $(NT_INC)/sys/stat.h \ 840 $(NT_INC)/sys/stat.h \
@@ -1174,6 +1176,7 @@ $(BLD)/w32.$(O) : \
1174 $(SRC)/w32.h \ 1176 $(SRC)/w32.h \
1175 $(SRC)/w32common.h \ 1177 $(SRC)/w32common.h \
1176 $(SRC)/w32heap.h \ 1178 $(SRC)/w32heap.h \
1179 $(SRC)/w32select.h \
1177 $(NT_INC)/pwd.h \ 1180 $(NT_INC)/pwd.h \
1178 $(NT_INC)/sys/file.h \ 1181 $(NT_INC)/sys/file.h \
1179 $(NT_INC)/sys/time.h \ 1182 $(NT_INC)/sys/time.h \
@@ -1429,6 +1432,7 @@ $(BLD)/term.$(O) : \
1429 $(SYSSIGNAL_H) \ 1432 $(SYSSIGNAL_H) \
1430 $(SYSTTY_H) \ 1433 $(SYSTTY_H) \
1431 $(TERMHOOKS_H) \ 1434 $(TERMHOOKS_H) \
1435 $(W32TERM_H) \
1432 $(WINDOW_H) 1436 $(WINDOW_H)
1433 1437
1434$(BLD)/terminal.$(O) : \ 1438$(BLD)/terminal.$(O) : \
@@ -1469,13 +1473,16 @@ $(BLD)/undo.$(O) : \
1469$(BLD)/unexw32.$(O) : \ 1473$(BLD)/unexw32.$(O) : \
1470 $(SRC)/unexw32.c \ 1474 $(SRC)/unexw32.c \
1471 $(SRC)/unexec.h \ 1475 $(SRC)/unexec.h \
1476 $(SRC)/w32.h \
1472 $(SRC)/w32common.h \ 1477 $(SRC)/w32common.h \
1473 $(SRC)/w32heap.h \ 1478 $(SRC)/w32heap.h \
1479 $(LISP_H) \
1474 $(CONFIG_H) 1480 $(CONFIG_H)
1475 1481
1476$(BLD)/vm-limit.$(O) : \ 1482$(BLD)/vm-limit.$(O) : \
1477 $(SRC)/vm-limit.c \ 1483 $(SRC)/vm-limit.c \
1478 $(SRC)/mem-limits.h \ 1484 $(SRC)/mem-limits.h \
1485 $(SRC)/w32heap.h \
1479 $(NT_INC)/unistd.h \ 1486 $(NT_INC)/unistd.h \
1480 $(CONFIG_H) \ 1487 $(CONFIG_H) \
1481 $(LISP_H) 1488 $(LISP_H)
diff --git a/src/nsterm.m b/src/nsterm.m
index 98dd0a8aab1..dfc84db50f7 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -3444,7 +3444,10 @@ ns_select (int nfds, fd_set *readfds, fd_set *writefds,
3444/* NSTRACE (ns_select); */ 3444/* NSTRACE (ns_select); */
3445 3445
3446 for (k = 0; readfds && k < nfds+1; k++) 3446 for (k = 0; readfds && k < nfds+1; k++)
3447 if (FD_ISSET(k, readfds)) ++nr; 3447 {
3448 if (FD_ISSET(k, readfds)) ++nr;
3449 if (FD_ISSET(k, writefds)) ++nr;
3450 }
3448 3451
3449 if (NSApp == nil 3452 if (NSApp == nil
3450 || (timeout && timeout->tv_sec == 0 && timeout->tv_nsec == 0)) 3453 || (timeout && timeout->tv_sec == 0 && timeout->tv_nsec == 0))
diff --git a/src/print.c b/src/print.c
index 49b491faec8..ccf0e8ed7cc 100644
--- a/src/print.c
+++ b/src/print.c
@@ -2075,7 +2075,7 @@ print_object (Lisp_Object obj, register Lisp_Object printcharfun, int escapeflag
2075/* Print a description of INTERVAL using PRINTCHARFUN. 2075/* Print a description of INTERVAL using PRINTCHARFUN.
2076 This is part of printing a string that has text properties. */ 2076 This is part of printing a string that has text properties. */
2077 2077
2078void 2078static void
2079print_interval (INTERVAL interval, Lisp_Object printcharfun) 2079print_interval (INTERVAL interval, Lisp_Object printcharfun)
2080{ 2080{
2081 if (NILP (interval->plist)) 2081 if (NILP (interval->plist))
diff --git a/src/process.c b/src/process.c
index d45a2c6e8e0..307e82819d6 100644
--- a/src/process.c
+++ b/src/process.c
@@ -125,6 +125,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
125#include "xgselect.h" 125#include "xgselect.h"
126#endif 126#endif
127 127
128#ifdef WINDOWSNT
129extern int sys_select (int, SELECT_TYPE *, SELECT_TYPE *, SELECT_TYPE *,
130 EMACS_TIME *, void *);
131#endif
132
128#ifndef WNOHANG 133#ifndef WNOHANG
129# undef waitpid 134# undef waitpid
130# define waitpid(pid, status, options) wait (status) 135# define waitpid(pid, status, options) wait (status)
diff --git a/src/term.c b/src/term.c
index acce9c0548c..f7c87b7608d 100644
--- a/src/term.c
+++ b/src/term.c
@@ -66,6 +66,7 @@ static int been_here = -1;
66/* The name of the default console device. */ 66/* The name of the default console device. */
67#ifdef WINDOWSNT 67#ifdef WINDOWSNT
68#define DEV_TTY "CONOUT$" 68#define DEV_TTY "CONOUT$"
69#include "w32term.h"
69#else 70#else
70#define DEV_TTY "/dev/tty" 71#define DEV_TTY "/dev/tty"
71#endif 72#endif
diff --git a/src/unexw32.c b/src/unexw32.c
index 82671d0f120..1e591a78b73 100644
--- a/src/unexw32.c
+++ b/src/unexw32.c
@@ -22,7 +22,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
22 22
23#include <config.h> 23#include <config.h>
24#include "unexec.h" 24#include "unexec.h"
25#include "lisp.h"
25#include "w32common.h" 26#include "w32common.h"
27#include "w32.h"
26 28
27#include <stdio.h> 29#include <stdio.h>
28#include <fcntl.h> 30#include <fcntl.h>
diff --git a/src/vm-limit.c b/src/vm-limit.c
index 3020b84858a..2a71e88695a 100644
--- a/src/vm-limit.c
+++ b/src/vm-limit.c
@@ -85,6 +85,8 @@ get_lim_data (void)
85#else /* not USG */ 85#else /* not USG */
86#ifdef WINDOWSNT 86#ifdef WINDOWSNT
87 87
88#include "w32heap.h"
89
88static void 90static void
89get_lim_data (void) 91get_lim_data (void)
90{ 92{
diff --git a/src/w32.c b/src/w32.c
index babbcc6df9f..5ac1bc3eb7c 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -175,6 +175,7 @@ typedef struct _REPARSE_DATA_BUFFER {
175#include "ndir.h" 175#include "ndir.h"
176#include "w32common.h" 176#include "w32common.h"
177#include "w32heap.h" 177#include "w32heap.h"
178#include "w32select.h"
178#include "systime.h" 179#include "systime.h"
179#include "dispextern.h" /* for xstrcasecmp */ 180#include "dispextern.h" /* for xstrcasecmp */
180#include "coding.h" /* for Vlocale_coding_system */ 181#include "coding.h" /* for Vlocale_coding_system */
@@ -198,6 +199,12 @@ static int enable_privilege (LPCTSTR, BOOL, TOKEN_PRIVILEGES *);
198static int restore_privilege (TOKEN_PRIVILEGES *); 199static int restore_privilege (TOKEN_PRIVILEGES *);
199static BOOL WINAPI revert_to_self (void); 200static BOOL WINAPI revert_to_self (void);
200 201
202extern int sys_access (const char *, int);
203extern void *e_malloc (size_t);
204extern int sys_select (int, SELECT_TYPE *, SELECT_TYPE *, SELECT_TYPE *,
205 EMACS_TIME *, void *);
206
207
201 208
202/* Initialization states. 209/* Initialization states.
203 210
@@ -6961,7 +6968,7 @@ emacs_gnutls_pull (gnutls_transport_ptr_t p, void* buf, size_t sz)
6961{ 6968{
6962 int n, sc, err; 6969 int n, sc, err;
6963 SELECT_TYPE fdset; 6970 SELECT_TYPE fdset;
6964 struct timeval timeout; 6971 EMACS_TIME timeout;
6965 struct Lisp_Process *process = (struct Lisp_Process *)p; 6972 struct Lisp_Process *process = (struct Lisp_Process *)p;
6966 int fd = process->infd; 6973 int fd = process->infd;
6967 6974
@@ -6977,8 +6984,7 @@ emacs_gnutls_pull (gnutls_transport_ptr_t p, void* buf, size_t sz)
6977 if (err == EWOULDBLOCK) 6984 if (err == EWOULDBLOCK)
6978 { 6985 {
6979 /* Set a small timeout. */ 6986 /* Set a small timeout. */
6980 timeout.tv_sec = 1; 6987 timeout = make_emacs_time (1, 0);
6981 timeout.tv_usec = 0;
6982 FD_ZERO (&fdset); 6988 FD_ZERO (&fdset);
6983 FD_SET ((int)fd, &fdset); 6989 FD_SET ((int)fd, &fdset);
6984 6990
diff --git a/src/w32.h b/src/w32.h
index c4cfdf5fedd..8309a3cc23d 100644
--- a/src/w32.h
+++ b/src/w32.h
@@ -146,6 +146,28 @@ extern int _sys_wait_accept (int fd);
146extern Lisp_Object QCloaded_from; 146extern Lisp_Object QCloaded_from;
147extern HMODULE w32_delayed_load (Lisp_Object); 147extern HMODULE w32_delayed_load (Lisp_Object);
148 148
149extern void init_environment (char **);
150extern void check_windows_init_file (void);
151extern void syms_of_ntproc (void);
152extern void syms_of_ntterm (void);
153extern void dostounix_filename (register char *);
154extern void unixtodos_filename (register char *);
155extern BOOL init_winsock (int load_now);
156extern void srandom (int);
157extern int random (void);
158
159extern int sys_pipe (int *);
160
161extern void set_process_dir (char *);
162extern int sys_spawnve (int, char *, char **, char **);
163extern void register_child (int, int);
164
165extern void sys_sleep (int);
166extern char *getwd (char *);
167extern int sys_link (const char *, const char *);
168
169
170
149#ifdef HAVE_GNUTLS 171#ifdef HAVE_GNUTLS
150#include <gnutls/gnutls.h> 172#include <gnutls/gnutls.h>
151 173
diff --git a/src/w32fns.c b/src/w32fns.c
index df0a16fc2a3..5ef0d9796ec 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -2424,7 +2424,7 @@ w32_msg_pump (deferred_msg * msg_buf)
2424 thread-safe. The next line is okay because the cons 2424 thread-safe. The next line is okay because the cons
2425 cell is never made into garbage and is not relocated by 2425 cell is never made into garbage and is not relocated by
2426 GC. */ 2426 GC. */
2427 XSETCAR ((Lisp_Object) ((EMACS_INT) msg.lParam), Qnil); 2427 XSETCAR (XIL ((EMACS_INT) msg.lParam), Qnil);
2428 if (!PostThreadMessage (dwMainThreadId, WM_EMACS_DONE, 0, 0)) 2428 if (!PostThreadMessage (dwMainThreadId, WM_EMACS_DONE, 0, 0))
2429 emacs_abort (); 2429 emacs_abort ();
2430 break; 2430 break;
@@ -2432,7 +2432,7 @@ w32_msg_pump (deferred_msg * msg_buf)
2432 { 2432 {
2433 int vk_code = (int) msg.wParam; 2433 int vk_code = (int) msg.wParam;
2434 int cur_state = (GetKeyState (vk_code) & 1); 2434 int cur_state = (GetKeyState (vk_code) & 1);
2435 Lisp_Object new_state = (Lisp_Object) ((EMACS_INT) msg.lParam); 2435 Lisp_Object new_state = XIL ((EMACS_INT) msg.lParam);
2436 2436
2437 /* NB: This code must be thread-safe. It is safe to 2437 /* NB: This code must be thread-safe. It is safe to
2438 call NILP because symbols are not relocated by GC, 2438 call NILP because symbols are not relocated by GC,
diff --git a/src/w32proc.c b/src/w32proc.c
index d8d32e78d5c..3a4b7981dcb 100644
--- a/src/w32proc.c
+++ b/src/w32proc.c
@@ -24,6 +24,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
24#include <stdio.h> 24#include <stdio.h>
25#include <stdlib.h> 25#include <stdlib.h>
26#include <errno.h> 26#include <errno.h>
27#include <ctype.h>
27#include <io.h> 28#include <io.h>
28#include <fcntl.h> 29#include <fcntl.h>
29#include <signal.h> 30#include <signal.h>
@@ -68,8 +69,6 @@ extern BOOL WINAPI IsValidLocale (LCID, DWORD);
68 69
69Lisp_Object Qhigh, Qlow; 70Lisp_Object Qhigh, Qlow;
70 71
71typedef void (_CALLBACK_ *signal_handler) (int);
72
73/* Signal handlers...SIG_DFL == 0 so this is initialized correctly. */ 72/* Signal handlers...SIG_DFL == 0 so this is initialized correctly. */
74static signal_handler sig_handlers[NSIG]; 73static signal_handler sig_handlers[NSIG];
75 74
diff --git a/src/w32term.h b/src/w32term.h
index 91723c3758a..94ef9624351 100644
--- a/src/w32term.h
+++ b/src/w32term.h
@@ -682,6 +682,7 @@ extern BOOL parse_button (int, int, int *, int *);
682 682
683extern void w32_sys_ring_bell (struct frame *f); 683extern void w32_sys_ring_bell (struct frame *f);
684extern void x_delete_display (struct w32_display_info *dpyinfo); 684extern void x_delete_display (struct w32_display_info *dpyinfo);
685
685extern int notification_buffer_in_use; 686extern int notification_buffer_in_use;
686extern BYTE file_notifications[16384]; 687extern BYTE file_notifications[16384];
687extern DWORD notifications_size; 688extern DWORD notifications_size;
@@ -689,6 +690,9 @@ extern void *notifications_desc;
689extern Lisp_Object w32_get_watch_object (Lisp_Object); 690extern Lisp_Object w32_get_watch_object (Lisp_Object);
690extern Lisp_Object lispy_file_action (DWORD); 691extern Lisp_Object lispy_file_action (DWORD);
691 692
693extern void w32_initialize_display_info (Lisp_Object);
694extern void initialize_w32_display (struct terminal *);
695
692/* Keypad command key support. W32 doesn't have virtual keys defined 696/* Keypad command key support. W32 doesn't have virtual keys defined
693 for the function keys on the keypad (they are mapped to the standard 697 for the function keys on the keypad (they are mapped to the standard
694 function keys), so we define our own. */ 698 function keys), so we define our own. */
diff --git a/src/window.c b/src/window.c
index 61d2a8b073f..b4fee61cac8 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1464,9 +1464,7 @@ if it isn't already recorded. */)
1464#endif 1464#endif
1465 1465
1466 if (! NILP (update) 1466 if (! NILP (update)
1467 && ! (! NILP (w->window_end_valid) 1467 && (windows_or_buffers_changed || NILP (w->window_end_valid))
1468 && w->last_modified >= BUF_MODIFF (b)
1469 && w->last_overlay_modified >= BUF_OVERLAY_MODIFF (b))
1470 && !noninteractive) 1468 && !noninteractive)
1471 { 1469 {
1472 struct text_pos startp; 1470 struct text_pos startp;
@@ -3795,6 +3793,8 @@ resize_frame_windows (struct frame *f, int size, int horflag)
3795 (m, make_number (XINT (r->top_line) + XINT (r->total_lines))); 3793 (m, make_number (XINT (r->top_line) + XINT (r->total_lines)));
3796 } 3794 }
3797 } 3795 }
3796
3797 windows_or_buffers_changed++;
3798} 3798}
3799 3799
3800 3800
@@ -4208,6 +4208,7 @@ grow_mini_window (struct window *w, int delta)
4208 w->last_modified = 0; 4208 w->last_modified = 0;
4209 w->last_overlay_modified = 0; 4209 w->last_overlay_modified = 0;
4210 4210
4211 windows_or_buffers_changed++;
4211 adjust_glyphs (f); 4212 adjust_glyphs (f);
4212 unblock_input (); 4213 unblock_input ();
4213 } 4214 }
@@ -4245,6 +4246,7 @@ shrink_mini_window (struct window *w)
4245 w->last_modified = 0; 4246 w->last_modified = 0;
4246 w->last_overlay_modified = 0; 4247 w->last_overlay_modified = 0;
4247 4248
4249 windows_or_buffers_changed++;
4248 adjust_glyphs (f); 4250 adjust_glyphs (f);
4249 unblock_input (); 4251 unblock_input ();
4250 } 4252 }
diff --git a/src/xdisp.c b/src/xdisp.c
index 1e61a74068b..6964719f958 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -6302,6 +6302,8 @@ reseat_1 (struct it *it, struct text_pos pos, int set_stop_p)
6302 it->stop_charpos = CHARPOS (pos); 6302 it->stop_charpos = CHARPOS (pos);
6303 it->base_level_stop = CHARPOS (pos); 6303 it->base_level_stop = CHARPOS (pos);
6304 } 6304 }
6305 /* This make the information stored in it->cmp_it invalidate. */
6306 it->cmp_it.id = -1;
6305} 6307}
6306 6308
6307 6309
diff --git a/src/xrdb.c b/src/xrdb.c
index 73672c9617c..9d056a607e4 100644
--- a/src/xrdb.c
+++ b/src/xrdb.c
@@ -24,7 +24,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
24#include <unistd.h> 24#include <unistd.h>
25#include <errno.h> 25#include <errno.h>
26#include <epaths.h> 26#include <epaths.h>
27 27#include <stdlib.h>
28#include <stdio.h> 28#include <stdio.h>
29 29
30#include "lisp.h" 30#include "lisp.h"
@@ -48,11 +48,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
48#include "keyboard.h" 48#include "keyboard.h"
49#endif 49#endif
50 50
51extern char *getenv (const char *);
52
53extern struct passwd *getpwuid (uid_t);
54extern struct passwd *getpwnam (const char *);
55
56char *x_get_string_resource (XrmDatabase rdb, const char *name, 51char *x_get_string_resource (XrmDatabase rdb, const char *name,
57 const char *class); 52 const char *class);
58static int file_p (const char *filename); 53static int file_p (const char *filename);
@@ -429,8 +424,9 @@ get_environ_db (void)
429 { 424 {
430 static char const xdefaults[] = ".Xdefaults-"; 425 static char const xdefaults[] = ".Xdefaults-";
431 char *home = gethomedir (); 426 char *home = gethomedir ();
432 char const *host = get_system_name (); 427 char const *host = SSDATA (Vsystem_name);
433 ptrdiff_t pathsize = strlen (home) + sizeof xdefaults + strlen (host); 428 ptrdiff_t pathsize = (strlen (home) + sizeof xdefaults
429 + SBYTES (Vsystem_name));
434 path = xrealloc (home, pathsize); 430 path = xrealloc (home, pathsize);
435 strcat (strcat (path, xdefaults), host); 431 strcat (strcat (path, xdefaults), host);
436 p = path; 432 p = path;