On 3/3/2022 10:43 AM, Eli Zaretskii wrote: >> Cc: 54227@debbugs.gnu.org >> From: Jim Porter >> Date: Thu, 3 Mar 2022 09:56:14 -0800 >> >> If you have any ideas about how to improve the wording, I'm happy to >> update it though. I'll try to keep thinking as well. > > Something like the below: > > (defmacro eshell-with-temp-command (region &rest body) > "Narrow the buffer to REGION and execute the forms in BODY. > > REGION is a cons cell (START . END) that specifies the region > to which to narrow the buffer. REGION can also be a string, > in which case the macro temporarily inserts it into the > buffer at point, and narrows the buffer to the inserted string. > Before executing BODY, point is set to the beginning of the > narrowed REGION. Thanks, updated to use that docstring. >> diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi >> index 5581e5cd9e..47f8902d5a 100644 >> --- a/doc/misc/eshell.texi >> +++ b/doc/misc/eshell.texi >> @@ -1043,15 +1043,16 @@ Dollars Expansion [snip] >> >> -Multiple sets of indices can also be specified. For example, if >> -@var{var} is a list of lists, @samp{$@var{var}[0][0]} is equivalent to >> -@samp{(caar @var{var})}. >> +Multiple sets of indices can also be specified. For example, if >> +@var{var} is @samp{((1 2) (3 4))}, then @samp{$@var{var}[0][1]} will >> +expand to @code{2}. > > I would add to the last sentence: ", i.e.@: the second element of the > first list member (all indices are zero-based)." Ok, added. > Also, it sounds like you just dropped the ball on the alist use case? I think we just had different ideas of how much detail was necessary. Given your above comment, I think I have a better idea of the level of detail, so I've expanded this section into a table. The single paragraph was a little too dense, so breaking it out into separate blocks for each data type makes it easier to provide a more thorough explanation. >> -(defun eshell-parse-inner-double-quote (bound) >> - "Parse the inner part of a double quoted string. >> +(defun eshell-unescape-inner-double-quote (bound) >> + "Unescape the inner part of a double quoted string. > > "Unescape escaped characters of a double-quoted string." Done, though I worded it as, "Unescape escaped characters inside a double-quoted string." I wanted to be extra-clear that this only operates on the bits *between* the double-quotes, but doesn't do anything with the surrounding double-quotes themselves.