From b57bdd74720b691421e35d705324d1e5834371e4 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 14 Feb 2005 10:05:53 +0000 Subject: (Byte Compilation): Delete 19.29 info. (Compilation Functions): Macros' difficulties don't affect defsubst. (Docs and Compilation): Delete 19.29 info. --- lispref/compile.texi | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) (limited to 'lispref') diff --git a/lispref/compile.texi b/lispref/compile.texi index 6c28708bdf..91c0661a99 100644 --- a/lispref/compile.texi +++ b/lispref/compile.texi @@ -27,17 +27,7 @@ results compatible with running the same file without compilation. @xref{Loading Non-ASCII}. In general, any version of Emacs can run byte-compiled code produced -by recent earlier versions of Emacs, but the reverse is not true. A -major incompatible change was introduced in Emacs version 19.29, and -files compiled with versions since that one will definitely not run -in earlier versions unless you specify a special option. -@iftex -@xref{Docs and Compilation}. -@end iftex -In addition, the modifier bits in keyboard characters were renumbered in -Emacs 19.29; as a result, files compiled in versions before 19.29 will -not work in subsequent versions if they contain character constants with -modifier bits. +by recent earlier versions of Emacs, but the reverse is not true. @vindex no-byte-compile If you do not want a Lisp file to be compiled, ever, put a file-local @@ -122,6 +112,9 @@ macros must already be defined for proper compilation. For more details, see @ref{Compiling Macros}. If a program does not work the same way when compiled as it does when interpreted, erroneous macro definitions are one likely cause (@pxref{Problems with Macros}). +Inline (@code{defsubst}) functions are less troublesome; if you +compile a call to such a function before its definition is known, the +call will still work right, it will just run slower. Normally, compiling a file does not evaluate the file's contents or load the file. But it does execute any @code{require} calls at top @@ -313,14 +306,13 @@ directory where you built it, you will experience this problem occasionally if you edit and recompile Lisp files. When it happens, you can cure the problem by reloading the file after recompiling it. - Byte-compiled files made with recent versions of Emacs (since 19.29) -will not load into older versions because the older versions don't -support this feature. You can turn off this feature at compile time by -setting @code{byte-compile-dynamic-docstrings} to @code{nil}; then you -can compile files that will load into older Emacs versions. You can do -this globally, or for one source file by specifying a file-local binding -for the variable. One way to do that is by adding this string to the -file's first line: + You can turn off this feature at compile time by setting +@code{byte-compile-dynamic-docstrings} to @code{nil}; this is useful +mainly if you expect to change the file, and you want Emacs processes +that have already loaded it to keep working when the file changes. +You can do this globally, or for one source file by specifying a +file-local binding for the variable. One way to do that is by adding +this string to the file's first line: @example -*-byte-compile-dynamic-docstrings: nil;-*- -- cgit v1.2.3 From 85831f9a60cca17cfe2fc201667c599091e9cc50 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 14 Feb 2005 10:07:43 +0000 Subject: (Combining Conditions): Wording cleanup. (Iteration): dolist and dotimes bind VAR locally. (Cleanups): Xref to Atomic Changes. --- lispref/control.texi | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'lispref') diff --git a/lispref/control.texi b/lispref/control.texi index e2a1e26b17..760e7bb82d 100644 --- a/lispref/control.texi +++ b/lispref/control.texi @@ -346,8 +346,8 @@ Here is a more realistic example of using @code{and}: Note that @code{(car foo)} is not executed if @code{(consp foo)} returns @code{nil}, thus avoiding an error. -@code{and} can be expressed in terms of either @code{if} or @code{cond}. -For example: +@code{and} expressions can also be written using either @code{if} or +@code{cond}. Here's how: @example @group @@ -476,11 +476,11 @@ write two common kinds of loops. @defmac dolist (var list [result]) body@dots{} @tindex dolist -This construct executes @var{body} once for each element of @var{list}, -using the variable @var{var} to hold the current element. Then it -returns the value of evaluating @var{result}, or @code{nil} if -@var{result} is omitted. For example, here is how you could use -@code{dolist} to define the @code{reverse} function: +This construct executes @var{body} once for each element of +@var{list}, binding the variable @var{var} locally to hold the current +element. Then it returns the value of evaluating @var{result}, or +@code{nil} if @var{result} is omitted. For example, here is how you +could use @code{dolist} to define the @code{reverse} function: @example (defun reverse (list) @@ -493,8 +493,8 @@ returns the value of evaluating @var{result}, or @code{nil} if @defmac dotimes (var count [result]) body@dots{} @tindex dotimes This construct executes @var{body} once for each integer from 0 -(inclusive) to @var{count} (exclusive), using the variable @var{var} to -hold the integer for the current iteration. Then it returns the value +(inclusive) to @var{count} (exclusive), binding the variable @var{var} +to the integer for the current iteration. Then it returns the value of evaluating @var{result}, or @code{nil} if @var{result} is omitted. Here is an example of using @code{dotimes} to do something 100 times: @@ -1167,7 +1167,10 @@ and their conditions. The @code{unwind-protect} construct is essential whenever you temporarily put a data structure in an inconsistent state; it permits -you to make the data consistent again in the event of an error or throw. +you to make the data consistent again in the event of an error or +throw. (Another more specific cleanup construct that is used only for +changes in buffer contents is the atomic change group; @ref{Atomic +Changes}.) @defspec unwind-protect body-form cleanup-forms@dots{} @cindex cleanup forms -- cgit v1.2.3 From 67bce69d3891bd210040baf8149b7f305f16c3f2 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 14 Feb 2005 10:11:48 +0000 Subject: (What Is a Function): Wording cleanup. (Function Documentation): Minor cleanup. Explain purpose of calling convention at end of doc string. (Function Names): Wording cleanup. (Calling Functions): Wording cleanup. Explain better how funcall calls the function. (Function Cells): Delete example of saving and redefining function. --- lispref/functions.texi | 86 ++++++++++++++++++++++---------------------------- 1 file changed, 37 insertions(+), 49 deletions(-) (limited to 'lispref') diff --git a/lispref/functions.texi b/lispref/functions.texi index 5c7433507b..26c2449fee 100644 --- a/lispref/functions.texi +++ b/lispref/functions.texi @@ -53,7 +53,7 @@ macros are not functions. @cindex built-in function A @dfn{primitive} is a function callable from Lisp that is written in C, such as @code{car} or @code{append}. These functions are also called -@dfn{built-in} functions or @dfn{subrs}. (Special forms are also +@dfn{built-in functions}, or @dfn{subrs}. (Special forms are also considered primitives.) Usually the reason we implement a function as a primitive is either @@ -412,13 +412,14 @@ are easier to access. because @code{apropos} displays just this first line. It should consist of one or two complete sentences that summarize the function's purpose. - The start of the documentation string is usually indented in the source file, -but since these spaces come before the starting double-quote, they are not part of -the string. Some people make a practice of indenting any additional -lines of the string so that the text lines up in the program source. -@emph{That is a mistake.} The indentation of the following lines is -inside the string; what looks nice in the source code will look ugly -when displayed by the help commands. + The start of the documentation string is usually indented in the +source file, but since these spaces come before the starting +double-quote, they are not part of the string. Some people make a +practice of indenting any additional lines of the string so that the +text lines up in the program source. @emph{That is a mistake.} The +indentation of the following lines is inside the string; what looks +nice in the source code will look ugly when displayed by the help +commands. You may wonder how the documentation string could be optional, since there are required components of the function that follow it (the body). @@ -438,9 +439,14 @@ text like this: @noindent following a blank line, at the beginning of the line, with no newline -following it inside the documentation string. This feature is -particularly useful for macro definitions. The @samp{\} is used to -avoid confusing the Emacs motion commands. +following it inside the documentation string. (The @samp{\} is used +to avoid confusing the Emacs motion commands.) The calling convention +specified in this way appears in help messages in place of the one +derived from the actual arguments of the function. + + This feature is particularly useful for macro definitions, since the +arguments written in a macro definition often do not correspond to the +way users think of the parts of the macro call. @node Function Names @section Naming a Function @@ -481,8 +487,8 @@ practice). We often identify functions with the symbols used to name them. For example, we often speak of ``the function @code{car}'', not distinguishing between the symbol @code{car} and the primitive -subr-object that is its function definition. For most purposes, there -is no need to distinguish. +subr-object that is its function definition. For most purposes, the +distinction is not important. Even so, keep in mind that a function need not have a unique name. While a given function object @emph{usually} appears in the function cell of only @@ -626,13 +632,12 @@ For example, evaluating the list @code{(concat "a" "b")} calls the function @code{concat} with arguments @code{"a"} and @code{"b"}. @xref{Evaluation}, for a description of evaluation. - When you write a list as an expression in your program, the function -name it calls is written in your program. This means that you choose -which function to call, and how many arguments to give it, when you -write the program. Usually that's just what you want. Occasionally you -need to compute at run time which function to call. To do that, use the -function @code{funcall}. When you also need to determine at run time -how many arguments to pass, use @code{apply}. + When you write a list as an expression in your program, you specify +which function to call, and how many arguments to give it, in the text +of the program. Usually that's just what you want. Occasionally you +need to compute at run time which function to call. To do that, use +the function @code{funcall}. When you also need to determine at run +time how many arguments to pass, use @code{apply}. @defun funcall function &rest arguments @code{funcall} calls @var{function} with @var{arguments}, and returns @@ -641,11 +646,12 @@ whatever @var{function} returns. Since @code{funcall} is a function, all of its arguments, including @var{function}, are evaluated before @code{funcall} is called. This means that you can use any expression to obtain the function to be -called. It also means that @code{funcall} does not see the expressions -you write for the @var{arguments}, only their values. These values are -@emph{not} evaluated a second time in the act of calling @var{function}; -@code{funcall} enters the normal procedure for calling a function at the -place where the arguments have already been evaluated. +called. It also means that @code{funcall} does not see the +expressions you write for the @var{arguments}, only their values. +These values are @emph{not} evaluated a second time in the act of +calling @var{function}; the operation of @code{funcall} is like the +normal procedure for calling a function, once its arguments have +already been evaluated. The argument @var{function} must be either a Lisp function or a primitive function. Special forms and macros are not allowed, because @@ -1137,30 +1143,12 @@ Here are examples of these uses: @end example @end defun - When writing a function that extends a previously defined function, -the following idiom is sometimes used: - -@example -(fset 'old-foo (symbol-function 'foo)) -(defun foo () - "Just like old-foo, except more so." -@group - (old-foo) - (more-so)) -@end group -@end example - -@noindent -This does not work properly if @code{foo} has been defined to autoload. -In such a case, when @code{foo} calls @code{old-foo}, Lisp attempts -to define @code{old-foo} by loading a file. Since this presumably -defines @code{foo} rather than @code{old-foo}, it does not produce the -proper results. The only way to avoid this problem is to make sure the -file is loaded before moving aside the old definition of @code{foo}. - - But it is unmodular and unclean, in any case, for a Lisp file to -redefine a function defined elsewhere. It is cleaner to use the advice -facility (@pxref{Advising Functions}). + @code{fset} is sometimes used to save the old definition of a +function before redefining it. That permits the new definition to +invoke the old definition. But it is unmodular and unclean for a Lisp +file to redefine a function defined elsewhere. If you want to modify +a function defined by another package, it is cleaner to use +@code{defadvice} (@pxref{Advising Functions}). @node Inline Functions @section Inline Functions -- cgit v1.2.3 From 38bf67d3aeae8223a01160a9c7f7f2bae4527521 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 14 Feb 2005 10:13:16 +0000 Subject: (Hash Tables): Add desc to menu items. (Creating Hash): Expain "full" means "make larger", (Hash Access): Any object can be a key. State value of maphash. --- lispref/hash.texi | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'lispref') diff --git a/lispref/hash.texi b/lispref/hash.texi index 107935f1ba..9343196a23 100644 --- a/lispref/hash.texi +++ b/lispref/hash.texi @@ -46,10 +46,10 @@ of object and are used only for recording interned symbols (@pxref{Creating Symbols}). @menu -* Creating Hash:: -* Hash Access:: -* Defining Hash:: -* Other Hash:: +* Creating Hash:: Functions to create hash tables. +* Hash Access:: Reading and writing the hash table contents. +* Defining Hash:: Defining new comparison methods +* Other Hash:: Miscellaneous. @end menu @node Creating Hash @@ -146,11 +146,11 @@ number. The default value is 1.5. @item :rehash-threshold @var{threshold} -This specifies the criterion for when the hash table is ``full.'' The -value, @var{threshold}, should be a positive floating point number, no -greater than 1. The hash table is ``full'' whenever the actual number of -entries exceeds this fraction of the nominal size. The default for -@var{threshold} is 0.8. +This specifies the criterion for when the hash table is ``full'' (so +it should be made larger). The value, @var{threshold}, should be a +positive floating point number, no greater than 1. The hash table is +``full'' whenever the actual number of entries exceeds this fraction +of the nominal size. The default for @var{threshold} is 0.8. @end table @end defun @@ -167,7 +167,9 @@ This function is obsolete. Use @code{make-hash-table} instead. @section Hash Table Access This section describes the functions for accessing and storing -associations in a hash table. +associations in a hash table. In general, any Lisp object can be used +as a hash key, unless the comparison method imposes limits. Any Lisp +object can also be used as the value. @tindex gethash @defun gethash key table &optional default @@ -210,7 +212,7 @@ table. This function calls @var{function} once for each of the associations in @var{table}. The function @var{function} should accept two arguments---a @var{key} listed in @var{table}, and its associated -@var{value}. +@var{value}. @code{maphash} returns @code{nil}. @end defun @node Defining Hash -- cgit v1.2.3 From 23e69ab14b523136d671c22da8ca8ba16bef89e9 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 14 Feb 2005 10:14:29 +0000 Subject: (List-related Predicates): Minor wording improvement. (Lists as Boxes): Node deleted. (Building Lists): Explain trivial cases of number-sequence. --- lispref/lists.texi | 104 +++++++---------------------------------------------- 1 file changed, 13 insertions(+), 91 deletions(-) (limited to 'lispref') diff --git a/lispref/lists.texi b/lispref/lists.texi index d30dcb0c27..1aafe2614c 100644 --- a/lispref/lists.texi +++ b/lispref/lists.texi @@ -86,100 +86,17 @@ cells. The @sc{cdr} of any nonempty list @var{l} is a list containing all the elements of @var{l} except the first. -@node Lists as Boxes -@comment node-name, next, previous, up -@section Lists as Linked Pairs of Boxes -@cindex box representation for lists -@cindex lists represented as boxes -@cindex cons cell as box - - A cons cell can be illustrated as a pair of boxes. The first box -represents the @sc{car} and the second box represents the @sc{cdr}. -Here is an illustration of the two-element list, @code{(tulip lily)}, -made from two cons cells: - -@example -@group - --------------- --------------- -| car | cdr | | car | cdr | -| tulip | o---------->| lily | nil | -| | | | | | - --------------- --------------- -@end group -@end example - - Each pair of boxes represents a cons cell. Each box ``refers to'', -``points to'' or ``holds'' a Lisp object. (These terms are -synonymous.) The first box, which describes the @sc{car} of the first -cons cell, contains the symbol @code{tulip}. The arrow from the -@sc{cdr} box of the first cons cell to the second cons cell indicates -that the @sc{cdr} of the first cons cell is the second cons cell. - - The same list can be illustrated in a different sort of box notation -like this: - -@example -@group - --- --- --- --- - | | |--> | | |--> nil - --- --- --- --- - | | - | | - --> tulip --> lily -@end group -@end example - - Here is a more complex illustration, showing the three-element list, -@code{((pine needles) oak maple)}, the first element of which is a -two-element list: - -@example -@group - --- --- --- --- --- --- - | | |--> | | |--> | | |--> nil - --- --- --- --- --- --- - | | | - | | | - | --> oak --> maple - | - | --- --- --- --- - --> | | |--> | | |--> nil - --- --- --- --- - | | - | | - --> pine --> needles -@end group -@end example - - The same list represented in the first box notation looks like this: - -@example -@group - -------------- -------------- -------------- -| car | cdr | | car | cdr | | car | cdr | -| o | o------->| oak | o------->| maple | nil | -| | | | | | | | | | - -- | --------- -------------- -------------- - | - | - | -------------- ---------------- - | | car | cdr | | car | cdr | - ------>| pine | o------->| needles | nil | - | | | | | | - -------------- ---------------- -@end group -@end example - @xref{Cons Cell Type}, for the read and print syntax of cons cells and lists, and for more ``box and arrow'' illustrations of lists. @node List-related Predicates @section Predicates on Lists - The following predicates test whether a Lisp object is an atom, is a -cons cell or is a list, or whether it is the distinguished object -@code{nil}. (Many of these predicates can be defined in terms of the -others, but they are used so often that it is worth having all of them.) + The following predicates test whether a Lisp object is an atom, +whether it is a cons cell or is a list, or whether it is the +distinguished object @code{nil}. (Many of these predicates can be +defined in terms of the others, but they are used so often that it is +worth having all of them.) @defun consp object This function returns @code{t} if @var{object} is a cons cell, @code{nil} @@ -749,9 +666,14 @@ This returns a list of numbers starting with @var{from} and incrementing by @var{separation}, and ending at or just before @var{to}. @var{separation} can be positive or negative and defaults to 1. If @var{to} is @code{nil} or numerically equal to @var{from}, -the one element list @code{(from)} is returned. If @var{separation} -is 0 and @var{to} is neither @code{nil} nor numerically equal to -@var{from}, an error is signaled. +the value is the one-element list @code{(@var{from})}. If @var{to} is +less than @var{from} with a positive @var{separation}, or greater than +@var{from} with a negative @var{separation}, the value is @code{nil} +because those arguments specify an empty sequence. + +If @var{separation} is 0 and @var{to} is neither @code{nil} nor +numerically equal to @var{from}, @code{number-sequence} signals an +error, since those arguments specify an infinite sequence. All arguments can be integers or floating point numbers. However, floating point arguments can be tricky, because floating point -- cgit v1.2.3 From 9e328e231a6f97b580de43102bf1730e4c4b9cbf Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 14 Feb 2005 10:16:24 +0000 Subject: (Autoload): defun's doc string overrides autoload's doc string. (Repeated Loading): Modernize "add to list" examples. (Where Defined): Finish updating table of load-history elts. --- lispref/loading.texi | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) (limited to 'lispref') diff --git a/lispref/loading.texi b/lispref/loading.texi index 61c5b13ca6..ecd0886849 100644 --- a/lispref/loading.texi +++ b/lispref/loading.texi @@ -365,10 +365,12 @@ one of these suffixes, and it will not load from a file whose name is just @var{filename} with no added suffix. The argument @var{docstring} is the documentation string for the -function. Normally, this should be identical to the documentation string -in the function definition itself. Specifying the documentation string -in the call to @code{autoload} makes it possible to look at the -documentation without loading the function's real definition. +function. Specifying the documentation string in the call to +@code{autoload} makes it possible to look at the documentation without +loading the function's real definition. Normally, this should be +identical to the documentation string in the function definition +itself. If it isn't, the function definition's documentation string +takes effect when it is loaded. If @var{interactive} is non-@code{nil}, that says @var{function} can be called interactively. This lets completion in @kbd{M-x} work without @@ -526,8 +528,7 @@ initialized. (@xref{Defining Variables}.) The simplest way to add an element to an alist is like this: @example -(setq minor-mode-alist - (cons '(leif-mode " Leif") minor-mode-alist)) +(push '(leif-mode " Leif") minor-mode-alist) @end example @noindent @@ -536,12 +537,15 @@ To avoid the problem, write this: @example (or (assq 'leif-mode minor-mode-alist) - (setq minor-mode-alist - (cons '(leif-mode " Leif") minor-mode-alist))) + (push '(leif-mode " Leif") minor-mode-alist)) @end example - To add an element to a list just once, you can also use @code{add-to-list} -(@pxref{Setting Variables}). +@noindent +or this: + +@example +(add-to-list '(leif-mode " Leif") minor-mode-alist) +@end example Occasionally you will want to test explicitly whether a library has already been loaded. Here's one way to test, in a library, whether it @@ -746,12 +750,12 @@ elements have these forms: @item @var{var} The symbol @var{var} was defined as a variable. @item (defun . @var{fun}) -The @var{fun} was defined by this library. +The function @var{fun} was defined. @item (t . @var{fun}) The function @var{fun} was previously an autoload before this library -redefined it as a function. The following element is always the -symbol @var{fun}, which signifies that the library defined @var{fun} -as a function. +redefined it as a function. The following element is always +@code{(defun . @var{fun}), which represents defining @var{fun} as a +function. @item (autoload . @var{fun}) The function @var{fun} was defined as an autoload. @item (require . @var{feature}) -- cgit v1.2.3 From e37d6e4c86bad93161edcc5f52594e6d26662eda Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 14 Feb 2005 10:17:32 +0000 Subject: (Text from Minibuffer): Minor clarification. Mention arrow keys. --- lispref/minibuf.texi | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'lispref') diff --git a/lispref/minibuf.texi b/lispref/minibuf.texi index 1455c63fe3..0e855b499a 100644 --- a/lispref/minibuf.texi +++ b/lispref/minibuf.texi @@ -111,7 +111,8 @@ was supplied when Emacs was started. Most often, the minibuffer is used to read text as a string. It can also be used to read a Lisp object in textual form. The most basic primitive for minibuffer input is @code{read-from-minibuffer}; it can do -either one. +either one. There are also specialized commands for reading +commands, variables, file names, etc. (@pxref{Completion}). In most cases, you should not call minibuffer input functions in the middle of a Lisp function. Instead, do all minibuffer input as part of @@ -234,9 +235,11 @@ default, it makes the following bindings: @code{abort-recursive-edit} @item @kbd{M-n} +@itemx @key{DOWN} @code{next-history-element} @item @kbd{M-p} +@itemx @key{UP} @code{previous-history-element} @item @kbd{M-s} -- cgit v1.2.3 From 4182ecfc37b3cf6051321ae7bef4e8a4dce1f94b Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 14 Feb 2005 10:19:36 +0000 Subject: (Integer Basics): Clarify radix explanation. (Predicates on Numbers): Minor clarification. (Comparison of Numbers): Minor clarification. Clarify eql. Typos in min, max. (Math Functions): Clarify overflow in expt. --- lispref/numbers.texi | 62 ++++++++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 28 deletions(-) (limited to 'lispref') diff --git a/lispref/numbers.texi b/lispref/numbers.texi index 53435da081..776251e493 100644 --- a/lispref/numbers.texi +++ b/lispref/numbers.texi @@ -73,14 +73,21 @@ initial sign and optional final period. @cindex hex numbers @cindex octal numbers @cindex reading numbers in hex, octal, and binary - In addition, the Lisp reader recognizes a syntax for integers in -bases other than 10: @samp{#B@var{integer}} reads @var{integer} in -binary (radix 2), @samp{#O@var{integer}} reads @var{integer} in octal -(radix 8), @samp{#X@var{integer}} reads @var{integer} in hexadecimal -(radix 16), and @samp{#@var{radix}r@var{integer}} reads @var{integer} -in radix @var{radix} (where @var{radix} is between 2 and 36, -inclusively). Case is not significant for the letter after @samp{#} -(@samp{B}, @samp{O}, etc.) that denotes the radix. + The syntax for integers in bases other than 10 uses @samp{#} +followed by a letter that specifies the radix: @samp{b} for binary, +@samp{o} for octal, @samp{x} for hex, or @samp{@var{radix}r} to +specify radix @var{radix}. Case is not significant for the letter +that specifies the radix. Thus, @samp{#b@var{integer}} reads +@var{integer} in binary, and @samp{#@var{radix}r@var{integer}} reads +@var{integer} in radix @var{radix}. Allowed values of @var{radix} run +from 2 to 36. For example: + +@example +#b101100 @result{} 44 +#o54 @result{} 44 +#x2c @result{} 44 +#24r1k @result{} 44 +@end example To understand how various functions work on integers, especially the bitwise operators (@pxref{Bitwise Operations}), it is often helpful to @@ -211,13 +218,12 @@ down to an integer. @node Predicates on Numbers @section Type Predicates for Numbers - The functions in this section test whether the argument is a number or -whether it is a certain sort of number. The functions @code{integerp} -and @code{floatp} can take any type of Lisp object as argument (the -predicates would not be of much use otherwise); but the @code{zerop} -predicate requires a number as its argument. See also -@code{integer-or-marker-p} and @code{number-or-marker-p}, in -@ref{Predicates on Markers}. + The functions in this section test for numbers, or for a specific +type of number. The functions @code{integerp} and @code{floatp} can +take any type of Lisp object as argument (they would not be of much +use otherwise), but the @code{zerop} predicate requires a number as +its argument. See also @code{integer-or-marker-p} and +@code{number-or-marker-p}, in @ref{Predicates on Markers}. @defun floatp object This predicate tests whether its argument is a floating point @@ -251,7 +257,7 @@ considered non-negative. This predicate tests whether its argument is zero, and returns @code{t} if so, @code{nil} otherwise. The argument must be a number. -These two forms are equivalent: @code{(zerop x)} @equiv{} @code{(= x 0)}. +@code{(zerop x)} is equivalent to @code{(= x 0)}. @end defun @node Comparison of Numbers @@ -275,10 +281,11 @@ numbers or markers. However, it is a good idea to use @code{=} if you can, even for comparing integers, just in case we change the representation of integers in a future Emacs version. - Sometimes it is useful to compare numbers with @code{equal}; it treats -two numbers as equal if they have the same data type (both integers, or -both floating point) and the same value. By contrast, @code{=} can -treat an integer and a floating point number as equal. + Sometimes it is useful to compare numbers with @code{equal}; it +treats two numbers as equal if they have the same data type (both +integers, or both floating point) and the same value. By contrast, +@code{=} can treat an integer and a floating point number as equal. +@xref{Equality Predicates}. There is another wrinkle: because floating point arithmetic is not exact, it is often a bad idea to check for equality of two floating @@ -309,10 +316,10 @@ returns @code{t} if so, @code{nil} otherwise. @end defun @defun eql value1 value2 -This function compares two floating point numbers like @code{=}, and -compares two integers like @code{=}, and acts like @code{eq} in all -other cases. Thus, @code{(eql 1.0 1)} returns @code{nil}, but -@code{(eql 1.0 1.0)} and @code{(eql 1 1)} both return @code{t}. +This function acts like @code{eq} except when both arguments are +numbers. It compares numbers by type and numberic value, so that +@code{(eql 1.0 1)} returns @code{nil}, but @code{(eql 1.0 1.0)} and +@code{(eql 1 1)} both return @code{t}. @end defun @defun /= number-or-marker1 number-or-marker2 @@ -345,7 +352,7 @@ otherwise. @defun max number-or-marker &rest numbers-or-markers This function returns the largest of its arguments. -If any of the argument is floating-point, the value is returned +If any of the arguments is floating-point, the value is returned as floating point, even if it was given as an integer. @example @@ -360,7 +367,7 @@ as floating point, even if it was given as an integer. @defun min number-or-marker &rest numbers-or-markers This function returns the smallest of its arguments. -If any of the argument is floating-point, the value is returned +If any of the arguments is floating-point, the value is returned as floating point, even if it was given as an integer. @example @@ -1147,8 +1154,7 @@ approximately. @defun expt x y This function returns @var{x} raised to power @var{y}. If both arguments are integers and @var{y} is positive, the result is an -integer; in this case, it is truncated to fit the range of possible -integer values. +integer; in this case, overflow causes truncation, so watch out. @end defun @defun sqrt arg -- cgit v1.2.3 From 8b480acb35811f6362d97f624fbb17fa10d01dfe Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 14 Feb 2005 10:22:36 +0000 Subject: (Printed Representation): Clarify read syntax vs print. (Floating Point Type): Explain meaning better. (Symbol Type): Explain uniqueness better. (Cons Cell Type): Explain empty list sooner. CAR and CDR later. List examples sooner. (Box Diagrams): New subnode broken out. Some examples moved from old Lists as Boxes node. (Dotted Pair Notation): Clarify intro. (Array Type): Clarify. (Type Predicates): Add hash-table-p. --- lispref/objects.texi | 191 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 122 insertions(+), 69 deletions(-) (limited to 'lispref') diff --git a/lispref/objects.texi b/lispref/objects.texi index 43ecb02f09..f0bef593f2 100644 --- a/lispref/objects.texi +++ b/lispref/objects.texi @@ -68,36 +68,37 @@ to use these types can be found in later chapters. The @dfn{printed representation} of an object is the format of the output generated by the Lisp printer (the function @code{prin1}) for -that object. The @dfn{read syntax} of an object is the format of the -input accepted by the Lisp reader (the function @code{read}) for that -object. @xref{Read and Print}. - - Most objects have more than one possible read syntax. Some types of -object have no read syntax, since it may not make sense to enter objects -of these types directly in a Lisp program. Except for these cases, the -printed representation of an object is also a read syntax for it. - - In other languages, an expression is text; it has no other form. In -Lisp, an expression is primarily a Lisp object and only secondarily the -text that is the object's read syntax. Often there is no need to -emphasize this distinction, but you must keep it in the back of your -mind, or you will occasionally be very confused. +that object. Every data type has a unique printed representation. +The @dfn{read syntax} of an object is the format of the input accepted +by the Lisp reader (the function @code{read}) for that object. This +is not necessarily unique; many kinds of object have more than one +syntax. @xref{Read and Print}. @cindex hash notation - Every type has a printed representation. Some types have no read -syntax---for example, the buffer type has none. Objects of these types -are printed in @dfn{hash notation}: the characters @samp{#<} followed by -a descriptive string (typically the type name followed by the name of -the object), and closed with a matching @samp{>}. Hash notation cannot -be read at all, so the Lisp reader signals the error -@code{invalid-read-syntax} whenever it encounters @samp{#<}. -@kindex invalid-read-syntax + In most cases, an object's printed representation is also a read +syntax for the object. However, some types have no read syntax, since +it does not make sense to enter objects of these types as constants in +a Lisp program. These objects are printed in @dfn{hash notation}: the +characters @samp{#<} followed by a descriptive string (typically the +type name followed by the name of the object), and closed with a +matching @samp{>}. For example: @example (current-buffer) @result{} # @end example +@noindent +Hash notation cannot be read at all, so the Lisp reader signals the +error @code{invalid-read-syntax} whenever it encounters @samp{#<}. +@kindex invalid-read-syntax + + In other languages, an expression is text; it has no other form. In +Lisp, an expression is primarily a Lisp object and only secondarily the +text that is the object's read syntax. Often there is no need to +emphasize this distinction, but you must keep it in the back of your +mind, or you will occasionally be very confused. + When you evaluate an expression interactively, the Lisp interpreter first reads the textual representation of it, producing a Lisp object, and then evaluates that object (@pxref{Evaluation}). However, @@ -204,9 +205,11 @@ leading @samp{+} or a final @samp{.}. @subsection Floating Point Type Floating point numbers are the computer equivalent of scientific -notation. The precise number of significant figures and the range of -possible exponents is machine-specific; Emacs always uses the C data -type @code{double} to store the value. +notation; you can think of a floating point number as a fraction +together with a power of ten. The precise number of significant +figures and the range of possible exponents is machine-specific; Emacs +uses the C data type @code{double} to store the value, and internally +this records a power of 2 rather than a power of 10. The printed representation for floating point numbers requires either a decimal point (with at least one digit following), an exponent, or @@ -474,9 +477,10 @@ following text.) @node Symbol Type @subsection Symbol Type - A @dfn{symbol} in GNU Emacs Lisp is an object with a name. The symbol -name serves as the printed representation of the symbol. In ordinary -use, the name is unique---no two symbols have the same name. + A @dfn{symbol} in GNU Emacs Lisp is an object with a name. The +symbol name serves as the printed representation of the symbol. In +ordinary Lisp use, with one single obarray (@pxref{Creating Symbols}, +a symbol's name is unique---no two symbols have the same name. A symbol can serve as a variable, as a function name, or to hold a property list. Or it may serve only to be distinct from all other Lisp @@ -606,18 +610,10 @@ Lisp are implicit. A @dfn{list} is a series of cons cells, linked together so that the @sc{cdr} slot of each cons cell holds either the next cons cell or the -empty list. @xref{Lists}, for functions that work on lists. Because -most cons cells are used as part of lists, the phrase @dfn{list -structure} has come to refer to any structure made out of cons cells. - - The names @sc{car} and @sc{cdr} derive from the history of Lisp. The -original Lisp implementation ran on an @w{IBM 704} computer which -divided words into two parts, called the ``address'' part and the -``decrement''; @sc{car} was an instruction to extract the contents of -the address part of a register, and @sc{cdr} an instruction to extract -the contents of the decrement. By contrast, ``cons cells'' are named -for the function @code{cons} that creates them, which in turn was named -for its purpose, the construction of cells. +empty list. The empty list is actually the symbol @code{nil}. +@xref{Lists}, for functions that work on lists. Because most cons +cells are used as part of lists, the phrase @dfn{list structure} has +come to refer to any structure made out of cons cells. @cindex atom Because cons cells are so central to Lisp, we also have a word for @@ -627,7 +623,18 @@ for its purpose, the construction of cells. @cindex parenthesis The read syntax and printed representation for lists are identical, and consist of a left parenthesis, an arbitrary number of elements, and a -right parenthesis. +right parenthesis. Here are examples of lists: + +@example +(A 2 "A") ; @r{A list of three elements.} +() ; @r{A list of no elements (the empty list).} +nil ; @r{A list of no elements (the empty list).} +("A ()") ; @r{A list of one element: the string @code{"A ()"}.} +(A ()) ; @r{A list of two elements: @code{A} and the empty list.} +(A nil) ; @r{Equivalent to the previous.} +((A B C)) ; @r{A list of one element} + ; @r{(which is a list of three elements).} +@end example Upon reading, each object inside the parentheses becomes an element of the list. That is, a cons cell is made for each element. The @@ -636,8 +643,26 @@ slot refers to the next cons cell of the list, which holds the next element in the list. The @sc{cdr} slot of the last cons cell is set to hold @code{nil}. + The names @sc{car} and @sc{cdr} derive from the history of Lisp. The +original Lisp implementation ran on an @w{IBM 704} computer which +divided words into two parts, called the ``address'' part and the +``decrement''; @sc{car} was an instruction to extract the contents of +the address part of a register, and @sc{cdr} an instruction to extract +the contents of the decrement. By contrast, ``cons cells'' are named +for the function @code{cons} that creates them, which in turn was named +for its purpose, the construction of cells. + +@menu +* Box Diagrams:: Drawing pictures of lists. +* Dotted Pair Notation:: A general syntax for cons cells. +* Association List Type:: A specially constructed list. +@end menu + +@node Box Diagrams +@subsubsection Drawing Lists as Box Diagrams @cindex box diagrams, for lists @cindex diagrams, boxed, for lists + A list can be illustrated by a diagram in which the cons cells are shown as pairs of boxes, like dominoes. (The Lisp reader cannot read such an illustration; unlike the textual notation, which can be @@ -688,19 +713,6 @@ buttercup)}, sketched in a different manner: to the symbol @code{nil}. In other words, @code{nil} is both a symbol and a list. - Here are examples of lists written in Lisp syntax: - -@example -(A 2 "A") ; @r{A list of three elements.} -() ; @r{A list of no elements (the empty list).} -nil ; @r{A list of no elements (the empty list).} -("A ()") ; @r{A list of one element: the string @code{"A ()"}.} -(A ()) ; @r{A list of two elements: @code{A} and the empty list.} -(A nil) ; @r{Equivalent to the previous.} -((A B C)) ; @r{A list of one element} - ; @r{(which is a list of three elements).} -@end example - Here is the list @code{(A ())}, or equivalently @code{(A nil)}, depicted with boxes and arrows: @@ -715,27 +727,64 @@ depicted with boxes and arrows: @end group @end example -@menu -* Dotted Pair Notation:: An alternative syntax for lists. -* Association List Type:: A specially constructed list. -@end menu + Here is a more complex illustration, showing the three-element list, +@code{((pine needles) oak maple)}, the first element of which is a +two-element list: + +@example +@group + --- --- --- --- --- --- + | | |--> | | |--> | | |--> nil + --- --- --- --- --- --- + | | | + | | | + | --> oak --> maple + | + | --- --- --- --- + --> | | |--> | | |--> nil + --- --- --- --- + | | + | | + --> pine --> needles +@end group +@end example + + The same list represented in the first box notation looks like this: + +@example +@group + -------------- -------------- -------------- +| car | cdr | | car | cdr | | car | cdr | +| o | o------->| oak | o------->| maple | nil | +| | | | | | | | | | + -- | --------- -------------- -------------- + | + | + | -------------- ---------------- + | | car | cdr | | car | cdr | + ------>| pine | o------->| needles | nil | + | | | | | | + -------------- ---------------- +@end group +@end example @node Dotted Pair Notation -@comment node-name, next, previous, up @subsubsection Dotted Pair Notation @cindex dotted pair notation @cindex @samp{.} in lists - @dfn{Dotted pair notation} is an alternative syntax for cons cells -that represents the @sc{car} and @sc{cdr} explicitly. In this syntax, + @dfn{Dotted pair notation} is a general syntax for cons cells that +represents the @sc{car} and @sc{cdr} explicitly. In this syntax, @code{(@var{a} .@: @var{b})} stands for a cons cell whose @sc{car} is the object @var{a}, and whose @sc{cdr} is the object @var{b}. Dotted -pair notation is therefore more general than list syntax. In the dotted -pair notation, the list @samp{(1 2 3)} is written as @samp{(1 . (2 . (3 -. nil)))}. For @code{nil}-terminated lists, you can use either -notation, but list notation is usually clearer and more convenient. -When printing a list, the dotted pair notation is only used if the -@sc{cdr} of a cons cell is not a list. +pair notation is more general than list syntax because the @sc{cdr} +does not have to be a list. However, it is more cumbersome in cases +where list syntax would work. In dotted pair notation, the list +@samp{(1 2 3)} is written as @samp{(1 . (2 . (3 . nil)))}. For +@code{nil}-terminated lists, you can use either notation, but list +notation is usually clearer and more convenient. When printing a +list, the dotted pair notation is only used if the @sc{cdr} of a cons +cell is not a list. Here's an example using boxes to illustrate dotted pair notation. This example shows the pair @code{(rose . violet)}: @@ -860,8 +909,9 @@ Once an array is created, its length is fixed. All Emacs Lisp arrays are one-dimensional. (Most other programming languages support multidimensional arrays, but they are not essential; -you can get the same effect with an array of arrays.) Each type of -array has its own read syntax; see the following sections for details. +you can get the same effect with nested one-dimensional arrays.) Each +type of array has its own read syntax; see the following sections for +details. The array type is contained in the sequence type and contains the string type, the vector type, the bool-vector type, and the @@ -1661,6 +1711,9 @@ with references to further information. @item functionp @xref{Functions, functionp}. +@item hash-table-p +@xref{Other Hash, hash-table-p}. + @item integer-or-marker-p @xref{Predicates on Markers, integer-or-marker-p}. -- cgit v1.2.3 From 53325195f151c6f304e8f095540aca3ea2ca294c Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 14 Feb 2005 10:23:29 +0000 Subject: (Input Functions): State standard-input default. (Output Variables): State standard-output default. --- lispref/streams.texi | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lispref') diff --git a/lispref/streams.texi b/lispref/streams.texi index 599416fe67..2f27fe193d 100644 --- a/lispref/streams.texi +++ b/lispref/streams.texi @@ -338,6 +338,7 @@ For example: @defvar standard-input This variable holds the default input stream---the stream that @code{read} uses when the @var{stream} argument is @code{nil}. +The default is @code{t}, meaning use the minibuffer. @end defvar @node Output Streams @@ -684,6 +685,7 @@ returns @code{"The buffer is foo"}. @defvar standard-output The value of this variable is the default output stream---the stream that print functions use when the @var{stream} argument is @code{nil}. +The default is @code{t}, meaning display in the echo area. @end defvar @defvar print-quoted -- cgit v1.2.3 From aac757583530c80179362e01d5c9b4d17b59ab40 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 14 Feb 2005 10:24:22 +0000 Subject: (Symbol Components): Reorder examples. --- lispref/symbols.texi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lispref') diff --git a/lispref/symbols.texi b/lispref/symbols.texi index 858918445f..92c8b0f1e8 100644 --- a/lispref/symbols.texi +++ b/lispref/symbols.texi @@ -115,10 +115,10 @@ the four cells of the symbol @code{buffer-file-name}: @result{} "buffer-file-name" (symbol-value 'buffer-file-name) @result{} "/gnu/elisp/symbols.texi" -(symbol-plist 'buffer-file-name) - @result{} (variable-documentation 29529) (symbol-function 'buffer-file-name) @result{} # +(symbol-plist 'buffer-file-name) + @result{} (variable-documentation 29529) @end example @noindent -- cgit v1.2.3 From bf614499ff2a69f0796f30e5a29afd35465cfd3e Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 14 Feb 2005 10:25:20 +0000 Subject: (Creating Buffer-Local): change-major-mode-hook is useful for discarding some minor modes. --- lispref/variables.texi | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'lispref') diff --git a/lispref/variables.texi b/lispref/variables.texi index 1f793b8f03..de5fb40618 100644 --- a/lispref/variables.texi +++ b/lispref/variables.texi @@ -1429,8 +1429,11 @@ variables that major modes set should not be marked permanent. The function @code{kill-all-local-variables} runs this normal hook before it does anything else. This gives major modes a way to arrange for something special to be done if the user switches to a different -major mode. For best results, make this variable buffer-local, so that -it will disappear after doing its job and will not interfere with the +major mode. It is also useful for buffer-specific minor modes +that should be forgotten if the user changes the major mode. + +For best results, make this variable buffer-local, so that it will +disappear after doing its job and will not interfere with the subsequent major mode. @xref{Hooks}. @end defvar -- cgit v1.2.3 From 134948fc5fe75a8b59cb293ff9dc043627a4a330 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 14 Feb 2005 10:25:50 +0000 Subject: *** empty log message *** --- admin/FOR-RELEASE | 44 +++++++++++++++++++-------------------- lisp/ChangeLog | 7 +++++++ lisp/url/ChangeLog | 4 ++++ lispref/ChangeLog | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 93 insertions(+), 22 deletions(-) (limited to 'lispref') diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index 55505c1ae6..33631963ff 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE @@ -222,36 +222,36 @@ man/calendar.texi Joakim Verona man/cmdargs.texi Chong Yidong man/commands.texi "Luc Teirlinck" man/custom.texi Chong Yidong -man/dired.texi -man/display.texi "Luc Teirlinck" +man/dired.texi Chong Yidong +man/display.texi "Luc Teirlinck" Chong Yidong man/emacs.texi "Luc Teirlinck" man/entering.texi "Luc Teirlinck" Chong Yidong man/files.texi "Luc Teirlinck" Chong Yidong man/fixit.texi "Luc Teirlinck" man/frames.texi "Luc Teirlinck" Chong Yidong man/glossary.texi -man/help.texi "Luc Teirlinck" -man/indent.texi "Luc Teirlinck" +man/help.texi "Luc Teirlinck" Chong Yidong +man/indent.texi "Luc Teirlinck" Chong Yidong man/killing.texi "Luc Teirlinck" Chong Yidong -man/kmacro.texi "Luc Teirlinck" +man/kmacro.texi "Luc Teirlinck" Chong Yidong man/macos.texi man/maintaining.texi -man/major.texi "Luc Teirlinck" +man/major.texi "Luc Teirlinck" Chong Yidong man/mark.texi "Luc Teirlinck" man/mini.texi "Luc Teirlinck" man/misc.texi -man/msdog.texi +man/msdog.texi Chong Yidong man/mule.texi "Luc Teirlinck" man/m-x.texi "Luc Teirlinck" man/picture.texi Joakim Verona -man/programs.texi "Stephen Eglen" +man/programs.texi "Stephen Eglen" Chong Yidong man/regs.texi "Luc Teirlinck" Chong Yidong man/rmail.texi man/screen.texi "Luc Teirlinck" man/search.texi "Luc Teirlinck" man/sending.texi man/text.texi "Luc Teirlinck" Chong Yidong -man/trouble.texi +man/trouble.texi Chong Yidong man/windows.texi "Luc Teirlinck" Chong Yidong man/xresources.texi @@ -271,47 +271,47 @@ lispref/backups.texi "Luc Teirlinck" lispref/buffers.texi "Luc Teirlinck" Chong Yidong lispref/calendar.texi Joakim Verona lispref/commands.texi "Luc Teirlinck" -lispref/compile.texi "Luc Teirlinck" -lispref/control.texi "Luc Teirlinck" +lispref/compile.texi "Luc Teirlinck" Chong Yidong +lispref/control.texi "Luc Teirlinck" Chong Yidong lispref/customize.texi lispref/debugging.texi Joakim Verona lispref/display.texi lispref/edebug.texi lispref/elisp.texi "Luc Teirlinck" lispref/errors.texi "Luc Teirlinck" -lispref/eval.texi "Luc Teirlinck" +lispref/eval.texi "Luc Teirlinck" Chong Yidong lispref/files.texi "Luc Teirlinck" Chong Yidong lispref/frames.texi "Luc Teirlinck" Chong Yidong -lispref/functions.texi "Luc Teirlinck" -lispref/hash.texi "Luc Teirlinck" +lispref/functions.texi "Luc Teirlinck" Chong Yidong +lispref/hash.texi "Luc Teirlinck" Chong Yidong lispref/help.texi "Luc Teirlinck" lispref/hooks.texi lispref/internals.texi "Luc Teirlinck" lispref/intro.texi "Luc Teirlinck" lispref/keymaps.texi "Luc Teirlinck" -lispref/lists.texi "Luc Teirlinck" -lispref/loading.texi "Luc Teirlinck" +lispref/lists.texi "Luc Teirlinck" Chong Yidong +lispref/loading.texi "Luc Teirlinck" Chong Yidong lispref/locals.texi lispref/macros.texi "Luc Teirlinck" lispref/maps.texi lispref/markers.texi "Luc Teirlinck" -lispref/minibuf.texi "Luc Teirlinck" +lispref/minibuf.texi "Luc Teirlinck" Chong Yidong lispref/modes.texi Chong Yidong lispref/nonascii.texi "Luc Teirlinck" -lispref/numbers.texi "Luc Teirlinck" -lispref/objects.texi "Luc Teirlinck" +lispref/numbers.texi "Luc Teirlinck" Chong Yidong +lispref/objects.texi "Luc Teirlinck" Chong Yidong lispref/os.texi "Luc Teirlinck" lispref/positions.texi "Luc Teirlinck" Chong Yidong lispref/processes.texi lispref/searching.texi "Luc Teirlinck" lispref/sequences.texi "Luc Teirlinck" -lispref/streams.texi "Luc Teirlinck" +lispref/streams.texi "Luc Teirlinck" Chong Yidong lispref/strings.texi "Luc Teirlinck" Chong Yidong -lispref/symbols.texi "Luc Teirlinck" +lispref/symbols.texi "Luc Teirlinck" Chong Yidong lispref/syntax.texi "Luc Teirlinck" lispref/text.texi Chong Yidong lispref/tips.texi "Luc Teirlinck" -lispref/variables.texi "Luc Teirlinck" +lispref/variables.texi "Luc Teirlinck" Chong Yidong lispref/windows.texi "Luc Teirlinck" Chong Yidong diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f4e5006110..a84b2f54bc 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2005-02-14 Richard M. Stallman + + * cus-edit.el (custom-buffer-create-internal): Update help message. + (custom-magic-alist): Update help messages. + + * cus-start.el (all): Allow a var to specify a standard value. + 2005-02-12 Luc Teirlinck * custom.el (custom-theme-set-variables): Handle variable aliases. diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index 6dac2389e7..8bc7209749 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog @@ -1,3 +1,7 @@ +2005-02-14 Michael Welsh Duggan + + * url-http.el (url-http-parse-headers): Test url-automatic-caching. + 2005-01-22 Klaus Straubinger (tiny change) * url-http.el (url-http-parse-headers) <302>: Reset url-http-data diff --git a/lispref/ChangeLog b/lispref/ChangeLog index ec5129e0b9..9d92484faa 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog @@ -1,3 +1,63 @@ +2005-02-14 Richard M. Stallman + + * variables.texi (Creating Buffer-Local): change-major-mode-hook + is useful for discarding some minor modes. + + * symbols.texi (Symbol Components): Reorder examples. + + * streams.texi (Input Functions): State standard-input default. + (Output Variables): State standard-output default. + + * objects.texi (Printed Representation): Clarify read syntax vs print. + (Floating Point Type): Explain meaning better. + (Symbol Type): Explain uniqueness better. + (Cons Cell Type): Explain empty list sooner. CAR and CDR later. + List examples sooner. + (Box Diagrams): New subnode broken out. + Some examples moved from old Lists as Boxes node. + (Dotted Pair Notation): Clarify intro. + (Array Type): Clarify. + (Type Predicates): Add hash-table-p. + + * numbers.texi (Integer Basics): Clarify radix explanation. + (Predicates on Numbers): Minor clarification. + (Comparison of Numbers): Minor clarification. Clarify eql. + Typos in min, max. + (Math Functions): Clarify overflow in expt. + + * minibuf.texi (Text from Minibuffer): Minor clarification. + Mention arrow keys. + + * loading.texi (Autoload): defun's doc string overrides autoload's + doc string. + (Repeated Loading): Modernize "add to list" examples. + (Where Defined): Finish updating table of load-history elts. + + * lists.texi (List-related Predicates): Minor wording improvement. + (Lists as Boxes): Node deleted. + (Building Lists): Explain trivial cases of number-sequence. + + * hash.texi (Hash Tables): Add desc to menu items. + (Creating Hash): Expain "full" means "make larger", + (Hash Access): Any object can be a key. + State value of maphash. + + * functions.texi (What Is a Function): Wording cleanup. + (Function Documentation): Minor cleanup. + Explain purpose of calling convention at end of doc string. + (Function Names): Wording cleanup. + (Calling Functions): Wording cleanup. + Explain better how funcall calls the function. + (Function Cells): Delete example of saving and redefining function. + + * control.texi (Combining Conditions): Wording cleanup. + (Iteration): dolist and dotimes bind VAR locally. + (Cleanups): Xref to Atomic Changes. + + * compile.texi (Byte Compilation): Delete 19.29 info. + (Compilation Functions): Macros' difficulties don't affect defsubst. + (Docs and Compilation): Delete 19.29 info. + 2005-02-10 Richard M. Stallman * objects.texi (Symbol Type): Minor correction. -- cgit v1.2.3 From 2ca28c0513a56a3b42348580abc5f3b9722ba50d Mon Sep 17 00:00:00 2001 From: Lute Kamstra Date: Mon, 14 Feb 2005 11:18:45 +0000 Subject: (Where Defined): Fix typo. --- lispref/loading.texi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lispref') diff --git a/lispref/loading.texi b/lispref/loading.texi index ecd0886849..e12826af2f 100644 --- a/lispref/loading.texi +++ b/lispref/loading.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, -@c 2003, 2004 +@c 2003, 2004, 2005 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/loading @@ -754,7 +754,7 @@ The function @var{fun} was defined. @item (t . @var{fun}) The function @var{fun} was previously an autoload before this library redefined it as a function. The following element is always -@code{(defun . @var{fun}), which represents defining @var{fun} as a +@code{(defun . @var{fun})}, which represents defining @var{fun} as a function. @item (autoload . @var{fun}) The function @var{fun} was defined as an autoload. -- cgit v1.2.3 From 5838fa52b763efa4c66232b77733c3bbea344daa Mon Sep 17 00:00:00 2001 From: Lute Kamstra Date: Mon, 14 Feb 2005 11:19:27 +0000 Subject: (Lists): Remove reference to deleted node. (Cons Cells): Fix typo. --- lispref/lists.texi | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'lispref') diff --git a/lispref/lists.texi b/lispref/lists.texi index 1aafe2614c..dbcddd741b 100644 --- a/lispref/lists.texi +++ b/lispref/lists.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, -@c 2003, 2004 +@c 2003, 2004, 2005 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/lists @@ -18,7 +18,6 @@ the whole list. @menu * Cons Cells:: How lists are made out of cons cells. -* Lists as Boxes:: Graphical notation to explain lists. * List-related Predicates:: Is this object a list? Comparing two lists. * List Elements:: Extracting the pieces of a list. * Building Lists:: Creating list structure. @@ -87,7 +86,7 @@ cells. elements of @var{l} except the first. @xref{Cons Cell Type}, for the read and print syntax of cons cells and -lists, and for more ``box and arrow'' illustrations of lists. +lists, and for ``box and arrow'' illustrations of lists. @node List-related Predicates @section Predicates on Lists -- cgit v1.2.3 From 7ff50d3fb471d2e9f1d72c4be4cc6201950f8e57 Mon Sep 17 00:00:00 2001 From: Lute Kamstra Date: Mon, 14 Feb 2005 11:20:13 +0000 Subject: (Top): Remove reference to deleted node. --- lispref/elisp.texi | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'lispref') diff --git a/lispref/elisp.texi b/lispref/elisp.texi index fa84a0a93f..64e956afdf 100644 --- a/lispref/elisp.texi +++ b/lispref/elisp.texi @@ -34,7 +34,7 @@ Published by the Free Software Foundation 59 Temple Place, Suite 330 Boston, MA 02111-1307 USA -Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999,@* +Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2005,@* 2000, 2002 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document @@ -281,7 +281,6 @@ Strings and Characters Lists * Cons Cells:: How lists are made out of cons cells. -* Lists as Boxes:: Graphical notation to explain lists. * List-related Predicates:: Is this object a list? Comparing two lists. * List Elements:: Extracting the pieces of a list. * Building Lists:: Creating list structure. -- cgit v1.2.3 From 23e8c0957e17a85824b4ff4a3cb42e8f8dfa2da0 Mon Sep 17 00:00:00 2001 From: Lute Kamstra Date: Mon, 14 Feb 2005 12:17:31 +0000 Subject: *** empty log message *** --- lisp/ChangeLog | 4 ++++ lispref/ChangeLog | 9 +++++++++ 2 files changed, 13 insertions(+) (limited to 'lispref') diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a34bc016b1..0546319742 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2005-02-14 Lute Kamstra + + * cus-start.el (all): Check if symbol is void. + 2005-02-14 Carsten Dominik * textmodes/reftex-cite.el (reftex-do-citation): Cleanup single diff --git a/lispref/ChangeLog b/lispref/ChangeLog index 9d92484faa..7da20942ea 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog @@ -1,3 +1,12 @@ +2005-02-14 Lute Kamstra + + * elisp.texi (Top): Remove reference to deleted node. + + * lists.texi (Lists): Remove reference to deleted node. + (Cons Cells): Fix typo. + + * loading.texi (Where Defined): Fix typo. + 2005-02-14 Richard M. Stallman * variables.texi (Creating Buffer-Local): change-major-mode-hook -- cgit v1.2.3