<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/src, branch scratch/cl-types</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>Don't escape "." in `prin1' when followed by a letter</title>
<updated>2025-04-28T17:46:40+00:00</updated>
<author>
<name>Spencer Baugh</name>
</author>
<published>2024-06-04T14:35:10+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=21e340494a5a832453999d3853839db5d8a4d865'/>
<id>21e340494a5a832453999d3853839db5d8a4d865</id>
<content type='text'>
Among other users, let-alist widely uses symbols which start with a ".".
Make those symbols print more nicely by tweaking the escaping rules in
print_object to not escape a leading "." followed by a letter.  This is
a conservative change to avoid constraining future lexer changes.

This is a followup to 637dde4aba921435f78d0de769ad74c4f3230aa6, which
removed some unnecessary escaping of "." and "?" when printing symbols
in prin1.  (Actually, if we always escaped "?" (which was the case
before 637dde4aba92) then "." only ever needs to be escaped when
string_to_number returns non-nil.  So 637dde4aba92 could have just
dropped the escaping of "." with no other changes, if it didn't also
remove escaping of "?")

* src/print.c (print_object): Don't escape "." as the first
character in a symbol if followed by a letter. (bug#77656).
* test/src/print-tests.el (test-dots): Update for new behavior.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Among other users, let-alist widely uses symbols which start with a ".".
Make those symbols print more nicely by tweaking the escaping rules in
print_object to not escape a leading "." followed by a letter.  This is
a conservative change to avoid constraining future lexer changes.

This is a followup to 637dde4aba921435f78d0de769ad74c4f3230aa6, which
removed some unnecessary escaping of "." and "?" when printing symbols
in prin1.  (Actually, if we always escaped "?" (which was the case
before 637dde4aba92) then "." only ever needs to be escaped when
string_to_number returns non-nil.  So 637dde4aba92 could have just
dropped the escaping of "." with no other changes, if it didn't also
remove escaping of "?")

* src/print.c (print_object): Don't escape "." as the first
character in a symbol if followed by a letter. (bug#77656).
* test/src/print-tests.el (test-dots): Update for new behavior.
</pre>
</div>
</content>
</entry>
<entry>
<title>; * src/w32dwrite.c: Minor coding style adjustments.</title>
<updated>2025-04-24T01:04:33+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2025-04-24T01:04:33+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=4b7816fc804813287e75544f8d016be6eca08873'/>
<id>4b7816fc804813287e75544f8d016be6eca08873</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>; * src/w32dwrite.c (text_extents_internal): Fix typos in comments.</title>
<updated>2025-04-23T14:29:20+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2025-04-23T14:29:20+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=d3f1f4923f73db617a69ac5d26d08809f814a811'/>
<id>d3f1f4923f73db617a69ac5d26d08809f814a811</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>w32: change the way text is measured when using DirectWrite</title>
<updated>2025-04-23T14:22:14+00:00</updated>
<author>
<name>Cecilio Pardo</name>
</author>
<published>2025-04-19T20:46:38+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=05480592898a2a33e7e683280456ada0d663bfd4'/>
<id>05480592898a2a33e7e683280456ada0d663bfd4</id>
<content type='text'>
Now the glyph outline is inspected directly to get its real size,
as the direct measuring functions give generic values for some
fonts.
* src/w32dwrite.c (data structures): Added data structures from
header files that are not present in the 32bit MinGW build
environment.
(text_extents_internal): Call GetGlyphRunOutline to get exact
glyph vertical bounds.  Add new parameter to make this optional
if case that information is not required.
(w32_dwrite_text_extents, w32_initialize_direct_write)
(w32_dwrite_draw): New parameter for 'text_extents_internal'.
(Bug#77171)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now the glyph outline is inspected directly to get its real size,
as the direct measuring functions give generic values for some
fonts.
* src/w32dwrite.c (data structures): Added data structures from
header files that are not present in the 32bit MinGW build
environment.
(text_extents_internal): Call GetGlyphRunOutline to get exact
glyph vertical bounds.  Add new parameter to make this optional
if case that information is not required.
(w32_dwrite_text_extents, w32_initialize_direct_write)
(w32_dwrite_draw): New parameter for 'text_extents_internal'.
(Bug#77171)
</pre>
</div>
</content>
</entry>
<entry>
<title>* src/androidfns.c (Fx_display_grayscale_p): Fix value on color displays.</title>
<updated>2025-04-22T12:56:48+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2025-04-22T12:56:48+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=057e990fba0975dae06bc365157dd4ff95bfd7a7'/>
<id>057e990fba0975dae06bc365157dd4ff95bfd7a7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Realloc less often in adjust_glyph_matrix (bug#77961)</title>
<updated>2025-04-22T09:38:04+00:00</updated>
<author>
<name>Gerd Möllmann</name>
</author>
<published>2025-04-22T09:35:12+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=871ec9615a949e967bf7d19466eb9c56ed80ff7e'/>
<id>871ec9615a949e967bf7d19466eb9c56ed80ff7e</id>
<content type='text'>
* src/dispnew.c (adjust_glyph_matrix): Only xnrealloc when the
glyph matrix got wider or taller.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/dispnew.c (adjust_glyph_matrix): Only xnrealloc when the
glyph matrix got wider or taller.
</pre>
</div>
</content>
</entry>
<entry>
<title>; Fix thinko in recent commit</title>
<updated>2025-04-22T03:53:35+00:00</updated>
<author>
<name>Stefan Kangas</name>
</author>
<published>2025-04-22T03:53:35+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=45e849bddc1c7777628d3f42557ddbd8a6ba96b7'/>
<id>45e849bddc1c7777628d3f42557ddbd8a6ba96b7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Pacify GCC 15 -Wunterminated-string-initialization</title>
<updated>2025-04-20T02:31:26+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2025-04-20T02:22:37+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=e2fb12a40ca2b90dfedbfe916ed8a87345ca89f1'/>
<id>e2fb12a40ca2b90dfedbfe916ed8a87345ca89f1</id>
<content type='text'>
* src/fns.c (hexbuf_digest):
* src/json.c (json_out_string):
Add ATTRIBUTE_NONSTRING to character arrays that are not strings.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/fns.c (hexbuf_digest):
* src/json.c (json_out_string):
Add ATTRIBUTE_NONSTRING to character arrays that are not strings.
</pre>
</div>
</content>
</entry>
<entry>
<title>Pacify GCC 15 -Wanalyzer-null-dereference</title>
<updated>2025-04-20T02:31:26+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2025-04-20T02:21:15+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=67ae1790088616777b352acffc63aeeb7ee50cb6'/>
<id>67ae1790088616777b352acffc63aeeb7ee50cb6</id>
<content type='text'>
* src/emacs.c (find_emacs_executable): Add an eassume.
This pacifies -Wanalyzer-null-dereference with gcc (GCC) 15.0.1
20250329 (Red Hat 15.0.1-0).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/emacs.c (find_emacs_executable): Add an eassume.
This pacifies -Wanalyzer-null-dereference with gcc (GCC) 15.0.1
20250329 (Red Hat 15.0.1-0).
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid name clashes with static GnuTLS</title>
<updated>2025-04-20T02:31:26+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2025-04-20T01:44:52+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=c8eed90eb4d0583dc3463edfad176b9d3f98d11f'/>
<id>c8eed90eb4d0583dc3463edfad176b9d3f98d11f</id>
<content type='text'>
Work around a bug in GnuTLS 3.7.11 and earlier: when built
statically, its mistakenly exports symbols hash_lookup and
hash_string, which collide with Emacs symbols of the same name,
preventing temacs from linking statically.  Problem reported by
Greg A. Woods (Bug#77476).

Because GnuTLS never uses hash_lookup or hash_string this issue
ordinarily doesn’t seem to prevent temacs from linking to GnuTLS
on GNU/Linux, as it’s linked dynamically and the dynamic linker
never needs to resolve references to either symbol.  However, I
suppose a clash or bug could occur even with dynamic linking if
Emacs later loads a module that uses either symbol.

Although GnuTLS should be fixed, Emacs should link statically to
current and older GnuTLS versions in the meantime, and it should
avoid potential problems with dynamic linking.  Renaming the two
clashing names is an easy way to do this.  For consistency with
the new name for hash_lookup, also rename hash_lookup_with_hash
and hash_lookup_get_hash.

* src/fns.c (hash_find_with_hash): Rename from hash_lookup_with_hash.
(hash_find): Rename from hash_lookup.
(hash_find_get_hash): Rename from hash_lookup_get_hash.
(hash_char_array): Rename from hash_string.
All uses changed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Work around a bug in GnuTLS 3.7.11 and earlier: when built
statically, its mistakenly exports symbols hash_lookup and
hash_string, which collide with Emacs symbols of the same name,
preventing temacs from linking statically.  Problem reported by
Greg A. Woods (Bug#77476).

Because GnuTLS never uses hash_lookup or hash_string this issue
ordinarily doesn’t seem to prevent temacs from linking to GnuTLS
on GNU/Linux, as it’s linked dynamically and the dynamic linker
never needs to resolve references to either symbol.  However, I
suppose a clash or bug could occur even with dynamic linking if
Emacs later loads a module that uses either symbol.

Although GnuTLS should be fixed, Emacs should link statically to
current and older GnuTLS versions in the meantime, and it should
avoid potential problems with dynamic linking.  Renaming the two
clashing names is an easy way to do this.  For consistency with
the new name for hash_lookup, also rename hash_lookup_with_hash
and hash_lookup_get_hash.

* src/fns.c (hash_find_with_hash): Rename from hash_lookup_with_hash.
(hash_find): Rename from hash_lookup.
(hash_find_get_hash): Rename from hash_lookup_get_hash.
(hash_char_array): Rename from hash_string.
All uses changed.
</pre>
</div>
</content>
</entry>
</feed>
