<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/lisp, branch scratch/substitute-command-keys</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>Prefer Lisp version of describer in help--describe-vector</title>
<updated>2020-10-18T15:25:23+00:00</updated>
<author>
<name>Stefan Kangas</name>
</author>
<published>2020-10-18T14:49:55+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=420023a6f066d6ffb85e23ffe3abcfee3d523ea7'/>
<id>420023a6f066d6ffb85e23ffe3abcfee3d523ea7</id>
<content type='text'>
* src/keymap.c (Fhelp__describe_vector):
* lisp/help.el (describe-map): Use Lisp versions of describe_command
and describe_translation.
* src/keymap.c (describe_command, describe_translation): Remove.
(describe_vector_basic): New function.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/keymap.c (Fhelp__describe_vector):
* lisp/help.el (describe-map): Use Lisp versions of describe_command
and describe_translation.
* src/keymap.c (describe_command, describe_translation): Remove.
(describe_vector_basic): New function.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve substitute-command-keys performance</title>
<updated>2020-10-18T15:25:23+00:00</updated>
<author>
<name>Stefan Kangas</name>
</author>
<published>2020-10-17T22:02:55+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=afde53cd81c7817c5b3187e60e7a49790e0af832'/>
<id>afde53cd81c7817c5b3187e60e7a49790e0af832</id>
<content type='text'>
The previous conversion of describe_vector from C to Lisp for the
keymap and char table case lead to an unacceptable performance hit.
Moving back to the C version, as we do here, makes this function
around 50 times faster.

The Lisp version of `substitute-command-keys' was benchmarked using
the form `(documentation 'dired-mode)', which now takes less than 8 ms
on my machine.  This is around 16 times slower than the previous C
version.

Thanks to Stefan Monnier for helpful pointers on benchmarking.

* src/keymap.c (Fhelp__describe_vector): New defun to expose
describe_vector to Lisp for keymaps and char tables.
(syms_of_keymap): New defsubr for Fhelp__describe_vector.
* lisp/help.el (describe-map): Use above defun instead of Lisp
version.
(help--describe-vector): Remove defun; keep it commented out for now.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The previous conversion of describe_vector from C to Lisp for the
keymap and char table case lead to an unacceptable performance hit.
Moving back to the C version, as we do here, makes this function
around 50 times faster.

The Lisp version of `substitute-command-keys' was benchmarked using
the form `(documentation 'dired-mode)', which now takes less than 8 ms
on my machine.  This is around 16 times slower than the previous C
version.

Thanks to Stefan Monnier for helpful pointers on benchmarking.

* src/keymap.c (Fhelp__describe_vector): New defun to expose
describe_vector to Lisp for keymaps and char tables.
(syms_of_keymap): New defsubr for Fhelp__describe_vector.
* lisp/help.el (describe-map): Use above defun instead of Lisp
version.
(help--describe-vector): Remove defun; keep it commented out for now.
</pre>
</div>
</content>
</entry>
<entry>
<title>Translate describe_vector to Lisp</title>
<updated>2020-10-18T15:25:23+00:00</updated>
<author>
<name>Stefan Kangas</name>
</author>
<published>2020-08-23T15:20:09+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=5ad2bb0fa95d9c9ae2387c963b453f695577450a'/>
<id>5ad2bb0fa95d9c9ae2387c963b453f695577450a</id>
<content type='text'>
* lisp/help.el (help--describe-vector): New Lisp implementation of
describe_vector.
* src/keymap.c (Fdescribe_vector_internal): Remove defun.
(syms_of_keymap): Remove defsubr for Fdescribe_vector_internal.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/help.el (help--describe-vector): New Lisp implementation of
describe_vector.
* src/keymap.c (Fdescribe_vector_internal): Remove defun.
(syms_of_keymap): Remove defsubr for Fdescribe_vector_internal.
</pre>
</div>
</content>
</entry>
<entry>
<title>Translate describe_map to Lisp</title>
<updated>2020-10-18T15:25:19+00:00</updated>
<author>
<name>Stefan Kangas</name>
</author>
<published>2020-08-19T10:49:39+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=647b1c5142d7a029a3124e0177112f16f84d3794'/>
<id>647b1c5142d7a029a3124e0177112f16f84d3794</id>
<content type='text'>
Third step in converting substitute-command-keys to Lisp.

* lisp/help.el (describe-map): New Lisp version of describe_map.
(help--describe-map-compare, help--describe-translation)
(help--describe-command, help--shadow-lookup): New helper
functions for describe-map.
(help--keymaps-seen, help--previous-description-column): New
variables.
* src/keymap.c
(Fkeymap__get_keyelt): New defun to expose get_keyelt to Lisp.
(Fdescribe_map_tree_old, Fdescribe_map): Remove defuns.
(Fdescribe_vector_internal): New defun to expose describe_vector to
Lisp in a way usable by describe-map.
(syms_of_keymap): New defsubrs for Fkeymap__get_keyelt and
Fdescribe_vector_internal.  Remove defsubrs for Fdescribe_map_tree_old
and Fdescribe_map.  Remove 'help--keymaps-seen'.

* test/lisp/help-tests.el
(help-tests-substitute-command-keys/shadow): Extend test.
(help-tests-substitute-command-keys/test-mode)
(help-tests-substitute-command-keys/compare-all)
(help-tests-describe-map-tree/no-menu-t)
(help-tests-describe-map-tree/no-menu-nil)
(help-tests-describe-map-tree/mention-shadow-t)
(help-tests-describe-map-tree/mention-shadow-nil)
(help-tests-describe-map-tree/partial-t)
(help-tests-describe-map-tree/partial-nil): New tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Third step in converting substitute-command-keys to Lisp.

* lisp/help.el (describe-map): New Lisp version of describe_map.
(help--describe-map-compare, help--describe-translation)
(help--describe-command, help--shadow-lookup): New helper
functions for describe-map.
(help--keymaps-seen, help--previous-description-column): New
variables.
* src/keymap.c
(Fkeymap__get_keyelt): New defun to expose get_keyelt to Lisp.
(Fdescribe_map_tree_old, Fdescribe_map): Remove defuns.
(Fdescribe_vector_internal): New defun to expose describe_vector to
Lisp in a way usable by describe-map.
(syms_of_keymap): New defsubrs for Fkeymap__get_keyelt and
Fdescribe_vector_internal.  Remove defsubrs for Fdescribe_map_tree_old
and Fdescribe_map.  Remove 'help--keymaps-seen'.

* test/lisp/help-tests.el
(help-tests-substitute-command-keys/shadow): Extend test.
(help-tests-substitute-command-keys/test-mode)
(help-tests-substitute-command-keys/compare-all)
(help-tests-describe-map-tree/no-menu-t)
(help-tests-describe-map-tree/no-menu-nil)
(help-tests-describe-map-tree/mention-shadow-t)
(help-tests-describe-map-tree/mention-shadow-nil)
(help-tests-describe-map-tree/partial-t)
(help-tests-describe-map-tree/partial-nil): New tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>Translate describe_map_tree to Lisp</title>
<updated>2020-10-18T15:23:28+00:00</updated>
<author>
<name>Stefan Kangas</name>
</author>
<published>2020-10-17T18:55:04+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=afd31f9e62e551a3f286d1d581a56ef1de33ee94'/>
<id>afd31f9e62e551a3f286d1d581a56ef1de33ee94</id>
<content type='text'>
This is the second step in converting substitute-command-keys to Lisp.

* lisp/help.el (describe-map-tree): New Lisp version of
describe_map_tree.
(substitute-command-keys): Update to use above function.
* src/keymap.c (Fdescribe_map): New defun to expose describe_map to
Lisp.
* src/keymap.c (syms_of_keymap): New variable 'help--keymaps-seen'; a
temporary kludge planned for removal.  New defsubr for Fdescribe_map.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is the second step in converting substitute-command-keys to Lisp.

* lisp/help.el (describe-map-tree): New Lisp version of
describe_map_tree.
(substitute-command-keys): Update to use above function.
* src/keymap.c (Fdescribe_map): New defun to expose describe_map to
Lisp.
* src/keymap.c (syms_of_keymap): New variable 'help--keymaps-seen'; a
temporary kludge planned for removal.  New defsubr for Fdescribe_map.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add new Lisp implementation of substitute-command-keys</title>
<updated>2020-10-18T15:23:24+00:00</updated>
<author>
<name>Stefan Kangas</name>
</author>
<published>2019-07-08T16:37:50+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=dcf9cd47ae71e39eb616d77acb531ac11357391f'/>
<id>dcf9cd47ae71e39eb616d77acb531ac11357391f</id>
<content type='text'>
This is only the first step towards a full Lisp implementation, and
does not remove the old C code.  On the contrary, it is partly based
on using the old C code, which is to be replaced in steps.  This also
makes it easy to test that it produces the same output as the old.

* src/doc.c (Fsubstitute_command_keys_old): Rename from
Fsubstitute_command_keys.
(Fget_quoting_style): New defun to expose text_quoting_style to Lisp.
(syms_of_doc): Expose above symbols.
* lisp/help.el (substitute-command-keys): New Lisp version of
substitute-command-keys.  (Bug#8951)

* src/keymap.c
(Fdescribe_map_tree): New defun to expose describe_map_tree to Lisp.
(syms_of_keymap): New defsubr for Fdescribe_map_tree.

* src/keyboard.c (help_echo_substitute_command_keys):
* src/doc.c (Fdocumentation, Fdocumentation_property):
* src/print.c (print_error_message):
* src/syntax.c (Finternal_describe_syntax_value): Fix calls to use new
Lisp implementation of substitute-command-keys.

* test/src/doc-tests.el: Remove file.
* test/lisp/help-tests.el: Add tests for substitute-command-keys
copied from above file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is only the first step towards a full Lisp implementation, and
does not remove the old C code.  On the contrary, it is partly based
on using the old C code, which is to be replaced in steps.  This also
makes it easy to test that it produces the same output as the old.

* src/doc.c (Fsubstitute_command_keys_old): Rename from
Fsubstitute_command_keys.
(Fget_quoting_style): New defun to expose text_quoting_style to Lisp.
(syms_of_doc): Expose above symbols.
* lisp/help.el (substitute-command-keys): New Lisp version of
substitute-command-keys.  (Bug#8951)

* src/keymap.c
(Fdescribe_map_tree): New defun to expose describe_map_tree to Lisp.
(syms_of_keymap): New defsubr for Fdescribe_map_tree.

* src/keyboard.c (help_echo_substitute_command_keys):
* src/doc.c (Fdocumentation, Fdocumentation_property):
* src/print.c (print_error_message):
* src/syntax.c (Finternal_describe_syntax_value): Fix calls to use new
Lisp implementation of substitute-command-keys.

* test/src/doc-tests.el: Remove file.
* test/lisp/help-tests.el: Add tests for substitute-command-keys
copied from above file.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix up smiley emoji application to make it reversible</title>
<updated>2020-10-18T07:42:25+00:00</updated>
<author>
<name>Lars Ingebrigtsen</name>
</author>
<published>2020-10-18T07:42:25+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=d96734729d0ed1fb854231c1ede3895c04c5b8ea'/>
<id>d96734729d0ed1fb854231c1ede3895c04c5b8ea</id>
<content type='text'>
* lisp/gnus/smiley.el (smiley-region): Use text properties for the
emojis instead of rewriting the message.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/gnus/smiley.el (smiley-region): Use text properties for the
emojis instead of rewriting the message.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for emojis i smiley.el</title>
<updated>2020-10-18T07:36:43+00:00</updated>
<author>
<name>Adam Sjøgren</name>
</author>
<published>2020-10-18T07:36:43+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=990791262433923748047d3bec0161cbcfca5b59'/>
<id>990791262433923748047d3bec0161cbcfca5b59</id>
<content type='text'>
* lisp/gnus/smiley.el (smiley-style): Add emoji
tag.
(smiley-emoji-regexp-alist): New defcustom.
(smiley-update-cache, smiley-region): Support emoji (non-image)
replacement (bug#43889).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/gnus/smiley.el (smiley-style): Add emoji
tag.
(smiley-emoji-regexp-alist): New defcustom.
(smiley-update-cache, smiley-region): Support emoji (non-image)
replacement (bug#43889).
</pre>
</div>
</content>
</entry>
<entry>
<title>Make nxml-newline-and-indent argument optional</title>
<updated>2020-10-18T01:17:58+00:00</updated>
<author>
<name>Stefan Kangas</name>
</author>
<published>2020-10-18T01:17:58+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=a67fed2e0c836658ac6bf9658bb8769c5c216b9b'/>
<id>a67fed2e0c836658ac6bf9658bb8769c5c216b9b</id>
<content type='text'>
* lisp/nxml/nxml-mode.el (nxml-newline-and-indent): Make argument
optional to conform to 'comment-line-break-function'.  (Bug#40193)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/nxml/nxml-mode.el (nxml-newline-and-indent): Make argument
optional to conform to 'comment-line-break-function'.  (Bug#40193)
</pre>
</div>
</content>
</entry>
<entry>
<title>* lisp/progmodes/ld-script.el: Use lexical-binding.</title>
<updated>2020-10-18T00:27:29+00:00</updated>
<author>
<name>Stefan Kangas</name>
</author>
<published>2020-10-18T00:09:27+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=f287fb45f574604f4e5cce1031cc6b73ddcccc3d'/>
<id>f287fb45f574604f4e5cce1031cc6b73ddcccc3d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
