<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/lisp/eshell, branch scratch/tty-child-frames</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 clobber stickiness text properties when printing Eshell prompt</title>
<updated>2024-11-14T17:19:31+00:00</updated>
<author>
<name>Jim Porter</name>
</author>
<published>2024-11-07T18:08:33+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=df288d2e4148e6e72f21752a510f98536e7705ac'/>
<id>df288d2e4148e6e72f21752a510f98536e7705ac</id>
<content type='text'>
* lisp/eshell/em-prompt.el (eshell--append-text-property): New
function...
(eshell-emit-prompt): ... use it.

* test/lisp/eshell/em-prompt-tests.el
(em-prompt-test/field-properties/merge-stickiness): New test.
(em-prompt-test/field-properties, em-prompt-test/after-failure): Reorder
stickiness values (bug#74230).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/eshell/em-prompt.el (eshell--append-text-property): New
function...
(eshell-emit-prompt): ... use it.

* test/lisp/eshell/em-prompt-tests.el
(em-prompt-test/field-properties/merge-stickiness): New test.
(em-prompt-test/field-properties, em-prompt-test/after-failure): Reorder
stickiness values (bug#74230).
</pre>
</div>
</content>
</entry>
<entry>
<title>When using Eshell's "du" implementation, deduplicate hard links</title>
<updated>2024-11-10T01:01:34+00:00</updated>
<author>
<name>Jim Porter</name>
</author>
<published>2024-11-10T00:06:34+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=1704fa4fb4164a15c7e258b922dbba190811d92d'/>
<id>1704fa4fb4164a15c7e258b922dbba190811d92d</id>
<content type='text'>
* lisp/eshell/em-unix.el (eshell-du-sum-directory): Take SEEN-FILES.
(eshell/du): Create 'seen-files' hash table.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/eshell/em-unix.el (eshell-du-sum-directory): Take SEEN-FILES.
(eshell/du): Create 'seen-files' hash table.
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't use dynamically-bound variables for Eshell's "du" command</title>
<updated>2024-11-10T01:01:34+00:00</updated>
<author>
<name>Jim Porter</name>
</author>
<published>2024-01-30T18:51:03+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=37c583a2c2f97c6fb0ed0433db9c74c6a1758e3e'/>
<id>37c583a2c2f97c6fb0ed0433db9c74c6a1758e3e</id>
<content type='text'>
* lisp/eshell/em-unix.el (block-size, by-bytes, dereference-links)
(grand-total, human-readable, max-depth, only-one-filesystem, show-all)
(eshell-du-size-string): Remove.
(eshell-du-sum-directory): Accept key arguments for adjusting behavior.
(eshell/du): Use 'block-size' of 1 instead of 'by-bytes', and define a
print function.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/eshell/em-unix.el (block-size, by-bytes, dereference-links)
(grand-total, human-readable, max-depth, only-one-filesystem, show-all)
(eshell-du-size-string): Remove.
(eshell-du-sum-directory): Accept key arguments for adjusting behavior.
(eshell/du): Use 'block-size' of 1 instead of 'by-bytes', and define a
print function.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use the Lisp implemention of "du" in Eshell when querying remote dirs</title>
<updated>2024-11-10T01:01:33+00:00</updated>
<author>
<name>Jim Porter</name>
</author>
<published>2024-11-09T07:12:53+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=f26fb25ec8ca12901db6224973c7fef29ce938f9'/>
<id>f26fb25ec8ca12901db6224973c7fef29ce938f9</id>
<content type='text'>
* lisp/eshell/em-unix.el (eshell/du): If all directories are local, use
the external "du" instead.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/eshell/em-unix.el (eshell/du): If all directories are local, use
the external "du" instead.
</pre>
</div>
</content>
</entry>
<entry>
<title>Always print the expanded directory name for Eshell's "pwd" command</title>
<updated>2024-11-07T21:57:35+00:00</updated>
<author>
<name>Jim Porter</name>
</author>
<published>2024-11-07T21:57:35+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=ef440f59a170c3c69948fca863f368e397d503b4'/>
<id>ef440f59a170c3c69948fca863f368e397d503b4</id>
<content type='text'>
* lisp/eshell/em-dirs.el (eshell-pwd-convert-function): Default to
'expand-file-name' on all systems.

* etc/NEWS: Announce this change.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/eshell/em-dirs.el (eshell-pwd-convert-function): Default to
'expand-file-name' on all systems.

* etc/NEWS: Announce this change.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for range objects in Eshell "for" loops</title>
<updated>2024-11-04T04:18:14+00:00</updated>
<author>
<name>Jim Porter</name>
</author>
<published>2024-11-03T19:56:15+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=ee87af4f1603d2042afa641e74df0403a49af1c5'/>
<id>ee87af4f1603d2042afa641e74df0403a49af1c5</id>
<content type='text'>
* lisp/eshell/esh-cmd.el (eshell-for-iterate): Add support for
'eshell-range' objects.

* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/for-loop-range): New
test.

* doc/misc/eshell.texi (Control Flow): Update documentation.

* etc/NEWS: Announce this change.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/eshell/esh-cmd.el (eshell-for-iterate): Add support for
'eshell-range' objects.

* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/for-loop-range): New
test.

* doc/misc/eshell.texi (Control Flow): Update documentation.

* etc/NEWS: Announce this change.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move more of Eshell range handling to the parser phase</title>
<updated>2024-11-04T04:18:14+00:00</updated>
<author>
<name>Jim Porter</name>
</author>
<published>2024-10-21T01:01:10+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=ed9ea57e57a915e743100591d7a71d44a4b4c0e9'/>
<id>ed9ea57e57a915e743100591d7a71d44a4b4c0e9</id>
<content type='text'>
* lisp/eshell/esh-util.el (eshell-range): New struct.
(eshell--range-string-p, eshell--string-to-range): New functions.

* lisp/eshell/esh-arg.el (eshell-parse-integer)
(eshell-parse-range-token): New functions...
(eshell-parse-argument-hook): ... add them.
(eshell--after-range-token-regexp): New defsubst.
(eshell-concat-1): Don't remove the 'number' property; we use that when
handling range arguments.
(eshell--range-token): New constant.
(eshell-unmark-range-token): New function.

* lisp/eshell/esh-var.el (eshell-parse-index): Update implementation to
use parsed range argument.

* test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-var-indices):
Test range index using variables.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/eshell/esh-util.el (eshell-range): New struct.
(eshell--range-string-p, eshell--string-to-range): New functions.

* lisp/eshell/esh-arg.el (eshell-parse-integer)
(eshell-parse-range-token): New functions...
(eshell-parse-argument-hook): ... add them.
(eshell--after-range-token-regexp): New defsubst.
(eshell-concat-1): Don't remove the 'number' property; we use that when
handling range arguments.
(eshell--range-token): New constant.
(eshell-unmark-range-token): New function.

* lisp/eshell/esh-var.el (eshell-parse-index): Update implementation to
use parsed range argument.

* test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-var-indices):
Test range index using variables.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add QUOTED argument to 'eshell-stringify'</title>
<updated>2024-11-04T04:18:14+00:00</updated>
<author>
<name>Jim Porter</name>
</author>
<published>2024-10-20T22:30:19+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=4d69d3778a51427654965cbcc5bb03611034b656'/>
<id>4d69d3778a51427654965cbcc5bb03611034b656</id>
<content type='text'>
This will make it easier to reconstitute numbers that we converted to
strings.

* lisp/eshell/esh-util.el (eshell--numeric-string-p): New function.
(eshell-stringify, eshell-stringify-list): Add QUOTED argument.
(eshell-convert, eshell-list-to-string): Stringify as quoted.

* lisp/eshell/esh-arg.el (eshell--numberlike-p): Remove.
(eshell-concat-1): Pass along QUOTED.

* lisp/eshell/esh-cmd.el (eshell-lisp-command): Use
'eshell--numeric-string-p'.

* lisp/eshell/esh-var.el (eshell-parse-variable):
* lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments): Stringify as
quoted.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This will make it easier to reconstitute numbers that we converted to
strings.

* lisp/eshell/esh-util.el (eshell--numeric-string-p): New function.
(eshell-stringify, eshell-stringify-list): Add QUOTED argument.
(eshell-convert, eshell-list-to-string): Stringify as quoted.

* lisp/eshell/esh-arg.el (eshell--numberlike-p): Remove.
(eshell-concat-1): Pass along QUOTED.

* lisp/eshell/esh-cmd.el (eshell-lisp-command): Use
'eshell--numeric-string-p'.

* lisp/eshell/esh-var.el (eshell-parse-variable):
* lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments): Stringify as
quoted.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve handling of Eshell "for" loops</title>
<updated>2024-11-03T23:42:26+00:00</updated>
<author>
<name>Jim Porter</name>
</author>
<published>2024-11-03T19:22:27+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=08d5994b435c119bde8b8ac8f7152810d1814d1e'/>
<id>08d5994b435c119bde8b8ac8f7152810d1814d1e</id>
<content type='text'>
This fixes some errors with more-complex string forms, and also allows
iterating over sequences other than just lists.

* lisp/eshell/esh-cmd.el (eshell-for-iterate): New function...
(eshell-rewrite-for-command): ... use it.

* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/for-loop): Test
multiple values.
(esh-cmd-test/for-loop-string, esh-cmd-test/for-loop-vector): New tests.
(esh-cmd-test/for-loop-mixed-args): Rename.

* test/lisp/eshell/esh-proc-tests.el
(esh-proc-test/sentinel/change-buffer): Make sure all the processes get
cleaned up.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes some errors with more-complex string forms, and also allows
iterating over sequences other than just lists.

* lisp/eshell/esh-cmd.el (eshell-for-iterate): New function...
(eshell-rewrite-for-command): ... use it.

* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/for-loop): Test
multiple values.
(esh-cmd-test/for-loop-string, esh-cmd-test/for-loop-vector): New tests.
(esh-cmd-test/for-loop-mixed-args): Rename.

* test/lisp/eshell/esh-proc-tests.el
(esh-proc-test/sentinel/change-buffer): Make sure all the processes get
cleaned up.
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't start docstrings with "This function"</title>
<updated>2024-11-01T22:56:12+00:00</updated>
<author>
<name>Stefan Kangas</name>
</author>
<published>2024-11-01T22:56:12+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=4df832750c811abc5ccbe7bfcefe1ad8f144af8e'/>
<id>4df832750c811abc5ccbe7bfcefe1ad8f144af8e</id>
<content type='text'>
* lisp/calculator.el (calculator-add-operators):
* lisp/erc/erc-log.el (erc-generate-log-file-name-with-date)
(erc-generate-log-file-name-short):
* lisp/eshell/esh-mode.el (eshell-begin-on-new-line):
* lisp/progmodes/hideif.el (hif-merge-ifdef-region):
* lisp/tab-bar.el (tab-bar--event-to-item):
* lisp/textmodes/artist.el (artist-no-rb-unset-point2)
(artist-no-rb-unset-points):
* lisp/which-key.el (which-key--hide-popup): Don't start function
docstrings with "This function".
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/calculator.el (calculator-add-operators):
* lisp/erc/erc-log.el (erc-generate-log-file-name-with-date)
(erc-generate-log-file-name-short):
* lisp/eshell/esh-mode.el (eshell-begin-on-new-line):
* lisp/progmodes/hideif.el (hif-merge-ifdef-region):
* lisp/tab-bar.el (tab-bar--event-to-item):
* lisp/textmodes/artist.el (artist-no-rb-unset-point2)
(artist-no-rb-unset-points):
* lisp/which-key.el (which-key--hide-popup): Don't start function
docstrings with "This function".
</pre>
</div>
</content>
</entry>
</feed>
