<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/src/w32.c, branch feature/margin-columns</title>
<subtitle>Emacs is the extensible, customizable, self-documenting real-time display editor. 
</subtitle>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/'/>
<entry>
<title>Remove all traces of MSVC support from MS-Windows code</title>
<updated>2025-11-27T07:07:04+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2025-11-27T07:07:04+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=5822759d47114bbac47b1a26a9c35c415e7f3336'/>
<id>5822759d47114bbac47b1a26a9c35c415e7f3336</id>
<content type='text'>
We dropped support for MSVC long ago, and nowadays only support
MinGW for the MS-Windows builds of Emacs.
* src/w32term.h:
* src/w32fns.c:
* src/w32.c:
* nt/inc/sys/socket.h:
* nt/inc/stdalign.h:
* nt/inc/ms-w32.h: Remove MSVC-specific code and preprocessor
conditions.
* nt/inc/ms-w32.h: Don't redirect Posix functions to MS _FOO
equivalents, as MinGW headers do that nowadays better, not
necessarily via functions, and do not disable that when __STDC__
is defined.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We dropped support for MSVC long ago, and nowadays only support
MinGW for the MS-Windows builds of Emacs.
* src/w32term.h:
* src/w32fns.c:
* src/w32.c:
* nt/inc/sys/socket.h:
* nt/inc/stdalign.h:
* nt/inc/ms-w32.h: Remove MSVC-specific code and preprocessor
conditions.
* nt/inc/ms-w32.h: Don't redirect Posix functions to MS _FOO
equivalents, as MinGW headers do that nowadays better, not
necessarily via functions, and do not disable that when __STDC__
is defined.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix 'restart-emacs' on MS-Windows</title>
<updated>2025-10-02T07:22:37+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2025-10-02T07:22:37+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=2c0cf894f430943c3ea36ca89f2f7ebe8e68a2c6'/>
<id>2c0cf894f430943c3ea36ca89f2f7ebe8e68a2c6</id>
<content type='text'>
* src/w32.c (w32_reexec_emacs): Reset undocumented bits in
STARTUPINFO flags.  Suggested by yhr0x43 &lt;yhr0x43@gmail.com&gt;.
(Bug#79554)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/w32.c (w32_reexec_emacs): Reset undocumented bits in
STARTUPINFO flags.  Suggested by yhr0x43 &lt;yhr0x43@gmail.com&gt;.
(Bug#79554)
</pre>
</div>
</content>
</entry>
<entry>
<title>; Avoid compiler warnings in MinGW builds</title>
<updated>2025-06-01T09:05:23+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2025-06-01T09:05:23+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=f77c8c7d45c0efa12bea148778772b557de18b95'/>
<id>f77c8c7d45c0efa12bea148778772b557de18b95</id>
<content type='text'>
* src/w32proc.c (child_proc_count, child_procs)
(Vw32_valid_locale_ids, Vw32_valid_codepages): Declare 'static'.
* src/w32inevt.c (faked_key): Declare.
* src/w32heap.c (data_region_base, data_region_end, heap): Declare.
* src/w32console.c (keyboard_handle, current_tty, cost): Declare.
* src/w32.c: Declare function pointers 'static'.
(excptr, excprec, ctxrec, g_b_init_compare_string_w)
(g_b_init_debug_break_process, LookupAccountSid_Name, dir_static)
(winsock_lib, _wsa_errlist): Declare.
* src/w32uniscribe.c: Declare function pointers 'static'.
(uniscribe_available, harfbuzz_available): Declare.
* src/w32term.c: Declare function pointers 'static'.
(vertical_scroll_bar_min_handle, horizontal_scroll_bar_min_handle)
(vertical_scroll_bar_top_border)
(vertical_scroll_bar_bottom_border)
(horizontal_scroll_bar_left_border)
(horizontal_scroll_bar_right_border, last_scroll_bar_drag_pos):
Declare 'static'.
* src/w32xfns.c (input_available, interrupt_handle, lpHead)
(lpTail, nQueue): Declare.
* src/w32menu.c: Declare function pointers 'static'.
* src/w32term.h (w32_frame_parm_handlers): Declare.
* src/w32fns.c: Declare function pointers 'static'.
(w32_darkmode, w32_color_map, deferred_msg_head, tip_frame)
(tip_timer, tip_last_string, tip_last_frame, tip_last_parms):
* src/lisp.h (daemon_type): Declare for WINDOWSNT as well.
* nt/cmdproxy.c (escape_char, child, interactive): Declare 'static'.
(Bug#78193)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/w32proc.c (child_proc_count, child_procs)
(Vw32_valid_locale_ids, Vw32_valid_codepages): Declare 'static'.
* src/w32inevt.c (faked_key): Declare.
* src/w32heap.c (data_region_base, data_region_end, heap): Declare.
* src/w32console.c (keyboard_handle, current_tty, cost): Declare.
* src/w32.c: Declare function pointers 'static'.
(excptr, excprec, ctxrec, g_b_init_compare_string_w)
(g_b_init_debug_break_process, LookupAccountSid_Name, dir_static)
(winsock_lib, _wsa_errlist): Declare.
* src/w32uniscribe.c: Declare function pointers 'static'.
(uniscribe_available, harfbuzz_available): Declare.
* src/w32term.c: Declare function pointers 'static'.
(vertical_scroll_bar_min_handle, horizontal_scroll_bar_min_handle)
(vertical_scroll_bar_top_border)
(vertical_scroll_bar_bottom_border)
(horizontal_scroll_bar_left_border)
(horizontal_scroll_bar_right_border, last_scroll_bar_drag_pos):
Declare 'static'.
* src/w32xfns.c (input_available, interrupt_handle, lpHead)
(lpTail, nQueue): Declare.
* src/w32menu.c: Declare function pointers 'static'.
* src/w32term.h (w32_frame_parm_handlers): Declare.
* src/w32fns.c: Declare function pointers 'static'.
(w32_darkmode, w32_color_map, deferred_msg_head, tip_frame)
(tip_timer, tip_last_string, tip_last_frame, tip_last_parms):
* src/lisp.h (daemon_type): Declare for WINDOWSNT as well.
* nt/cmdproxy.c (escape_char, child, interactive): Declare 'static'.
(Bug#78193)
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix DST time calculations on MS-Windows</title>
<updated>2025-05-26T16:53:21+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2025-05-26T16:53:21+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=3b5226af3f737c82f9bbedd8fbe067bab4b4b67a'/>
<id>3b5226af3f737c82f9bbedd8fbe067bab4b4b67a</id>
<content type='text'>
* src/w32.c (w32_fix_tzset): New function.
* src/timefns.c (emacs_localtime_rz, tzlookup):
* src/w32.c (sys_localtime): Call 'w32_fix_tzset'.
(Bug#11281)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/w32.c (w32_fix_tzset): New function.
* src/timefns.c (emacs_localtime_rz, tzlookup):
* src/w32.c (sys_localtime): Call 'w32_fix_tzset'.
(Bug#11281)
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid unnecessary calls to GetFileAttributes on MS-Windows</title>
<updated>2025-05-11T16:27:13+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2025-05-11T16:27:13+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=882c849034a909a62179c38ee01cc08572fa1a68'/>
<id>882c849034a909a62179c38ee01cc08572fa1a68</id>
<content type='text'>
* src/w32.c (access_attrs): New function, refactored from
'faccessat'.
(faccessat): Call 'access_attrs' early to determine whether the
file doesn't exist, and if so, avoid calling 'chase_symlinks'.
Also avoid calling 'chase_symlinks' if it is known that the file
cannot be a symlink, given its attributes.  (Bug#78341)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/w32.c (access_attrs): New function, refactored from
'faccessat'.
(faccessat): Call 'access_attrs' early to determine whether the
file doesn't exist, and if so, avoid calling 'chase_symlinks'.
Also avoid calling 'chase_symlinks' if it is known that the file
cannot be a symlink, given its attributes.  (Bug#78341)
</pre>
</div>
</content>
</entry>
<entry>
<title>Support sub-second file time-stamps on MS-Windows</title>
<updated>2025-05-11T10:33:24+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2025-05-11T10:33:24+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=3975094f1d96680fe73232ca4216733904ebecd0'/>
<id>3975094f1d96680fe73232ca4216733904ebecd0</id>
<content type='text'>
* nt/inc/sys/stat.h (struct stat): New members for nsec part of
file times.

* lib-src/ntlib.c (convert_time):
* src/w32.c (convert_time): Accept an additional argument
TIME_NSEC and set it to the sub-second part of time.  All callers
changed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* nt/inc/sys/stat.h (struct stat): New members for nsec part of
file times.

* lib-src/ntlib.c (convert_time):
* src/w32.c (convert_time): Accept an additional argument
TIME_NSEC and set it to the sub-second part of time.  All callers
changed.
</pre>
</div>
</content>
</entry>
<entry>
<title>; * src/w32.c (term_ntproc): Fix capitalization of commentary.</title>
<updated>2025-03-15T04:47:40+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2025-03-15T04:47:40+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=88e30e1ac5a154d9828954f8052e1a04aed15999'/>
<id>88e30e1ac5a154d9828954f8052e1a04aed15999</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>; * src/w32.h (free_wait_pool): Move prototype from w32.c.</title>
<updated>2025-03-14T13:05:29+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2025-03-14T13:05:29+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=c87f0e8a199826f1d05d5c1ff9722577b5fc70de'/>
<id>c87f0e8a199826f1d05d5c1ff9722577b5fc70de</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Increase FD_SETSIZE on Windows to support more subprocesses</title>
<updated>2025-03-14T12:58:42+00:00</updated>
<author>
<name>Yue Yi</name>
</author>
<published>2025-03-10T16:30:40+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=e02466a579a58fceda33ad51d822e39543bc883c'/>
<id>e02466a579a58fceda33ad51d822e39543bc883c</id>
<content type='text'>
Earlier versions of Emacs were limited to at most 32 subprocesses or
network connections on Windows due to the 64-object limit imposed by
WaitForMultipleObjects.  To overcome this, a simple waiting thread
pool is implemented, allowing Emacs to efficiently wait on up to
2048 objects.

Each thread in the pool can wait on up to 63 objects, and a total of
32 threads are used, together with the main thread, to expand the
waiting capability.  This enables Emacs to support approximately 1024
subprocesses, which is comparable to the 'pty' method on GNU/Linux
when using the default FD_SETSIZE of 1024.

To minimize overhead, the threads remain active instead of being
frequently created and destroyed, reducing unnecessary system
resource consumption.  Idle threads can be terminated after a
period of inactivity to free up memory.

* src/w32.h (FD_SETSIZE): Change from 64 to 2048.
* src/w32.c (term_ntproc): Call 'free_wait_pool' to free waiting
threads.
* src/w32proc.c (WFO_ABANDONED, WFO_TIMEOUT, WFO_FAILED)
(WFO_MAX_WAIT): New macros.
(wait_objects_context, wait_objects_pool, wait_objects_info):
New structures for managing the thread pool.
(wait_objects_pool, wait_objects_info): New static variables for
managing the thread pool.
(wait_objects_thread, start_wait_objects, stop_wait_objects)
(end_wait_and_return, shrink_wait_pool, free_wait_pool):
New functions for waiting and managing the thread pool.
(wait_for_objects, msg_wait_for_objects): New functions as
replacements for WaitForMultipleObjects and
MsgWaitForMultipleObjects.
(wait_pid): Use 'wait_for_objects' and new macros.
(sys_select): Make some variables static to avoid stack
allocation.  Use 'wait_for_objects', 'msg_wait_for_objects', and
the new macros.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Earlier versions of Emacs were limited to at most 32 subprocesses or
network connections on Windows due to the 64-object limit imposed by
WaitForMultipleObjects.  To overcome this, a simple waiting thread
pool is implemented, allowing Emacs to efficiently wait on up to
2048 objects.

Each thread in the pool can wait on up to 63 objects, and a total of
32 threads are used, together with the main thread, to expand the
waiting capability.  This enables Emacs to support approximately 1024
subprocesses, which is comparable to the 'pty' method on GNU/Linux
when using the default FD_SETSIZE of 1024.

To minimize overhead, the threads remain active instead of being
frequently created and destroyed, reducing unnecessary system
resource consumption.  Idle threads can be terminated after a
period of inactivity to free up memory.

* src/w32.h (FD_SETSIZE): Change from 64 to 2048.
* src/w32.c (term_ntproc): Call 'free_wait_pool' to free waiting
threads.
* src/w32proc.c (WFO_ABANDONED, WFO_TIMEOUT, WFO_FAILED)
(WFO_MAX_WAIT): New macros.
(wait_objects_context, wait_objects_pool, wait_objects_info):
New structures for managing the thread pool.
(wait_objects_pool, wait_objects_info): New static variables for
managing the thread pool.
(wait_objects_thread, start_wait_objects, stop_wait_objects)
(end_wait_and_return, shrink_wait_pool, free_wait_pool):
New functions for waiting and managing the thread pool.
(wait_for_objects, msg_wait_for_objects): New functions as
replacements for WaitForMultipleObjects and
MsgWaitForMultipleObjects.
(wait_pid): Use 'wait_for_objects' and new macros.
(sys_select): Make some variables static to avoid stack
allocation.  Use 'wait_for_objects', 'msg_wait_for_objects', and
the new macros.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge from origin/emacs-30</title>
<updated>2025-01-25T15:06:19+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2025-01-25T15:06:19+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=6016967e858e12f07c3cf4ade35cddef7b91a0d4'/>
<id>6016967e858e12f07c3cf4ade35cddef7b91a0d4</id>
<content type='text'>
67903f5909d Restore the old behavior of `bookmark-write-file'
062da7003f9 ; Improve prompts and error messages in 'info-look'
52dc01f1c8b ; * admin/admin.el (set-version): Note about Android.
fb282da2a07 Avoid double spaces around abbrevations in Texinfo
bc1ab8ac3d8 ; * doc/emacs/custom.texi (Init Rebinding): Fix spacing.
b41ef43af19 ; Fix previous change
5638b1d6bd4 Ispell: Use "personal dictionary" terminology consistently
cc791e7499f ; Check man pages for mistakes less frequently
4ed4792e3b9 ; * admin/release-process: Minor copy-edits.
4a867c823b7 Add language server "ruff server" for Python
9e687c2871f Fix go-ts-mode type declaration indentation (Bug#75785)
f751b3afa4f ; Minor improvements for doc strings in map.el
cda78edc7d9 ; Fix typos
ce50a1d3c18 ; * src/w32.c (w32_memory_info): Fix coding style of last...
58d3d4820ad Fix bug in w32_memory_info
77386412050 Avoid crashes in redisplay due to problematic font setups
0e3687e6006 Improve 'key-valid-p' docstring
9878092d2b9 Minor copyedits in internals.texi
4726900fdc5 Better document side-effect free and pure C functions
04c475a39f2 ; Fix documentation about faces of tool-tip text

# Conflicts:
#	admin/codespell/codespell.exclude
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
67903f5909d Restore the old behavior of `bookmark-write-file'
062da7003f9 ; Improve prompts and error messages in 'info-look'
52dc01f1c8b ; * admin/admin.el (set-version): Note about Android.
fb282da2a07 Avoid double spaces around abbrevations in Texinfo
bc1ab8ac3d8 ; * doc/emacs/custom.texi (Init Rebinding): Fix spacing.
b41ef43af19 ; Fix previous change
5638b1d6bd4 Ispell: Use "personal dictionary" terminology consistently
cc791e7499f ; Check man pages for mistakes less frequently
4ed4792e3b9 ; * admin/release-process: Minor copy-edits.
4a867c823b7 Add language server "ruff server" for Python
9e687c2871f Fix go-ts-mode type declaration indentation (Bug#75785)
f751b3afa4f ; Minor improvements for doc strings in map.el
cda78edc7d9 ; Fix typos
ce50a1d3c18 ; * src/w32.c (w32_memory_info): Fix coding style of last...
58d3d4820ad Fix bug in w32_memory_info
77386412050 Avoid crashes in redisplay due to problematic font setups
0e3687e6006 Improve 'key-valid-p' docstring
9878092d2b9 Minor copyedits in internals.texi
4726900fdc5 Better document side-effect free and pure C functions
04c475a39f2 ; Fix documentation about faces of tool-tip text

# Conflicts:
#	admin/codespell/codespell.exclude
</pre>
</div>
</content>
</entry>
</feed>
