summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1994-05-21 02:28:15 +0000
committerRichard M. Stallman <rms@gnu.org>1994-05-21 02:28:15 +0000
commit574efc83870d19cb039342fae76543a2652d8aa8 (patch)
tree342c086c09cfee1aa29778c76f55daf3870f064b
parent5632e6b46b3aef91634f9bb7c96c09654d6a63e9 (diff)
downloademacs-574efc83870d19cb039342fae76543a2652d8aa8.tar.gz
*** empty log message ***
-rw-r--r--lispref/anti.texi43
-rw-r--r--lispref/internals.texi60
-rw-r--r--lispref/tips.texi32
3 files changed, 86 insertions, 49 deletions
diff --git a/lispref/anti.texi b/lispref/anti.texi
index c42982ce8fb..5f6b9286bfc 100644
--- a/lispref/anti.texi
+++ b/lispref/anti.texi
@@ -91,18 +91,23 @@ You'll have to write programs specially to use it, though.
As a result, certain macros, functions, and predicates no longer handle
specifications for floating point numbers.
+@itemize @bullet
+@item
The function @code{string-to-number}, the predicate @code{floatp}, and
the variable @code{float-output-format} have all been eliminated.
+@item
The functions @code{float}, @code{truncate}, @code{floor}, @code{ceil},
@code{round}, and @code{logb} do not exist; neither do the functions
@code{abs}, @code{cos}, @code{sin}, @code{tan}, @code{acos},
@code{asin}, @code{atan}, @code{exp}, @code{expt}, @code{log10},
@code{log}, or @code{sqrt}.
+@item
The @code{format} function no longer handles the specifications
@samp{%e}, @samp{%f} and @samp{%g} for printing floating point numbers;
likewise for @code{message}.
+@end bullet
@section Changes in Basic Editing Functions
@@ -169,6 +174,8 @@ We eliminated text properties.
Many file-related functions have been eliminated or simplified. Here is
a basic listing of these functions.
+@itemize @bullet
+@item
The functions @code{file-accessible-directory-p}, @code{file-truename},
@code{make-directory}, @code{delete-directory},
@code{set-visited-file-modtime}, @code{directory-abbrev-alist},
@@ -177,17 +184,22 @@ The functions @code{file-accessible-directory-p}, @code{file-truename},
@code{set-default-file-modes}, @code{default-file-modes}, and
@code{unix-sync} have been eliminated.
+@item
We got rid of the ``initial file name'' argument to
@code{read-file-name}.
+@item
Additionally, we removed the 12th element from the list returned by
@code{file-attributes}.
+@item
@code{directory-files} always sorts the list of files. It's not user
friendly to process the files in any haphazard order.
+@item
We eliminated the variables @code{write-contents-hooks} and
@code{local-write-file-hooks}.
+@end bullet
@section Making Certain File Names ``Magic''
@@ -207,7 +219,7 @@ of creeping featurism.
@itemize @bullet
@item
The functions @code{mouse-position} and @code{set-mouse-position}, and
-the special form @code{track-mouse} have been eliminated.
+the special form @code{track-mouse}, have been eliminated.
@item
Likewise, the functions @code{x-set-selection}, @code{x-set-cut-buffer},
@@ -334,7 +346,7 @@ accept strings.
We removed the @code{read-event}, @code{event-start},
@code{posn-window}, @code{posn-point}, @code{posn-col-row},
@code{posn-timestamp}, @code{scroll-bar-scale}, and @code{event-end}
-functions, since they were only useful for non-character events.
+functions, since they were useful only for non-character events.
@item
We removed the @code{unread-command-events} and @code{last-event-frame}
@@ -357,29 +369,39 @@ same encoding used in strings: 128 plus the corresponding non-Meta
@section Menus
+@itemize @bullet
+@item
You can no longer define menus as keymaps; good system design requires
crafting a special-purpose interface for each facility, so it can
precisely fit the requirements of that facility. We decided that
unifying keymaps and menus was simply too much of a strain.
-In Emacs 18, you can only activate menus with the mouse. Using them
+@item
+In Emacs 18, you can activate menus only with the mouse. Using them
with a keyboard was too confusing for too many users.
+@item
Emacs 18 has no menu bars. All functions and variables related to the
menu bar have been eliminated.
+@end bullet
@section Changes in Minibuffer Features
+@itemize @bullet
+@item
The minibuffer history feature has been eliminated. Thus, we removed
the optional argument @var{hist} from the minibuffer input functions
@code{read-from-minibuffer} and @code{completing-read}.
+@item
The @var{initial} argument to @code{read-from-minibuffer} and other
minibuffer input functions can no longer be a cons cell
@code{(@var{string} . @var{position})}.
+@item
In the function @code{read-no-blanks-input}, the @var{initial} argument
is no longer optional.
+@end bullet
@section New Features for Defining Commands
@@ -399,15 +421,20 @@ special meaning.
@section Removed Features for Reading Input
+@itemize @bullet
+@item
We removed the third argument (@var{meta}) from the function
@code{set-input-mode}. Consequently, we added the variable
@code{meta-flag}; set it to @code{t} to enable use of a Meta key, and
to @code{nil} to disable it. (Those are the only two alternatives.)
+@item
We also removed the variable @code{extra-keyboard-modifiers}.
+@item
We removed the function @code{keyboard-translate} and the variables
@code{num-input-keys} and @code{function-key-map}.
+@end itemize
@section Removed Syntax Table Features
@@ -427,10 +454,13 @@ We abolished the variable @code{words-include-escapes}.
@section The Case Table
+@itemize @bullet
+@item
Case tables do not exist in Emacs 18. Due to this change, we have
removed the associated functions @code{set-standard-case-table},
@code{standard-case-table}, @code{current-case-table},
@code{set-case-table}, and @code{set-case-syntax-pair}.
+@end itemize
@section Features for Dealing with Buffers
@@ -480,11 +510,12 @@ is local in the current buffer.
@section Features for Subprocesses
+@itemize @bullet
+@item
@code{call-process} and @code{call-process-region} no longer indicate
the termination status of the subprocess. We call on users to have faith
that the subprocess executed properly.
-@itemize
@item
The standard asynchronous subprocess features do not work on VMS;
instead, special VMS asynchronous subprocess functions have been added.
@@ -540,11 +571,15 @@ We removed the variable @code{command-debug-status} and the function
@section Memory Allocation Changes
+@itemize @bullet
+@item
We removed the function @code{memory-limit}.
+@item
The list returned by @code{garbage-collect} no longer contains an
element to describe floating point numbers, since there aren't any
floating point numbers in Emacs 18.
+@end itemize
@section Hook Changes
diff --git a/lispref/internals.texi b/lispref/internals.texi
index ec05340fb5d..8f15e308ad4 100644
--- a/lispref/internals.texi
+++ b/lispref/internals.texi
@@ -39,12 +39,12 @@ routines, but not the editing commands.
the real runnable Emacs executable. These arguments direct
@file{temacs} to evaluate the Lisp files specified in the file
@file{loadup.el}. These files set up the normal Emacs editing
-environment, resulting in an Emacs which is still impure but no longer
+environment, resulting in an Emacs that is still impure but no longer
bare.
It takes a substantial time to load the standard Lisp files. Luckily,
you don't have to do this each time you run Emacs; @file{temacs} can
-dump out an executable program called @file{emacs} which has these files
+dump out an executable program called @file{emacs} that has these files
preloaded. @file{emacs} starts more quickly because it does not need to
load the files. This is the Emacs executable that is normally
installed.
@@ -64,7 +64,7 @@ extra time is not too severe a problem.
@cindex @file{site-load.el}
You can specify additional files to preload by writing a library named
-@file{site-load.el} which loads them. You may need to increase the
+@file{site-load.el} that loads them. You may need to increase the
value of @code{PURESIZE}, in @file{src/puresize.h}, to make room for the
additional files. (Try adding increments of 20000 until it is big
enough.) However, the advantage of preloading additional files
@@ -134,7 +134,8 @@ which reduces their usefulness at present, but we hope they will be
convenient in the future.
@defvar emacs-major-version
-The major version number of Emacs, as an integer.
+The major version number of Emacs, as an integer. For Emacs version
+19.23, the value is 19.
@end defvar
@defvar emacs-minor-version
@@ -148,14 +149,14 @@ The minor version number of Emacs, as an integer. For Emacs version
Emacs Lisp uses two kinds of storage for user-created Lisp objects:
@dfn{normal storage} and @dfn{pure storage}. Normal storage is where
-all the new data which is created during an Emacs session is kept; see
-the following section for information on normal storage. Pure storage
-is used for certain data in the preloaded standard Lisp files---data
-that should never change during actual use of Emacs.
+all the new data created during an Emacs session is kept; see the
+following section for information on normal storage. Pure storage is
+used for certain data in the preloaded standard Lisp files---data that
+should never change during actual use of Emacs.
Pure storage is allocated only while @file{temacs} is loading the
standard preloaded Lisp libraries. In the file @file{emacs}, it is
-marked as read-only (on operating systems which permit this), so that
+marked as read-only (on operating systems that permit this), so that
the memory space can be shared by all the Emacs jobs running on the
machine at once. Pure storage is not expandable; a fixed amount is
allocated when Emacs is compiled, and if that is not sufficient for the
@@ -221,26 +222,26 @@ might be a more intuitive metaphor for this facility.)
The garbage collector operates by finding and marking all Lisp objects
that are still accessible to Lisp programs. To begin with, it assumes
all the symbols, their values and associated function definitions, and
-any data presently on the stack, are accessible. Any objects which can
+any data presently on the stack, are accessible. Any objects that can
be reached indirectly through other accessible objects are also
accessible.
When marking is finished, all objects still unmarked are garbage. No
matter what the Lisp program or the user does, it is impossible to refer
to them, since there is no longer a way to reach them. Their space
-might as well be reused, since no one will miss them. The second,
-``sweep'' phase of the garbage collector arranges to reuse them.
+might as well be reused, since no one will miss them. The second
+(``sweep'') phase of the garbage collector arranges to reuse them.
@cindex free list
The sweep phase puts unused cons cells onto a @dfn{free list}
for future allocation; likewise for symbols and markers. It compacts
the accessible strings so they occupy fewer 8k blocks; then it frees the
-other 8k blocks. Vectors, buffers, windows and other large objects are
+other 8k blocks. Vectors, buffers, windows, and other large objects are
individually allocated and freed using @code{malloc} and @code{free}.
@cindex CL note---allocate more storage
@quotation
-@b{Common Lisp note:} unlike other Lisps, GNU Emacs Lisp does not
+@b{Common Lisp note:} Unlike other Lisps, GNU Emacs Lisp does not
call the garbage collector when the free list is empty. Instead, it
simply requests the operating system to allocate more storage, and
processing continues until @code{gc-cons-threshold} bytes have been
@@ -333,7 +334,7 @@ called.
The initial threshold value is 100,000. If you specify a larger
value, garbage collection will happen less often. This reduces the
amount of time spent garbage collecting, but increases total memory use.
-You may want to do this when running a program which creates lots of
+You may want to do this when running a program that creates lots of
Lisp data.
You can make collections more frequent by specifying a smaller value,
@@ -469,11 +470,11 @@ should be a single sentence.
name list that every C function must have, followed by ordinary C
declarations for the arguments. For a function with a fixed maximum
number of arguments, declare a C argument for each Lisp argument, and
-give them all type @code{Lisp_Object}. If the function has no upper
-limit on the number of arguments in Lisp, then in C it receives two
-arguments: the first is the number of Lisp arguments, and the second is
-the address of a block containing their values. They have types
-@code{int} and @w{@code{Lisp_Object *}}.
+give them all type @code{Lisp_Object}. When a Lisp function has no
+upper limit on the number of arguments, its implementation in C actually
+receives exactly two arguments: the first is the number of Lisp
+arguments, and the second is the address of a block containing their
+values. They have types @code{int} and @w{@code{Lisp_Object *}}.
Within the function @code{For} itself, note the use of the macros
@code{GCPRO1} and @code{UNGCPRO}. @code{GCPRO1} is used to ``protect''
@@ -524,8 +525,8 @@ file, add to it a @code{syms_of_@var{filename}} (e.g.,
of these functions are called, and add a call to
@code{syms_of_@var{filename}} there.
- This function @code{syms_of_@var{filename}} is also the place to
-define any C variables which are to be visible as Lisp variables.
+ The function @code{syms_of_@var{filename}} is also the place to define
+any C variables that are to be visible as Lisp variables.
@code{DEFVAR_LISP} makes a C variable of type @code{Lisp_Object} visible
in Lisp. @code{DEFVAR_INT} makes a C variable of type @code{int}
visible in Lisp with a value that is always an integer.
@@ -643,7 +644,7 @@ Many are accessible indirectly in Lisp programs via Lisp primitives.
@table @code
@item name
-The buffer name is a string which names the buffer. It is guaranteed to
+The buffer name is a string that names the buffer. It is guaranteed to
be unique. @xref{Buffer Names}.
@item save_modified
@@ -696,7 +697,7 @@ gap, must check each of these markers and perhaps update it.
@xref{Markers}.
@item backed_up
-This field is a flag which tells whether a backup file has been made
+This field is a flag that tells whether a backup file has been made
for the visited file of this buffer.
@item mark
@@ -744,7 +745,7 @@ The frame that this window is on.
Non-@code{nil} if this window is a minibuffer window.
@item buffer
-The buffer which the window is displaying. This may change often during
+The buffer that the window is displaying. This may change often during
the life of the window.
@item dedicated
@@ -756,7 +757,7 @@ This is the value of point in the current buffer when this window is
selected; when it is not selected, it retains its previous value.
@item start
-he position in the buffer which is the first character to be displayed
+The position in the buffer that is the first character to be displayed
in the window.
@item force_start
@@ -806,7 +807,7 @@ to a window's parent.
Parent windows do not display buffers, and play little role in display
except to shape their child windows. Emacs Lisp programs usually have
no access to the parent windows; they operate on the windows at the
-leaves of the tree, that actually display buffers.
+leaves of the tree, which actually display buffers.
@item hscroll
This is the number of columns that the display in the window is scrolled
@@ -869,8 +870,9 @@ A flag, non-@code{nil} if this is really a child process.
It is @code{nil} for a network connection.
@item mark
-A marker indicating the position of end of last output from this process
-inserted into the buffer. This is usually the end of the buffer.
+A marker indicating the position of the end of the last output from this
+process inserted into the buffer. This is often but not always the end
+of the buffer.
@item kill_without_query
If this is non-@code{nil}, killing Emacs while this process is still
diff --git a/lispref/tips.texi b/lispref/tips.texi
index e4c2a9f9c12..dbb04e071d1 100644
--- a/lispref/tips.texi
+++ b/lispref/tips.texi
@@ -144,10 +144,10 @@ always, @code{forward-line} is more convenient as well as more
predictable and robust. @xref{Text Lines}.
@item
-Don't use functions that set the mark in your Lisp code (unless you are
-writing a command to set the mark). The mark is a user-level feature,
-so it is incorrect to change the mark except to supply a value for the
-user's benefit. @xref{The Mark}.
+Don't call functions that set the mark, unless setting the mark is one
+of the intended features of your program. The mark is a user-level
+feature, so it is incorrect to change the mark except to supply a value
+for the user's benefit. @xref{The Mark}.
In particular, don't use these functions:
@@ -228,7 +228,7 @@ Function calls are slow in Emacs Lisp even when a compiled function
is calling another compiled function.
@item
-Using the primitive list-searching functions @code{memq}, @code{assq} or
+Using the primitive list-searching functions @code{memq}, @code{assq}, or
@code{assoc} is even faster than explicit iteration. It may be worth
rearranging a data structure so that one of these primitive search
functions can be used.
@@ -273,7 +273,7 @@ the speed. @xref{Inline Functions}.
@itemize @bullet
@item
-Every command, function or variable intended for users to know about
+Every command, function, or variable intended for users to know about
should have a documentation string.
@item
@@ -282,12 +282,12 @@ string, and you can save space by using a comment instead.
@item
The first line of the documentation string should consist of one or two
-complete sentences which stand on their own as a summary. @kbd{M-x
+complete sentences that stand on their own as a summary. @kbd{M-x
apropos} displays just the first line, and if it doesn't stand on its
own, the result looks bad. In particular, start the first line with a
capital letter and end with a period.
-The documentation string can have additional lines which expand on the
+The documentation string can have additional lines that expand on the
details of how to use the function or variable. The additional lines
should be made up of complete sentences also, but they may be filled if
that looks good.
@@ -316,7 +316,7 @@ Do not start or end a documentation string with whitespace.
@item
Format the documentation string so that it fits in an Emacs window on an
-80 column screen. It is a good idea for most lines to be no wider than
+80-column screen. It is a good idea for most lines to be no wider than
60 characters. The first line can be wider if necessary to fit the
information that ought to be there.
@@ -334,8 +334,8 @@ starting double-quote is not part of the string!
@item
A variable's documentation string should start with @samp{*} if the
variable is one that users would often want to set interactively. If
-the value is a long list, or a function, or if the variable would only
-be set in init files, then don't start the documentation string with
+the value is a long list, or a function, or if the variable would be set
+only in init files, then don't start the documentation string with
@samp{*}. @xref{Defining Variables}.
@item
@@ -413,7 +413,7 @@ Lisp mode and related modes, the @kbd{M-;} (@code{indent-for-comment})
command automatically inserts such a @samp{;} in the right place, or
aligns such a comment if it is already present.
-(The following examples are taken from the Emacs sources.)
+This and following examples are taken from the Emacs sources.
@smallexample
@group
@@ -444,7 +444,7 @@ Every function that has no documentation string (because it is use only
internally within the package it belongs to), should have instead a
two-semicolon comment right before the function, explaining what the
function does and how to call it properly. Explain precisely what each
-argument means and how the function interprets its possible value.
+argument means and how the function interprets its possible values.
@item ;;;
Comments that start with three semicolons, @samp{;;;}, should start at
@@ -460,7 +460,7 @@ For example:
@end group
@end smallexample
-Another use for triple-semicolon comments is for commenting out line
+Another use for triple-semicolon comments is for commenting out lines
within a function. We use triple-semicolons for this precisely so that
they remain at the left margin.
@@ -485,7 +485,7 @@ program. For example:
The indentation commands of the Lisp modes in Emacs, such as @kbd{M-;}
(@code{indent-for-comment}) and @key{TAB} (@code{lisp-indent-line})
automatically indent comments according to these conventions,
-depending on the the number of semicolons. @xref{Comments,,
+depending on the number of semicolons. @xref{Comments,,
Manipulating Comments, emacs, The GNU Emacs Manual}.
@node Library Headers
@@ -512,7 +512,7 @@ them. This section explains these conventions. First, an example:
;; Keywords: docs
;; This file is part of GNU Emacs.
-@var{copying conditions}@dots{}
+@var{copying permissions}@dots{}
@end group
@end smallexample