From 31f31a753f7c6ab6dcc49d62c57a41e0092cbb51 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 8 Apr 2015 17:40:14 -0700 Subject: [PATCH] Minor quoting etc. fixes to elisp intro * doc/lispintro/emacs-lisp-intro.texi: Consistently use American-style double quoting in ordinary text. In ASCII text, consistently quote 'like this' instead of `like this', unless Emacs requires the latter. --- doc/lispintro/emacs-lisp-intro.texi | 572 ++++++++++++++-------------- 1 file changed, 286 insertions(+), 286 deletions(-) diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index ed125bb3747..77d8ca8544f 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi @@ -30,7 +30,7 @@ @c @set largebook @c (Note: if you edit the book so as to change the length of the -@c table of contents, you may have to change the value of `pageno' below.) +@c table of contents, you may have to change the value of 'pageno' below.) @c <<<< For hard copy printing, this file is now @c set for smallbook, which works for all sizes @@ -157,7 +157,7 @@ supports it in developing GNU and promoting software freedom.'' @end quotation @end copying -@c half title; two lines here, so do not use `shorttitlepage' +@c half title; two lines here, so do not use 'shorttitlepage' @tex {\begingroup% \hbox{}\vskip 1.5in \chaprm \centerline{An Introduction to}% @@ -808,7 +808,7 @@ In addition, I have written several programs as extended examples. Although these are examples, the programs are real. I use them. Other people use them. You may use them. Beyond the fragments of programs used for illustrations, there is very little in here that is -`just for teaching purposes'; what you see is used. This is a great +``just for teaching purposes''; what you see is used. This is a great advantage of Emacs Lisp: it is easy to learn to use it for work. @end ignore @@ -854,8 +854,8 @@ information so you won't be surprised later when the additional information is formally introduced.) When you read this text, you are not expected to learn everything the -first time. Frequently, you need only make, as it were, a `nodding -acquaintance' with some of the items mentioned. My hope is that I have +first time. Frequently, you need only make, as it were, a ``nodding +acquaintance'' with some of the items mentioned. My hope is that I have structured the text and given you enough hints that you will be alert to what is important, and concentrate on it. @@ -928,7 +928,7 @@ along with the key that is labeled @key{ALT} and, at the same time, press the @key{\} key. In addition to typing a lone keychord, you can prefix what you type -with @kbd{C-u}, which is called the `universal argument'. The +with @kbd{C-u}, which is called the ``universal argument''. The @kbd{C-u} keychord passes an argument to the subsequent command. Thus, to indent a region of plain text by 6 spaces, mark the region, and then type @w{@kbd{C-u 6 M-C-\}}. (If you do not specify a number, @@ -1000,7 +1000,7 @@ bob@@gnu.org To the untutored eye, Lisp is a strange programming language. In Lisp code there are parentheses everywhere. Some people even claim that -the name stands for `Lots of Isolated Silly Parentheses'. But the +the name stands for ``Lots of Isolated Silly Parentheses''. But the claim is unwarranted. Lisp stands for LISt Processing, and the programming language handles @emph{lists} (and lists of lists) by putting them between parentheses. The parentheses mark the boundaries @@ -1090,7 +1090,7 @@ list is made up of the words @samp{a}, @samp{list}, @samp{inside}, In Lisp, what we have been calling words are called @dfn{atoms}. This term comes from the historical meaning of the word atom, which means -`indivisible'. As far as Lisp is concerned, the words we have been +``indivisible''. As far as Lisp is concerned, the words we have been using in the lists cannot be divided into any smaller parts and still mean the same thing as part of a program; likewise with numbers and single character symbols like @samp{+}. On the other hand, unlike an @@ -1159,7 +1159,7 @@ paragraphs---is also an atom. Here is an example: @noindent In Lisp, all of the quoted text including the punctuation mark and the blank spaces is a single atom. This kind of atom is called a -@dfn{string} (for `string of characters') and is the sort of thing that +@dfn{string} (for ``string of characters'') and is the sort of thing that is used for messages that a computer can print for a human to read. Strings are a different kind of atom than numbers or symbols and are used differently. @@ -1303,7 +1303,7 @@ signposts to a traveler in a strange country; deciphering them can be hard, but once understood, they can point the way. The error message is generated by a built-in GNU Emacs debugger. We -will `enter the debugger'. You get out of the debugger by typing @code{q}. +will ``enter the debugger''. You get out of the debugger by typing @code{q}. What we will do is evaluate a list that is not quoted and does not have a meaningful command as its first element. Here is a list almost @@ -1365,9 +1365,9 @@ Based on what we already know, we can almost read this error message. You read the @file{*Backtrace*} buffer from the bottom up; it tells you what Emacs did. When you typed @kbd{C-x C-e}, you made an interactive call to the command @code{eval-last-sexp}. @code{eval} is -an abbreviation for `evaluate' and @code{sexp} is an abbreviation for -`symbolic expression'. The command means `evaluate last symbolic -expression', which is the expression just before your cursor. +an abbreviation for ``evaluate'' and @code{sexp} is an abbreviation for +``symbolic expression''. The command means ``evaluate last symbolic +expression'', which is the expression just before your cursor. Each line above tells you what the Lisp interpreter evaluated next. The most recent action is at the top. The buffer is called the @@ -1401,7 +1401,7 @@ definition of any set of instructions for the computer to carry out. The slightly odd word, @samp{void-function}, is designed to cover the way Emacs Lisp is implemented, which is that when a symbol does not have a function definition attached to it, the place that should -contain the instructions is `void'. +contain the instructions is ``void''. On the other hand, since we were able to add 2 plus 2 successfully, by evaluating @code{(+ 2 2)}, we can infer that the symbol @code{+} must @@ -1570,9 +1570,9 @@ compilation. When the Lisp interpreter works on an expression, the term for the activity is called @dfn{evaluation}. We say that the interpreter -`evaluates the expression'. I've used this term several times before. -The word comes from its use in everyday language, `to ascertain the -value or amount of; to appraise', according to @cite{Webster's New +``evaluates the expression''. I've used this term several times before. +The word comes from its use in everyday language, ``to ascertain the +value or amount of; to appraise'', according to @cite{Webster's New Collegiate Dictionary}. @menu @@ -1592,7 +1592,7 @@ instructions it found in the function definition, or perhaps it will give up on that function and produce an error message. (The interpreter may also find itself tossed, so to speak, to a different function or it may attempt to repeat continually what it is doing for ever and ever in -what is called an `infinite loop'. These actions are less common; and +what is called an ``infinite loop''. These actions are less common; and we can ignore them.) Most frequently, the interpreter returns a value. @cindex @samp{side effect} defined @@ -1637,9 +1637,9 @@ evaluate, the interpreter prints that value in the echo area. Now it is easy to understand the name of the command invoked by the keystrokes @kbd{C-x C-e}: the name is @code{eval-last-sexp}. The -letters @code{sexp} are an abbreviation for `symbolic expression', and -@code{eval} is an abbreviation for `evaluate'. The command means -`evaluate last symbolic expression'. +letters @code{sexp} are an abbreviation for ``symbolic expression'', and +@code{eval} is an abbreviation for ``evaluate''. The command means +``evaluate last symbolic expression''. As an experiment, you can try evaluating the expression by putting the cursor at the beginning of the next line immediately following the @@ -1838,7 +1838,7 @@ typing @kbd{q} in the @file{*Backtrace*} buffer.) This backtrace is different from the very first error message we saw, which said, @samp{Debugger entered--Lisp error: (void-function this)}. In this case, the function does not have a value as a variable; while -in the other error message, the function (the word `this') did not +in the other error message, the function (the word @samp{this}) did not have a definition. In this experiment with the @code{+}, what we did was cause the Lisp @@ -1887,22 +1887,22 @@ The numbers added by @code{+} are called the @dfn{arguments} of the function @code{+}. These numbers are the information that is given to or @dfn{passed} to the function. -The word `argument' comes from the way it is used in mathematics and +The word ``argument'' comes from the way it is used in mathematics and does not refer to a disputation between two people; instead it refers to the information presented to the function, in this case, to the @code{+}. In Lisp, the arguments to a function are the atoms or lists that follow the function. The values returned by the evaluation of these atoms or lists are passed to the function. Different functions require different numbers of arguments; some functions require none at -all.@footnote{It is curious to track the path by which the word `argument' +all.@footnote{It is curious to track the path by which the word ``argument'' came to have two different meanings, one in mathematics and the other in everyday English. According to the @cite{Oxford English Dictionary}, the word derives from the Latin for @samp{to make clear, prove}; thus it -came to mean, by one thread of derivation, `the evidence offered as -proof', which is to say, `the information offered', which led to its +came to mean, by one thread of derivation, ``the evidence offered as +proof'', which is to say, ``the information offered'', which led to its meaning in Lisp. But in the other thread of derivation, it came to mean -`to assert in a manner against which others may make counter -assertions', which led to the meaning of the word as a disputation. +``to assert in a manner against which others may make counter +assertions'', which led to the meaning of the word as a disputation. (Note here that the English word has two different definitions attached to it at the same time. By contrast, in Emacs Lisp, a symbol cannot have two different function definitions at the same time.)} @@ -1967,7 +1967,7 @@ Note that the string passed to @code{substring} is a single atom even though it is made up of several words separated by spaces. Lisp counts everything between the two quotation marks as part of the string, including the spaces. You can think of the @code{substring} function as -a kind of `atom smasher' since it takes an otherwise indivisible atom +a kind of ``atom smasher'' since it takes an otherwise indivisible atom and extracts a part. However, @code{substring} is only able to extract a substring from an argument that is a string, not from another type of atom such as a number or symbol. @@ -2022,7 +2022,7 @@ Some functions, such as @code{concat}, @code{+} or @code{*}, take any number of arguments. (The @code{*} is the symbol for multiplication.) This can be seen by evaluating each of the following expressions in the usual way. What you will see in the echo area is printed in this -text after @samp{@result{}}, which you may read as `evaluates to'. +text after @samp{@result{}}, which you may read as ``evaluates to''. @need 1250 In the first set, the functions have no arguments: @@ -2123,7 +2123,7 @@ numeric value of marker positions as numbers. The @samp{p} of @code{number-or-marker-p} is the embodiment of a practice started in the early days of Lisp programming. The @samp{p} -stands for `predicate'. In the jargon used by the early Lisp +stands for ``predicate''. In the jargon used by the early Lisp researchers, a predicate refers to a function to determine whether some property is true or false. So the @samp{p} tells us that @code{number-or-marker-p} is the name of a function that determines @@ -2390,11 +2390,11 @@ to the symbol @code{herbivores}: not have fit on a page; and humans find it easier to read nicely formatted lists.) -Although I have been using the term `assign', there is another way of +Although I have been using the term ``assign'', there is another way of thinking about the workings of @code{set} and @code{setq}; and that is to say that @code{set} and @code{setq} make the symbol @emph{point} to the list. This latter way of thinking is very common and in forthcoming -chapters we shall come upon at least one symbol that has `pointer' as +chapters we shall come upon at least one symbol that has ``pointer'' as part of its name. The name is chosen because the symbol has a value, specifically a list, attached to it; or, expressed another way, the symbol is set to ``point'' to the list. @@ -2639,9 +2639,9 @@ The former is the name of the buffer and the latter is the name of the file. In Info, the buffer name is @file{"*info*"}. Info does not point to any file, so the result of evaluating @code{(buffer-file-name)} is @file{nil}. The symbol @code{nil} is -from the Latin word for `nothing'; in this case, it means that the +from the Latin word for ``nothing''; in this case, it means that the buffer is not associated with any file. (In Lisp, @code{nil} is also -used to mean `false' and is a synonym for the empty list, @code{()}.) +used to mean ``false'' and is a synonym for the empty list, @code{()}.) When I am writing, the name of my buffer is @file{"introduction.texinfo"}. The name of the file to which it @@ -2661,7 +2661,7 @@ computer programs, however, it is important to keep the distinction in mind, since the computer is not as smart as a person. @cindex Buffer, history of word -The word `buffer', by the way, comes from the meaning of the word as a +The word ``buffer'', by the way, comes from the meaning of the word as a cushion that deadens the force of a collision. In early computers, a buffer cushioned the interaction between files and the computer's central processing unit. The drums or tapes that held a file and the @@ -2864,7 +2864,7 @@ there until the command finishes running). Also, we have just introduced another jargon term, the word @dfn{call}. When you evaluate a list in which the first symbol is a function, you are calling that function. The use of the term comes from the notion of -the function as an entity that can do something for you if you `call' +the function as an entity that can do something for you if you ``call'' it---just as a plumber is an entity who can fix a leak if you call him or her. @@ -3082,9 +3082,9 @@ function. Instead of choosing the word @code{number} for the name of the argument, I could have picked any other name. For example, I could have chosen -the word @code{multiplicand}. I picked the word `number' because it +the word @code{multiplicand}. I picked the word ``number'' because it tells what kind of value is intended for this slot; but I could just as -well have chosen the word `multiplicand' to indicate the role that the +well have chosen the word ``multiplicand'' to indicate the role that the value placed in this slot will play in the workings of the function. I could have called it @code{foogle}, but that would have been a bad choice because it would not tell humans what it means. The choice of @@ -3096,16 +3096,16 @@ list, even the name of a symbol used in some other function: the name you use in an argument list is private to that particular definition. In that definition, the name refers to a different entity than any use of the same name outside the function definition. Suppose you have a -nick-name `Shorty' in your family; when your family members refer to -`Shorty', they mean you. But outside your family, in a movie, for -example, the name `Shorty' refers to someone else. Because a name in an +nick-name ``Shorty'' in your family; when your family members refer to +``Shorty'', they mean you. But outside your family, in a movie, for +example, the name ``Shorty'' refers to someone else. Because a name in an argument list is private to the function definition, you can change the value of such a symbol inside the body of a function without changing its value outside the function. The effect is similar to that produced by a @code{let} expression. (@xref{let, , @code{let}}.) @ignore -Note also that we discuss the word `number' in two different ways: as a +Note also that we discuss the word ``number'' in two different ways: as a symbol that appears in the code, and as the name of something that will be replaced by a something else during the evaluation of the function. In the first case, @code{number} is a symbol, not a number; it happens @@ -3161,7 +3161,7 @@ definition begins. If you evaluate this example, you are likely to get an error message. (Go ahead, try it!) This is because we have written the function definition, but not yet told the computer about the definition---we have -not yet installed (or `loaded') the function definition in Emacs. +not yet installed (or ``loaded'') the function definition in Emacs. Installing a function is the process that tells the Lisp interpreter the definition of the function. Installation is described in the next section. @@ -3453,7 +3453,7 @@ is The first part of the argument to @code{interactive} is @samp{p}, with which you are already familiar. This argument tells Emacs to -interpret a `prefix', as a number to be passed to the function. You +interpret a ``prefix'', as a number to be passed to the function. You can specify a prefix either by typing @kbd{C-u} followed by a number or by typing @key{META} followed by a number. The prefix is the number of specified characters. Thus, if your prefix is three and the @@ -3567,8 +3567,8 @@ variable of the same name that is not part of the function. To understand why the @code{let} special form is necessary, consider the situation in which you own a home that you generally refer to as -`the house', as in the sentence, ``The house needs painting.'' If you -are visiting a friend and your host refers to `the house', he is +``the house'', as in the sentence, ``The house needs painting.'' If you +are visiting a friend and your host refers to ``the house'', he is likely to be referring to @emph{his} house, not yours, that is, to a different house. @@ -3596,7 +3596,7 @@ and the two are not intended to refer to the same value. The The @code{let} special form prevents confusion. @code{let} creates a name for a @dfn{local variable} that overshadows any use of the same name outside the @code{let} expression. This is like understanding -that whenever your host refers to `the house', he means his house, not +that whenever your host refers to ``the house'', he means his house, not yours. (Symbols used in argument lists work the same way. @xref{defun, , The @code{defun} Macro}.) @@ -3616,14 +3616,14 @@ in Emacs Lisp, scoping is dynamic, not lexical.'' @code{let} can create more than one variable at once. Also, @code{let} gives each variable it creates an initial value, either a value specified by you, or @code{nil}. (In the jargon, this is called -`binding the variable to the value'.) After @code{let} has created +``binding the variable to the value''.) After @code{let} has created and bound the variables, it executes the code in the body of the @code{let}, and returns the value of the last expression in the body, -as the value of the whole @code{let} expression. (`Execute' is a jargon +as the value of the whole @code{let} expression. (``Execute'' is a jargon term that means to evaluate a list; it comes from the use of the word -meaning `to give practical effect to' (@cite{Oxford English +meaning ``to give practical effect to'' (@cite{Oxford English Dictionary}). Since you evaluate an expression to perform an action, -`execute' has evolved as a synonym to `evaluate'.) +``execute'' has evolved as a synonym to ``evaluate''.) @node Parts of let Expression @subsection The Parts of a @code{let} Expression @@ -3800,7 +3800,7 @@ such as, ``if it is warm and sunny, then go to the beach!'' @cindex @samp{if-part} defined @cindex @samp{then-part} defined -An @code{if} expression written in Lisp does not use the word `then'; +An @code{if} expression written in Lisp does not use the word ``then''; the test and the action are the second and third elements of the list whose first element is @code{if}. Nonetheless, the test part of an @code{if} expression is often called the @dfn{if-part} and the second @@ -4066,10 +4066,10 @@ and write your program accordingly.) @findex nil There is an important aspect to the truth test in an @code{if} -expression. So far, we have spoken of `true' and `false' as values of +expression. So far, we have spoken of ``true'' and ``false'' as values of predicates as if they were new kinds of Emacs Lisp objects. In fact, -`false' is just our old friend @code{nil}. Anything else---anything -at all---is `true'. +``false'' is just our old friend @code{nil}. Anything else---anything +at all---is ``true''. The expression that tests for truth is interpreted as @dfn{true} if the result of evaluating it is a value that is not @code{nil}. In @@ -4351,7 +4351,7 @@ The name of an existing buffer. The name of an existing file. @item p -The numeric prefix argument. (Note that this `p' is lower case.) +The numeric prefix argument. (Note that this @code{p} is lower case.) @item r Point and the mark, as two numeric arguments, smallest first. This @@ -4443,7 +4443,7 @@ markers, are equal. @item equal @itemx eq Test whether two objects are the same. @code{equal} uses one meaning -of the word `same' and @code{eq} uses another: @code{equal} returns +of the word ``same'' and @code{eq} uses another: @code{equal} returns true if the two objects have a similar structure and contents, such as two copies of the same book. On the other hand, @code{eq}, returns true if both arguments are actually the same object. @@ -4472,7 +4472,7 @@ shorter, alternative name is @code{string=}. There are no string test functions that correspond to @var{>}, @code{>=}, or @code{<=}. @item message -Print a message in the echo area. The first argument is a string that +Print a message in the echo area. The first argument is a string that can contain @samp{%s}, @samp{%d}, or @samp{%c} to print the value of arguments that follow the string. The argument used by @samp{%s} must be a string or a symbol; the argument used by @samp{%d} must be a @@ -4588,7 +4588,7 @@ function definition. Put point into the name of the file that contains the function and press the @key{RET} key. In this case, @key{RET} means -@code{push-button} rather than `return' or `enter'. Emacs will take +@code{push-button} rather than ``return'' or ``enter''. Emacs will take you directly to the function definition. @ignore @@ -4596,7 +4596,7 @@ Not In version 22 If you move point over the file name and press the @key{RET} key, which in this case means @code{help-follow} rather -than `return' or `enter', Emacs will take you directly to the function +than ``return'' or ``enter'', Emacs will take you directly to the function definition. @end ignore @@ -4606,7 +4606,7 @@ file, you can use the @code{find-tag} function to jump to it. Lisp, and C, and it works with non-programming text as well. For example, @code{find-tag} will jump to the various nodes in the Texinfo source file of this document. -The @code{find-tag} function depends on `tags tables' that record +The @code{find-tag} function depends on ``tags tables'' that record the locations of the functions, variables, and other items to which @code{find-tag} jumps. @@ -4624,7 +4624,7 @@ screen. To switch back to your current buffer, type @kbd{C-x b @cindex TAGS table, specifying @findex find-tag Depending on how the initial default values of your copy of Emacs are -set, you may also need to specify the location of your `tags table', +set, you may also need to specify the location of your ``tags table'', which is a file called @file{TAGS}. For example, if you are interested in Emacs sources, the tags table you will most likely want, if it has already been created for you, will be in a subdirectory of @@ -4650,7 +4650,7 @@ After you become more familiar with Emacs Lisp, you will find that you will frequently use @code{find-tag} to navigate your way around source code; and you will create your own @file{TAGS} tables. -@cindex Library, as term for `file' +@cindex Library, as term for ``file'' Incidentally, the files that contain Lisp code are conventionally called @dfn{libraries}. The metaphor is derived from that of a specialized library, such as a law library or an engineering library, @@ -4916,7 +4916,7 @@ The expression works nearly the same as before. It sets a mark at the highest numbered place in the buffer that it can. However, in this version, @code{push-mark} has two additional arguments. The second argument to @code{push-mark} is @code{nil}. This tells the function -it @emph{should} display a message that says `Mark set' when it pushes +it @emph{should} display a message that says ``Mark set'' when it pushes the mark. The third argument is @code{t}. This tells @code{push-mark} to activate the mark when Transient Mark mode is turned on. Transient Mark mode highlights the currently active @@ -5522,7 +5522,7 @@ the buffer you are in (and you have not seen the computer shift its attention, so you don't know that that buffer is now called @code{oldbuf}). -Incidentally, this is what is meant by `replacement'. To replace text, +Incidentally, this is what is meant by ``replacement''. To replace text, Emacs erases the previous text and then inserts new text. @need 1250 @@ -6135,7 +6135,7 @@ size of the buffer. The reason for this is that the old version 18 Emacs used numbers that are no bigger than eight million or so and in the computation that followed, the programmer feared that Emacs might try to use over-large numbers if the buffer were large. The term -`overflow', mentioned in the comment, means numbers that are over +``overflow'', mentioned in the comment, means numbers that are over large. More recent versions of Emacs use larger numbers, but this code has not been touched, if only because people now look at buffers that are far, far larger than ever before. @@ -6155,7 +6155,7 @@ was that function called several times, it gave the size of the whole buffer, not the accessible part. The computation makes much more sense when it handles just the accessible part. (@xref{Narrowing & Widening, , Narrowing and Widening}, for more information on focusing -attention to an `accessible' part.) +attention to an ``accessible'' part.) @need 800 The line looks like this: @@ -6403,7 +6403,7 @@ tenths of the way through the buffer, which is a nicety that is, perhaps, not necessary, but which, if it did not occur, would be sure to draw complaints. (The @code{(not (consp arg))} portion is so that if you specify the command with a @kbd{C-u}, but without a number, -that is to say, if the `raw prefix argument' is simply a cons cell, +that is to say, if the ``raw prefix argument'' is simply a cons cell, the command does not put you at the beginning of the second line.) @node Second Buffer Related Review @@ -6432,7 +6432,7 @@ is optional; this means that the function can be evaluated without the argument, if desired. @item prefix-numeric-value -Convert the `raw prefix argument' produced by @code{(interactive +Convert the ``raw prefix argument'' produced by @code{(interactive "P")} to a numeric value. @item forward-line @@ -6814,11 +6814,11 @@ namely, @code{setcdr} and @code{nthcdr}. (@xref{copy-region-as-kill}.) @end ifnottex The name of the @code{cons} function is not unreasonable: it is an -abbreviation of the word `construct'. The origins of the names for +abbreviation of the word ``construct''. The origins of the names for @code{car} and @code{cdr}, on the other hand, are esoteric: @code{car} -is an acronym from the phrase `Contents of the Address part of the -Register'; and @code{cdr} (pronounced `could-er') is an acronym from -the phrase `Contents of the Decrement part of the Register'. These +is an acronym from the phrase ``Contents of the Address part of the +Register''; and @code{cdr} (pronounced ``could-er'') is an acronym from +the phrase ``Contents of the Decrement part of the Register''. These phrases refer to specific pieces of hardware on the very early computer on which the original Lisp was developed. Besides being obsolete, the phrases have been completely irrelevant for more than 25 @@ -6853,7 +6853,7 @@ Clearly, a more reasonable name for the @code{car} function would be @code{car} does not remove the first item from the list; it only reports what it is. After @code{car} has been applied to a list, the list is still the same as it was. In the jargon, @code{car} is -`non-destructive'. This feature turns out to be important. +``non-destructive''. This feature turns out to be important. The @sc{cdr} of a list is the rest of the list, that is, the @code{cdr} function returns the part of the list that follows the @@ -6975,8 +6975,8 @@ appear in the echo area. @code{cons} causes the creation of a new list in which the element is followed by the elements of the original list. -We often say that `@code{cons} puts a new element at the beginning of -a list; it attaches or pushes elements onto the list', but this +We often say that ``@code{cons} puts a new element at the beginning of +a list; it attaches or pushes elements onto the list'', but this phrasing can be misleading, since @code{cons} does not change an existing list, but creates a new one. @@ -7001,7 +7001,7 @@ need to provide at least an empty list at the beginning. Here is a series of @code{cons} expressions that build up a list of flowers. If you are reading this in Info in GNU Emacs, you can evaluate each of the expressions in the usual way; the value is printed in this text -after @samp{@result{}}, which you may read as `evaluates to'. +after @samp{@result{}}, which you may read as ``evaluates to''. @smallexample @group @@ -7114,7 +7114,7 @@ In an earlier version: This is written with a special notation, @samp{#= emacs-major-version 21) (blink-cursor-mode 0) - ;; Insert newline when you press `C-n' (next-line) + ;; Insert newline when you press 'C-n' (next-line) ;; at the end of the buffer (setq next-line-add-newlines t) @end group @@ -17804,9 +17804,9 @@ Set the shape and color of the mouse cursor: @smallexample @group ; Cursor shapes are defined in -; `/usr/include/X11/cursorfont.h'; -; for example, the `target' cursor is number 128; -; the `top_left_arrow' cursor is number 132. +; '/usr/include/X11/cursorfont.h'; +; for example, the 'target' cursor is number 128; +; the 'top_left_arrow' cursor is number 132. @end group @group @@ -17857,10 +17857,10 @@ problem recently.) @smallexample @group -;; Translate `C-h' to . +;; Translate 'C-h' to . ; (keyboard-translate ?\C-h ?\C-?) -;; Translate to `C-h'. +;; Translate to 'C-h'. (keyboard-translate ?\C-? ?\C-h) @end group @end smallexample @@ -17878,7 +17878,7 @@ problem recently.) or start GNU Emacs with the command @code{emacs -nbc}. @need 1250 -@item When using `grep'@* +@item When using @command{grep}@* @samp{-i}@w{ } Ignore case distinctions@* @samp{-n}@w{ } Prefix each line of output with line number@* @samp{-H}@w{ } Print the filename for each match.@* @@ -17917,7 +17917,7 @@ This avoids problems with symbolic links. @end group @end smallexample -If you want to write with Chinese `GB' characters, set this instead: +If you want to write with Chinese ``GB'' characters, set this instead: @smallexample @group @@ -17960,7 +17960,7 @@ Lock} key is at the far left of the home row: @smallexample @group -# Bind the key labeled `Caps Lock' to `Control' +# Bind the key labeled 'Caps Lock' to 'Control' # (Such a broken user interface suggests that keyboard manufacturers # think that computers are typewriters from 1885.) @@ -18097,7 +18097,7 @@ beginning @code{(#("%12b" 0 4 @dots{}}. The @code{#(} begins the list. The @samp{"%12b"} displays the current buffer name, using the -@code{buffer-name} function with which we are familiar; the `12' +@code{buffer-name} function with which we are familiar; the @samp{12} specifies the maximum number of characters that will be displayed. When a name has fewer characters, whitespace is added to fill out to this number. (Buffer names can and often should be longer than 12 @@ -18107,7 +18107,7 @@ window.) @code{:eval} says to evaluate the following form and use the result as a string to display. In this case, the expression displays the first component of the full system name. The end of the first component is -a @samp{.} (`period'), so I use the @code{string-match} function to +a @samp{.} (``period''), so I use the @code{string-match} function to tell me the length of the first component. The substring from the zeroth character to that length is the name of the machine. @@ -18122,10 +18122,10 @@ This is the expression: @end smallexample @samp{%[} and @samp{%]} cause a pair of square brackets -to appear for each recursive editing level. @samp{%n} says `Narrow' +to appear for each recursive editing level. @samp{%n} says ``Narrow'' when narrowing is in effect. @samp{%P} tells you the percentage of -the buffer that is above the bottom of the window, or `Top', `Bottom', -or `All'. (A lower case @samp{p} tell you the percentage above the +the buffer that is above the bottom of the window, or ``Top'', ``Bottom'', +or ``All''. (A lower case @samp{p} tell you the percentage above the @emph{top} of the window.) @samp{%-} inserts enough dashes to fill out the line. @@ -18133,7 +18133,7 @@ Remember, ``You don't have to like Emacs to like it''---your own Emacs can have different colors, different commands, and different keys than a default Emacs. -On the other hand, if you want to bring up a plain `out of the box' +On the other hand, if you want to bring up a plain ``out of the box'' Emacs, with no customization, type: @smallexample @@ -18234,9 +18234,9 @@ Debugger entered--Lisp error: (void-function 1=) long lines. As usual, you can quit the debugger by typing @kbd{q} in the @file{*Backtrace*} buffer.) -In practice, for a bug as simple as this, the `Lisp error' line will +In practice, for a bug as simple as this, the ``Lisp error'' line will tell you what you need to know to correct the definition. The -function @code{1=} is `void'. +function @code{1=} is ``void''. @ignore @need 800 @@ -18532,7 +18532,7 @@ beginning of the @code{if} line of the function. Also, you will see an arrowhead at the left hand side of that line. The arrowhead marks the line where the function is executing. (In the following examples, we show the arrowhead with @samp{=>}; in a windowing system, you may -see the arrowhead as a solid triangle in the window `fringe'.) +see the arrowhead as a solid triangle in the window ``fringe''.) @smallexample =>@point{}(if (= number 1) @@ -18567,7 +18567,7 @@ Result: 3 (#o3, #x3, ?\C-c) @noindent This means the value of @code{number} is 3, which is octal three, -hexadecimal three, and @sc{ascii} `control-c' (the third letter of the +hexadecimal three, and @sc{ascii} ``control-c'' (the third letter of the alphabet, in case you need to know this information). You can continue moving through the code until you reach the line with @@ -18614,7 +18614,7 @@ Lisp Reference Manual}. Install the @code{@value{COUNT-WORDS}} function and then cause it to enter the built-in debugger when you call it. Run the command on a region containing two words. You will need to press @kbd{d} a -remarkable number of times. On your system, is a `hook' called after +remarkable number of times. On your system, is a ``hook'' called after the command finishes? (For information on hooks, see @ref{Command Overview, , Command Loop Overview, elisp, The GNU Emacs Lisp Reference Manual}.) @@ -18735,7 +18735,7 @@ customize the @code{interactive} expression without using the standard character codes; and it shows how to create a temporary buffer. (The @code{indent-to} function is written in C rather than Emacs Lisp; -it is a `built-in' function. @code{help-follow} takes you to its +it is a ``built-in'' function. @code{help-follow} takes you to its source as does @code{find-tag}, when properly set up.) You can look at a function's source using @code{find-tag}, which is @@ -18803,7 +18803,7 @@ The GNU Emacs Lisp Reference Manual}.) You might try searching just for duplicated word-constituent characters but that does not work since the pattern detects doubles -such as the two occurrences of `th' in `with the'. +such as the two occurrences of ``th'' in ``with the''. Another possible regexp searches for word-constituent characters followed by non-word-constituent characters, reduplicated. Here, @@ -18850,7 +18850,7 @@ Here is the @code{the-the} function, as I include it in my @end group @group -;; Bind `the-the' to C-c \ +;; Bind 'the-the' to C-c \ (global-set-key "\C-c\\" 'the-the) @end group @end smallexample @@ -19091,7 +19091,7 @@ The @code{if} expression has two parts, one if there exists @code{interprogram-paste} and one if not. @need 2000 -Let us consider the `if not' or else-part of the @code{current-kill} +Let us consider the ``if not'' or else-part of the @code{current-kill} function. (The then-part uses the @code{kill-new} function, which we have already described. @xref{kill-new function, , The @code{kill-new} function}.) @@ -19155,14 +19155,14 @@ list even if the @code{do-not-move} argument is true. @ifnottex @node Digression concerning error -@unnumberedsubsubsec Digression about the word `error' +@unnumberedsubsubsec Digression about the word ``error'' @end ifnottex In my opinion, it is slightly misleading, at least to humans, to use -the term `error' as the name of the @code{error} function. A better -term would be `cancel'. Strictly speaking, of course, you cannot +the term ``error'' as the name of the @code{error} function. A better +term would be ``cancel''. Strictly speaking, of course, you cannot point to, much less rotate a pointer to a list that has no length, so -from the point of view of the computer, the word `error' is correct. +from the point of view of the computer, the word ``error'' is correct. But a human expects to attempt this sort of thing, if only to find out whether the kill ring is full or empty. This is an act of exploration. @@ -19172,8 +19172,8 @@ not necessarily an error, and therefore should not be labeled as one, even in the bowels of a computer. As it is, the code in Emacs implies that a human who is acting virtuously, by exploring his or her environment, is making an error. This is bad. Even though the computer -takes the same steps as it does when there is an `error', a term such as -`cancel' would have a clearer connotation. +takes the same steps as it does when there is an ``error'', a term such as +``cancel'' would have a clearer connotation. @ifnottex @node Determining the Element @@ -19789,9 +19789,9 @@ For example, if you evaluate the following, the result is 15: (* (1+ (/ 12 5)) 5) @end smallexample -All through this discussion, we have been using `five' as the value +All through this discussion, we have been using ``five'' as the value for spacing labels on the Y axis; but we may want to use some other -value. For generality, we should replace `five' with a variable to +value. For generality, we should replace ``five'' with a variable to which we can assign a value. The best name I can think of for this variable is @code{Y-axis-label-spacing}. @@ -19915,7 +19915,7 @@ row, and the value of the width of the top line, which is calculated @group (defun Y-axis-element (number full-Y-label-width) "Construct a NUMBERed label element. -A numbered element looks like this ` 5 - ', +A numbered element looks like this ' 5 - ', and is padded as needed so all line up with the element for the largest number." @end group @@ -20016,7 +20016,7 @@ the @code{print-Y-axis} function, which inserts the list as a column. Height must be the maximum height of the graph. Full width is the width of the highest label element." ;; Value of height and full-Y-label-width -;; are passed by `print-graph'. +;; are passed by 'print-graph'. @end group @group (let ((start (point))) @@ -20706,9 +20706,9 @@ The graph looks like this: @end smallexample @noindent -(A question: is the `2' on the bottom of the vertical axis a bug or a -feature? If you think it is a bug, and should be a `1' instead, (or -even a `0'), you can modify the sources.) +(A question: is the @samp{2} on the bottom of the vertical axis a bug or a +feature? If you think it is a bug, and should be a @samp{1} instead, (or +even a @samp{0}), you can modify the sources.) @node Graphing words in defuns @appendixsubsec Graphing Numbers of Words and Symbols @@ -20816,8 +20816,8 @@ Thus, @end smallexample @noindent -is a function definition that says `return the value resulting from -dividing whatever is passed to me as @code{arg} by 50'. +is a function definition that says ``return the value resulting from +dividing whatever is passed to me as @code{arg} by 50''. @need 1200 Earlier, for example, we had a function @code{multiply-by-seven}; it @@ -20958,7 +20958,7 @@ element of its second argument, in turn. The second argument must be a sequence. The @samp{map} part of the name comes from the mathematical phrase, -`mapping over a domain', meaning to apply a function to each of the +``mapping over a domain'', meaning to apply a function to each of the elements in a domain. The mathematical phrase is based on the metaphor of a surveyor walking, one step at a time, over an area he is mapping. And @samp{car}, of course, comes from the Lisp notion of the @@ -21038,7 +21038,7 @@ that none had that many words or symbols.) @cindex Bug, most insidious type @cindex Insidious type of bug -I said `almost ready to print'! Of course, there is a bug in the +I said ``almost ready to print''! Of course, there is a bug in the @code{print-graph} function @dots{} It has a @code{vertical-step} option, but not a @code{horizontal-step} option. The @code{top-of-range} scale goes from 10 to 300 by tens. But the @@ -21141,7 +21141,7 @@ each column." @end group @group ;; Value of symbol-width and full-Y-label-width -;; are passed by `print-graph'. +;; are passed by 'print-graph'. (let* ((leading-spaces (make-string full-Y-label-width ? )) ;; symbol-width @r{is provided by} graph-body-print @@ -21309,7 +21309,7 @@ symbols in one function definition." @end group @group - (message "Working on `%s' ... " filename) + (message "Working on '%s' ... " filename) (save-excursion (let ((buffer (find-file-noselect filename)) (lengths-list)) @@ -21439,7 +21439,7 @@ The strings are either graph-blank or graph-symbol." @group (defun Y-axis-element (number full-Y-label-width) "Construct a NUMBERed label element. -A numbered element looks like this ` 5 - ', +A numbered element looks like this ' 5 - ', and is padded as needed so all line up with the element for the largest number." @end group @@ -21469,7 +21469,7 @@ Optionally, print according to VERTICAL-STEP." @end group @group ;; Value of height and full-Y-label-width -;; are passed by `print-graph'. +;; are passed by 'print-graph'. (let ((start (point))) (insert-rectangle (Y-axis-column height full-Y-label-width vertical-step)) @@ -21634,7 +21634,7 @@ each column." @end group @group ;; Value of symbol-width and full-Y-label-width -;; are passed by `print-graph'. +;; are passed by 'print-graph'. (let* ((leading-spaces (make-string full-Y-label-width ? )) ;; symbol-width @r{is provided by} graph-body-print @@ -21872,7 +21872,7 @@ users think that a proprietary manual is good enough---so they don't see the need to write a free manual. They do not see that the free operating system has a gap that needs filling. -Why do users think that proprietary manuals are good enough? Some have +Why do users think that proprietary manuals are good enough? Some have not considered the issue. I hope this article will do something to change that. -- 2.39.2