Trailing-Edge - PDP-10 Archives - 6.1_emacs_manuals_1er - emacs/
There is 1 other file named in the archive. Click here to see a list.
**** Note -  Incompatible changes are indicated by "**)" at beginning of item:

*) Extended command name changes:

M-X Occur    ->    M-X List Matching Lines
M-X How Many   ->  M-X Count Occurrences
M-X Keep Lines ->  M-X Delete Non-Matching Lines
M-X Flush Lines -> M-X Delete Matching Lines
M-X View Available Space -> M-X What Available Space

  The old names (on the left) will still be accepted.

*) The function names ^R Set Bounds Region, ^R Set Bounds Full,
and ^R Set Bounds Page have been changed.  The new function names are:
^R Narrow Bounds to Region, ^R Widen Bounds, and ^R Narrow Bounds to Page.
The old names still work, for now.  The purpose is to make the functions
show up when expected in an Apropos.

*) You can now turn auto save mode on and off safely by setting the
variable Auto Save Mode.  This is compatible with all other minor modes.

*) The mode line says "narrow" when you have narrowed down.

**) Visit File Save Old now controls whether visiting a new file causes
the old one to be saved.  If this variable is zero, the old file is
not saved.  If it is -1, then the old file is automatically saved.  If
the variable is 1, then you are asked whether to save.  The default
value is 1.  This variable replaces the old distinction between C-X
C-R and C-X C-V, which are now identical commands.

*) The variable Inhibit Write is no longer used for anything, though
it still exists to keep some old programs from bombing.  Find File
Inhibit Write no longer exists at all.

**) True read-only visiting is now implemented.  An argument to the
file-visiting command (C-X C-V or C-X C-F) is used to request this.
Either the buffer or the file can be read-only.  A read-only buffer
means that you can't insert or delete anything.  A read-only file
means you can change the text in the buffer, but it will not be saved
in the file unless you insist.  To insist, you type C-X C-S and answer
"Y" to confirm; absolutely nothing else will cause the read-only file
to be saved.

Normally what you get is a read-only file, whose buffer can be edited.
The command C-X C-Q (^R Set Read-Only File) can be used to switch
between the three modes (ordinary, read-only buffer, and read-only

*) New self-documentation for recursive editing levels.
When you are inside a recursive editing level, Help ? mentions this
and tells you how to abort and how to exit, as well as listing the
Help options available.  A new Help option, Help R, gives the full
description of the command that got you into the recursive editing

*) If the variable Auto Save All Buffers is nonzero, each auto save
will save whichever buffers need to be saved.  It is up to you to make
sure that the buffers are saved in different places, either by using
Auto Save Visited File, or by giving each buffer a different value of
Auto Save Filename (perhaps automatically in a Buffer Creation Hook).

*) EMACS remembers the current version number of each visited file,
and displays this in the mode line and in the printout from List

*) The Delete File command asks for confirmation if it is not sure
that you know what default filenames were applied to the filename you

*) M-X View Available Space prints out how many pages of space are
available in EMACS for more buffers or more libraries.

*) The character "#" now has the syntax of a prefix character in Lisp

*) ^R Indent for Comment now does not move comments that start with a
single semicolon in column 0.

*** Customization ***

**) The format of EVARS files and local mode lines has been changed to
allow variable values to be multi-line strings.

The value specified for a variable should now be either a number or a
string enclosed in doublequote characters.  Indentation before the
number or before the string is ignored.  To include a doublequote
character in the contents of the string, quote it with a  character.

Except for peculiar cases, old EVARS files and local modes lists still
work.  Peculir cases include string values which happen to begin with
spaces followed by a doublequote, or spaces followed by a digit.

The change applies only to values of variables.  Lines which specify
definitions for command characters are still single lines of TECO

*) So that certain common forms of customization will not need to use
FS flags, there are now variables which you can use instead of certain
FS flags which people often set.  Setting the variable sets the FS
flag.  Setting the FS flag explicitly also works, but the value of the
variable does not change, so it is best not to mix the two styles of

Here is a complete list of variables which control FS flags.  Not all
of these are new.

Auto Save Interval		FS ^R MDLY
Bottom Display Margin		FS %BOTTOM
Case Search			FS BOTHCASE
Cursor Centering Point		FS %CENTER
Display Mode Line Inverse	FS INVMOD
Display Overprinting		FS ^H PRINT and FS ^M PRINT
Echo Area Height		FS ECHO LINES
End of Buffer Display Margin	FS %END
Error Messages in Echo Area	FS ECHO ERRORS
Fill Column			FS ADLINE
Overwrite Mode			FS ^R REPLACE
SAIL Character Mode		FS SAIL
System Output Holding		FS TT PAGE (Twenex only)
Top Display Margin		FS %TOP

*** Extension ***

**) The format of the value of the variable Prefix Char List is
changed.  This should only affect people who create their own prefix
characters.  The purpose of the change is to allow for prefix
characters whose dispatch tables are kept in variables rather than in
q-registers.  The new format of the value is: any number of lines,
with a CRLF after each line, one line per prefix character.
Each line contains the name to be printed for the prefix character,
followed by two spaces, and the TECO expression which evaluates to the
dispatch table for the prefix character.  Look at the initial value of
this variable if this is not clear.

**) & Exit EMACS now calls the Exit Hook in addition to auto saving and
optional explicit saving.  The Exit Hook used to override them.

*) The TECO feature FS SUPERIOR is now fully exploited by EMACS.
Superiors can tell an EMACS to make space in the buffer, or to visit a
file, by following the protocol described near the end of TECORD.

*) M-X Describe can be given a precomma argument, which should be the
character number of a ^R command being described.  This is passed
along to any documentation-macros contained in the documentation

*) FS TAB WIDTH now controls the distance between tab stops on
display.  By setting this to 10, you can view a file the way it would
look on Multics.

*) On Twenex, Return from Inferior Hook is called on return from an
inferior if Exit Hook is called before starting the inferior.

**** The remainder of this file is mainly for LISP users ****

*) A new Lisp indentation style is in use.
The changes have been provided for the following reasons:

 * To increase the ease with which stylized ``LispMachine-style'' Lisp 
   indentation can be obtained in a user-programmable way.

 * To lessen loss of screen space due to indentation. This indenter is much 
   more conservative about the amount of indent it gives to many kinds of

 * To enhance error checking. Many kinds of Lisp forms (DO, PROG,
   LET, LAMBDA, ...) have some number of leading forms, treated specially,
   followed by some trailing forms, called the body. Common forms of this
   type will now have expressions in their bodies indented slightly 
   differently than their leading expressions to accentuate the separation.
		(DO ((X 0 (1+ X)))
		    ((= X 10.))
		  (PRINT X))

What follows is information about how customized indentation.

* How Indentation is Decided

  The old indentation algorithm is first run, and a tentative indentation
  is computed. Then a hook is run to allow selection of a different 
  indentation if appropriate.

* User-Level Variables

  Lisp ... Indent where the '...' is replaced by the name of a Lisp operator,
	defines a special indentation method for that operator. Eg,
	Lisp PROG Indent controls how PROG's indent. The value of variables
	may be a string, in which case they will be called to compute
	the indentation (argument conventions and return values to be discussed
	later) or a number indicating one of several common operations.

	      n				description

	  -4 or less	undefined
	  -3		don't indent any special way unless the value of
			 Lisp Indent DEFanything dictates that we should.
			 This is the default for unknown functions.
	  -2		don't indent any special way.
	  -1		indent as a DEF-form. If this is the 2nd line of the
			 definition, indent specially. Otherwise, indent under
			 preceding line.
	   0 or more	indent as a special form, assuming that this form
			 has n leading expressions before its body. (eg, LET
			 and LAMBDA have 1 special expression for the bound
			 variable list, PROGN has none, DO has 2). These
			 special fields are indented normally. The first 
			 expression following these special ones is indented
			 specially. Expressions after that are indented 
			 under the previous line as normal.

	The variable Lisp PROG Indent is initially defined to run code so that PROG
	tags can line up right-justified. Variables corresponding to several
	of the common Lisp special forms are set up with non-negative values 
	corresponding to the indentation style suggested by their semantics.

  Lisp Indent DEFanything, if nonzero, will cause all operator names
	beginning with 'DEF' to default to definitional form style indentation
	(corresponding to a Lisp DEF... Indent variable of -1). Setting this
	to 0 will cause 'DEF...' operators to be indented specially only if
	they have associated Lisp ... Indent variables set up to cause such
	special indentation.

  Lisp Indent Offset (default 0), if nonzero, indent this many columns past
	the most recent unclosed "(" rather than worrying about indentation
	relative to arguments (this also bypasses special form hackery).
	If 0, normal Lispy indentation rules apply.

	NOTE: Although this variable has been present for a long time,
	      it has changed slightly. It used to measure offset from the 
	      right side of the paren. Now it measures offset from the left
	      of the paren. The change was made to provide greater flexibility
	      since formerly it was impossible to say you wanted to indent
	      just after the hanging open paren. 

  Lisp Special Indent Offset (default 2), is the offset from the hanging
	"(" which special form indentation uses. Eg, with the default setting,
	Emacs will indent under the "E" of "DEFUN".
* Low-Level Variables (primarily of interest to Emacs implementors)

  Lisp Indent Language contains a string (default "LISP") which is used
	to decide which lisp-like language is to be used. Other hooks key
	off of this string; ie, if the Indent Language is LISP, variables
	like LISP Indent Offset and Lisp PROG Indent will be looked for.
	If the language were Muddle, variables such as Muddle Indent Offset and
	Muddle PROG Indent would be looked for instead. Currently, Muddle mode
	doesn't use this feature, but perhaps it will in the near future.

	In the remainder of this description, only Lisp ... variables
	since they are the only ones which are currently useful to most users,
	but implementors should bear in mind that similar variables for
	other dialects may be defined if a local variable
	Lisp Indent Language is created with the appropriate dialect
	name as its contents.

  Lisp Indentation Hook holds the function which tries to determine how
	special forms should be indented. All of the effects described
	farther down in this description are dependent on its containing
	the default value. If you do not like the action of this hook,
	you may wish to put a null string in this variable to keep it 
	from doing anything -- effectively nullifying most of the changes
	described in this text.

* Extension Conventions (for sophisticated users only)

  Lisp Indentation Hook (or Muddle Indentation Hook or ...) must be 
	defined and must contain a string. Its args (,) are the
	position in the buffer of the most recent unclosed "(" and
	the buffer position of the beginning of the line to be indented.
	The buffer position of the cursor at the time the tab was typed
	is stored as an offset from Z in qZ, so Z-qZ is that buffer position.
	The hook should NOT modify the buffer. If it returns 0 or no value,
	it will be assumed that the horizontal cursor position (given by
	fsshpos) is to be used as the indetnation level. Hence, to indent
	under the "O" in PROG, it is sufficient to jump to that character in
	the buffer and return. Replacement of the pointer to the appropriate
	line will happen automatically later. If it returns nonzero, that
	value will be assumed to be the desired indentation. Returning
	negative values is undefined.

  Lisp ... Indent variables containing strings to be executed observe the
	same argument conventions as the Lisp Indentation Hook would.