[net.emacs] problems with GNU EMACS

sjk@sri-spam (05/01/85)

From: sjk@sri-spam
[this message may not be of interest to some of the "info-*" readers]

Note that many elisp modules have documentation strings with default key
binding assumptions instead of dynamically determining the correct binding.
For example, in this excerpt from startup.el:

    (defun command-line-1 (args)

	   .	.	.

	   (insert ", Copyright (C) 1985 by Richard M. Stallman.
    It is freeware: you may copy and redistribute it under certain conditions.
    Type C-h C-c to see those conditions.
    Type C-h C-d for information on getting copies from me.\n")
	   (message "Type Control-h for help; Control-x u to undo changes")

	   .	.	.)

The point here is that if you start changing defaults, be sure to change
any references in the internal documentation, preferably in a generalized
manner.  I have been thinking about fixing other modules that are brain
damaged this way, especially in output from "describe-mode", but am not
sure of a good way of doing it.  Suggestions??

By the way, is there some way other than "etags" to determine which elisp
module a function is defined in?  I often find a bug in a function and
don't know how to easily find its source file.  Should this information
be internally available to Emacs and, if so, how?

Lastly, is there a way to determine which functions can be invoked with
"M-X <function>" and which must be invoked with "eval-expression" (or an
equivalent)?  Does use of the "interactive" call in a function determine
this property?  Sometimes I run "describe-function" on something that
catches my eye only to find out it can't be interactively invoked.
Perhaps <help>-d and <help>-k could distinguish this information?

Any comments are appreciated!!

scott

PS - Lynn... the "Tymnet" domain in "figmo@tymix.Tymnet" is not recognized
     by most mailers; you may want to add a valid "reply-to" field to your
     messages.

mikem@wisc-stat.arpa (05/01/85)

From: Mike Meyer <mikem@wisc-stat.arpa>
larus%ucbdali@berkeley laso has a version of MHE for gnu-emacs.  You
might waht to get together with him to save some effort.
--Mike

crl@purdue-newton (05/07/85)

From: crl@purdue-newton
(I am not a designer or maintainer of GNU EMACS, although I have been
recently working heavily with it, and understand most of it.  Therefore,
my comments may not agree with those of the authors.)

There is currently not a very good way around the problem with the help
strings regarding key bindings.  The best way around this is to use
some sort  of escape mechanism in the documentation strings ala ITS
EMACS.  The way this works is as follows.  If you want to refer to a
function, say "save-buffer", you have a documentation string such as:
	"To save the changes, type \\[save-buffer\\]"
The help commands then key on the \\[ \\] strings and replace it with
whatever is currently bound like "^X^S" or if not bound "M-x
save-buffer".  The more I think about it, the easier it sounds.  Maybe
I'll take a crack at it sometime soon.

I have found that etags does not work on .el files.  I think that this
is due to not recognizing the .el extension.  I'll have to look at it
sometime.

It is indeed the (interactive) call that makes a function interactively
callable, i.e., by M-x or keystroke.  (commandp FUNCTION) is t if so,
and indeed Help could show this somehow.

As a side note, I am currently almost finished rewriting the MHI package
from Gosling Mocklisp that interacts with the MH ver 5 Mail System.
I'll turn it over to everyone "real soon now".

Charles LaBrec
crl @ purdue-newton.ARPA
(an EMACS hacker from way back who still fondly remembers TECO)