summaryrefslogtreecommitdiff
path: root/doc/ed.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/ed.info')
-rw-r--r--doc/ed.info1417
1 files changed, 1417 insertions, 0 deletions
diff --git a/doc/ed.info b/doc/ed.info
new file mode 100644
index 0000000..de0f728
--- /dev/null
+++ b/doc/ed.info
@@ -0,0 +1,1417 @@
+This is ed.info, produced by makeinfo version 4.13 from ed.texinfo.
+
+INFO-DIR-SECTION Basics
+START-INFO-DIR-ENTRY
+* Ed: (ed). The GNU line editor
+END-INFO-DIR-ENTRY
+
+ Copyright (C) 1993, 2006, 2007, 2008, 2009 Free Software Foundation,
+Inc.
+
+ Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+
+
+File: ed.info, Node: Top, Next: Overview, Up: (dir)
+
+The GNU ed line editor
+**********************
+
+This manual is for GNU ed (version 1.4, 10 July 2009).
+
+
+ GNU ed is an 8-bit clean, more or less POSIX-compliant
+implementation of the standard Unix line editor. These days,
+full-screen editors have rendered `ed' mostly of historical interest.
+Nonetheless, it appeals to a handful of aging programmers who still
+believe that "Small is Beautiful".
+
+* Menu:
+
+* Overview:: Overview of the `ed' command
+* Introduction to Line Editing:: Getting started with GNU `ed'
+* Invoking Ed:: Command line interface
+* Line Addressing:: Specifying lines/ranges in the buffer
+* Regular Expressions:: Patterns for selecting text
+* Commands:: Commands recognized by GNU `ed'
+* Limitations:: Intrinsic limits of GNU `ed'
+* Diagnostics:: GNU `ed' error handling
+* Problems:: Reporting bugs
+* GNU Free Documentation License:: How you can copy and share this manual
+
+
+ Copyright (C) 1993, 2006, 2007, 2008, 2009 Free Software Foundation,
+Inc.
+
+ Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+
+
+File: ed.info, Node: Overview, Next: Introduction to Line Editing, Prev: Top, Up: Top
+
+1 Overview
+**********
+
+`ed' is a line-oriented text editor. It is used to create, display,
+modify and otherwise manipulate text files. `red' is a restricted `ed':
+it can only edit files in the current directory and cannot execute
+shell commands.
+
+ If invoked with a FILE argument, then a copy of FILE is read into
+the editor's buffer. Changes are made to this copy and not directly to
+FILE itself. Upon quitting `ed', any changes not explicitly saved with
+a `w' command are lost.
+
+ Editing is done in two distinct modes: "command" and "input". When
+first invoked, `ed' is in command mode. In this mode commands are read
+from the standard input and executed to manipulate the contents of the
+editor buffer. A typical command might look like:
+
+ ,s/OLD/NEW/g
+
+ which replaces all occurences of the string OLD with NEW.
+
+ When an input command, such as `a' (append), `i' (insert) or `c'
+(change), is given, `ed' enters input mode. This is the primary means
+of adding text to a file. In this mode, no commands are available;
+instead, the standard input is written directly to the editor buffer. A
+"line" consists of the text up to and including a <newline> character.
+Input mode is terminated by entering a single period (`.') on a line.
+
+ All `ed' commands operate on whole lines or ranges of lines; e.g.,
+the `d' command deletes lines; the `m' command moves lines, and so on.
+It is possible to modify only a portion of a line by means of
+replacement, as in the example above. However even here, the `s'
+command is applied to whole lines at a time.
+
+ In general, `ed' commands consist of zero or more line addresses,
+followed by a single character command and possibly additional
+parameters; i.e., commands have the structure:
+
+ [ADDRESS [,ADDRESS]]COMMAND[PARAMETERS]
+
+ The ADDRESSes indicate the line or range of lines to be affected by
+the command. If fewer addresses are given than the command accepts,
+then default addresses are supplied.
+
+
+File: ed.info, Node: Introduction to Line Editing, Next: Invoking Ed, Prev: Overview, Up: Top
+
+2 Introduction to Line Editing
+******************************
+
+`ed' was created, along with the Unix operating system, by Ken Thompson
+and Dennis Ritchie. It is the refinement of its more complex,
+programmable predecessor, `QED', to which Thompson and Ritchie had
+already added pattern matching capabilities (*note Regular
+Expressions::).
+
+ For the purposes of this tutorial, a working knowledge of the Unix
+shell `sh' (*note Bash: (bash)Bash.) and the Unix file system is
+recommended, since `ed' is designed to interact closely with them.
+
+ The principal difference between line editors and display editors is
+that display editors provide instant feedback to user commands, whereas
+line editors require sometimes lengthy input before any effects are
+seen. The advantage of instant feedback, of course, is that if a mistake
+is made, it can be corrected immediately, before more damage is done.
+Editing in `ed' requires more strategy and forethought; but if you are
+up to the task, it can be quite efficient.
+
+ Much of the `ed' command syntax is shared with other Unix utilities.
+
+ As with the shell, <RETURN> (the carriage-return key) enters a line
+of input. So when we speak of "entering" a command or some text in
+`ed', <RETURN> is implied at the end of each line. Prior to typing
+<RETURN>, corrections to the line may be made by typing either
+<BACKSPACE> (sometimes labeled <DELETE> or <DEL>) to erase characters
+backwards, or <CONTROL>-u (i.e., hold the CONTROL key and type u) to
+erase the whole line.
+
+ When `ed' first opens, it expects to be told what to do but doesn't
+prompt us like the shell. So let's begin by telling `ed' to do so with
+the <P> ("prompt") command:
+
+ $ ed
+ P
+ *
+
+ By default, `ed' uses asterisk (`*') as command prompt to avoid
+confusion with the shell command prompt (`$').
+
+ We can run Unix shell (`sh') commands from inside `ed' by prefixing
+them with <!> (exclamation mark, aka "bang"). For example:
+
+ *!date
+ Mon Jun 26 10:08:41 PDT 2006
+ !
+ *!for s in hello world; do echo $s; done
+ hello
+ world
+ !
+ *
+
+ So far, this is no different from running commands in the Unix shell.
+But let's say we want to edit the output of a command, or save it to a
+file. First we must capture the command output to a temporary location
+called a "buffer" where `ed' can access it. This is done with `ed''s
+<r> command (mnemonic: "read"):
+
+ *r !cal
+ 143
+ *
+
+ Here `ed' is telling us that it has just read 143 characters into
+the editor buffer - i.e., the output of the `cal' command, which prints
+a simple ASCII calendar. To display the buffer contents we issue the
+<p> ("print") command (not to be confused with the prompt command,
+which is uppercase!). To indicate the range of lines in the buffer that
+should be printed, we prefix the command with <,> (comma) which is
+shorthand for "the whole buffer":
+
+ *,p
+ September 2006
+ Mo Tu We Th Fr Sa Su
+ 1 2 3
+ 4 5 6 7 8 9 10
+ 11 12 13 14 15 16 17
+ 18 19 20 21 22 23 24
+ 25 26 27 28 29 30
+
+ *
+
+ Now let's write the buffer contents to a file named `junk' with the
+<w> ("write") command. Again, we use the <,> prefix to indicate that
+it's the whole buffer we want:
+
+ *,w junk
+ 143
+ *
+
+ Need we say? It's good practice to frequently write the buffer
+contents, since unwritten changes to the buffer will be lost when we
+exit `ed'.
+
+ The sample sessions below illustrate some basic concepts of line
+editing with `ed'. We begin by creating a file, `sonnet', with some
+help from Shakespeare. As with the shell, all input to `ed' must be
+followed by a <newline> character. Comments begin with a `#'.
+
+ $ ed
+ # The `a' command is for appending text to the editor buffer.
+ a
+ No more be grieved at that which thou hast done.
+ Roses have thorns, and filvers foutians mud.
+ Clouds and eclipses stain both moon and sun,
+ And loathsome canker lives in sweetest bud.
+ .
+ # Entering a single period on a line returns `ed' to command mode.
+ # Now write the buffer to the file `sonnet' and quit:
+ w sonnet
+ 183
+ # `ed' reports the number of characters written.
+ q
+ $ ls -l
+ total 2
+ -rw-rw-r-- 1 alm 183 Nov 10 01:16 sonnet
+ $
+
+ In the next example, some typos are corrected in the file `sonnet'.
+
+ $ ed sonnet
+ 183
+ # Begin by printing the buffer to the terminal with the `p' command.
+ # The `,' means ``all lines.''
+ ,p
+ No more be grieved at that which thou hast done.
+ Roses have thorns, and filvers foutians mud.
+ Clouds and eclipses stain both moon and sun,
+ And loathsome canker lives in sweetest bud.
+ # Select line 2 for editing.
+ 2
+ Roses have thorns, and filvers foutians mud.
+ # Use the substitute command, `s', to replace `filvers' with `silver',
+ # and print the result.
+ s/filvers/silver/p
+ Roses have thorns, and silver foutians mud.
+ # And correct the spelling of `fountains'.
+ s/utia/untai/p
+ Roses have thorns, and silver fountains mud.
+ w sonnet
+ 183
+ q
+ $
+
+ Since `ed' is line-oriented, we have to tell it which line, or range
+of lines we want to edit. In the above example, we do this by
+specifying the line's number, or sequence in the buffer. Alternatively,
+we could have specified a unique string in the line, e.g., `/filvers/',
+where the `/'s delimit the string in question. Subsequent commands
+affect only the selected line, a.k.a. the "current" line. Portions of
+that line are then replaced with the substitute command, whose syntax
+is `s/OLD/NEW/'.
+
+ Although `ed' accepts only one command per line, the print command
+`p' is an exception, and may be appended to the end of most commands.
+
+ In the next example, a title is added to our sonnet.
+
+ $ ed sonnet
+ 183
+ a
+ Sonnet #50
+ .
+ ,p
+ No more be grieved at that which thou hast done.
+ Roses have thorns, and silver fountains mud.
+ Clouds and eclipses stain both moon and sun,
+ And loathsome canker lives in sweetest bud.
+ Sonnet #50
+ # The title got appended to the end; we should have used `0a'
+ # to append ``before the first line.''
+ # Move the title to its proper place.
+ 5m0p
+ Sonnet #50
+ # The title is now the first line, and the current line has been
+ # set to this line as well.
+ ,p
+ Sonnet #50
+ No more be grieved at that which thou hast done.
+ Roses have thorns, and silver fountains mud.
+ Clouds and eclipses stain both moon and sun,
+ And loathsome canker lives in sweetest bud.
+ wq sonnet
+ 195
+ $
+
+ When `ed' opens a file, the current line is initially set to the
+last line of that file. Similarly, the move command `m' sets the
+current line to the last line moved.
+
+ In summary:
+
+ Structurally, Related programs or routines are `vi (1)', `sed (1)',
+`regex (3)', `sh (1)'. Relevant documents are:
+
+ Unix User's Manual Supplementary Documents: 12 -- 13
+
+ B. W. Kernighan and P. J. Plauger: "Software Tools in Pascal",
+ Addison-Wesley, 1981.
+
+
+File: ed.info, Node: Invoking Ed, Next: Line Addressing, Prev: Introduction to Line Editing, Up: Top
+
+3 Invoking Ed
+*************
+
+The format for running `ed' is:
+
+ ed [OPTIONS] [FILE]
+ red [OPTIONS] [FILE]
+
+ FILE specifies the name of a file to read. If FILE is prefixed with
+a bang (!), then it is interpreted as a shell command. In this case,
+what is read is the standard output of FILE executed via `sh (1)'. To
+read a file whose name begins with a bang, prefix the name with a
+backslash (`\'). The default filename is set to FILE only if it is not
+prefixed with a bang.
+
+ `ed' supports the following options:
+
+`--help'
+`-h'
+ Print an informative help message describing the options and exit.
+
+`--version'
+`-V'
+ Print the version number of `ed' on the standard output and exit.
+
+`--loose-exit-status'
+`-l'
+ Do not exit with bad status if a command happens to "fail" (for
+ example if a substitution command finds nothing to replace). This
+ can be useful when `ed' is invoked as the editor for crontab.
+
+`--prompt=STRING'
+`-p STRING'
+ Specifies a command prompt. This may be toggled on and off with the
+ `P' command.
+
+`--quiet'
+`--silent'
+`-s'
+ Suppresses diagnostics. This should be used if `ed''s standard
+ input is from a script.
+
+`--traditional'
+`-G'
+ Forces backwards compatibility. This affects the behavior of the
+ `ed' commands `G', `V', `f', `l', `m', `t' and `!!'. If the
+ default behavior of these commands does not seem familiar, then
+ try invoking `ed' with this switch.
+
+`--verbose'
+`-v'
+ Verbose mode. This may be toggled on and off with the `H' command.
+
+
+
+File: ed.info, Node: Line Addressing, Next: Regular Expressions, Prev: Invoking Ed, Up: Top
+
+4 Line Addressing
+*****************
+
+An address represents the number of a line in the buffer. `ed'
+maintains a "current address" which is typically supplied to commands
+as the default address when none is specified. When a file is first
+read, the current address is set to the last line of the file. In
+general, the current address is set to the last line affected by a
+command.
+
+ A line address is constructed from one of the bases in the list
+below, optionally followed by a numeric offset. The offset may include
+any combination of digits, operators (i.e., `+' and `-') and
+whitespace. Addresses are read from left to right, and their values may
+be absolute or relative to the current address.
+
+ One exception to the rule that addresses represent line numbers is
+the address `0' (zero). This means "before the first line," and is
+valid wherever it makes sense.
+
+ An address range is two addresses separated either by a comma or
+semicolon. The value of the first address in a range cannot exceed the
+value of the second. If only one address is given in a range, then the
+second address is set to the given address. If an N-tuple of addresses
+is given where N > 2, then the corresponding range is determined by the
+last two addresses in the N-tuple. If only one address is expected,
+then the last address is used.
+
+ Each address in a comma-delimited range is interpreted relative to
+the current address. In a semicolon-delimited range, the first address
+is used to set the current address, and the second address is
+interpreted relative to the first.
+
+ The following address symbols are recognized.
+
+`.'
+ The current line (address) in the buffer.
+
+`$'
+ The last line in the buffer.
+
+`N'
+ The Nth, line in the buffer where N is a number in the range `0,$'.
+
+`+'
+ The next line. This is equivalent to `+1' and may be repeated with
+ cumulative effect.
+
+`-'
+ The previous line. This is equivalent to `-1' and may be repeated
+ with cumulative effect.
+
+`+N'
+`WHITESPACE N'
+ The Nth next line, where N is a non-negative number. Whitespace
+ followed by a number N is interpreted as `+N'.
+
+`-N'
+ The Nth previous line, where N is a non-negative number.
+
+`,'
+ The first through last lines in the buffer. This is equivalent to
+ the address range `1,$'.
+
+`;'
+ The current through last lines in the buffer. This is equivalent
+ to the address range `.,$'.
+
+`/RE/'
+ The next line containing the regular expression RE. The search
+ wraps to the beginning of the buffer and continues down to the
+ current line, if necessary. `//' repeats the last search.
+
+`?RE?'
+ The previous line containing the regular expression RE. The search
+ wraps to the end of the buffer and continues up to the current
+ line, if necessary. `??' repeats the last search.
+
+`'x'
+ The apostrophe-x character pair addresses the line previously
+ marked by a `k' (mark) command, where `x' is a lower case letter
+ from the portable character set.
+
+
+
+File: ed.info, Node: Regular Expressions, Next: Commands, Prev: Line Addressing, Up: Top
+
+5 Regular Expressions
+*********************
+
+Regular expressions are patterns used in selecting text. For example,
+the `ed' command
+
+ g/STRING/
+
+prints all lines containing STRING. Regular expressions are also used
+by the `s' command for selecting old text to be replaced with new text.
+
+ In addition to a specifying string literals, regular expressions can
+represent classes of strings. Strings thus represented are said to be
+matched by the corresponding regular expression. If it is possible for a
+regular expression to match several strings in a line, then the
+left-most longest match is the one selected.
+
+ The following symbols are used in constructing regular expressions:
+
+`C'
+ Any character C not listed below, including `{', `}', `(', `)',
+ `<' and `>', matches itself.
+
+`\C'
+ Any backslash-escaped character C, other than `{', ``}', `(', `)',
+ `<', `>', `b', `B', `w', `W', `+' and `?', matches itself.
+
+`.'
+ Matches any single character.
+
+`[CHAR-CLASS]'
+ Matches any single character in CHAR-CLASS. To include a `]' in
+ CHAR-CLASS, it must be the first character. A range of characters
+ may be specified by separating the end characters of the range
+ with a `-', e.g., `a-z' specifies the lower case characters. The
+ following literal expressions can also be used in CHAR-CLASS to
+ specify sets of characters:
+
+ [:alnum:] [:cntrl:] [:lower:] [:space:]
+ [:alpha:] [:digit:] [:print:] [:upper:]
+ [:blank:] [:graph:] [:punct:] [:xdigit:]
+
+ If `-' appears as the first or last character of CHAR-CLASS, then
+ it matches itself. All other characters in CHAR-CLASS match
+ themselves.
+
+ Patterns in CHAR-CLASS of the form:
+ [.COL-ELM.]
+ [=COL-ELM=]
+
+ where COL-ELM is a "collating element" are interpreted according
+ to `locale (5)'. See `regex (3)' for an explanation of these
+ constructs.
+
+`[^CHAR-CLASS]'
+ Matches any single character, other than newline, not in
+ CHAR-CLASS. CHAR-CLASS is defined as above.
+
+`^'
+ If `^' is the first character of a regular expression, then it
+ anchors the regular expression to the beginning of a line.
+ Otherwise, it matches itself.
+
+`$'
+ If `$' is the last character of a regular expression, it anchors
+ the regular expression to the end of a line. Otherwise, it matches
+ itself.
+
+`\(RE\)'
+ Defines a (possibly null) subexpression RE. Subexpressions may be
+ nested. A subsequent backreference of the form `\N', where N is a
+ number in the range [1,9], expands to the text matched by the Nth
+ subexpression. For example, the regular expression `\(a.c\)\1'
+ matches the string `abcabc', but not `abcadc'. Subexpressions are
+ ordered relative to their left delimiter.
+
+`*'
+ Matches the single character regular expression or subexpression
+ immediately preceding it zero or more times. If `*' is the first
+ character of a regular expression or subexpression, then it matches
+ itself. The `*' operator sometimes yields unexpected results. For
+ example, the regular expression `b*' matches the beginning of the
+ string `abbb', as opposed to the substring `bbb', since a null
+ match is the only left-most match.
+
+`\{N,M\}'
+`\{N,\}'
+`\{N\}'
+ Matches the single character regular expression or subexpression
+ immediately preceding it at least N and at most M times. If M is
+ omitted, then it matches at least N times. If the comma is also
+ omitted, then it matches exactly N times. If any of these forms
+ occurs first in a regular expression or subexpression, then it is
+ interpreted literally (i.e., the regular expression `\{2\}'
+ matches the string `{2}', and so on).
+
+`\<'
+`\>'
+ Anchors the single character regular expression or subexpression
+ immediately following it to the beginning (in the case of `\<') or
+ ending (in the case of `\>') of a "word", i.e., in ASCII, a
+ maximal string of alphanumeric characters, including the
+ underscore (_).
+
+
+ The following extended operators are preceded by a backslash `\' to
+distinguish them from traditional `ed' syntax.
+
+`\`'
+`\''
+ Unconditionally matches the beginning `\`' or ending `\'' of a
+ line.
+
+`\?'
+ Optionally matches the single character regular expression or
+ subexpression immediately preceding it. For example, the regular
+ expression `a[bd]\?c' matches the strings `abc', `adc' and `ac'.
+ If `\?' occurs at the beginning of a regular expressions or
+ subexpression, then it matches a literal `?'.
+
+`\+'
+ Matches the single character regular expression or subexpression
+ immediately preceding it one or more times. So the regular
+ expression `a+' is shorthand for `aa*'. If `\+' occurs at the
+ beginning of a regular expression or subexpression, then it
+ matches a literal `+'.
+
+`\b'
+ Matches the beginning or ending (null string) of a word. Thus the
+ regular expression `\bhello\b' is equivalent to `\<hello\>'.
+ However, `\b\b' is a valid regular expression whereas `\<\>' is
+ not.
+
+`\B'
+ Matches (a null string) inside a word.
+
+`\w'
+ Matches any character in a word.
+
+`\W'
+ Matches any character not in a word.
+
+
+
+File: ed.info, Node: Commands, Next: Limitations, Prev: Regular Expressions, Up: Top
+
+6 Commands
+**********
+
+All `ed' commands are single characters, though some require additonal
+parameters. If a command's parameters extend over several lines, then
+each line except for the last must be terminated with a backslash (`\').
+
+ In general, at most one command is allowed per line. However, most
+commands accept a print suffix, which is any of `p' (print), `l'
+(list), or `n' (enumerate), to print the last line affected by the
+command.
+
+ An interrupt (typically <Control-C>) has the effect of aborting the
+current command and returning the editor to command mode.
+
+ `ed' recognizes the following commands. The commands are shown
+together with the default address or address range supplied if none is
+specified (in parenthesis).
+
+`(.)a'
+ Appends text to the buffer after the addressed line, which may be
+ the address `0' (zero). Text is entered in input mode. The current
+ address is set to last line entered.
+
+`(.,.)c'
+ Changes lines in the buffer. The addressed lines are deleted from
+ the buffer, and text is appended in their place. Text is entered
+ in input mode. The current address is set to last line entered.
+
+`(.,.)d'
+ Deletes the addressed lines from the buffer. If there is a line
+ after the deleted range, then the current address is set to this
+ line. Otherwise the current address is set to the line before the
+ deleted range.
+
+`e FILE'
+ Edits FILE, and sets the default filename. If FILE is not
+ specified, then the default filename is used. Any lines in the
+ buffer are deleted before the new file is read. The current
+ address is set to the last line read.
+
+`e !COMMAND'
+ Edits the standard output of `!COMMAND', (see the `!' command
+ below). The default filename is unchanged. Any lines in the buffer
+ are deleted before the output of COMMAND is read. The current
+ address is set to the last line read.
+
+`E FILE'
+ Edits FILE unconditionally. This is similar to the `e' command,
+ except that unwritten changes are discarded without warning. The
+ current address is set to the last line read.
+
+`f FILE'
+ Sets the default filename to FILE. If FILE is not specified, then
+ the default unescaped filename is printed.
+
+`(1,$)g /RE/COMMAND-LIST'
+ Global command. Applies COMMAND-LIST to each of the addressed
+ lines matching a regular expression RE. The current address is set
+ to the line currently matched before COMMAND-LIST is executed. At
+ the end of the `g' command, the current address is set to the last
+ line affected by COMMAND-LIST.
+
+ At least the first command of COMMAND-LIST must appear on the same
+ line as the `g' command. All lines of a multi-line COMMAND-LIST
+ except the last line must be terminated with a backslash (`\').
+ Any commands are allowed, except for `g', `G', `v', and `V'. By
+ default, a newline alone in COMMAND-LIST is equivalent to a `p'
+ command. If `ed' is invoked with the command-line option `-G',
+ then a newline in COMMAND-LIST is equivalent to a `.+1p' command.
+
+`(1,$)G /RE/'
+ Interactive global command. Interactively edits the addressed lines
+ matching a regular expression RE. For each matching line, the line
+ is printed, the current address is set, and the user is prompted to
+ enter a COMMAND-LIST. At the end of the `G' command, the current
+ address is set to the last line affected by (the last)
+ COMMAND-LIST.
+
+ The format of COMMAND-LIST is the same as that of the `g' command.
+ A newline alone acts as a null command list. A single `&' repeats
+ the last non-null command list.
+
+`H'
+ Toggles the printing of error explanations. By default,
+ explanations are not printed. It is recommended that ed scripts
+ begin with this command to aid in debugging.
+
+`h'
+ Prints an explanation of the last error.
+
+`(.)i'
+ Inserts text in the buffer before the current line. The address `0'
+ (zero) is valid for this command; it is equivalent to address `1'.
+ Text is entered in input mode. The current address is set to the
+ last line entered.
+
+`(.,.+1)j'
+ Joins the addressed lines. The addressed lines are deleted from the
+ buffer and replaced by a single line containing their joined text.
+ The current address is set to the resultant line.
+
+`(.)kx'
+ Marks a line with a lower case letter `x'. The line can then be
+ addressed as `'x' (i.e., a single quote followed by `x') in
+ subsequent commands. The mark is not cleared until the line is
+ deleted or otherwise modified.
+
+`(.,.)l'
+ Prints the addressed lines unambiguously. The end of each line is
+ marked with a `$', and every `$' character within the text is
+ printed with a preceding backslash. The current address is set to
+ the last line printed.
+
+`(.,.)m(.)'
+ Moves lines in the buffer. The addressed lines are moved to after
+ the right-hand destination address, which may be the address `0'
+ (zero). The current address is set to the new address of the last
+ line moved.
+
+`(.,.)n'
+ Prints the addressed lines, preceding each line by its line number
+ and a <tab>. The current address is set to the last line printed.
+
+`(.,.)p'
+ Prints the addressed lines. The current address is set to the last
+ line printed.
+
+`P'
+ Toggles the command prompt on and off. Unless a prompt is
+ specified with command-line option `-p', the command prompt is by
+ default turned off.
+
+`q'
+ Quits `ed'.
+
+`Q'
+ Quits `ed' unconditionally. This is similar to the `q' command,
+ except that unwritten changes are discarded without warning.
+
+`($)r FILE'
+ Reads FILE to after the addressed line. If FILE is not specified,
+ then the default filename is used. If there is no default filename
+ prior to the command, then the default filename is set to FILE.
+ Otherwise, the default filename is unchanged. The current address
+ is set to the last line read.
+
+`($)r !COMMAND'
+ Reads to after the addressed line the standard output of
+ `!command', (see the `!' command below). The default filename is
+ unchanged. The current address is set to the last line read.
+
+`(.,.)s /RE/REPLACEMENT/'
+`(.,.)s /RE/REPLACEMENT/g'
+`(.,.)s /RE/REPLACEMENT/N'
+ Replaces text in the addressed lines matching a regular expression
+ RE with REPLACEMENT. By default, only the first match in each line
+ is replaced. If the `g' (global) suffix is given, then every match
+ is replaced. The N suffix, where N is a postive number, causes
+ only the Nth match to be replaced. It is an error if no
+ substitutions are performed on any of the addressed lines. The
+ current address is set to the last line affected.
+
+ RE and REPLACEMENT may be delimited by any character other than
+ <space>, <newline> and the characters used by the form of the `s'
+ command shown below. If one or two of the last delimiters is
+ omitted, then the last line affected is printed as if the print
+ suffix `p' were specified.
+
+ An unescaped `&' in REPLACEMENT is replaced by the currently
+ matched text. The character sequence `\M' where M is a number in
+ the range [1,9], is replaced by the Mth backreference expression
+ of the matched text. If REPLACEMENT consists of a single `%', then
+ REPLACEMENT from the last substitution is used. Newlines may be
+ embedded in REPLACEMENT if they are escaped with a backslash (`\').
+
+`(.,.)s'
+ Repeats the last substitution. This form of the `s' command accepts
+ a count suffix N, and any combination of the characters `r', `g',
+ and `p'. If a count suffix N is given, then only the Nth match is
+ replaced. The `r' suffix causes the regular expression of the last
+ search to be used instead of the that of the last substitution.
+ The `g' suffix toggles the global suffix of the last substitution.
+ The `p' suffix toggles the print suffix of the last substitution.
+ The current address is set to the last line affected.
+
+`(.,.)t(.)'
+ Copies (i.e., transfers) the addressed lines to after the
+ right-hand destination address, which may be the address `0'
+ (zero). The current address is set to the last line copied.
+
+`u'
+ Undoes the last command and restores the current address to what
+ it was before the command. The global commands `g', `G', `v', and
+ `V' are treated as a single command by undo. `u' is its own
+ inverse.
+
+`(1,$)v /RE/COMMAND-LIST'
+ This is similar to the `g' command except that it applies
+ COMMAND-LIST to each of the addressed lines not matching the
+ regular expression RE.
+
+`(1,$)V /RE/'
+ This is similar to the `G' command except that it interactively
+ edits the addressed lines not matching the regular expression RE.
+
+`(1,$)w FILE'
+ Writes the addressed lines to FILE. Any previous contents of FILE
+ is lost without warning. If there is no default filename, then the
+ default filename is set to FILE, otherwise it is unchanged. If no
+ filename is specified, then the default filename is used. The
+ current address is unchanged.
+
+`(1,$)w !COMMAND'
+ Writes the addressed lines to the standard input of `!COMMAND',
+ (see the `!' command below). The default filename and current
+ address are unchanged.
+
+`(1,$)wq FILE'
+ Writes the addressed lines to FILE, and then executes a `q'
+ command.
+
+`(1,$)W FILE'
+ Appends the addressed lines to the end of FILE. This is similar to
+ the `w' command, expect that the previous contents of file is not
+ clobbered. The current address is unchanged.
+
+`(.)x'
+ Copies (puts) the contents of the cut buffer to after the addressed
+ line. The current address is set to the last line copied.
+
+`(.,.)y'
+ Copies (yanks) the addressed lines to the cut buffer. The cut
+ buffer is overwritten by subsequent `y', `s', `j', `d', or `c'
+ commands. The current address is unchanged.
+
+`(.+1)z N'
+ Scrolls N lines at a time starting at addressed line. If N is not
+ specified, then the current window size is used. The current
+ address is set to the last line printed.
+
+`!COMMAND'
+ Executes COMMAND via `sh (1)'. If the first character of COMMAND
+ is `!', then it is replaced by text of the previous `!COMMAND'.
+ `ed' does not process COMMAND for backslash (`\') escapes.
+ However, an unescaped `%' is replaced by the default filename.
+ When the shell returns from execution, a `!' is printed to the
+ standard output. The current line is unchanged.
+
+`(.,.)#'
+ Begins a comment; the rest of the line, up to a newline, is
+ ignored. If a line address followed by a semicolon is given, then
+ the current address is set to that address. Otherwise, the current
+ address is unchanged.
+
+`($)='
+ Prints the line number of the addressed line.
+
+`(.+1)<newline>'
+ An address alone prints the addressed line. A <newline> alone is
+ equivalent to `+1p'. the current address is set to the address of
+ the printed line.
+
+
+
+File: ed.info, Node: Limitations, Next: Diagnostics, Prev: Commands, Up: Top
+
+7 Limitations
+*************
+
+If the terminal hangs up, `ed' attempts to write the buffer to file
+`ed.hup'.
+
+ `ed' processes FILE arguments for backslash escapes, i.e., in a
+filename, any characters preceded by a backslash (`\') are interpreted
+literally.
+
+ If a text (non-binary) file is not terminated by a newline character,
+then `ed' appends one on reading/writing it. In the case of a binary
+file, `ed' does not append a newline on reading/writing.
+
+ Per line overhead: 4 `int's.
+
+
+File: ed.info, Node: Diagnostics, Next: Problems, Prev: Limitations, Up: Top
+
+8 Diagnostics
+*************
+
+When an error occurs, if `ed''s input is from a regular file or here
+document, then it exits, otherwise it prints a `?' and returns to
+command mode. An explanation of the last error can be printed with the
+`h' (help) command.
+
+ If the `u' (undo) command occurs in a global command list, then the
+command list is executed only once.
+
+ Attempting to quit `ed' or edit another file before writing a
+modified buffer results in an error. If the command is entered a second
+time, it succeeds, but any changes to the buffer are lost.
+
+ `ed' exits with 0 if no errors occurred; otherwise >0.
+
+
+File: ed.info, Node: Problems, Next: GNU Free Documentation License, Prev: Diagnostics, Up: Top
+
+9 Reporting Bugs
+****************
+
+There are probably bugs in `ed'. There are certainly errors and
+omissions in this manual. If you report them, they will get fixed. If
+you don't, no one will ever know about them and they will remain unfixed
+for all eternity, if not longer.
+
+ If you find a bug in `ed', please send electronic mail to
+<bug-ed@gnu.org>. Include the version number, which you can find by
+running ``ed' --version'.
+
+
+File: ed.info, Node: GNU Free Documentation License, Prev: Problems, Up: Top
+
+10 GNU Free Documentation License
+*********************************
+
+ Version 1.3, 3 November 2008
+
+ Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+ `http://fsf.org/'
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ 0. PREAMBLE
+
+ The purpose of this License is to make a manual, textbook, or other
+ functional and useful document "free" in the sense of freedom: to
+ assure everyone the effective freedom to copy and redistribute it,
+ with or without modifying it, either commercially or
+ noncommercially. Secondarily, this License preserves for the
+ author and publisher a way to get credit for their work, while not
+ being considered responsible for modifications made by others.
+
+ This License is a kind of "copyleft", which means that derivative
+ works of the document must themselves be free in the same sense.
+ It complements the GNU General Public License, which is a copyleft
+ license designed for free software.
+
+ We have designed this License in order to use it for manuals for
+ free software, because free software needs free documentation: a
+ free program should come with manuals providing the same freedoms
+ that the software does. But this License is not limited to
+ software manuals; it can be used for any textual work, regardless
+ of subject matter or whether it is published as a printed book.
+ We recommend this License principally for works whose purpose is
+ instruction or reference.
+
+ 1. APPLICABILITY AND DEFINITIONS
+
+ This License applies to any manual or other work, in any medium,
+ that contains a notice placed by the copyright holder saying it
+ can be distributed under the terms of this License. Such a notice
+ grants a world-wide, royalty-free license, unlimited in duration,
+ to use that work under the conditions stated herein. The
+ "Document", below, refers to any such manual or work. Any member
+ of the public is a licensee, and is addressed as "you". You
+ accept the license if you copy, modify or distribute the work in a
+ way requiring permission under copyright law.
+
+ A "Modified Version" of the Document means any work containing the
+ Document or a portion of it, either copied verbatim, or with
+ modifications and/or translated into another language.
+
+ A "Secondary Section" is a named appendix or a front-matter section
+ of the Document that deals exclusively with the relationship of the
+ publishers or authors of the Document to the Document's overall
+ subject (or to related matters) and contains nothing that could
+ fall directly within that overall subject. (Thus, if the Document
+ is in part a textbook of mathematics, a Secondary Section may not
+ explain any mathematics.) The relationship could be a matter of
+ historical connection with the subject or with related matters, or
+ of legal, commercial, philosophical, ethical or political position
+ regarding them.
+
+ The "Invariant Sections" are certain Secondary Sections whose
+ titles are designated, as being those of Invariant Sections, in
+ the notice that says that the Document is released under this
+ License. If a section does not fit the above definition of
+ Secondary then it is not allowed to be designated as Invariant.
+ The Document may contain zero Invariant Sections. If the Document
+ does not identify any Invariant Sections then there are none.
+
+ The "Cover Texts" are certain short passages of text that are
+ listed, as Front-Cover Texts or Back-Cover Texts, in the notice
+ that says that the Document is released under this License. A
+ Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+ be at most 25 words.
+
+ A "Transparent" copy of the Document means a machine-readable copy,
+ represented in a format whose specification is available to the
+ general public, that is suitable for revising the document
+ straightforwardly with generic text editors or (for images
+ composed of pixels) generic paint programs or (for drawings) some
+ widely available drawing editor, and that is suitable for input to
+ text formatters or for automatic translation to a variety of
+ formats suitable for input to text formatters. A copy made in an
+ otherwise Transparent file format whose markup, or absence of
+ markup, has been arranged to thwart or discourage subsequent
+ modification by readers is not Transparent. An image format is
+ not Transparent if used for any substantial amount of text. A
+ copy that is not "Transparent" is called "Opaque".
+
+ Examples of suitable formats for Transparent copies include plain
+ ASCII without markup, Texinfo input format, LaTeX input format,
+ SGML or XML using a publicly available DTD, and
+ standard-conforming simple HTML, PostScript or PDF designed for
+ human modification. Examples of transparent image formats include
+ PNG, XCF and JPG. Opaque formats include proprietary formats that
+ can be read and edited only by proprietary word processors, SGML or
+ XML for which the DTD and/or processing tools are not generally
+ available, and the machine-generated HTML, PostScript or PDF
+ produced by some word processors for output purposes only.
+
+ The "Title Page" means, for a printed book, the title page itself,
+ plus such following pages as are needed to hold, legibly, the
+ material this License requires to appear in the title page. For
+ works in formats which do not have any title page as such, "Title
+ Page" means the text near the most prominent appearance of the
+ work's title, preceding the beginning of the body of the text.
+
+ The "publisher" means any person or entity that distributes copies
+ of the Document to the public.
+
+ A section "Entitled XYZ" means a named subunit of the Document
+ whose title either is precisely XYZ or contains XYZ in parentheses
+ following text that translates XYZ in another language. (Here XYZ
+ stands for a specific section name mentioned below, such as
+ "Acknowledgements", "Dedications", "Endorsements", or "History".)
+ To "Preserve the Title" of such a section when you modify the
+ Document means that it remains a section "Entitled XYZ" according
+ to this definition.
+
+ The Document may include Warranty Disclaimers next to the notice
+ which states that this License applies to the Document. These
+ Warranty Disclaimers are considered to be included by reference in
+ this License, but only as regards disclaiming warranties: any other
+ implication that these Warranty Disclaimers may have is void and
+ has no effect on the meaning of this License.
+
+ 2. VERBATIM COPYING
+
+ You may copy and distribute the Document in any medium, either
+ commercially or noncommercially, provided that this License, the
+ copyright notices, and the license notice saying this License
+ applies to the Document are reproduced in all copies, and that you
+ add no other conditions whatsoever to those of this License. You
+ may not use technical measures to obstruct or control the reading
+ or further copying of the copies you make or distribute. However,
+ you may accept compensation in exchange for copies. If you
+ distribute a large enough number of copies you must also follow
+ the conditions in section 3.
+
+ You may also lend copies, under the same conditions stated above,
+ and you may publicly display copies.
+
+ 3. COPYING IN QUANTITY
+
+ If you publish printed copies (or copies in media that commonly
+ have printed covers) of the Document, numbering more than 100, and
+ the Document's license notice requires Cover Texts, you must
+ enclose the copies in covers that carry, clearly and legibly, all
+ these Cover Texts: Front-Cover Texts on the front cover, and
+ Back-Cover Texts on the back cover. Both covers must also clearly
+ and legibly identify you as the publisher of these copies. The
+ front cover must present the full title with all words of the
+ title equally prominent and visible. You may add other material
+ on the covers in addition. Copying with changes limited to the
+ covers, as long as they preserve the title of the Document and
+ satisfy these conditions, can be treated as verbatim copying in
+ other respects.
+
+ If the required texts for either cover are too voluminous to fit
+ legibly, you should put the first ones listed (as many as fit
+ reasonably) on the actual cover, and continue the rest onto
+ adjacent pages.
+
+ If you publish or distribute Opaque copies of the Document
+ numbering more than 100, you must either include a
+ machine-readable Transparent copy along with each Opaque copy, or
+ state in or with each Opaque copy a computer-network location from
+ which the general network-using public has access to download
+ using public-standard network protocols a complete Transparent
+ copy of the Document, free of added material. If you use the
+ latter option, you must take reasonably prudent steps, when you
+ begin distribution of Opaque copies in quantity, to ensure that
+ this Transparent copy will remain thus accessible at the stated
+ location until at least one year after the last time you
+ distribute an Opaque copy (directly or through your agents or
+ retailers) of that edition to the public.
+
+ It is requested, but not required, that you contact the authors of
+ the Document well before redistributing any large number of
+ copies, to give them a chance to provide you with an updated
+ version of the Document.
+
+ 4. MODIFICATIONS
+
+ You may copy and distribute a Modified Version of the Document
+ under the conditions of sections 2 and 3 above, provided that you
+ release the Modified Version under precisely this License, with
+ the Modified Version filling the role of the Document, thus
+ licensing distribution and modification of the Modified Version to
+ whoever possesses a copy of it. In addition, you must do these
+ things in the Modified Version:
+
+ A. Use in the Title Page (and on the covers, if any) a title
+ distinct from that of the Document, and from those of
+ previous versions (which should, if there were any, be listed
+ in the History section of the Document). You may use the
+ same title as a previous version if the original publisher of
+ that version gives permission.
+
+ B. List on the Title Page, as authors, one or more persons or
+ entities responsible for authorship of the modifications in
+ the Modified Version, together with at least five of the
+ principal authors of the Document (all of its principal
+ authors, if it has fewer than five), unless they release you
+ from this requirement.
+
+ C. State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+
+ D. Preserve all the copyright notices of the Document.
+
+ E. Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+
+ F. Include, immediately after the copyright notices, a license
+ notice giving the public permission to use the Modified
+ Version under the terms of this License, in the form shown in
+ the Addendum below.
+
+ G. Preserve in that license notice the full lists of Invariant
+ Sections and required Cover Texts given in the Document's
+ license notice.
+
+ H. Include an unaltered copy of this License.
+
+ I. Preserve the section Entitled "History", Preserve its Title,
+ and add to it an item stating at least the title, year, new
+ authors, and publisher of the Modified Version as given on
+ the Title Page. If there is no section Entitled "History" in
+ the Document, create one stating the title, year, authors,
+ and publisher of the Document as given on its Title Page,
+ then add an item describing the Modified Version as stated in
+ the previous sentence.
+
+ J. Preserve the network location, if any, given in the Document
+ for public access to a Transparent copy of the Document, and
+ likewise the network locations given in the Document for
+ previous versions it was based on. These may be placed in
+ the "History" section. You may omit a network location for a
+ work that was published at least four years before the
+ Document itself, or if the original publisher of the version
+ it refers to gives permission.
+
+ K. For any section Entitled "Acknowledgements" or "Dedications",
+ Preserve the Title of the section, and preserve in the
+ section all the substance and tone of each of the contributor
+ acknowledgements and/or dedications given therein.
+
+ L. Preserve all the Invariant Sections of the Document,
+ unaltered in their text and in their titles. Section numbers
+ or the equivalent are not considered part of the section
+ titles.
+
+ M. Delete any section Entitled "Endorsements". Such a section
+ may not be included in the Modified Version.
+
+ N. Do not retitle any existing section to be Entitled
+ "Endorsements" or to conflict in title with any Invariant
+ Section.
+
+ O. Preserve any Warranty Disclaimers.
+
+ If the Modified Version includes new front-matter sections or
+ appendices that qualify as Secondary Sections and contain no
+ material copied from the Document, you may at your option
+ designate some or all of these sections as invariant. To do this,
+ add their titles to the list of Invariant Sections in the Modified
+ Version's license notice. These titles must be distinct from any
+ other section titles.
+
+ You may add a section Entitled "Endorsements", provided it contains
+ nothing but endorsements of your Modified Version by various
+ parties--for example, statements of peer review or that the text
+ has been approved by an organization as the authoritative
+ definition of a standard.
+
+ You may add a passage of up to five words as a Front-Cover Text,
+ and a passage of up to 25 words as a Back-Cover Text, to the end
+ of the list of Cover Texts in the Modified Version. Only one
+ passage of Front-Cover Text and one of Back-Cover Text may be
+ added by (or through arrangements made by) any one entity. If the
+ Document already includes a cover text for the same cover,
+ previously added by you or by arrangement made by the same entity
+ you are acting on behalf of, you may not add another; but you may
+ replace the old one, on explicit permission from the previous
+ publisher that added the old one.
+
+ The author(s) and publisher(s) of the Document do not by this
+ License give permission to use their names for publicity for or to
+ assert or imply endorsement of any Modified Version.
+
+ 5. COMBINING DOCUMENTS
+
+ You may combine the Document with other documents released under
+ this License, under the terms defined in section 4 above for
+ modified versions, provided that you include in the combination
+ all of the Invariant Sections of all of the original documents,
+ unmodified, and list them all as Invariant Sections of your
+ combined work in its license notice, and that you preserve all
+ their Warranty Disclaimers.
+
+ The combined work need only contain one copy of this License, and
+ multiple identical Invariant Sections may be replaced with a single
+ copy. If there are multiple Invariant Sections with the same name
+ but different contents, make the title of each such section unique
+ by adding at the end of it, in parentheses, the name of the
+ original author or publisher of that section if known, or else a
+ unique number. Make the same adjustment to the section titles in
+ the list of Invariant Sections in the license notice of the
+ combined work.
+
+ In the combination, you must combine any sections Entitled
+ "History" in the various original documents, forming one section
+ Entitled "History"; likewise combine any sections Entitled
+ "Acknowledgements", and any sections Entitled "Dedications". You
+ must delete all sections Entitled "Endorsements."
+
+ 6. COLLECTIONS OF DOCUMENTS
+
+ You may make a collection consisting of the Document and other
+ documents released under this License, and replace the individual
+ copies of this License in the various documents with a single copy
+ that is included in the collection, provided that you follow the
+ rules of this License for verbatim copying of each of the
+ documents in all other respects.
+
+ You may extract a single document from such a collection, and
+ distribute it individually under this License, provided you insert
+ a copy of this License into the extracted document, and follow
+ this License in all other respects regarding verbatim copying of
+ that document.
+
+ 7. AGGREGATION WITH INDEPENDENT WORKS
+
+ A compilation of the Document or its derivatives with other
+ separate and independent documents or works, in or on a volume of
+ a storage or distribution medium, is called an "aggregate" if the
+ copyright resulting from the compilation is not used to limit the
+ legal rights of the compilation's users beyond what the individual
+ works permit. When the Document is included in an aggregate, this
+ License does not apply to the other works in the aggregate which
+ are not themselves derivative works of the Document.
+
+ If the Cover Text requirement of section 3 is applicable to these
+ copies of the Document, then if the Document is less than one half
+ of the entire aggregate, the Document's Cover Texts may be placed
+ on covers that bracket the Document within the aggregate, or the
+ electronic equivalent of covers if the Document is in electronic
+ form. Otherwise they must appear on printed covers that bracket
+ the whole aggregate.
+
+ 8. TRANSLATION
+
+ Translation is considered a kind of modification, so you may
+ distribute translations of the Document under the terms of section
+ 4. Replacing Invariant Sections with translations requires special
+ permission from their copyright holders, but you may include
+ translations of some or all Invariant Sections in addition to the
+ original versions of these Invariant Sections. You may include a
+ translation of this License, and all the license notices in the
+ Document, and any Warranty Disclaimers, provided that you also
+ include the original English version of this License and the
+ original versions of those notices and disclaimers. In case of a
+ disagreement between the translation and the original version of
+ this License or a notice or disclaimer, the original version will
+ prevail.
+
+ If a section in the Document is Entitled "Acknowledgements",
+ "Dedications", or "History", the requirement (section 4) to
+ Preserve its Title (section 1) will typically require changing the
+ actual title.
+
+ 9. TERMINATION
+
+ You may not copy, modify, sublicense, or distribute the Document
+ except as expressly provided under this License. Any attempt
+ otherwise to copy, modify, sublicense, or distribute it is void,
+ and will automatically terminate your rights under this License.
+
+ However, if you cease all violation of this License, then your
+ license from a particular copyright holder is reinstated (a)
+ provisionally, unless and until the copyright holder explicitly
+ and finally terminates your license, and (b) permanently, if the
+ copyright holder fails to notify you of the violation by some
+ reasonable means prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+ reinstated permanently if the copyright holder notifies you of the
+ violation by some reasonable means, this is the first time you have
+ received notice of violation of this License (for any work) from
+ that copyright holder, and you cure the violation prior to 30 days
+ after your receipt of the notice.
+
+ Termination of your rights under this section does not terminate
+ the licenses of parties who have received copies or rights from
+ you under this License. If your rights have been terminated and
+ not permanently reinstated, receipt of a copy of some or all of
+ the same material does not give you any rights to use it.
+
+ 10. FUTURE REVISIONS OF THIS LICENSE
+
+ The Free Software Foundation may publish new, revised versions of
+ the GNU Free Documentation License from time to time. Such new
+ versions will be similar in spirit to the present version, but may
+ differ in detail to address new problems or concerns. See
+ `http://www.gnu.org/copyleft/'.
+
+ Each version of the License is given a distinguishing version
+ number. If the Document specifies that a particular numbered
+ version of this License "or any later version" applies to it, you
+ have the option of following the terms and conditions either of
+ that specified version or of any later version that has been
+ published (not as a draft) by the Free Software Foundation. If
+ the Document does not specify a version number of this License,
+ you may choose any version ever published (not as a draft) by the
+ Free Software Foundation. If the Document specifies that a proxy
+ can decide which future versions of this License can be used, that
+ proxy's public statement of acceptance of a version permanently
+ authorizes you to choose that version for the Document.
+
+ 11. RELICENSING
+
+ "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
+ World Wide Web server that publishes copyrightable works and also
+ provides prominent facilities for anybody to edit those works. A
+ public wiki that anybody can edit is an example of such a server.
+ A "Massive Multiauthor Collaboration" (or "MMC") contained in the
+ site means any set of copyrightable works thus published on the MMC
+ site.
+
+ "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
+ license published by Creative Commons Corporation, a not-for-profit
+ corporation with a principal place of business in San Francisco,
+ California, as well as future copyleft versions of that license
+ published by that same organization.
+
+ "Incorporate" means to publish or republish a Document, in whole or
+ in part, as part of another Document.
+
+ An MMC is "eligible for relicensing" if it is licensed under this
+ License, and if all works that were first published under this
+ License somewhere other than this MMC, and subsequently
+ incorporated in whole or in part into the MMC, (1) had no cover
+ texts or invariant sections, and (2) were thus incorporated prior
+ to November 1, 2008.
+
+ The operator of an MMC Site may republish an MMC contained in the
+ site under CC-BY-SA on the same site at any time before August 1,
+ 2009, provided the MMC is eligible for relicensing.
+
+
+ADDENDUM: How to use this License for your documents
+====================================================
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+ Copyright (C) YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.3
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+ Texts. A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+
+ If you have Invariant Sections, Front-Cover Texts and Back-Cover
+Texts, replace the "with...Texts." line with this:
+
+ with the Invariant Sections being LIST THEIR TITLES, with
+ the Front-Cover Texts being LIST, and with the Back-Cover Texts
+ being LIST.
+
+ If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+ If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License, to
+permit their use in free software.
+
+
+
+Tag Table:
+Node: Top544
+Node: Overview2005
+Node: Introduction to Line Editing4062
+Node: Invoking Ed11305
+Node: Line Addressing12953
+Node: Regular Expressions16056
+Node: Commands21401
+Node: Limitations32546
+Node: Diagnostics33121
+Node: Problems33825
+Node: GNU Free Documentation License34360
+
+End Tag Table