<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/lib-src, branch feature/delsel-replace</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>Revert "Extend emacs server protocol for empty arguments"</title>
<updated>2026-02-08T16:52:12+00:00</updated>
<author>
<name>Sean Whitton</name>
</author>
<published>2026-02-08T16:52:12+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=7fd6fa4a8b71615fa21dc990503736d4405193c6'/>
<id>7fd6fa4a8b71615fa21dc990503736d4405193c6</id>
<content type='text'>
This reverts this change:

  Author:     Andreas Schwab &lt;schwab@linux-m68k.org&gt;
  AuthorDate: Sun Feb 8 12:34:02 2026 +0100

    Extend emacs server protocol for empty arguments

    An empty argument is represented by &amp;0.  On the receiving side, &amp;0 is
    replaced by nothing.

    * lisp/server.el (server-unquote-arg): Replace "&amp;0" by nothing.
    (server-quote-arg): Produce "&amp;0" for an empty string.
    * lib-src/emacsclient.c (quote_argument): Produce "&amp;0" for an
    empty string.
    (unquote_argument): Replace "&amp;0" by nothing.   (Bug#80356)

The bug in question was already fixed by this change:

  Author:     Sean Whitton &lt;spwhitton@spwhitton.name&gt;
  AuthorDate: Fri Nov 7 12:33:21 2025 +0000

    Don't discard empty string arguments from emacsclient

    * lisp/server.el (server--process-filter-1): Don't discard empty
    string arguments from emacsclient.
    (server-eval-args-left):
    * doc/emacs/misc.texi (emacsclient Options):
    * etc/NEWS: Document the change.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts this change:

  Author:     Andreas Schwab &lt;schwab@linux-m68k.org&gt;
  AuthorDate: Sun Feb 8 12:34:02 2026 +0100

    Extend emacs server protocol for empty arguments

    An empty argument is represented by &amp;0.  On the receiving side, &amp;0 is
    replaced by nothing.

    * lisp/server.el (server-unquote-arg): Replace "&amp;0" by nothing.
    (server-quote-arg): Produce "&amp;0" for an empty string.
    * lib-src/emacsclient.c (quote_argument): Produce "&amp;0" for an
    empty string.
    (unquote_argument): Replace "&amp;0" by nothing.   (Bug#80356)

The bug in question was already fixed by this change:

  Author:     Sean Whitton &lt;spwhitton@spwhitton.name&gt;
  AuthorDate: Fri Nov 7 12:33:21 2025 +0000

    Don't discard empty string arguments from emacsclient

    * lisp/server.el (server--process-filter-1): Don't discard empty
    string arguments from emacsclient.
    (server-eval-args-left):
    * doc/emacs/misc.texi (emacsclient Options):
    * etc/NEWS: Document the change.
</pre>
</div>
</content>
</entry>
<entry>
<title>Extend emacs server protocol for empty arguments</title>
<updated>2026-02-08T12:21:28+00:00</updated>
<author>
<name>Andreas Schwab</name>
</author>
<published>2026-02-08T11:34:02+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=7586a5474cd6c1ea8510b5a8178c74160cc783d0'/>
<id>7586a5474cd6c1ea8510b5a8178c74160cc783d0</id>
<content type='text'>
An empty argument is represented by &amp;0.  On the receiving side, &amp;0 is
replaced by nothing.

* lisp/server.el (server-unquote-arg): Replace "&amp;0" by nothing.
(server-quote-arg): Produce "&amp;0" for an empty string.
* lib-src/emacsclient.c (quote_argument): Produce "&amp;0" for an
empty string.
(unquote_argument): Replace "&amp;0" by nothing.   (Bug#80356)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
An empty argument is represented by &amp;0.  On the receiving side, &amp;0 is
replaced by nothing.

* lisp/server.el (server-unquote-arg): Replace "&amp;0" by nothing.
(server-quote-arg): Produce "&amp;0" for an empty string.
* lib-src/emacsclient.c (quote_argument): Produce "&amp;0" for an
empty string.
(unquote_argument): Replace "&amp;0" by nothing.   (Bug#80356)
</pre>
</div>
</content>
</entry>
<entry>
<title>; Add 2026 to copyright years.</title>
<updated>2026-01-01T12:54:34+00:00</updated>
<author>
<name>Sean Whitton</name>
</author>
<published>2026-01-01T12:54:34+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=c31f6adc31d48076c63ad82b83b2970e1b0d7b9b'/>
<id>c31f6adc31d48076c63ad82b83b2970e1b0d7b9b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>make-docfile preferring streq</title>
<updated>2025-12-14T22:47:22+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2025-12-14T22:45:49+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=5fe0b9e6b017d7f6662ee7fcb5aa6d1ce2ede316'/>
<id>5fe0b9e6b017d7f6662ee7fcb5aa6d1ce2ede316</id>
<content type='text'>
* lib-src/make-docfile.c (main, add_global, compare_globals):
Prefer streq to strcmp where either will do.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lib-src/make-docfile.c (main, add_global, compare_globals):
Prefer streq to strcmp where either will do.
</pre>
</div>
</content>
</entry>
<entry>
<title>Support nested parens in make-docfile args</title>
<updated>2025-12-14T22:47:21+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2025-12-14T22:45:49+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=19e5d27dafa84d93cb84469c9f21594c05204bb3'/>
<id>19e5d27dafa84d93cb84469c9f21594c05204bb3</id>
<content type='text'>
* lib-src/make-docfile.c (scan_c_stream): Allow nested parens.
E.g., ‘(Lisp_Object XXX (force))’ for the identifier ‘force’,
where XXX is a macro.  This is for future changes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lib-src/make-docfile.c (scan_c_stream): Allow nested parens.
E.g., ‘(Lisp_Object XXX (force))’ for the identifier ‘force’,
where XXX is a macro.  This is for future changes.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix make-docfile strncmp typo</title>
<updated>2025-12-14T22:47:21+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2025-12-14T22:45:49+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=aeab91bc55db67222cb9142476916ad08d32c98f'/>
<id>aeab91bc55db67222cb9142476916ad08d32c98f</id>
<content type='text'>
* lib-src/make-docfile.c (write_c_args):
Don’t mishandle the identifiers ‘v’, ‘vo’, and ‘voi’.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lib-src/make-docfile.c (write_c_args):
Don’t mishandle the identifiers ‘v’, ‘vo’, and ‘voi’.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve make-docfile.c for C23</title>
<updated>2025-12-14T22:47:21+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2025-12-14T22:45:49+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=1269bbdaa91b4eb9d17117bfd0718de297040271'/>
<id>1269bbdaa91b4eb9d17117bfd0718de297040271</id>
<content type='text'>
* lib-src/make-docfile.c (write_c_args): Don’t diagnose “()”.
In C23 it’s equivalent to (void), and it works fine (albeit with
less type-checking) in older C.  Omit first arg, which is no
longer needed.  Caller changed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lib-src/make-docfile.c (write_c_args): Don’t diagnose “()”.
In C23 it’s equivalent to (void), and it works fine (albeit with
less type-checking) in older C.  Omit first arg, which is no
longer needed.  Caller changed.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix some make-docfile core dumps</title>
<updated>2025-12-14T22:47:21+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2025-12-14T22:45:49+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=51b8a7c7cb4132ce1fc239c86b5858fa7636b488'/>
<id>51b8a7c7cb4132ce1fc239c86b5858fa7636b488</id>
<content type='text'>
This bit me when I ran ‘make’ with typos in the Emacs source.
* lib-src/make-docfile.c (struct rcsoc_state.buf_lim):
New member.
(read_c_string_or_comment): Initialize it.
(put_char, scan_c_stream): Check for buffer overflow.
(scan_c_stream): Output a diagnostic rather than aborting
when the buffer overflows.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This bit me when I ran ‘make’ with typos in the Emacs source.
* lib-src/make-docfile.c (struct rcsoc_state.buf_lim):
New member.
(read_c_string_or_comment): Initialize it.
(put_char, scan_c_stream): Check for buffer overflow.
(scan_c_stream): Output a diagnostic rather than aborting
when the buffer overflows.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix mis-declarations of non-const functions</title>
<updated>2025-11-20T00:21:24+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2025-11-19T19:18:13+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=20fd47e741342e160d774ae6afee7182bba0de65'/>
<id>20fd47e741342e160d774ae6afee7182bba0de65</id>
<content type='text'>
Problem for mpz_get_d_rounded reported by Helmut Eller in:
https://lists.gnu.org/r/emacs-devel/2025-11/msg00795.html
* lib-src/make-docfile.c (DEFUN_pure): New constant.
(write_globals, scan_c_stream): Support "attributes: pure".
* src/bignum.h (mpz_get_d_rounded):
* src/data.c (Fsymbolp, Fmodule_function_p, Fintegerp, Fnumberp):
* src/lisp.h (bignum_to_double, bignum_to_intmax)
(bignum_to_uintmax, bignum_bufsize):
Now pure, not const, since they depend on current state.
For example, Fsymbolp now inspects symbols_with_pos_enabled,
and the bignum functions inspect bignum contents in memory.
* src/data.c (Feq):
* src/xfaces.c (Fface_attribute_relative_p):
No longer const, since they might abort when debugging.
* src/pdumper.h (pdumper_object_p, pdumper_cold_object_p)
(pdumper_find_object_type, pdumper_object_p_precise):
These are not const functions.  But there is no need to declare
them to be pure, either, as they’re inline so the compiler can
figure it out.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem for mpz_get_d_rounded reported by Helmut Eller in:
https://lists.gnu.org/r/emacs-devel/2025-11/msg00795.html
* lib-src/make-docfile.c (DEFUN_pure): New constant.
(write_globals, scan_c_stream): Support "attributes: pure".
* src/bignum.h (mpz_get_d_rounded):
* src/data.c (Fsymbolp, Fmodule_function_p, Fintegerp, Fnumberp):
* src/lisp.h (bignum_to_double, bignum_to_intmax)
(bignum_to_uintmax, bignum_bufsize):
Now pure, not const, since they depend on current state.
For example, Fsymbolp now inspects symbols_with_pos_enabled,
and the bignum functions inspect bignum contents in memory.
* src/data.c (Feq):
* src/xfaces.c (Fface_attribute_relative_p):
No longer const, since they might abort when debugging.
* src/pdumper.h (pdumper_object_p, pdumper_cold_object_p)
(pdumper_find_object_type, pdumper_object_p_precise):
These are not const functions.  But there is no need to declare
them to be pure, either, as they’re inline so the compiler can
figure it out.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update from Gnulib by running admin/merge-gnulib</title>
<updated>2025-11-04T21:32:58+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2025-11-04T17:14:54+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=59fbaca6b9b48c217c60fc5ab21240ba104059e8'/>
<id>59fbaca6b9b48c217c60fc5ab21240ba104059e8</id>
<content type='text'>
* admin/merge-gnulib (GNULIB_MODULES): Add stringeq.
With current Gnulib it is already present as in indirect dependency;
listing it here because Emacs now depends on it directly.
* lib-src/ebrowse.c, lib-src/etags.c:
(streq): Remove, as Gnulib defines this now.
* lib/fseterr.c, lib/fseterr.h, lib/issymlink.c, lib/issymlink.h:
* lib/issymlinkat.c, lib/stdio-consolesafe.c, lib/string.c:
* m4/fseterr.m4, m4/gettext_h.m4, m4/stringeq.m4:
New files from Gnulib.
* src/conf_post.h (tzfree) [__ANDROID_API__ &gt;= 35]: Remove.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* admin/merge-gnulib (GNULIB_MODULES): Add stringeq.
With current Gnulib it is already present as in indirect dependency;
listing it here because Emacs now depends on it directly.
* lib-src/ebrowse.c, lib-src/etags.c:
(streq): Remove, as Gnulib defines this now.
* lib/fseterr.c, lib/fseterr.h, lib/issymlink.c, lib/issymlink.h:
* lib/issymlinkat.c, lib/stdio-consolesafe.c, lib/string.c:
* m4/fseterr.m4, m4/gettext_h.m4, m4/stringeq.m4:
New files from Gnulib.
* src/conf_post.h (tzfree) [__ANDROID_API__ &gt;= 35]: Remove.
</pre>
</div>
</content>
</entry>
</feed>
