all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Jim Porter <jporterbugs@gmail.com>
To: Michael Albinus <michael.albinus@gmx.de>
Cc: emacs-devel@gnu.org
Subject: Re: Eshell manual is (hopefully) complete!
Date: Fri, 7 Jul 2023 22:57:35 -0700	[thread overview]
Message-ID: <044aa267-89dd-d02d-3b05-a31d619e1eb9@gmail.com> (raw)
In-Reply-To: <87jzvdt1w3.fsf@gmx.de>

On 7/6/2023 9:56 AM, Michael Albinus wrote:
> I gave it a full proof-reading (based on 14e57b8f4cf). Here my comments:

Thanks for the thorough review. Responses inline below.

> - Top page "(*note Emacs Lisp Interaction: (emacs)Lisp Interaction.)"
>    Shouldn't the period be at the end of the phrase?

Fixed.

> - Top page: "This manual is for Eshell, the Emacs shell."
>    eshell.el speaks about version 2.4.2, shouldn't this be mentioned
>    here? And more general, is this a proper version today?
> 
>    Somewhere else in the manual we find "Eshell version 2.4.2, which is
>    the version included with Emacs 22."

I'll have to think about that. It might make sense to bump Eshell's 
version to 3.0.0 for Emacs 29 (there are quite a few changes), and then 
maybe 3.1.0 for Emacs 30 (where there are not so many changes - at least 
not yet). I'm open to ideas though.

> - Top page:
> 
> --8<---------------cut here---------------start------------->8---
> * Introduction::             A brief introduction to the Emacs Shell.
> * Commands::
> * Expansion::
> * Input/Output::
> * Extension modules::
> * Bugs and ideas::              Known problems, and future ideas.
> * GNU Free Documentation License:: The license for this documentation.
> * Concept Index::
> * Function and Variable Index::
> * Command Index::
> --8<---------------cut here---------------end--------------->8---
> 
>    Shouldn't all entries have a description? The same for all other menus
>    (I don't mention it, again).

Possibly. I'm not sure what the standard is, but it would probably be ok 
to add descriptions for everything.

> - 1 Introduction
>    Menu is doubled. It misses node "What is Eshell?"

This might take a bit of reorganizing. Maybe someone else knows the 
right way to arrange Texinfo sections here? Otherwise, I can look into 
it later.

> - 1.2 Contributors to Eshell
>    I miss at least your name, and Amin Bandali.

I'll start a separate thread to see if any past Eshell contributors 
whose names aren't on the list would like to be added.

> - 2.2 Arguments "(*note Eshell commands: Built-ins.)"
>    The period looks superfluous.

Fixed.

> - 2.2.1 Quoting and escaping ‘"The answer is: \"$answer\""’
>    Shouldn't it be ‘"The answer is: \"$ANSWER\""’

Well, that depends. Eshell variables can be Lisp variables or 
environment variables, so in the former case, "$answer" would make 
sense, I think.

> - 2.3 Built-in commands
>    I suppose built-in commands are the functions `eshell/*', perhaps you
>    could mention this.

That's actually mentioned farther down, in the "Defining new built-in 
commands" section, but it probably makes sense to mention it here too. 
Fixed.

>    Comparing this list, and the built-in commands in "5.1.4 Tramp
>    extensions" and "5.1.5 Extra built-in commands", I miss the built-in
>    commands eshell/count, eshell/define, eshell/eshell-debug, eshell/ff,
>    eshell/gf, eshell/urgrep.

I added documentation for 'count', 'eshell-debug', 'ff', and 'gf'. 
'define' is obsolete (I'm not sure it ever worked, and maybe I should 
have just removed it entirely). 'urgrep' is from the Urgrep package on 
GNU ELPA (which I wrote :)).

>    ‘kill’
>    As I understand, it kills local processes. Since signal-process
>    supports also remote processes: WIBNI eshell does it as well? (This
>    comment is not part of the review, just being curious)

I'll have to look into this. Improving Tramp support in Eshell is 
definitely on my list of things to do.

> - 2.4.1 Built-in variables
>    You offer $UID, but not $GID. Why?

Oops. I actually thought I had done that already (see bug#63221), but 
evidently I forgot to add a special built-in variable for it. I'll file 
a separate bug for this.

>    ‘$INSIDE_EMACS’
>       This variable indicates to external commands that they are being
>       invoked from within Emacs so they can adjust their behavior if
>       necessary.  Its value is ‘EMACS-VERSION,eshell’.
> 
>    For remote processes, the value is 'EMACS-VERSION,eshell,tramp:TRAMP-VERSION'.
>    Or even longer, f.e. if there is a compilation process. So you should say
>    "The value starts with '...'".

Fixed.

> - 2.5 Aliases
>    "an alias’s arguments" => "an alias’s argument"

I think the current text is correct, actually. There's one alias in the 
example, but it has several arguments.

> - 2.7 Completion
>    "lisp forms" => "Lisp forms" (2 times)
> 
> - 2.8 Control Flow
>    "lisp forms" => "Lisp forms"

Fixed.

> - 3.1 Dollars Expansion
> 
>    ‘$<COMMAND>’
>       As with ‘${COMMAND}’, evaluates the Eshell command invocation
>       ‘COMMAND’, but writes the output to a temporary file and returns
>       the file name.
> 
>    I'm curious: is it always a *local* temporary file, or can the
>    temporary file being located on a remote system, if $<COMMAND> is
>    executed there?

Hmm, I'm not sure. Looking at the code, I *think* it's always local, but 
I'll have to test it out.

>    "(*note Sequences: (elisp)Sequences Arrays Vectors.)."
>    There seems to be a superfluous period.

Fixed.

> - 3.2 Globbing
>    Customize group “eshell-glob” => Customize group 'eshell-glob'
> 
> - 3.3 Argument Predication and Modification
>    Customize group “eshell-pred” => Customize group 'eshell-pred'

Fixed.

> - 4.2 Redirection
>    ‘>>> BUFFER’
>    ‘FD>>> BUFFER’
>    I would still say DEST instead of BUFFER.
> 
>    ‘&> FILE’
>    ‘>& FILE’
>    ‘&>> FILE’
>    ‘>>& FILE’
>    ‘&>>> FILE’
>    ‘>>>& FILE’
>    I would still say DEST instead of FILE.

Fixed.

> - 5.1 Optional modules
>    "In addition to the various modules enabled by default (documented above)"
> 
>    I haven't seen any module description "above".  That is, the following
>    modules aren't mentioned anywhere in the manual: eshell-alias,
>    eshell-banner, eshell-basic, eshell-cmpl, eshell-dirs, eshell-extpipe,
>    eshell-glob, eshell-hist, eshell-ls, eshell-pred, eshell-prompt,
>    eshell-script, eshell-term, eshell-unix. All of them can be deselected
>    via user option eshell-modules-list, which looks to me like they are
>    optional.
> 
>    Of course, some of them aren't optional. So it might be needed to
>    explain this user option, and to explain what shall be selected or
>    deselected. Which modules are mandatory, and which are optional.

All the modules *should* be optional (although there are several that I 
can't imagine a user disabling, like 'eshell-dirs'). I'll have to think 
about how to document this more clearly...

> - 6 Bugs and ideas
>    "Once symbolic mode is supported for ‘umask’, implement ‘chmod’ in Lisp"
> 
>    "man umask" tells me
> 
>     umask [-p] [-S] [mode]
>                The user file-creation mask is set to mode.  If mode
>                begins with a digit, it is interpreted as an octal number;
>                otherwise it is interpreted as a symbolic mode mask
>                similar to that accepted  by  chmod(1). ...

There's a built-in version of umask ('eshell/umask'), but it doesn't 
support symbolic mode yet. I actually have a patch in progress for this...

>    "Write an ‘info’ alias that can take arguments
>      So that the user can enter ‘info chmod’, for example."
> 
>    This seems to be implemented.

Looks like it. Fixed.

>    "Write a ‘tail’ command which uses ‘view-file’
>      It would move point to the end of the buffer, and then turns on
>      auto-revert mode in that buffer at frequent intervals—and a ‘head’
>      alias which assumes an upper limit of ‘eshell-maximum-line-length’
>      characters per line.
> 
>    Perhaps auto-revert-tail-mode is better suited?

Perhaps. I'll look into that and how it would work exactly.



  reply	other threads:[~2023-07-08  5:57 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-01 19:35 Eshell manual is (hopefully) complete! Jim Porter
2023-07-02  8:52 ` Dr. Arne Babenhauserheide
2023-07-02  9:20   ` Eli Zaretskii
2023-07-02  9:31     ` Dr. Arne Babenhauserheide
2023-07-03  2:44 ` Richard Stallman
2023-07-06 16:56 ` Michael Albinus
2023-07-08  5:57   ` Jim Porter [this message]
2023-07-08 15:16     ` Michael Albinus
2023-07-08 19:16       ` Jim Porter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=044aa267-89dd-d02d-3b05-a31d619e1eb9@gmail.com \
    --to=jporterbugs@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=michael.albinus@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.