2

There command-line option -e behaves similar to the --eval option, but yet it is not the same. For example, of these two invocations, only the first one works:

emacs --eval '(global-linum-mode)'
emacs     -e '(global-linum-mode)'

And of these two invocations, only the second one works:

emacs --eval 'global-linum-mode'
emacs     -e 'global-linum-mode'

I had mistakenly assumed that -e was the "short form" for --eval based on this line from the manual:

There are two ways of writing options: the short forms that start with a single ‘-’, and the long forms that start with ‘--’. For example, ‘-d’ is a short form and ‘--display’ is the corresponding long form.

But as I noted, it has a behavior which differs from the long option. Is this mysterious -e option documented anywhere?

1 Answer 1

5

It's a synonym for -f / --funcall, included for backwards compatibility.

The argument-handling code in command-line-1 says:

"-f"    ; what the manual claims
"-funcall"
"-e"))  ; what the source used to say
2
  • So backward compatibility with a mistake in the old sources won out over doing what the manual says? If they are going to keep this legacy cruft around, they should at least document it. M-x report-emacs-bug, here I come. Thanks for the answer.
    – nispio
    Oct 21, 2014 at 23:27
  • Perhaps more useful than documentation of a deprecated option would be if Emacs generated a warning if -e is used, so that people have notice to make the change; then it could be safely removed in some subsequent release.
    – phils
    Oct 22, 2014 at 4:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.