bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#54227: 29.0.50; [PATCH] Inconsistencies with Eshell variable interpo


From: Jim Porter
Subject: bug#54227: 29.0.50; [PATCH] Inconsistencies with Eshell variable interpolation
Date: Thu, 3 Mar 2022 11:29:49 -0800

On 3/3/2022 10:43 AM, Eli Zaretskii wrote:
Cc: 54227@debbugs.gnu.org
From: Jim Porter <jporterbugs@gmail.com>
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.

Attachment: 0001-Improve-wording-of-Eshell-variable-interpolation-cod.patch
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]