]> code.delx.au - gnu-emacs/commitdiff
merge trunk
authorKenichi Handa <handa@gnu.org>
Sun, 12 Jan 2014 23:26:08 +0000 (08:26 +0900)
committerKenichi Handa <handa@gnu.org>
Sun, 12 Jan 2014 23:26:08 +0000 (08:26 +0900)
33 files changed:
ChangeLog
README
doc/man/ChangeLog
doc/man/emacs.1
doc/misc/ChangeLog
doc/misc/efaq.texi
doc/misc/eieio.texi
doc/misc/eww.texi
doc/misc/tramp.texi
etc/COOKIES [deleted file]
etc/ChangeLog
etc/INTERVIEW [deleted file]
etc/MAILINGLISTS [deleted file]
etc/MOTIVATION [deleted file]
etc/NEWS
etc/SERVICE [deleted file]
etc/copying.paper [deleted file]
lisp/ChangeLog
lisp/dired-x.el
lisp/dired.el
lisp/emacs-lisp/eldoc.el
lisp/emacs-lisp/generic.el
lisp/mouse-drag.el
lisp/net/eww.el
lisp/org/org-list.el
lisp/org/ox.el
lisp/play/bubbles.el
lisp/progmodes/octave.el
lisp/progmodes/sh-script.el
lisp/simple.el
lisp/version.el
nt/ChangeLog
nt/inc/sys/stat.h

index d220f2254ea0d73a5f62c056552892c4e9f8c689..52519f3382c46ebc0b4dbc88413037b34d5a1909 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,6 @@
-2014-01-11  Eric S. Raymond  <esr@thyrsus.com>
+2014-01-12  Glenn Morris  <rgm@gnu.org>
 
-       * celibacy.1, sex.6, condom.1, echo.msg: Deleted at RMS's
-       suggestion. Not lost to posterity as they are part of the
-       widely distributed funny-manpages collection.
+       * README: Replace reference to etc/MAILINGLISTS.
 
 2014-01-11  Fabrice Popineau  <fabrice.popineau@gmail.com>
 
diff --git a/README b/README
index e13564354c348c81c90b58af3498822cd4c6be4e..ceb09bf3fd45613a0e6ce6153b0072699d14ed39 100644 (file)
--- a/README
+++ b/README
@@ -24,8 +24,9 @@ list bug-gnu-emacs@gnu.org.  If possible, use M-x report-emacs-bug.
 See the "Bugs" section of the Emacs manual for more information on how
 to report bugs.  (The file `BUGS' in this directory explains how you
 can find and read that section using the Info files that come with
-Emacs.)  See `etc/MAILINGLISTS' for more information on mailing lists
-relating to GNU packages.
+Emacs.)  For a list of mailing lists related to Emacs, see
+<http://savannah.gnu.org/mail/?group=emacs>.  For the complete
+list of GNU mailing lists, see <http://lists.gnu.org/>.
 
 The `etc' subdirectory contains several other files, named in capital
 letters, which you might consider looking at when installing GNU
index 37f765db00f8f0b13f09d2a78aa2d13bf3e480b7..34ecda837ef32b4905f42d605d78c233e7833dd7 100644 (file)
@@ -1,3 +1,7 @@
+2014-01-12  Glenn Morris  <rgm@gnu.org>
+
+       * emacs.1: Replace reference to etc/MAILINGLISTS.
+
 2014-01-09  Glenn Morris  <rgm@gnu.org>
 
        * emacs.1: Refer to online service directory rather than etc/SERVICE.
index bd568a2e9da3fc20b92cea7d60089a25d3632173..04475d35da7034fd2aadfb7c2f277497219e5140 100644 (file)
@@ -598,8 +598,7 @@ For personal assistance, consult the service directory at
 <http://www.fsf.org/resources/service/> for a list of people who offer it.
 
 Please do not send anything but bug reports to this mailing list.
-For more information about Emacs mailing lists, see the
-file /usr/local/share/emacs/$VERSION/etc/MAILINGLISTS.
+For other Emacs lists, see <http://savannah.gnu.org/mail/?group=emacs>.
 .
 .
 .SH UNRESTRICTIONS
index 722d11c70f21a403458ad7f1e47b642b63296c01..2718c59cf2562f61f0cdcfde32900f6b61bc7f73 100644 (file)
@@ -1,3 +1,25 @@
+2014-01-12  Michael Albinus  <michael.albinus@gmx.de>
+
+       * tramp.texi (all): Doc fix according to GNU Coding Standards.
+       Use "file name" instead of "filename" or "path".  Use "host"
+       instead of "machine".
+
+2014-01-12  David Engster  <deng@randomsample.de>
+
+       * eieio.texi (Introduction): `class-of' is obsolete.
+       (Predicates, Basic Methods): Adapt function names to namespace
+       cleanup.
+
+2014-01-12  Xue Fuqiao  <xfq.free@gmail.com>
+
+       * eww.texi (Basics): Use "directory" instead of "path" (Bug#16419).
+
+2014-01-12  Glenn Morris  <rgm@gnu.org>
+
+       * efaq.texi (Guidelines for newsgroup postings)
+       (Informational files for Emacs):
+       Remove references to etc/MAILINGLISTS, etc/INTERVIEW.
+
 2014-01-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * cl.texi (Function Bindings): Fix incorrect description of cl-let.
index aaca5d6f0c1f03a269b63b88df0212de28438671..c54423e887ec61d8425d4cb63a73891140f73734 100644 (file)
@@ -392,12 +392,9 @@ recipients the same freedom that you enjoyed.
 @cindex Posting messages to newsgroups
 
 @cindex GNU mailing lists
-The file @file{etc/MAILINGLISTS} describes the purpose of each GNU
-mailing list (@pxref{Informational files for Emacs}).  For those lists
-which are gatewayed with newsgroups, it lists both the newsgroup name
-and the mailing list address.  The Emacs mailing lists are also
-described at @uref{http://savannah.gnu.org/mail/?group=emacs, the Emacs
-Savannah page}.
+The Emacs mailing lists are described at
+@uref{http://savannah.gnu.org/mail/?group=emacs, the Emacs Savannah
+page}. Some of them are gatewayed to newsgroups.
 
 The newsgroup @uref{news:comp.emacs} is for discussion of Emacs programs
 in general.  The newsgroup @uref{news:gnu.emacs.help} is specifically
@@ -865,9 +862,7 @@ You can get Tkinfo at
 @cindex @file{COPYING}, description of file
 @cindex @file{DISTRIB}, description of file
 @cindex @file{GNU}, description of file
-@cindex @file{INTERVIEW}, description of file
 @cindex @file{MACHINES}, description of file
-@cindex @file{MAILINGLISTS}, description of file
 @cindex @file{NEWS}, description of file
 
 This isn't a frequently asked question, but it should be!  A variety of
@@ -891,16 +886,9 @@ Emacs Availability Information
 @item GNU
 The GNU Manifesto
 
-@item INTERVIEW
-Richard Stallman discusses his public-domain UNIX-compatible software
-system with BYTE editors
-
 @item MACHINES
 Status of Emacs on Various Machines and Systems
 
-@item MAILINGLISTS
-GNU Project Electronic Mailing Lists
-
 @item NEWS
 Emacs news, a history of recent user-visible changes
 
index 36c9eee9cafcf3e53baecab6bf6e2c553dadae83..427c10c160efd71645c77eceaff4abd187a0f9cb 100644 (file)
@@ -223,10 +223,9 @@ first argument, and this one must be an @eieio{} type.
 @item Support for metaclasses
 There is just one default metaclass, @code{eieio-default-superclass},
 and you cannot define your own.  The @code{:metaclass} tag in
-@code{defclass} is ignored.  Also, functions like `class-of' and
-`find-class', which should return instances of the metaclass, behave
-differently in @eieio{} in that they return symbols or plain structures
-instead.
+@code{defclass} is ignored.  Also, functions like `find-class', which
+should return instances of the metaclass, behave differently in
+@eieio{} in that they return symbols or plain structures instead.
 
 @item EQL specialization
 EIEIO does not support it.
@@ -1065,7 +1064,7 @@ make a slot unbound.
 @var{object} can be an instance or a class.
 @end defun
 
-@defun class-name class
+@defun eieio-class-name class
 Return a string of the form @samp{#<class myclassname>} which should look
 similar to other Lisp objects like buffers and processes.  Printing a
 class results only in a symbol.
@@ -1089,7 +1088,7 @@ constructor is a function used to create new instances of
 without knowing what it is.  This is not a part of CLOS.
 @end defun
 
-@defun object-name obj
+@defun eieio-object-name obj
 Return a string of the form @samp{#<object-class myobjname>} for @var{obj}.
 This should look like Lisp symbols from other parts of Emacs such as
 buffers and processes, and is shorter and cleaner than printing the
@@ -1098,43 +1097,39 @@ and object's print form, as this allows the object to add extra display
 information into the symbol.
 @end defun
 
-@defun object-class obj
+@defun eieio-object-class obj
 Returns the class symbol from @var{obj}.
 @end defun
 
-@defun class-of obj
-CLOS symbol which does the same thing as @code{object-class}
-@end defun
-
-@defun object-class-fast obj
-Same as @code{object-class} except this is a macro, and no
+@defun eieio--object-class obj
+Same as @code{eieio-object-class} except this is a macro, and no
 type-checking is performed.
 @end defun
 
-@defun object-class-name obj
+@defun eieio-object-class-name obj
 Returns the symbol of @var{obj}'s class.
 @end defun
 
-@defun class-parents class
+@defun eieio-class-parents class
 Returns the direct parents class of @var{class}.  Returns @code{nil} if
 it is a superclass.
 @end defun
 
-@defun class-parents-fast class
-Just like @code{class-parent} except it is a macro and no type checking
+@defun eieio-class-parents-fast class
+Just like @code{eieio-class-parents} except it is a macro and no type checking
 is performed.
 @end defun
 
-@defun class-parent class
+@defun eieio-class-parent class
 Deprecated function which returns the first parent of @var{class}.
 @end defun
 
-@defun class-children class
+@defun eieio-class-children class
 Return the list of classes inheriting from @var{class}.
 @end defun
 
-@defun class-children-fast class
-Just like @code{class-children}, but with no checks.
+@defun eieio-class-children-fast class
+Just like @code{eieio-class-children}, but with no checks.
 @end defun
 
 @defun same-class-p obj class
@@ -1676,9 +1671,9 @@ sure to call @dfn{call-next-method} first and modify the returned object.
 
 @defun object-print this &rest strings
 @anchor{object-print}
-Pretty printer for object @var{this}.  Call function @dfn{object-name} with @var{strings}.
+Pretty printer for object @var{this}.  Call function @dfn{eieio-object-name} with @var{strings}.
 The default method for printing object @var{this} is to use the
-function @dfn{object-name}.
+function @dfn{eieio-object-name}.
 
 It is sometimes useful to put a summary of the object into the
 default #<notation> string when using eieio browsing tools.
index b84de7509da0621362ba86ef97a1b91375c875d7..6fc344d84650e11c7b3d2ada11cb0f1a13792b26 100644 (file)
@@ -83,8 +83,8 @@ However a GNU Emacs with @code{libxml2} support is required.
 If the input doesn't look like a URL or domain name the web will be
 searched via @code{eww-search-prefix}.  The default search engine is
 @url{https://duckduckgo.com, DuckDuckGo}.  If you want to open a file
-either prefix the path with @code{file://} or use the command @kbd{M-x
-eww-open-file}.
+either prefix the file name with @code{file://} or use the command
+@kbd{M-x eww-open-file}.
 
 @findex eww-quit
 @findex eww-reload
@@ -99,12 +99,12 @@ web page hit @kbd{g} (@code{eww-reload}).  Pressing @kbd{w}
 (@code{eww-copy-page-url}) will copy the current URL to the kill ring.
 
 @findex eww-download
-@vindex eww-download-path
+@vindex eww-download-directory
 @kindex d
 @cindex Download
   A URL under the point can be downloaded with @kbd{d}
 (@code{eww-download}).  The file will be written to the directory
-specified in @code{eww-download-path} (Default: @file{~/Downloads/}).
+specified in @code{eww-download-directory} (Default: @file{~/Downloads/}).
 
 @findex eww-back-url
 @findex eww-forward-url
index dfe57689e5e93e64c3f3631c6f048eccb533556f..b3057c255fc511f950cc99fe784fa136abaf2eea 100644 (file)
@@ -17,7 +17,7 @@
 
 @include trampver.texi
 
-@c Macro for formatting a filename according to the respective syntax.
+@c Macro for formatting a file name according to the respective syntax.
 @c xxx and yyy are auxiliary macros in order to omit leading and
 @c trailing whitespace.  Not very elegant, but I don't know it better.
 
@@ -198,7 +198,7 @@ Installing @value{tramp} with your @value{emacsname}
 
 Configuring @value{tramp} for use
 
-* Connection types::            Types of connections made to remote machines.
+* Connection types::            Types of connections made to remote hosts.
 * Inline methods::              Inline methods.
 * External methods::            External methods.
 @ifset emacsgvfs
@@ -217,7 +217,7 @@ Configuring @value{tramp} for use
 * Connection caching::          Reusing connection related information.
 * Predefined connection information::
                                 Setting own connection related information.
-* Remote Programs::             How @value{tramp} finds and uses programs on the remote machine.
+* Remote Programs::             How @value{tramp} finds and uses programs on the remote host.
 * Remote shell setup::          Remote shell setup hints.
 * Android shell setup::         Android shell setup hints.
 * Auto-save and Backup::        Auto-save and Backup.
@@ -225,8 +225,8 @@ Configuring @value{tramp} for use
 
 Using @value{tramp}
 
-* Filename Syntax::             @value{tramp} filename conventions.
-* Filename completion::         Filename completion.
+* File name Syntax::            @value{tramp} file name conventions.
+* File name completion::        File name completion.
 * Ad-hoc multi-hops::           Declaring multiple hops in the file name.
 * Remote processes::            Integration with other @value{emacsname} packages.
 * Cleanup remote connections::  Cleanup remote connections.
@@ -247,18 +247,18 @@ How file names, directories and localnames are mangled and managed
 @cindex overview
 
 After the installation of @value{tramp} into your @value{emacsname}, you
-will be able to access files on remote machines as though they were
+will be able to access files on remote hosts as though they were
 local.  Access to the remote file system for editing files, version
 control, and @code{dired} are transparently enabled.
 
-Your access to the remote machine can be with the @command{rsh},
+Your access to the remote host can be with the @command{rsh},
 @command{rlogin}, @command{telnet} programs or with any similar
 connection method.  This connection must pass @acronym{ASCII}
 successfully to be usable but need not be 8-bit clean.
 
 The package provides support for @command{ssh} connections out of the
 box, one of the more common uses of the package.  This allows
-relatively secure access to machines, especially if @command{ftp}
+relatively secure access to hosts, especially if @command{ftp}
 access is disabled.
 
 Under Windows, @value{tramp} is integrated with the PuTTY package,
@@ -267,11 +267,11 @@ using the @command{plink} program.
 The majority of activity carried out by @value{tramp} requires only that
 the remote login is possible and is carried out at the terminal.  In
 order to access remote files @value{tramp} needs to transfer their content
-to the local machine temporarily.
+to the local host temporarily.
 
-@value{tramp} can transfer files between the machines in a variety of ways.
+@value{tramp} can transfer files between the hosts in a variety of ways.
 The details are easy to select, depending on your needs and the
-machines in question.
+hosts in question.
 
 The fastest transfer methods for large files rely on a remote file
 transfer package such as @command{rcp}, @command{scp}, @command{rsync}
@@ -280,7 +280,7 @@ or (under Windows) @command{pscp}.
 If the remote copy methods are not suitable for you, @value{tramp} also
 supports the use of encoded transfers directly through the shell.
 This requires that the @command{mimencode} or @command{uuencode} tools
-are available on the remote machine.  These methods are generally
+are available on the remote host.  These methods are generally
 faster for small files.
 
 @value{tramp} is still under active development and any problems you encounter,
@@ -351,7 +351,7 @@ shell prompt, and a few other things.
 @item
 Now the remote shell is up and it good working order.  Remember, what
 was supposed to happen is that @value{tramp} tries to find out what files exist
-on the remote host so that it can do filename completion.
+on the remote host so that it can do file name completion.
 
 So, @value{tramp} basically issues @command{cd} and @command{ls} commands and
 also sometimes @command{echo} with globbing.  Another command that is
@@ -360,7 +360,7 @@ directory or the like.  The output of each command is parsed for the
 necessary operation.
 
 @item
-Suppose you are finished with filename completion, have entered @kbd{C-x
+Suppose you are finished with file name completion, have entered @kbd{C-x
 C-f}, a full file name and hit @kbd{@key{RET}}.  Now comes the time to
 transfer the file contents from the remote host to the local host so
 that you can edit them.
@@ -470,7 +470,7 @@ many more methods for getting a remote shell and for transferring the
 file contents were added.  Support for VC was added.
 
 After that, there were added the multi-hop methods in April 2000 and
-the unification of @value{tramp} and Ange-FTP filenames in July 2002.
+the unification of @value{tramp} and Ange-FTP file names in July 2002.
 In July 2004, multi-hop methods have been replaced by proxy hosts.
 Running commands on remote hosts was introduced in December 2005.
 @ifset emacsgw
@@ -508,8 +508,8 @@ the first release including @value{tramp} was Emacs 22.1.
 @value{tramp} is (normally) fully functional when it is initially
 installed.  It is initially configured to use the @command{scp}
 program to connect to the remote host.  So in the easiest case, you
-just type @kbd{C-x C-f} and then enter the filename
-@file{@trampfn{, user, machine, /path/to.file}}.
+just type @kbd{C-x C-f} and then enter the file name
+@file{@trampfn{, user, host, /path/to.file}}.
 
 On some hosts, there are problems with opening a connection.  These are
 related to the behavior of the remote shell.  See @xref{Remote shell
@@ -518,7 +518,7 @@ setup}, for details on this.
 If you do not wish to use these commands to connect to the remote
 host, you should change the default connection and transfer method
 that @value{tramp} uses.  There are several different methods that @value{tramp}
-can use to connect to remote machines and transfer files
+can use to connect to remote hosts and transfer files
 (@pxref{Connection types}).
 
 If you don't know which method is right for you, see @xref{Default
@@ -526,7 +526,7 @@ Method}.
 
 
 @menu
-* Connection types::            Types of connections made to remote machines.
+* Connection types::            Types of connections made to remote hosts.
 * Inline methods::              Inline methods.
 * External methods::            External methods.
 @ifset emacsgvfs
@@ -548,7 +548,7 @@ Method}.
 * Connection caching::          Reusing connection related information.
 * Predefined connection information::
                                 Setting own connection related information.
-* Remote Programs::             How @value{tramp} finds and uses programs on the remote machine.
+* Remote Programs::             How @value{tramp} finds and uses programs on the remote host.
 * Remote shell setup::          Remote shell setup hints.
 * Android shell setup::         Android shell setup hints.
 * Auto-save and Backup::        Auto-save and Backup.
@@ -557,17 +557,17 @@ Method}.
 
 
 @node Connection types
-@section Types of connections made to remote machines
+@section Types of connections made to remote hosts
 @cindex connection types, overview
 
 There are two basic types of transfer methods, each with its own
 advantages and limitations.  Both types of connection make use of a
 remote shell access program such as @command{rsh}, @command{ssh} or
-@command{telnet} to connect to the remote machine.
+@command{telnet} to connect to the remote host.
 
 This connection is used to perform many of the operations that @value{tramp}
 requires to make the remote file system transparently accessible from
-the local machine.  It is only when visiting files that the methods
+the local host.  It is only when visiting files that the methods
 differ.
 
 @cindex inline methods
@@ -575,9 +575,9 @@ differ.
 @cindex methods, inline
 @cindex methods, external
 Loading or saving a remote file requires that the content of the file
-be transferred between the two machines.  The content of the file can
+be transferred between the two hosts.  The content of the file can
 be transferred using one of two methods: the @dfn{inline method} over
-the same connection used to log in to the remote machine, or the
+the same connection used to log in to the remote host, or the
 @dfn{external method} through another connection using a remote copy
 program such as @command{rcp}, @command{scp} or @command{rsync}.
 
@@ -607,12 +607,12 @@ action.
 The inline methods in @value{tramp} are quite powerful and can work in
 situations where you cannot use an external transfer program to connect.
 Inline methods are the only methods that work when connecting to the
-remote machine via telnet.  (There are also strange inline methods which
+remote host via telnet.  (There are also strange inline methods which
 allow you to transfer files between @emph{user identities} rather than
 hosts, see below.)
 
 These methods depend on the existence of a suitable encoding and
-decoding command on remote machine.  Locally, @value{tramp} may be able to
+decoding command on remote host.  Locally, @value{tramp} may be able to
 use features of @value{emacsname} to decode and encode the files or
 it may require access to external commands to perform that task.
 
@@ -789,11 +789,11 @@ fair trade-off between both approaches.
 @cindex rsh (with rcp method)
 
 This method uses the @command{rsh} and @command{rcp} commands to connect
-to the remote machine and transfer files.  This is probably the fastest
+to the remote host and transfer files.  This is probably the fastest
 connection method available.
 
 The alternative method @option{remcp} uses the @command{remsh} and
-@command{rcp} commands.  It should be applied on machines where
+@command{rcp} commands.  It should be applied on hosts where
 @command{remsh} is used instead of @command{rsh}.
 
 
@@ -804,8 +804,8 @@ The alternative method @option{remcp} uses the @command{remsh} and
 @cindex ssh (with scp method)
 
 Using @command{ssh} to connect to the remote host and @command{scp} to
-transfer files between the machines is the best method for securely
-connecting to a remote machine and accessing files.
+transfer files between the hosts is the best method for securely
+connecting to a remote host and accessing files.
 
 The performance of this option is also quite good.  It may be slower than
 the inline methods when you often open and close small files however.
@@ -843,7 +843,7 @@ This method supports the @samp{-p} argument.
 @cindex ssh (with rsync method)
 
 Using the @command{ssh} command to connect securely to the remote
-machine and the @command{rsync} command to transfer files is almost
+host and the @command{rsync} command to transfer files is almost
 identical to the @option{scp} method.
 
 While @command{rsync} performs much better than @command{scp} when
@@ -945,7 +945,7 @@ anyway.
 This is not a native @value{tramp} method.  Instead, it forwards all
 requests to @value{ftppackagename}.
 @ifset xemacs
-This works only for unified filenames, see @ref{Issues}.
+This works only for unified file names, see @ref{Issues}.
 @end ifset
 
 
@@ -974,15 +974,15 @@ For authorization, MS Windows uses both a user name and a domain name.
 Because of this, the @value{tramp} syntax has been extended: you can
 specify a user name which looks like @code{user%domain} (the real user
 name, then a percent sign, then the domain name).  So, to connect to
-the machine @code{melancholia} as user @code{daniel} of the domain
+the host @code{melancholia} as user @code{daniel} of the domain
 @code{BIZARRE}, and edit @file{.emacs} in the home directory (share
-@code{daniel$}) I would specify the filename @file{@trampfn{smb,
+@code{daniel$}) I would specify the file name @file{@trampfn{smb,
 daniel%BIZARRE, melancholia, /daniel$$/.emacs}}.
 
 Depending on the Windows domain configuration, a Windows user might be
 considered as domain user per default.  In order to connect as local
-user, the WINS name of that machine must be given as domain name.
-Usually, it is the machine name in capital letters.  In the example
+user, the WINS name of that host must be given as domain name.
+Usually, it is the host name in capital letters.  In the example
 above, the local user @code{daniel} would be specified as
 @file{@trampfn{smb, daniel%MELANCHOLIA, melancholia, /daniel$$/.emacs}}.
 
@@ -1156,7 +1156,7 @@ example, the following two lines specify to use the @option{ssh}
 method for all user names matching @samp{john} and the @option{rsync}
 method for all host names matching @samp{lily}.  The third line
 specifies to use the @option{su} method for the user @samp{root} on
-the machine @samp{localhost}.
+the host @samp{localhost}.
 
 @lisp
 (add-to-list 'tramp-default-method-alist '("" "john" "ssh"))
@@ -1180,9 +1180,9 @@ environment you will use them in and, especially when used over the
 Internet, the security implications of your preferred method.
 
 The @option{rsh} and @option{telnet} methods send your password as
-plain text as you log in to the remote machine, as well as
+plain text as you log in to the remote host, as well as
 transferring the files in such a way that the content can easily be
-read from other machines.
+read from other hosts.
 
 If you need to connect to remote systems that are accessible from the
 Internet, you should give serious thought to using @option{ssh} based
@@ -1207,7 +1207,7 @@ want to edit mostly small files.  And if you access large text files,
 compression (driven by @var{tramp-inline-compress-start-size}) shall
 still result in good performance.
 
-I guess that these days, most people can access a remote machine by
+I guess that these days, most people can access a remote host by
 using @command{ssh}.  So I suggest that you use the @option{ssh}
 method.  So, type @kbd{C-x C-f @trampfn{ssh, root, otherhost,
 /etc/motd} @key{RET}} to edit the @file{/etc/motd} file on the other
@@ -1359,7 +1359,7 @@ file name located on a remote target matching @var{user}@@@var{host}.
 @var{host} and @var{user} are regular expressions or @code{nil}, which
 is interpreted as a regular expression which always matches.
 
-@var{proxy} must be a Tramp filename which localname part is ignored.
+@var{proxy} must be a Tramp file name which localname part is ignored.
 Method and user name on @var{proxy} are optional, which is interpreted
 with the default values.
 @ifset emacsgw
@@ -1500,7 +1500,7 @@ variable, accessible with @kbd{C-h v tramp-methods @key{RET}}.
 
 The variable @code{tramp-completion-function-alist} is intended to
 customize which files are taken into account for user and host name
-completion (@pxref{Filename completion}).  For every method, it keeps
+completion (@pxref{File name completion}).  For every method, it keeps
 a set of configuration files, accompanied by a Lisp function able to
 parse that file.  Entries in @code{tramp-completion-function-alist}
 have the form (@var{method} @var{pair1} @var{pair2} ...).
@@ -1763,7 +1763,7 @@ connection at will.  Since there is no reliable test for this,
 
 
 @node Remote Programs
-@section How @value{tramp} finds and uses programs on the remote machine
+@section How @value{tramp} finds and uses programs on the remote host
 
 @value{tramp} depends on a number of programs on the remote host in order to
 function, including @command{ls}, @command{test}, @command{find} and
@@ -1782,14 +1782,14 @@ remote file access.
 @vindex tramp-default-remote-path
 @vindex tramp-own-remote-path
 @defopt tramp-remote-path
-When @value{tramp} connects to the remote machine, it searches for the
+When @value{tramp} connects to the remote host, it searches for the
 programs that it can use.  The variable @code{tramp-remote-path}
-controls the directories searched on the remote machine.
+controls the directories searched on the remote host.
 
 By default, this is set to a reasonable set of defaults for most
-machines.  The symbol @code{tramp-default-remote-path} is a place
+hosts.  The symbol @code{tramp-default-remote-path} is a place
 holder, it is replaced by the list of directories received via the
-command @command{getconf PATH} on your remote machine.  For example,
+command @command{getconf PATH} on your remote host.  For example,
 on Debian GNU/Linux this is @file{/bin:/usr/bin}, whereas on Solaris
 this is @file{/usr/xpg4/bin:/usr/ccs/bin:/usr/bin:/opt/SUNWspro/bin}.
 It is recommended to apply this symbol on top of
@@ -2067,7 +2067,7 @@ fi
 Android devices use a restricted shell.  They can be accessed via the
 @option{adb} method.  However, this restricts the access to a USB
 connection, and it requires the installation of the Android SDK on the
-local machine.
+local host.
 
 When an @command{sshd} process runs on the Android device, like
 provided by the @code{SSHDroid} app, any @option{ssh}-based method can
@@ -2293,7 +2293,7 @@ This section needs a lot of work!  Please help.
 @cindex sshx method with Cygwin
 The recent Cygwin installation of @command{ssh} works only with a
 Cygwinized @value{emacsname}.  You can check it by typing @kbd{M-x
-eshell}, and starting @kbd{ssh test.machine}.  The problem is evident
+eshell}, and starting @kbd{ssh test.host}.  The problem is evident
 if you see a message like this:
 
 @example
@@ -2309,12 +2309,12 @@ can find information about setting up Cygwin in their FAQ at
 @cindex scpx method with Cygwin
 If you wish to use the @option{scpx} connection method, then you might
 have the problem that @value{emacsname} calls @command{scp} with a
-Windows filename such as @code{c:/foo}.  The Cygwin version of
-@command{scp} does not know about Windows filenames and interprets
-this as a remote filename on the host @code{c}.
+Windows file name such as @code{c:/foo}.  The Cygwin version of
+@command{scp} does not know about Windows file names and interprets
+this as a remote file name on the host @code{c}.
 
 One possible workaround is to write a wrapper script for @option{scp}
-which converts the Windows filename to a Cygwinized filename.
+which converts the Windows file name to a Cygwinized file name.
 
 @cindex Cygwin and ssh-agent
 @cindex SSH_AUTH_SOCK and @value{emacsname} on Windows
@@ -2338,7 +2338,7 @@ know anything at all about Windows@dots{}
 @cindex using @value{tramp}
 
 Once you have installed @value{tramp} it will operate fairly
-transparently.  You will be able to access files on any remote machine
+transparently.  You will be able to access files on any remote host
 that you can log in to as though they were local.
 
 Files are specified to @value{tramp} using a formalized syntax specifying the
@@ -2357,52 +2357,52 @@ minute when a connection needs to be opened.  Maybe after half a
 minute you have already forgotten that you hit that key!
 
 @menu
-* Filename Syntax::             @value{tramp} filename conventions.
-* Filename completion::         Filename completion.
+* File name Syntax::            @value{tramp} file name conventions.
+* File name completion::        File name completion.
 * Ad-hoc multi-hops::           Declaring multiple hops in the file name.
 * Remote processes::            Integration with other @value{emacsname} packages.
 * Cleanup remote connections::  Cleanup remote connections.
 @end menu
 
 
-@node Filename Syntax
-@section @value{tramp} filename conventions
-@cindex filename syntax
-@cindex filename examples
+@node File name Syntax
+@section @value{tramp} file name conventions
+@cindex file name syntax
+@cindex file name examples
 
-To access the file @var{localname} on the remote machine @var{machine}
-you would specify the filename @file{@trampfn{, , machine,
-localname}}.  This will connect to @var{machine} and transfer the file
+To access the file @var{localname} on the remote host @var{host}
+you would specify the file name @file{@trampfn{, , host,
+localname}}.  This will connect to @var{host} and transfer the file
 using the default method.  @xref{Default Method}.
 
-Some examples of @value{tramp} filenames are shown below.
+Some examples of @value{tramp} file names are shown below.
 
 @table @file
 @item @value{prefix}melancholia@value{postfix}.emacs
-Edit the file @file{.emacs} in your home directory on the machine
+Edit the file @file{.emacs} in your home directory on the host
 @code{melancholia}.
 
 @item @value{prefix}melancholia.danann.net@value{postfix}.emacs
 This edits the same file, using the fully qualified domain name of
-the machine.
+the host.
 
 @item @value{prefix}melancholia@value{postfix}~/.emacs
 This also edits the same file; the @file{~} is expanded to your
-home directory on the remote machine, just like it is locally.
+home directory on the remote host, just like it is locally.
 
 @item @value{prefix}melancholia@value{postfix}~daniel/.emacs
 This edits the file @file{.emacs} in the home directory of the user
-@code{daniel} on the machine @code{melancholia}.  The @file{~<user>}
+@code{daniel} on the host @code{melancholia}.  The @file{~<user>}
 construct is expanded to the home directory of that user on the remote
-machine.
+host.
 
 @item @value{prefix}melancholia@value{postfix}/etc/squid.conf
-This edits the file @file{/etc/squid.conf} on the machine
+This edits the file @file{/etc/squid.conf} on the host
 @code{melancholia}.
 
 @end table
 
-@var{machine} can also be an IPv4 or IPv6 address, like in
+@var{host} can also be an IPv4 or IPv6 address, like in
 @file{@trampfn{, , 127.0.0.1, .emacs}} or @file{@trampfn{, ,
 @value{ipv6prefix}::1@value{ipv6postfix}, .emacs}}.
 @ifset emacs
@@ -2413,17 +2413,17 @@ brackets @file{@value{ipv6prefix}} and @file{@value{ipv6postfix}}.
 Unless you specify a different name to use, @value{tramp} will use the
 current local user name as the remote user name to log in with.  If you
 need to log in as a different user, you can specify the user name as
-part of the filename.
+part of the file name.
 
-To log in to the remote machine as a specific user, you use the syntax
-@file{@trampfn{, user, machine, path/to.file}}.  That means that
+To log in to the remote host as a specific user, you use the syntax
+@file{@trampfn{, user, host, path/to.file}}.  That means that
 connecting to @code{melancholia} as @code{daniel} and editing
 @file{.emacs} in your home directory you would specify
 @file{@trampfn{, daniel, melancholia, .emacs}}.
 
 It is also possible to specify other file transfer methods
 (@pxref{Inline methods}, @pxref{External methods}) as part of the
-filename.
+file name.
 @ifset emacs
 This is done by putting the method before the user and host name, as
 in @file{@value{prefix}@var{method}@value{postfixhop}} (Note the
@@ -2434,15 +2434,15 @@ This is done by replacing the initial @file{@value{prefix}} with
 @file{@value{prefix}<method>@value{postfixhop}}.  (Note the trailing
 slash!).
 @end ifset
-The user, machine and file specification remain the same.
+The user, host and file specification remain the same.
 
-So, to connect to the machine @code{melancholia} as @code{daniel},
+So, to connect to the host @code{melancholia} as @code{daniel},
 using the @option{ssh} method to transfer files, and edit
-@file{.emacs} in my home directory I would specify the filename
+@file{.emacs} in my home directory I would specify the file name
 @file{@trampfn{ssh, daniel, melancholia, .emacs}}.
 
 @ifset emacs
-A remote filename containing a host name only, which is equal to a
+A remote file name containing a host name only, which is equal to a
 method name, is not allowed.  If such a host name is used, it must
 always be preceded by an explicit method name, like
 @file{@value{prefix}ssh@value{postfixhop}ssh@value{postfix}}.
@@ -2454,13 +2454,13 @@ by adding @file{#<port>} to the host name, like in @file{@trampfn{ssh,
 daniel, melancholia#42, .emacs}}.
 
 
-@node Filename completion
-@section Filename completion
-@cindex filename completion
+@node File name completion
+@section File name completion
+@cindex file name completion
 
-Filename completion works with @value{tramp} for completion of method
-names, of user names and of machine names as well as for completion of
-file names on remote machines.
+File name completion works with @value{tramp} for completion of method
+names, of user names and of host names as well as for completion of
+file names on remote hosts.
 @ifset emacs
 In order to enable this, partial completion must be activated in your
 @file{.emacs}.
@@ -2488,8 +2488,7 @@ If you, for example, type @kbd{C-x C-f @value{prefix}t
 @samp{@value{prefixhop}telnet@value{postfixhop}}
 is a possible completion for the respective method,
 @ifset emacs
-@samp{tmp/} stands for the directory @file{/tmp} on your local
-machine,
+@samp{tmp/} stands for the directory @file{/tmp} on your local host,
 @end ifset
 and @samp{@value{prefixhop}toto@value{postfix}}
 might be a host @value{tramp} has detected in your @file{~/.ssh/known_hosts}
@@ -2497,7 +2496,7 @@ file (given you're using default method @option{ssh}).
 
 If you go on to type @kbd{e @key{TAB}}, the minibuffer is completed to
 @samp{@value{prefix}telnet@value{postfixhop}}.
-Next @kbd{@key{TAB}} brings you all machine names @value{tramp} detects in
+Next @kbd{@key{TAB}} brings you all host names @value{tramp} detects in
 your @file{/etc/hosts} file, let's say
 
 @example
@@ -2509,21 +2508,21 @@ your @file{/etc/hosts} file, let's say
 @end multitable
 @end example
 
-Now you can choose the desired machine, and you can continue to
-complete file names on that machine.
+Now you can choose the desired host, and you can continue to
+complete file names on that host.
 
 If the configuration files (@pxref{Customizing Completion}), which
 @value{tramp} uses for analysis of completion, offer user names, those user
 names will be taken into account as well.
 
-Remote machines which have been visited in the past and kept
+Remote hosts which have been visited in the past and kept
 persistently (@pxref{Connection caching}) will be offered too.
 
-Once the remote machine identification is completed, it comes to
-filename completion on the remote host.  This works pretty much like
+Once the remote host identification is completed, it comes to
+file name completion on the remote host.  This works pretty much like
 for files on the local host, with the exception that minibuffer
-killing via a double-slash works only on the filename part, except
-that filename part starts with @file{//}.
+killing via a double-slash works only on the file name part, except
+that file name part starts with @file{//}.
 @ifset emacs
 A triple-slash stands for the default behavior.
 @end ifset
@@ -2557,14 +2556,14 @@ Example:
 
 A remote directory might have changed its contents out of
 @value{emacsname} control, for example by creation or deletion of
-files by other processes.  Therefore, during filename completion, the
+files by other processes.  Therefore, during file name completion, the
 remote directory contents are reread regularly in order to detect such
 changes, which would be invisible otherwise (@pxref{Connection caching}).
 
 @defopt tramp-completion-reread-directory-timeout
 This variable defines the number of seconds since last remote command
 before rereading a directory contents.  A value of 0 would require an
-immediate reread during filename completion, @code{nil} means to use
+immediate reread during file name completion, @code{nil} means to use
 always cached values for the directory contents.
 @end defopt
 
@@ -2632,7 +2631,7 @@ host when the variable @code{default-directory} is remote:
 @ifset emacsgvfs
 If the remote host is mounted via GVFS (see @ref{GVFS based methods}),
 the remote filesystem is mounted locally.  Therefore, there are no
-remote processes; all processes run still locally on your machine with
+remote processes; all processes run still locally on your host with
 an adapted @code{default-directory}.  This section does not apply for
 such connection methods.
 @end ifset
@@ -2645,7 +2644,7 @@ integrated.  Integration of further packages is planned, any help for
 this is welcome!
 
 When your program is not found in the default search path
-@value{tramp} sets on the remote machine, you should either use an
+@value{tramp} sets on the remote host, you should either use an
 absolute path, or extend @code{tramp-remote-path} (see @ref{Remote
 Programs}):
 
@@ -2713,18 +2712,18 @@ that host.
 
 Calling @kbd{M-x shell} in a buffer related to a remote host runs the
 local shell as defined in @option{shell-file-name}.  This might be
-also a valid path name for a shell to be applied on the remote host,
+also a valid file name for a shell to be applied on the remote host,
 but it will fail at least when your local and remote hosts belong to
 different system types, like @samp{windows-nt} and @samp{gnu/linux}.
 
 You must set the variable @option{explicit-shell-file-name} to the
-shell path name on the remote host, in order to start that shell on
+shell file name on the remote host, in order to start that shell on
 the remote host.
 
 @ifset emacs
 Starting with Emacs 24 this won't be necessary, if you call
 @code{shell} interactively.  You will be asked for the remote shell
-path, if you are on a remote buffer, and if
+file name, if you are on a remote buffer, and if
 @option{explicit-shell-file-name} is equal to @code{nil}.
 @end ifset
 
@@ -2924,7 +2923,7 @@ the @value{tramp} Mail Subscription Page}.
 @ifset emacs
 @ifset installchapter
 Before sending a bug report, you could check whether @value{tramp}
-works at all.  Run the test suite on your local machine, @ref{Testing}.
+works at all.  Run the test suite on your local host, @ref{Testing}.
 @end ifset
 @end ifset
 
@@ -2935,7 +2934,7 @@ of your system and @value{tramp} version.
 
 When submitting a bug report, please try to describe in excruciating
 detail the steps required to reproduce the problem, the setup of the
-remote machine and any special conditions that exist.  You should also
+remote host and any special conditions that exist.  You should also
 check that your problem is not described already in @xref{Frequently
 Asked Questions}.
 
@@ -3009,7 +3008,7 @@ information about remote hosts is kept in the file specified in
 confident that files on remote hosts are not changed out of
 @value{emacsname}' control, set @code{remote-file-name-inhibit-cache}
 to @code{nil}.  Set also @code{tramp-completion-reread-directory-timeout}
-to @code{nil}, @ref{Filename completion}.
+to @code{nil}, @ref{File name completion}.
 
 Disable version control.  If you access remote files which are not
 under version control, a lot of check operations can be avoided by
@@ -3037,7 +3036,7 @@ reasons heading the bug mailing list:
 @item
 Unknown characters in the prompt
 
-@value{tramp} needs to recognize the prompt on the remote machine
+@value{tramp} needs to recognize the prompt on the remote host
 after execution any command.  This is not possible when the prompt
 contains unknown characters like escape sequences for coloring.  This
 should be avoided on the remote side.  @xref{Remote shell setup}. for
@@ -3069,7 +3068,7 @@ incidentally) doesn't work with WinSSHD due to strange prompt settings.
 @item
 Echoed characters after login
 
-When the remote machine opens an echoing shell, there might be control
+When the remote host opens an echoing shell, there might be control
 characters in the welcome message.  @value{tramp} tries to suppress
 such echoes via the @command{stty -echo} command, but sometimes this
 command is not reached, because the echoed output has confused
@@ -3167,7 +3166,7 @@ your @file{~/.ssh/config}:
 @item
 File name completion does not work with @value{tramp}
 
-When you log in to the remote machine, do you see the output of
+When you log in to the remote host, do you see the output of
 @command{ls} in color? If so, this may be the cause of your problems.
 
 @command{ls} outputs @acronym{ANSI} escape sequences that your terminal
@@ -3175,12 +3174,12 @@ emulator interprets to set the colors.  These escape sequences will
 confuse @value{tramp} however.
 
 In your @file{.bashrc}, @file{.profile} or equivalent on the remote
-machine you probably have an alias configured that adds the option
+host you probably have an alias configured that adds the option
 @option{--color=yes} or @option{--color=auto}.
 
 You should remove that alias and ensure that a new login @emph{does not}
 display the output of @command{ls} in color.  If you still cannot use
-filename completion, report a bug to the @value{tramp} developers.
+file name completion, report a bug to the @value{tramp} developers.
 
 
 @item
@@ -3726,7 +3725,7 @@ names.  As such, the lisp functions @code{file-name-directory} and
 package.
 
 Their replacements are reasonably simplistic in their approach.  They
-dissect the filename, call the original handler on the localname and
+dissect the file name, call the original handler on the localname and
 then rebuild the @value{tramp} file name with the result.
 
 This allows the platform specific hacks in the original handlers to take
@@ -3736,19 +3735,19 @@ effect while preserving the @value{tramp} file name information.
 @ifset emacs
 @node External packages
 @section Integration with external Lisp packages
-@subsection Filename completion.
+@subsection File name completion.
 
-While reading filenames in the minibuffer, @value{tramp} must decide
-whether it completes possible incomplete filenames, or not.  Imagine
+While reading file names in the minibuffer, @value{tramp} must decide
+whether it completes possible incomplete file names, or not.  Imagine
 there is the following situation: You have typed @kbd{C-x C-f
 @value{prefix}ssh@value{postfixhop} @key{TAB}}.  @value{tramp} cannot
 know, whether @option{ssh} is a method or a host name.  It checks
 therefore the last input character you have typed.  If this is
 @key{TAB}, @key{SPACE} or @kbd{?}, @value{tramp} assumes that you are
-still in filename completion, and it does not connect to the possible
+still in file name completion, and it does not connect to the possible
 remote host @option{ssh}.
 
-External packages, which use other characters for completing filenames
+External packages, which use other characters for completing file names
 in the minibuffer, must signal this to @value{tramp}.  For this case,
 the variable @code{non-essential} can be bound temporarily to
 a non-@code{nil} value.
@@ -3891,16 +3890,16 @@ printed and deleted.
 But I have decided that this is too fragile to reliably work, so on some
 systems you'll have to do without the uuencode methods.
 
-@item The @value{tramp} filename syntax differs between Emacs and XEmacs.
+@item The @value{tramp} file name syntax differs between Emacs and XEmacs.
 
-The Emacs maintainers wish to use a unified filename syntax for
+The Emacs maintainers wish to use a unified file name syntax for
 Ange-FTP and @value{tramp} so that users don't have to learn a new
 syntax.  It is sufficient to learn some extensions to the old syntax.
 
 For the XEmacs maintainers, the problems caused from using a unified
-filename syntax are greater than the gains.  The XEmacs package system
+file name syntax are greater than the gains.  The XEmacs package system
 uses EFS for downloading new packages.  So, obviously, EFS has to be
-installed from the start.  If the filenames were unified, @value{tramp}
+installed from the start.  If the file names were unified, @value{tramp}
 would have to be installed from the start, too.
 
 @ifset xemacs
@@ -3917,12 +3916,12 @@ The autoload of the @value{emacsname} @value{tramp} package must be
 disabled.  This can be achieved by setting file permissions @code{000}
 to the files @file{.../xemacs-packages/lisp/tramp/auto-autoloads.el*}.
 
-In case of unified filenames, all @value{emacsname} download sites are
+In case of unified file names, all @value{emacsname} download sites are
 added to @code{tramp-default-method-alist} with default method
 @option{ftp} @xref{Default Method}.  These settings shouldn't be
 touched for proper working of the @value{emacsname} package system.
 
-The syntax for unified filenames is described in the @value{tramp} manual
+The syntax for unified file names is described in the @value{tramp} manual
 for @value{emacsothername}.
 @end ifset
 @end itemize
@@ -3955,7 +3954,5 @@ for @value{emacsothername}.
 @c   shells.
 @c * Explain how tramp.el works in principle: open a shell on a remote
 @c   host and then send commands to it.
-@c * Use `filename' resp. `file name' consistently.
-@c * Use `host' resp. `machine' consistently.
 @c * Consistent small or capitalized words especially in menus.
 @c * Make a unique declaration of @trampfn.
diff --git a/etc/COOKIES b/etc/COOKIES
deleted file mode 100644 (file)
index 1d8c095..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-[Someone sent this in from California, and we decided to extend
-our campaign against information hoarding to recipes as well
-as software.  (Recipes are the closest thing, not involving computers,
-to software.)
-
-The story appears to be a myth, according to the Chicago Tribune,
-which says that Mrs Fields Cookies hoards the information completely.
-Therefore, this recipe can be thought of as a compatible replacement.
-We have reports that the cookies it makes are pretty good.]
-
-Someone at PG&E called the Mrs. Fields Cookie office
-and requested the recipe for her cookies. They asked
-her for her charge card number, and she gave it to them
-thinking the cost would be $15 to $25.  It turned out
-to be $200!
-
-Therefore, this person is giving the recipe to anyone
-and everyone she knows (and doesn't know) so that
-someone can get use of her $200.  Anyway, just keep
-passing it on.
-
-Cream together:                2 cups butter
-                       2 cups sugar
-                       2 cups brown sugar
-
-Add:                   4 eggs
-                       2 tsp. vanilla
-
-Mix together in
-separate bowl:         4 cups flour
-                       5 cups oatmeal (put small
- amounts of oatmeal in blender until it turns to
- powder.  Measure out 5 cups of oatmeal and only
- "powderize" that, NOT 5 cups "powderized" oatmeal)
-
-                       1 tsp salt
-                       2 tsp baking powder
-                       2 tsp baking soda
-
-Mix:                   All of the above
-
-Add:                   24 oz. bag of chocolate chips and
-                       1 finely grated 8 oz Hershey bar (plain)
-
-Add:                   3 cups chopped nuts (any kind)
-
-Bake on greased cookie sheet (make golf ball sized balls) and
-bake about two inches apart.  Bake at 350 degrees for 8 - 10
-minutes. DO NOT OVERBAKE.  Makes 112.
-\f
-From: ucdavis!lll-lcc!hplabs!parcvax!bane@ucbvax.berkeley.edu (John R. Bane)
-Subject: Re: free cookie foundation?
-
-Hi! I "stole" your very expensive cookie recipe off the net. If you
-want to send me your SnailMail address, I'll be glad to send you a
-dollar (I would like to suggest this to the net, but I think there is
-some netiquette rule against asking for money - or is that only money
-for oneself?) to help defray the cost (it's not much, but if EVERYone
-who took the recipe sent you a dollar, it would help).
-
-Here also is another cookie recipe which I'm very fond of.
-
-Makes 6-8 dozen
-Bake at 375 degrees for ~10 min.
-
-Cream together:
-
-1 cup shortening (I use Weight Watcher's Reduced Calorie Margarine!)
-1/4 cup peanut butter (I recommend the non-sugared kind)
-1/2 cup sugar
-1/2 cup brown sugar
-2 eggs
-1 teaspoon vanilla
-
-Add:
-
-1/2 cup flour
-1 teaspoon soda
-1/2 teaspoon salt
-2 cups rolled oats (I use the 5-min variety)
-1-2 cups chocolate chips (I use 2 cups semi-sweet - ummmm!)
-1 cup nuts (I use pecan pieces - don't get them crushed, or the extra
-           oil will make greasy cookies)
-1 cup shredded or flaked coconut
-
-(The nuts were listed as optional and I added the coconut myself, but
-I really love them there! You could also add things like m&m's, or
-raisins (I don't care for raisins in cookies, but you might).  I've
-always wanted to try banana chips.)
-
-Mix well. Drop by teaspoonfuls on greased cookie sheet (I use pam).
-Bake at 375 degrees for approx. 10 min.
-
-My aunt found this recipe in an Amish book called something like
-"Eating Well When The Whole World Is Starving," and although I thought
-a cookie recipe was a bit odd for a book like that, they are about the
-healthiest a cookie is ever likely to get.
-
-They are also very easy to make (no blending, sifting, rolling, etc.)
-and extremely delicious.  I get rave reviews and recipe requests whenever
-I make them.
-
-                               - rene
-\f
-Chocolate Chip Cookies - Glamorous, crunchy, rich with chocolate bits & nuts.
-
-Also known as "Toll House" Cookies ... from Kenneth and Ruth Wakefield's
-charming New England Toll House on the outskirts of Whitman, Massachusetts.
-These cookies were first introduced to American homemakers in 1939 through
-our series of radio talks on "Famous Foods From Famous Eating Places."
-
-Mix Thoroughly :
-       2/3 cup soft shortening ( part butter )
-       1/2 cup granulated sugar
-       1/2 cup brown sugar ( packed )
-       1 egg
-       1 tsp vanilla
-
-Sift together and stir in :
-       1-1/2 cups sifted flour (*)
-       1/2 tsp soda
-       1/2 tsp salt
-
-Stir in :
-       1/2 cup cut-up nuts
-       6 oz package of semi-sweet chocolate pieces ( about 1-1/4 cups )
-
-
-(*) for a softer, more rounded cookie, use 1-3/4 cups sifted flour.
-
-
-Drop rounded teaspoonfuls about 2" apart on ungreased baking sheet. Bake until
-delicately browned ... cookies should still be soft. Cool slightly before you
-remove them from the baking sheet.
-
-Temperature:           375 F. ( modern oven )
-Time:                  bake 8 - 10 minutes
-Amount:                        4 - 5 dozen 2" cookies
-
-
-=====
-
-Personal comments :
-
-I find it tastes better with a mixture of shortening and butter, as they say.
-
-You don't need << all >> of that sugar, and it can be whatever color you want.
-
-The nuts are optional. Feel free to play with the recipe. I put oatmeal in it,
-reducing flour accordingly, and sometimes cinnamon.
-
-I also find it useful to grease the cookie sheets.
-
-I think I'm going to go bake some now ...
-
--- richard
-
index 7af5d65092f43508586dc91c47658a93a915600b..a6f51d04ae208298c603e979b5437e53f2931a5a 100644 (file)
@@ -1,3 +1,18 @@
+2014-01-12  David Engster  <deng@randomsample.de>
+
+       * NEWS: Add missing renames to EIEIO section.  Also, no functions
+       were removed but only made obsolete.  Class field accessors were
+       always purely internal, so remove that remark.  Add markup.
+
+2014-01-11  Eric S. Raymond  <esr@thyrsus.com>
+
+       * celibacy.1, sex.6, condom.1, echo.msg: Deleted at RMS's
+       suggestion.  Not lost to posterity as they are part of the
+       widely distributed funny-manpages collection.
+
+       * COOKIES, copying.paper, INTERVIEW, MAILINGLISTS, MOTIVATION,
+       * SERVICE: More deletions suggested by RMS.
+
 2014-01-10  Glenn Morris  <rgm@gnu.org>
 
        * ORDERS: Replace contents with pointer to emacs.info, mark obsolete.
diff --git a/etc/INTERVIEW b/etc/INTERVIEW
deleted file mode 100644 (file)
index 4e109ba..0000000
+++ /dev/null
@@ -1,442 +0,0 @@
-
-                          GNU'S NOT UNIX
-
-                Conducted by David Betz and Jon Edwards
-
-             Richard Stallman discusses his public-domain
-                   UNIX-compatible software system
-                          with BYTE editors
-                             (July 1986)
-
-Copyright (C) 1986 Richard Stallman.  Permission is granted to make and
-distribute copies of this article as long as the copyright and this notice
-appear on all copies.
-
-Richard Stallman has undertaken probably the most ambitious free software
-development project to date, the GNU system.  In his GNU Manifesto,
-published in the March 1985 issue of Dr. Dobb's Journal, Stallman described
-GNU as a "complete Unix-compatible software system which I am writing so
-that I can give it away free to everyone who can use it...  Once GNU is
-written, everyone will be able to obtain good system software free, just
-like air."  (GNU is an acronym for GNU's Not UNIX; the "G" is pronounced.)
-
-   Stallman is widely known as the author of EMACS, a powerful text editor
-that he developed at the MIT Artificial Intelligence Laboratory.  It is no
-coincidence that the first piece of software produced as part of the GNU
-project was a new implementation of EMACS.  GNU EMACS has already achieved a
-reputation as one of the best implementations of EMACS currently available
-at any price.
-
-BYTE: We read your GNU Manifesto in the March 1985 issue of Dr. Dobb's.
-What has happened since?  Was that really the beginning, and how have you
-progressed since then?
-
-Stallman: The publication in Dr. Dobb's wasn't the beginning of the
-project.  I wrote the GNU Manifesto when I was getting ready to start the
-project, as a proposal to ask computer manufacturers for funding.  They
-didn't want to get involved, and I decided that rather than spend my time
-trying to pursue funds, I ought to spend it writing code.  The manifesto was
-published about a year and a half after I had written it, when I had barely
-begun distributing the GNU EMACS.  Since that time, in addition to making
-GNU EMACS more complete and making it run on many more computers, I have
-nearly finished the optimizing C compiler and all the other software that
-is needed for running C programs.  This includes a source-level debugger
-that has many features that the other source-level debuggers on UNIX don't
-have.  For example, it has convenience variables within the debugger so you
-can save values, and it also has a history of all the values that you have
-printed out, making it tremendously easier to chase around list structures.
-
-BYTE: You have finished an editor that is now widely distributed and you
-are about to finish the compiler.
-
-Stallman: I expect that it will be finished this October.
-
-BYTE: What about the kernel?
-
-Stallman: I'm currently planning to start with the kernel that was written
-at MIT and was released to the public recently with the idea that I would
-use it.  This kernel is called TRIX; it's based on remote procedure call.  I
-still need to add compatibility for a lot of the features of UNIX which it
-doesn't have currently.  I haven't started to work on that yet.  I'm
-finishing the compiler before I go to work on the kernel.  I am also going
-to have to rewrite the file system.  I intend to make it failsafe just by
-having it write blocks in the proper order so that the disk structure is
-always consistent.  Then I want to add version numbers.  I have a complicated
-scheme to reconcile version numbers with the way people usually use UNIX.
-You have to be able to specify filenames without version numbers, but you
-also have to be able to specify them with explicit version numbers, and
-these both need to work with ordinary UNIX programs that have not been
-modified in any way to deal with the existence of this feature.  I think I
-have a scheme for doing this, and only trying it will show me whether it
-really does the job.
-
-BYTE: Do you have a brief description you can give us as to how GNU as a
-system will be superior to other systems?  We know that one of your goals is
-to produce something that is compatible with UNIX.  But at least in the area
-of file systems you have already said that you are going to go beyond UNIX
-and produce something that is better.
-
-Stallman: The C compiler will produce better code and run faster.  The
-debugger is better.  With each piece I may or may not find a way to improve
-it.  But there is no one answer to this question.  To some extent I am
-getting the benefit of reimplementation, which makes many systems much
-better.  To some extent it's because I have been in the field a long time
-and worked on many other systems.  I therefore have many ideas to bring to
-bear.  One way in which it will be better is that practically everything in
-the system will work on files of any size, on lines of any size, with any
-characters appearing in them.  The UNIX system is very bad in that regard.
-It's not anything new as a principle of software engineering that you
-shouldn't have arbitrary limits.  But it just was the standard practice in
-writing UNIX to put those in all the time, possibly just because they were
-writing it for a very small computer.  The only limit in the GNU system is
-when your program runs out of memory because it tried to work on too much
-data and there is no place to keep it all.
-
-BYTE: And that isn't likely to be hit if you've got virtual memory.  You may
-just take forever to come up with the solution.
-
-Stallman: Actually these limits tend to hit in a time long before you take
-forever to come up with the solution.
-
-BYTE: Can you say something about what types of machines and environments
-GNU EMACS in particular has been made to run under?  It's now running on
-VAXes; has it migrated in any form to personal computers?
-
-Stallman: I'm not sure what you mean by personal computers.  For example, is
-a Sun a personal computer?  GNU EMACS requires at least a megabyte of
-available memory and preferably more.  It is normally used on machines that
-have virtual memory.  Except for various technical problems in a few C
-compilers, almost any machine with virtual memory and running a fairly
-recent version of UNIX will run GNU EMACS, and most of them currently do.
-
-BYTE: Has anyone tried to port it to Ataris or Macintoshes?
-
-Stallman: The Atari 1040ST still doesn't have quite enough memory.  The next
-Atari machine, I expect, will run it.  I also think that future Ataris will
-have some forms of memory mapping.  Of course, I am not designing the
-software to run on the kinds of computers that are prevalent today.  I knew
-when I started this project it was going to take a few years.  I therefore
-decided that I didn't want to make a worse system by taking on the
-additional challenge of making it run in the currently constrained
-environment.  So instead I decided I'm going to write it in the way that
-seems the most natural and best.  I am confident that in a couple of years
-machines of sufficient size will be prevalent.  In fact, increases in memory
-size are happening so fast it surprises me how slow most of the people are
-to put in virtual memory; I think it is totally essential.
-
-BYTE: I think people don't really view it as being necessary for
-single-user machines.
-
-Stallman: They don't understand that single user doesn't mean single
-program.  Certainly for any UNIX-like system it's important to be able to
-run lots of different processes at the same time even if there is only one
-of you.  You could run GNU EMACS on a nonvirtual-memory machine with enough
-memory, but you couldn't run the rest of the GNU system very well or a UNIX
-system very well.
-
-BYTE: How much of LISP is present in GNU EMACS?  It occurred to me that it
-may be useful to use that as a tool for learning LISP.
-
-Stallman: You can certainly do that.  GNU EMACS contains a complete,
-although not very powerful, LISP system.  It's powerful enough for writing
-editor commands.  It's not comparable with, say, a Common LISP System,
-something you could really use for system programming, but it has all the
-things that LISP needs to have.
-
-BYTE: Do you have any predictions about when you would be likely to
-distribute a workable environment in which, if we put it on our machines or
-workstations, we could actually get reasonable work done without using
-anything other than code that you distribute?
-
-Stallman: It's really hard to say.  That could happen in a year, but of
-course it could take longer.  It could also conceivably take less, but
-that's not too likely anymore.  I think I'll have the compiler finished in a
-month or two.  The only other large piece of work I really have to do is in
-the kernel.  I first predicted GNU would take something like two years, but
-it has now been two and a half years and I'm still not finished.  Part of
-the reason for the delay is that I spent a lot of time working on one
-compiler that turned out to be a dead end.  I had to rewrite it completely.
-Another reason is that I spent so much time on GNU EMACS.  I originally
-thought I wouldn't have to do that at all.
-
-BYTE: Tell us about your distribution scheme.
-
-Stallman: I don't put software or manuals in the public domain, and the
-reason is that I want to make sure that all the users get the freedom to
-share.  I don't want anyone making an improved version of a program I wrote
-and distributing it as proprietary.  I don't want that to ever be able to
-happen.  I want to encourage the free improvements to these programs, and
-the best way to do that is to take away any temptation for a person to make
-improvements nonfree.  Yes, a few of them will refrain from making
-improvements, but a lot of others will make the same improvements and
-they'll make them free.
-
-BYTE: And how do you go about guaranteeing that?
-
-Stallman: I do this by copyrighting the programs and putting on a notice
-giving people explicit permission to copy the programs and change them but
-only on the condition that they distribute under the same terms that I
-used, if at all.  You don't have to distribute the changes you make to any
-of my programs--you can just do it for yourself, and you don't have to give
-it to anyone or tell anyone.  But if you do give it to someone else, you
-have to do it under the same terms that I use.
-
-BYTE: Do you obtain any rights over the executable code derived from the C
-compiler?
-
-Stallman: The copyright law doesn't give me copyright on output from the
-compiler, so it doesn't give me a way to say anything about that, and in
-fact I don't try to.  I don't sympathize with people developing proprietary
-products with any compiler, but it doesn't seem especially useful to try to
-stop them from developing them with this compiler, so I am not going to.
-
-BYTE: Do your restrictions apply if people take pieces of your code to
-produce other things as well?
-
-Stallman: Yes, if they incorporate with changes any sizable piece.  If it
-were two lines of code, that's nothing; copyright doesn't apply to that.
-Essentially, I have chosen these conditions so that first there is a
-copyright, which is what all the software hoarders use to stop everybody
-from doing anything, and then I add a notice giving up part of those
-rights.  So the conditions talk only about the things that copyright applies
-to.  I don't believe that the reason you should obey these conditions is
-because of the law.  The reason you should obey is because an upright person
-when he distributes software encourages other people to share it further.
-
-BYTE: In a sense you are enticing people into this mode of thinking by
-providing all of these interesting tools that they can use but only if they
-buy into your philosophy.
-
-Stallman: Yes.  You could also see it as using the legal system that
-software hoarders have set up against them.  I'm using it to protect the
-public from them.
-
-BYTE: Given that manufacturers haven't wanted to fund the project, who do
-you think will use the GNU system when it is done?
-
-Stallman: I have no idea, but it is not an important question.  My purpose
-is to make it possible for people to reject the chains that come with
-proprietary software.  I know that there are people who want to do that.
-Now, there may be others who don't care, but they are not my concern.  I
-feel a bit sad for them and for the people that they influence.  Right now a
-person who perceives the unpleasantness of the terms of proprietary
-software feels that he is stuck and has no alternative except not to use a
-computer.  Well, I am going to give him a comfortable alternative.
-    Other people may use the GNU system simply because it is technically
-superior.  For example, my C compiler is producing about as good a code as I
-have seen from any C compiler.  And GNU EMACS is generally regarded as being
-far superior to the commercial competition.  And GNU EMACS was not funded by
-anyone either, but everyone is using it.  I therefore think that many people
-will use the rest of the GNU system because of its technical advantages.
-But I would be doing a GNU system even if I didn't know how to make it
-technically better because I want it to be socially better.  The GNU project
-is really a social project.  It uses technical means to make a change in
-society.
-
-BYTE: Then it is fairly important to you that people adopt GNU.  It is not
-just an academic exercise to produce this software to give it away to
-people.  You hope it will change the way the software industry operates.
-
-Stallman: Yes.  Some people say no one will ever use it because it doesn't
-have some attractive corporate logo on it, and other people say that they
-think it is tremendously important and everyone's going to want to use it.
-I have no way of knowing what is really going to happen.  I don't know any
-other way to try to change the ugliness of the field that I find myself in,
-so this is what I have to do.
-
-BYTE: Can you address the implications?  You obviously feel that this is an
-important political and social statement.
-
-Stallman: It is a change.  I'm trying to change the way people approach
-knowledge and information in general.  I think that to try to own knowledge,
-to try to control whether people are allowed to use it, or to try to stop
-other people from sharing it, is sabotage.  It is an activity that benefits
-the person that does it at the cost of impoverishing all of society.  One
-person gains one dollar by destroying two dollars' worth of wealth.  I think
-a person with a conscience wouldn't do that sort of thing except perhaps if
-he would otherwise die.  And of course the people who do this are fairly
-rich; I can only conclude that they are unscrupulous.  I would like to see
-people get rewards for writing free software and for encouraging other
-people to use it.  I don't want to see people get rewards for writing
-proprietary software because that is not really a contribution to society.
-The principle of capitalism is the idea that people manage to make money by
-producing things and thereby are encouraged to do what is useful,
-automatically, so to speak.  But that doesn't work when it comes to owning
-knowledge.  They are encouraged to do not really what's useful, and what
-really is useful is not encouraged.  I think it is important to say that
-information is different from material objects like cars and loaves of
-bread because people can copy it and share it on their own and, if nobody
-attempts to stop them, they can change it and make it better for
-themselves.  That is a useful thing for people to do.  This isn't true of
-loaves of bread.  If you have one loaf of bread and you want another, you
-can't just put your loaf of bread into a bread copier.  you can't make
-another one except by going through all the steps that were used to make
-the first one.  It therefore is irrelevant whether people are permitted to
-copy it--it's impossible.
-   Books were printed only on printing presses until recently.  It was
-possible to make a copy yourself by hand, but it wasn't practical because
-it took so much more work than using a printing press.  And it produced
-something so much less attractive that, for all intents and purposes, you
-could act as if it were impossible to make books except by mass producing
-them.  And therefore copyright didn't really take any freedom away from the
-reading public.  There wasn't anything that a book purchaser could do that
-was forbidden by copyright.
-   But this isn't true for computer programs.  It's also not true for tape
-cassettes.  It's partly false now for books, but it is still true that for
-most books it is more expensive and certainly a lot more work to Xerox them
-than to buy a copy, and the result is still less attractive.  Right now we
-are in a period where the situation that made copyright harmless and
-acceptable is changing to a situation where copyright will become
-destructive and intolerable.  So the people who are slandered as "pirates"
-are in fact the people who are trying to do something useful that they have
-been forbidden to do.   The copyright laws are entirely designed to help
-people take complete control over the use of some information for their own
-good.  But they aren't designed to help people who want to make sure that
-the information is accessible to the public and stop others from depriving
-the public.  I think that the law should recognize a class of works that are
-owned by the public, which is different from public domain in the same
-sense that a public park is different from something found in a garbage
-can.  It's not there for anybody to take away, it's there for everyone to
-use but for no one to impede.  Anybody in the public who finds himself being
-deprived of the derivative work of something owned by the public should be
-able to sue about it.
-
-BYTE: But aren't pirates interested in getting copies of programs because
-they want to use those programs, not because they want to use that
-knowledge to produce something better?
-
-Stallman: I don't see that that's the important distinction.  More people
-using a program means that the program contributes more to society.  You
-have a loaf of bread that could be eaten either once or a million times.
-
-BYTE: Some users buy commercial software to obtain support.  How does your
-distribution scheme provide support?
-
-Stallman: I suspect that those users are misled and are not thinking
-clearly.  It is certainly useful to have support, but when they start
-thinking about how that has something to do with selling software or with
-the software being proprietary, at that point they are confusing
-themselves.  There is no guarantee that proprietary software will receive
-good support.  Simply because sellers say that they provide support, that
-doesn't mean it will be any good.  And they may go out of business.  In fact,
-people think that GNU EMACS has better support than commercial EMACSes.  One
-of the reasons is that I'm probably a better hacker than the people who
-wrote the other EMACSes, but the other reason is that everyone has sources
-and there are so many people interested in figuring out how to do things
-with it that you don't have to get your support from me.  Even just the free
-support that consists of my fixing bugs people report to me and
-incorporating that in the next release has given people a good level of
-support.  You can always hire somebody to solve a problem for you, and when
-the software is free you have a competitive market for the support.  You can
-hire anybody.  I distribute a service list with EMACS, a list of people's
-names and phone numbers and what they charge to provide support.
-
-BYTE: Do you collect their bug fixes?
-
-Stallman: Well, they send them to me.  I asked all the people who wanted to
-be listed to promise that they would never ask any of their customers to
-keep secret whatever they were told or any changes they were given to the
-GNU software as part of that support.
-
-BYTE: So you can't have people competing to provide support based on their
-knowing the solution to some problem that somebody else doesn't know.
-
-Stallman: No.  They can compete based on their being clever and more likely
-to find the solution to your problem, or their already understanding more
-of the common problems, or knowing better how to explain to you what you
-should do.  These are all ways they can compete.  They can try to do better,
-but they cannot actively impede their competitors.
-
-BYTE: I suppose it's like buying a car.  You're not forced to go back to the
-original manufacturer for support or continued maintenance.
-
-Stallman: Or buying a house--what would it be like if the only person who
-could ever fix problems with your house was the contractor who built it
-originally?  That is the kind of imposition that's involved in proprietary
-software.  People tell me about a problem that happens in UNIX.  Because
-manufacturers sell improved versions of UNIX, they tend to collect fixes
-and not give them out except in binaries.  The result is that the bugs don't
-really get fixed.
-
-BYTE: They're all duplicating effort trying to solve bugs independently.
-
-Stallman: Yes.  Here is another point that helps put the problem of
-proprietary information in a social perspective.  Think about the liability
-insurance crisis.  In order to get any compensation from society, an injured
-person has to hire a lawyer and split the money with that lawyer.  This is a
-stupid and inefficient way of helping out people who are victims of
-accidents.  And consider all the time that people put into hustling to take
-business away from their competition.  Think of the pens that are packaged
-in large cardboard packages that cost more than the pen--just to make sure
-that the pen isn't stolen.  Wouldn't it be better if we just put free pens
-on every street corner?  And think of all the toll booths that impede the
-flow of traffic.  It's a gigantic social phenomenon.  People find ways of
-getting money by impeding society.  Once they can impede society, they can
-be paid to leave people alone.  The waste inherent in owning information
-will become more and more important and will ultimately make the difference
-between the utopia in which nobody really has to work for a living because
-it's all done by robots and a world just like ours where everyone spends
-much time replicating what the next fellow is doing.
-
-BYTE: Like typing in copyright notices on the software.
-
-Stallman: More like policing everyone to make sure that they don't have
-forbidden copies of anything and duplicating all the work people have
-already done because it is proprietary.
-
-BYTE: A cynic might wonder how you earn your living.
-
-Stallman: From consulting.  When I do consulting, I always reserve the right
-to give away what I wrote for the consulting job.  Also, I could be making
-my living by mailing copies of the free software that I wrote and some that
-other people wrote.  Lots of people send in $150 for GNU EMACS, but now this
-money goes to the Free Software Foundation that I started.  The foundation
-doesn't pay me a salary because it would be a conflict of interest.
-Instead, it hires other people to work on GNU.  As long as I can go on
-making a living by consulting I think that's the best way.
-
-BYTE: What is currently included in the official GNU distribution tape?
-
-Stallman: Right now the tape contains GNU EMACS (one version fits all
-computers); Bison, a program that replaces YACC; MIT Scheme, which is
-Professor Sussman's super-simplified dialect of LISP; and Hack, a
-dungeon-exploring game similar to Rogue.
-
-BYTE: Does the printed manual come with the tape as well?
-
-Stallman: No.  Printed manuals cost $15 each or copy them yourself.  Copy
-this interview and share it, too.
-
-BYTE: How can you get a copy of that?
-
-Stallman: Write to the Free Software Foundation, 675 Massachusetts Ave.,
-Cambridge, MA 02139.
-
-[As of April 2005, this address is:
-     Free Software Foundation
-     51 Franklin Street, Fifth Floor
-     Boston, MA  02110-1301, USA
-     Voice:  +1-617-542-5942
-     Fax:    +1-617-542-2652
-]
-
-BYTE: What are you going to do when you are done with the GNU system?
-
-Stallman: I'm not sure.  Sometimes I think that what I'll go on to do is the
-same thing in other areas of software.
-
-BYTE: So this is just the first of a whole series of assaults on the
-software industry?
-
-Stallman: I hope so.  But perhaps what I'll do is just live a life of ease
-working a little bit of the time just to live.  I don't have to live
-expensively.  The rest of the time I can find interesting people to hang
-around with or learn to do things that I don't know how to do.
-
-Editorial Note: BYTE holds the right to provide this interview on BIX but
-will not interfere with its distribution.
-
-Richard Stallman, 545 Technology Square, Room 703, Cambridge, MA 02139.
-Copyright (C) 1986 Richard Stallman.  Permission is granted to make and
-distribute copies of this article as long as the copyright and this notice
-appear on all copies.
diff --git a/etc/MAILINGLISTS b/etc/MAILINGLISTS
deleted file mode 100644 (file)
index 0d5ce9b..0000000
+++ /dev/null
@@ -1,261 +0,0 @@
-      GNU Project Electronic Mailing Lists and gnUSENET Newsgroups
-                       Last Updated 2006-06-03
-
-          Please report improvements to: gnu@gnu.org
-
-  See the end of this file for copyright notice and copying conditions
-
-* Mailing list archives
-
-The GNU mailing lists are archived at http://lists.gnu.org.
-
-* Some GNU mailing lists are also distributed as USENET news groups
-
-Certain GNU mailing lists are gated both ways with the gnu.all
-newsgroups at uunet.  You can tell which they are, because the names
-correspond.  For instance, bug-gnu-emacs corresponds to gnu.emacs.bug;
-info-gnu-emacs, to gnu.emacs.announce; help-gnu-emacs, to
-gnu.emacs.help; gnu-emacs-sources, to gnu.emacs.sources.  Replacing
-`emacs' with some other program in those four examples shows you
-the whole pattern.
-
-* How to subscribe to and report bugs in mailing lists
-
-Send requests to be added or removed, to help-gnu-emacs-request (or
-info-gnu-request, bug-gdb-request, etc.), NOT to info-gnu-emacs (or
-info-gnu, etc.).  Most <LIST_NAME>-request addresses are now handled
-automagically by GNU Mailman.
-
-If you need to report problems to a human, send mail to gnu@gnu.org
-explaining the problem.
-
-Many of the GNU mailing lists are very large and are received by many
-people.
-
-If a message you mail to a list is returned from a MAILER-DAEMON (often
-with the line:
-      ----- Transcript of session follows -----
- don't resend the message to the list.  All this return means is that
-your original message failed to reach a few addresses on the list.  Such
-messages are NEVER a reason to resend a piece of mail a 2nd time.  This
-just bothers all (less the few delivery failures (which will probably
-just fail again!)) of the readers of the list with a message they have
-already seen.  It also wastes computer and network resources.
-
-It is appropriate to send these to the -request address for a list, and
-ask them to check the problem out.
-
-* Send Specific Requests for Information to: gnu@gnu.org
-
-Specific requests for information about obtaining GNU software, or GNU
-activities in Cambridge and elsewhere can be directed to:
-       gnu@gnu.org
-
-* General Information about all lists
-
-Do not send very large files to mailing lists; instead put then on a web
-page and announce the URL.  Good bug reports are short.
-See section '* General Information about bug-* lists and ...'  for
-further details.
-
-The GNU mailing lists and newsgroups, like the GNU project itself, exist
-to promote the freedom to share software.  So don't use these lists to
-promote or recommend non-free software or documentation, like
-proprietary books on GNU software.  (Using them to post ordering
-information is the ultimate faux pas.)  If there is no free program to
-do a certain task, then somebody should write one!  Similarly, free
-documentation that is inadequate should be improved--a way in which
-non-programmers can make a valuable contribution.  See also the article
-at <URL:http://www.gnu.org/philosophy/free-doc.html>.
-
-* General Information about info-* lists
-
-These lists and their newsgroups are meant for important announcements.
-Since the GNU project uses software development as a means for social
-change, the announcements may be technical or political.
-
-Most GNU projects info-* lists (and their corresponding gnu.*.announce
-newsgroups) are moderated to keep their content significant and
-relevant.  If you have a bug to report, send it to the bug-* list.  If
-you need help on something else and the help-* list exists, ask it.
-
-See section '* General Information about all lists'.
-
-* General Information about help-* lists
-
-These lists (and their newsgroups) exist for anyone to ask questions
-about the GNU software that the list deals with.  The lists are read by
-people who are willing to take the time to help other users.
-
-When you answer the questions that people ask on the help-* lists, keep
-in mind that you shouldn't answer by promoting a proprietary program as
-a solution.  The only real solutions are the ones all the readers can
-share.
-
-If a program crashes, or if you build it following the standard
-procedure on a system on which it is supposed to work and it does not
-work at all, or if an command does not behave as it is documented to
-behave, this is a bug.  Don't send bug reports to a help-* list; mail
-them to the bug-* list instead.
-
-See section '* General Information about all lists'.
-
-* General Information about bug-* lists and reporting program bugs
-
-If you think something is a bug in a program, it might be one; or, it
-might be a misunderstanding or even a feature.  Before beginning to
-report bugs, please read the section ``Reporting Bugs'' in
-the GNU Emacs reference manual (or node Bugs in Emacs's
-built-in Info system) for a discussion of how and when to send in bug
-reports.  For GNU programs other than GNU Emacs, also consult their
-documentation for their bug reporting procedures.  Always include the
-version number of the GNU program, as well as the operating system and
-machine the program was ran on (if the program doesn't have a version
-number, send the date of the latest entry in the file ChangeLog).  For
-GNU Emacs bugs, type "M-x emacs-version".  A debugger backtrace of any
-core dump can also be useful.  Be careful to separate out hypothesis
-from fact!  For bugs in GNU Emacs lisp, set variable debug-on-error to
-t, and re-enter the command(s) that cause the error message; Emacs will
-pop up a debug buffer if something is wrong; please include a copy of
-the buffer in your bug report.  Please also try to make your bug report
-as short as possible; distill the problem to as few lines of code and/or
-input as possible.  GNU maintainers give priority to the shortest, high
-quality bug reports.
-
-Please don't send in a patch without a test case to illustrate the
-problem the patch is supposed to fix.  Sometimes the patches aren't
-correct or aren't the best way to do the job, and without a test case
-there is no way to debug an alternate fix.
-
-The purpose of reporting a bug is to enable the bug to be fixed for the
-sake of the whole community of users.  You may or may not receive a
-response; the maintainers will send one if that helps them find or
-verify a fix.  Most GNU maintainers are volunteers and all are
-overworked; they don't have time to help individuals and still fix the
-bugs and make the improvements that everyone wants.  If you want help
-for yourself in particular, you may have to hire someone.  The GNU
-project maintains a list of people providing such services.  It is
-found at <URL:http://www.fsf.org/resources/service>.
-
-Anything addressed to the implementers and maintainers of a GNU program
-via a bug-* list, should NOT be sent to the corresponding info-* or
-help-* list.
-
-Please DON'T post your bug reports on the gnu.*.bug newsgroups!  Mail
-them to bug-*@gnu.org instead!  At first sight, it seems to make no
-difference: anything sent to one will be propagated to the other; but:
-       - if you post on the newsgroup, the information about how to
-reach you is lost in the message that goes on the mailing list.  It
-can be very important to know how to reach you, if there is anything
-in the bug report that we don't understand;
-       - bug reports reach the GNU maintainers quickest when they are
-sent to the bug-* mailing list submittal address;
-       - mail is much more reliable then netnews; and
-       - if the internet mailers can't get your bug report delivered,
-they almost always send you an error message, so you can find another
-way to get the bug report in.  When netnews fails to get your message
-delivered to the maintainers, you'll never know about it and the
-maintainers will never see the bug report.
-
-And please DON'T post your GNU bug reports to comp.* or other gnu.*
-newsgroups, they never make it to the GNU maintainers at all.  Please
-mail them to bug-*@gnu.org instead!
-
-* Some special lists that don't fit the usual patterns of help-, bug- and info-
-
-** info-gnu-request@gnu.org to subscribe to info-gnu
-
-gnUSENET newsgroup: gnu.announce
-Send announcements to: info-gnu@gnu.org
-
-This list distributes progress reports on the GNU Project.  It is also
-used by the GNU Project to ask people for various kinds of help.  It is
-moderated and NOT for general discussion.
-
-** gnu-misc-discuss-request@gnu.org to subscribe to gnu-misc-discuss
-
-gnUSENET newsgroup: gnu.misc.discuss
-Send contributions to: gnu-misc-discuss@gnu.org
-
-This list is for serious discussion of free software, the GNU Project,
-the GNU Manifesto, and their implications.  It's THE place for
-discussion that is not appropriate in the other GNU mailing lists and
-gnUSENET newsgroups.
-
-Flaming is out of place.  Tit-for-tat is not welcome.  Repetition
-should not occur.
-
-Good READING and writing are expected.  Before posting, wait a while,
-cool off, and think.
-
-Don't use this group for complaints and bug reports about GNU software!
-The maintainers of the package you are using probably don't read this
-group; they won't see your complaint.  Use the appropriate bug-reporting
-mailing list instead, so that people who can do something about the
-problem will see it.  Likewise, use the help- list for technical
-questions.
-
-Don't trust pronouncements made on gnu-misc-discuss about what GNU is,
-what FSF position is, what the GNU General Public License is, etc.,
-unless they are made by someone you know is well connected with GNU and
-are sure the message is not forged.
-
-USENET and gnUSENET readers are expected to have read ALL the articles
-in news.announce.newusers before posting.
-
-Remember, "GNUs Not Unix" and "gnUSENET is Not USENET".  We have
-higher standards!
-
-** gnu-emacs-sources-request@gnu.org to subscribe to gnu-emacs-sources
-
-gnUSENET newsgroup: gnu.emacs.sources
-GNU Emacs source code to: gnu-emacs-sources@gnu.org
-
-This list/newsgroup will be for the posting, by their authors, of Emacs
-Lisp and C sources and patches that improve GNU Emacs.  Its contents
-will be reviewed by the FSF for inclusion in future releases of GNU
-Emacs.
-
-Please do NOT discuss or request source code here.  Use
-help-gnu-emacs/gnu.emacs.help for those purposes.  This allows the
-automatic archiving of sources posted to this list/newsgroup.
-
-Please do NOT post such sources to any other GNU mailing list (e.g
-help-gnu-emacs) or gnUSENET newsgroups (e.g. gnu.emacs.help).  It's up
-to each poster to decide whether to cross-post to any non-gnUSENET
-newsgroup (e.g. comp.emacs).
-
-Please do NOT announce that you have posted source code to
-gnu.emacs.sources to any other GNU mailing list (e.g. help-gnu-emacs) or
-gnUSENET newsgroups (e.g. gnu.emacs.help).  People who want to keep up
-with sources will read this list/newsgroup.  It's up to each poster to
-decide whether to announce a gnu.emacs.sources article in any
-non-gnUSENET newsgroup (e.g. comp.emacs).
-
-If source or patches that were previously posted or a simple fix is
-requested in help-gnu-emacs, please mail it to the requester.  Do NOT
-repost it.  If you also want something that is requested, send mail to
-the requester asking him to forward it to you.  This kind of traffic is
-best handled by e-mail, not by a broadcast medium that reaches millions
-of sites.
-
-If the requested source is very long, send mail offering to
-send it.  This prevents the requester from getting many redundant copies
-and saves network bandwidth.
-
-Local variables:
-mode: outline
-fill-column: 72
-End:
-
-Copyright (C) 1999, 2001-2014 Free Software Foundation, Inc.
-
-    Permission is hereby granted, free of charge, to any person obtaining
-    a copy of this file, to deal in the file without restriction, including
-    without limitation the rights to use, copy, modify, merge, publish,
-    distribute, sublicense, and/or sell copies of the file, and to
-    permit persons to whom the file is furnished to do so, subject to
-    the following condition:
-
-    The above copyright notice and this permission notice shall be
-    included in all copies or substantial portions of the file.
diff --git a/etc/MOTIVATION b/etc/MOTIVATION
deleted file mode 100644 (file)
index 5019492..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-STUDIES FIND REWARD OFTEN NO MOTIVATOR
-
-Creativity and intrinsic interest diminish if task is done for gain
-
-By Alfie Kohn
-Special to the Boston Globe
-[reprinted with permission of the author
- from the Monday 19 January 1987 Boston Globe]
-
-Verbatim copying and distribution is permitted in any medium
-provided this notice is preserved.
-
-In the laboratory, rats get Rice Krispies.  In the classroom the top
-students get A's, and in the factory or office the best workers get
-raises.  It's an article of faith for most of us that rewards promote
-better performance.
-
-But a growing body of research suggests that this law is not nearly as
-ironclad as was once thought.  Psychologists have been finding that
-rewards can lower performance levels, especially when the performance
-involves creativity.
-
-A related series of studies shows that intrinsic interest in a task -
-the sense that something is worth doing for its own sake - typically
-declines when someone is rewarded for doing it.
-
-If a reward - money, awards, praise, or winning a contest - comes to
-be seen as the reason one is engaging in an activity, that activity
-will be viewed as less enjoyable in its own right.
-
-With the exception of some behaviorists who doubt the very existence
-of intrinsic motivation, these conclusions are now widely accepted
-among psychologists.  Taken together, they suggest we may unwittingly
-be squelching interest and discouraging innovation among workers,
-students and artists.
-
-The recognition that rewards can have counter-productive effects is
-based on a variety of studies, which have come up with such findings
-as these: Young children who are rewarded for drawing are less likely
-to draw on their own that are children who draw just for the fun of
-it.  Teenagers offered rewards for playing word games enjoy the games
-less and do not do as well as those who play with no rewards.
-Employees who are praised for meeting a manager's expectations suffer
-a drop in motivation.
-
-Much of the research on creativity and motivation has been performed
-by Theresa Amabile, associate professor of psychology at Brandeis
-University.  In a paper published early last year on her most recent
-study, she reported on experiments involving elementary school and
-college students.  Both groups were asked to make "silly" collages.
-The young children were also asked to invent stories.
-
-The least-creative projects, as rated by several teachers, were done
-by those students who had contracted for rewards.  "It may be that
-commissioned work will, in general, be less creative than work that is
-done out of pure interest," Amabile said.
-
-In 1985, Amabile asked 72 creative writers at Brandeis and at Boston
-University to write poetry.  Some students then were given a list of
-extrinsic (external) reasons for writing, such as impressing teachers,
-making money and getting into graduate school, and were asked to think
-about their own writing with respect to these reasons.  Others were
-given a list of intrinsic reasons:  the enjoyment of playing with
-words, satisfaction from self-expression, and so forth.  A third group
-was not given any list.  All were then asked to do more writing.
-
-The results were clear.  Students given the extrinsic reasons not only
-wrote less creatively than the others, as judged by 12 independent
-poets, but the quality of their work dropped significantly.  Rewards,
-Amabile says, have this destructive effect primarily with creative
-tasks, including higher-level problem-solving.  "The more complex the
-activity, the more it's hurt by extrinsic reward," she said.
-
-But other research shows that artists are by no means the only ones
-affected.
-
-In one study, girls in the fifth and sixth grades tutored younger
-children much less effectively if they were promised free movie
-tickets for teaching well.  The study, by James Gabarino, now
-president of Chicago's Erikson Institute for Advanced Studies in Child
-Development, showed that tutors working for the reward took longer to
-communicate ideas, got frustrated more easily, and did a poorer job in
-the end than those who were not rewarded.
-
-Such findings call into question the widespread belief that money is
-an effective and even necessary way to motivate people.  They also
-challenge the behaviorist assumption that any activity is more likely
-to occur if it is rewarded.  Amabile says her research "definitely
-refutes the notion that creativity can be operantly conditioned."
-
-But Kenneth McGraw, associate professor of psychology at the
-University of Mississippi, cautions that this does not mean
-behaviorism itself has been invalidated.  "The basic principles of
-reinforcement and rewards certainly work, but in a restricted context"
-- restricted, that is, to tasks that are not especially interesting.
-
-Researchers offer several explanations for their surprising findings
-about rewards and performance.
-
-First, rewards encourage people to focus narrowly on a task, to do it
-as quickly as possible and to take few risks.  "If they feel that
-'this is something I have to get through to get the prize,' they're
-going to be less creative," Amabile said.
-
-Second, people come to see themselves as being controlled by the
-reward.  They feel less autonomous, and this may interfere with
-performance.  "To the extent one's experience of being
-self-determined is limited," said Richard Ryan, associate psychology
-professor at the University of Rochester, "one's creativity will be
-reduced as well."
-
-Finally, extrinsic rewards can erode intrinsic interest.  People who
-see themselves as working for money, approval or competitive success
-find their tasks less pleasurable, and therefore do not do them as
-well.
-
-The last explanation reflects 15 years of work by Ryan's mentor at the
-University of Rochester, Edward Deci.  In 1971, Deci showed that
-"money may work to buy off one's intrinsic motivation for an activity"
-on a long-term basis.  Ten years later, Deci and his colleagues
-demonstrated that trying to best others has the same effect.  Students
-who competed to solve a puzzle quickly were less likely than those who
-were not competing to keep working at it once the experiment was over.
-
-Control plays role
-
-There is general agreement, however, that not all rewards have the
-same effect.  Offering a flat fee for participating in an experiment -
-similar to an hourly wage in the workplace - usually does not reduce
-intrinsic motivation.  It is only when the rewards are based on
-performing a given task or doing a good job at it - analogous to
-piece-rate payment and bonuses, respectively - that the problem
-develops.
-
-The key, then, lies in how a reward is experienced.  If we come to
-view ourselves as working to get something, we will no longer find
-that activity worth doing in its own right.
-
-There is an old joke that nicely illustrates the principle.  An
-elderly man, harassed by the taunts of neighborhood children, finally
-devises a scheme.  He offered to pay each child a dollar if they would
-all return Tuesday and yell their insults again.  They did so eagerly
-and received the money, but he told them he could only pay 25 cents on
-Wednesday.  When they returned, insulted him again and collected their
-quarters, he informed them that Thursday's rate would be just a penny.
-"Forget it," they said - and never taunted him again.
-
-Means to and end
-
-In a 1982 study, Stanford psychologist Mark L. Lepper showed that any
-task, no matter how enjoyable it once seemed, would be devalued if it
-were presented as a means rather than an end.  He told a group of
-preschoolers they could not engage in one activity they liked until
-they first took part in another.  Although they had enjoyed both
-activities equally, the children came to dislike the task that was a
-prerequisite for the other.
-
-It should not be surprising that when verbal feedback is experienced
-as controlling, the effect on motivation can be similar to that of
-payment.  In a study of corporate employees, Ryan found that those who
-were told, "Good, you're doing as you /should/" were "significantly
-less intrinsically motivated than those who received feedback
-informationally."
-
-There's a difference, Ryan says, between saying, "I'm giving you this
-reward because I recognize the value of your work" and "You're getting
-this reward because you've lived up to my standards."
-
-A different but related set of problems exists in the case of
-creativity.  Artists must make a living, of course, but Amabile
-emphasizes that "the negative impact on creativity of working for
-rewards can be minimized" by playing down the significance of these
-rewards and trying not to use them in a controlling way.  Creative
-work, the research suggests, cannot be forced, but only allowed to
-happen.
-
-/Alfie Kohn, a Cambridge, MA writer, is the author of "No Contest: The
-Case Against Competition," recently published by Houghton Mifflin Co.,
-Boston, MA.  ISBN 0-395-39387-6. /
index 9817115918bcb4eee9bb616e45a710c66fe1c7f6..81675d4eea23ba3504139832a7d07356f4919c59 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1230,25 +1230,25 @@ and setting the current frame of a multi-frame image.
 
 ** EIEIO
 
++++
 *** Namespace cleanup by obsolete-aliasing functions to use `eieio-' prefix.
 **** object-name -> eieio-object-name
 **** object-class -> eieio-object-class
 **** object-class-fast -> eieio--object-class
+**** object-class-name -> eieio-object-class-name
 **** object-name-string -> eieio-object-name-string
 **** object-num-slots -> eieio--object-num-slots
 **** object-set-name-string -> eieio-object-set-name-string
+**** class-of -> eieio-object-class
+**** class-name -> eieio-class-name
 **** class-parent -> eieio-class-parent
 **** class-parents -> eieio-class-parents
+**** class-parents-fast -> eieio-class-parents-fast
 **** class-children -> eieio-class-children
 **** class-num-slots -> eieio--class-num-slots
 **** class-precedence-list -> eieio-class-precedence-list
-**** All generated class-* and object-* field accessors are now
-prefixed with `eieio-' as well.
-
-*** Obsoleted functions:
-**** class-of
-**** class-direct-subclasses
-**** class-direct-superclasses
+**** class-direct-subclasses -> eieio-class-children
+**** class-direct-superclasses -> eieio-class-parents
 
 ** Changes in encoding and decoding of text
 
@@ -1295,6 +1295,7 @@ regular file with contents being what would have been in the symlink.
 +++
 ** New functions `group-gid' and `group-real-gid'.
 
+---
 ** The spelling of the rx.el category `chinese-two-byte' has been
 corrected (the first 'e' was missing).
 
diff --git a/etc/SERVICE b/etc/SERVICE
deleted file mode 100644 (file)
index eed62ea..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-GNU Service Directory
----------------------
-
-Please see <http://www.fsf.org/resources/service/> for a list of
-people who have asked to be listed as offering support services for
-GNU software, including GNU Emacs, for a fee or in some cases at no
-charge.
-
-Note added January 2014:
-This file is obsolete and will be removed in future.
-Please update any links to use the above URL.
diff --git a/etc/copying.paper b/etc/copying.paper
deleted file mode 100644 (file)
index e0a478a..0000000
+++ /dev/null
@@ -1,819 +0,0 @@
-(For more information about the GNU project and free software,
-look at the files `GNU', `COPYING', and `DISTRIB', in the same
-directory as this file.)
-
-
-                      Why Software Should Be Free
-
-                          by Richard Stallman
-
-                      (Version of April 24, 1992)
-
-     Copyright (C) 1991, 1992, Free Software Foundation, Inc.
-     Verbatim copying and redistribution is permitted
-     without royalty; alteration is not permitted.
-
-Introduction
-************
-
-   The existence of software inevitably raises the question of how
-decisions about its use should be made.  For example, suppose one
-individual who has a copy of a program meets another who would like a
-copy.  It is possible for them to copy the program; who should decide
-whether this is done?  The individuals involved?  Or another party,
-called the "owner"?
-
-   Software developers typically consider these questions on the
-assumption that the criterion for the answer is to maximize developers'
-profits.  The political power of business has led to the government
-adoption of both this criterion and the answer proposed by the
-developers: that the program has an owner, typically a corporation
-associated with its development.
-
-   I would like to consider the same question using a different
-criterion: the prosperity and freedom of the public in general.
-
-   This answer cannot be decided by current law--the law should conform
-to ethics, not the other way around.  Nor does current practice decide
-this question, although it may suggest possible answers.  The only way
-to judge is to see who is helped and who is hurt by recognizing owners
-of software, why, and how much.  In other words, we should perform a
-cost-benefit analysis on behalf of society as a whole, taking account of
-individual freedom as well as production of material goods.
-
-   In this essay, I will describe the effects of having owners, and show
-that the results are detrimental.  My conclusion is that programmers
-have the duty to encourage others to share, redistribute, study and
-improve the software we write: in other words, to write "free"
-software.(1)
-
-How Owners Justify Their Power
-******************************
-
-   Those who benefit from the current system where programs are property
-offer two arguments in support of their claims to own programs: the
-emotional argument and the economic argument.
-
-   The emotional argument goes like this: "I put my sweat, my heart, my
-soul into this program.  It comes from *me*, it's *mine*!"
-
-   This argument does not require serious refutation.  The feeling of
-attachment is one that programmers can cultivate when it suits them; it
-is not inevitable.  Consider, for example, how willingly the same
-programmers usually sign over all rights to a large corporation for a
-salary; the emotional attachment mysteriously vanishes.  By contrast,
-consider the great artists and artisans of medieval times, who didn't
-even sign their names to their work.  To them, the name of the artist
-was not important.  What mattered was that the work was done--and the
-purpose it would serve.  This view prevailed for hundreds of years.
-
-   The economic argument goes like this: "I want to get rich (usually
-described inaccurately as `making a living'), and if you don't allow me
-to get rich by programming, then I won't program.  Everyone else is like
-me, so nobody will ever program.  And then you'll be stuck with no
-programs at all!"  This threat is usually veiled as friendly advice
-from the wise.
-
-   I'll explain later why this threat is a bluff.  First I want to
-address an implicit assumption that is more visible in another
-formulation of the argument.
-
-   This formulation starts by comparing the social utility of a
-proprietary program with that of no program, and then concludes that
-proprietary software development is, on the whole, beneficial, and
-should be encouraged.  The fallacy here is in comparing only two
-outcomes--proprietary software vs. no software--and assuming there are
-no other possibilities.
-
-   Given a system of intellectual property, software development is
-usually linked with the existence of an owner who controls the
-software's use.  As long as this linkage exists, we are often faced
-with the choice of proprietary software or none.  However, this linkage
-is not inherent or inevitable; it is a consequence of the specific
-social/legal policy decision that we are questioning: the decision to
-have owners.  To formulate the choice as between proprietary software
-vs. no software is begging the question.
-
-The Argument against Having Owners
-**********************************
-
-   The question at hand is, "Should development of software be linked
-with having owners to restrict the use of it?"
-
-   In order to decide this, we have to judge the effect on society of
-each of those two activities *independently*: the effect of developing
-the software (regardless of its terms of distribution), and the effect
-of restricting its use (assuming the software has been developed).  If
-one of these activities is helpful and the other is harmful, we would be
-better off dropping the linkage and doing only the helpful one.
-
-   To put it another way, if restricting the distribution of a program
-already developed is harmful to society overall, then an ethical
-software developer will reject the option of doing so.
-
-   To determine the effect of restricting sharing, we need to compare
-the value to society of a restricted (i.e., proprietary) program with
-that of the same program, available to everyone.  This means comparing
-two possible worlds.
-
-   This analysis also addresses the simple counterargument sometimes
-made that "the benefit to the neighbor of giving him or her a copy of a
-program is cancelled by the harm done to the owner."  This
-counterargument assumes that the harm and the benefit are equal in
-magnitude.  The analysis involves comparing these magnitudes, and shows
-that the benefit is much greater.
-
-   To elucidate this argument, let's apply it in another area: road
-construction.
-
-   It would be possible to fund the construction of all roads with
-tolls.  This would entail having toll booths at all street corners.
-Such a system would provide a great incentive to improve roads.  It
-would also have the virtue of causing the users of any given road to
-pay for that road.  However, a toll booth is an artificial obstruction
-to smooth driving--artificial, because it is not a consequence of how
-roads or cars work.
-
-   Comparing free roads and toll roads by their usefulness, we find that
-(all else being equal) roads without toll booths are cheaper to
-construct, cheaper to run, safer, and more efficient to use.(2) In a
-poor country, tolls may make the roads unavailable to many citizens.
-The roads without toll booths thus offer more benefit to society at
-less cost; they are preferable for society.  Therefore, society should
-choose to fund roads in another way, not by means of toll booths.  Use
-of roads, once built, should be free.
-
-   When the advocates of toll booths propose them as *merely* a way of
-raising funds, they distort the choice that is available.  Toll booths
-do raise funds, but they do something else as well: in effect, they
-degrade the road.  The toll road is not as good as the free road; giving
-us more or technically superior roads may not be an improvement if this
-means substituting toll roads for free roads.
-
-   Of course, the construction of a free road does cost money, which the
-public must somehow pay.  However, this does not imply the inevitability
-of toll booths.  We who must in either case pay will get more value for
-our money by buying a free road.
-
-   I am not saying that a toll road is worse than no road at all.  That
-would be true if the toll were so great that hardly anyone used the
-road--but this is an unlikely policy for a toll collector.  However, as
-long as the toll booths cause significant waste and inconvenience, it is
-better to raise the funds in a less obstructive fashion.
-
-   To apply the same argument to software development, I will now show
-that having "toll booths" for useful software programs costs society
-dearly: it makes the programs more expensive to construct, more
-expensive to distribute, and less satisfying and efficient to use.  It
-will follow that program construction should be encouraged in some other
-way.  Then I will go on to explain other methods of encouraging and (to
-the extent actually necessary) funding software development.
-
-The Harm Done by Obstructing Software
-=====================================
-
-   Consider for a moment that a program has been developed, and any
-necessary payments for its development have been made; now society must
-choose either to make it proprietary or allow free sharing and use.
-Assume that the existence of the program and its availability is a
-desirable thing.(3)
-
-   Restrictions on the distribution and modification of the program
-cannot facilitate its use.  They can only interfere.  So the effect can
-only be negative.  But how much?  And what kind?
-
-   Three different levels of material harm come from such obstruction:
-
-   * Fewer people use the program.
-
-   * None of the users can adapt or fix the program.
-
-   * Other developers cannot learn from the program, or base new work
-     on it.
-
-   Each level of material harm has a concomitant form of psychosocial
-harm.  This refers to the effect that people's decisions have on their
-subsequent feelings, attitudes and predispositions.  These changes in
-people's ways of thinking will then have a further effect on their
-relationships with their fellow citizens, and can have material
-consequences.
-
-   The three levels of material harm waste part of the value that the
-program could contribute, but they cannot reduce it to zero.  If they
-waste nearly all the value of the program, then writing the program
-harms society by at most the effort that went into writing the program.
-Arguably a program that is profitable to sell must provide some net
-direct material benefit.
-
-   However, taking account of the concomitant psychosocial harm, there
-is no limit to the harm that proprietary software development can do.
-
-Obstructing Use of Programs
-===========================
-
-   The first level of harm impedes the simple use of a program.  A copy
-of a program has nearly zero marginal cost (and you can pay this cost by
-doing the work yourself), so in a free market, it would have nearly zero
-price.  A license fee is a significant disincentive to use the program.
-If a widely-useful program is proprietary, far fewer people will use it.
-
-   It is easy to show that the total contribution of a program to
-society is reduced by assigning an owner to it.  Each potential user of
-the program, faced with the need to pay to use it, may choose to pay,
-or may forego use of the program.  When a user chooses to pay, this is a
-zero-sum transfer of wealth between two parties.  But each time someone
-chooses to forego use of the program, this harms that person without
-benefiting anyone.  The sum of negative numbers and zeros must be
-negative.
-
-   But this does not reduce the amount of work it takes to *develop*
-the program.  As a result, the efficiency of the whole process, in
-delivered user satisfaction per hour of work, is reduced.
-
-   This reflects a crucial difference between copies of programs and
-cars, chairs, or sandwiches.  There is no copying machine for material
-objects outside of science fiction.  But programs are easy to copy;
-anyone can produce as many copies as are wanted, with very little
-effort.  This isn't true for material objects because matter is
-conserved: each new copy has to be built from raw materials in the same
-way that the first copy was built.
-
-   With material objects, a disincentive to use them makes sense,
-because fewer objects bought means less raw materials and work needed
-to make them.  It's true that there is usually also a startup cost, a
-development cost, which is spread over the production run.  But as long
-as the marginal cost of production is significant, adding a share of the
-development cost does not make a qualitative difference.  And it does
-not require restrictions on the freedom of ordinary users.
-
-   However, imposing a price on something that would otherwise be free
-is a qualitative change.  A centrally-imposed fee for software
-distribution becomes a powerful disincentive.
-
-   What's more, central production as now practiced is inefficient even
-as a means of delivering copies of software.  This system involves
-enclosing physical disks or tapes in superfluous packaging, shipping
-large numbers of them around the world, and storing them for sale.  This
-cost is presented as an expense of doing business; in truth, it is part
-of the waste caused by having owners.
-
-Damaging Social Cohesion
-========================
-
-   Suppose that both you and your neighbor would find it useful to run a
-certain program.  In ethical concern for your neighbor, you should feel
-that proper handling of the situation will enable both of you to use it.
-A proposal to permit only one of you to use the program, while
-restraining the other, is divisive; neither you nor your neighbor should
-find it acceptable.
-
-   Signing a typical software license agreement means betraying your
-neighbor: "I promise to deprive my neighbor of this program so that I
-can have a copy for myself."  People who make such choices feel
-internal psychological pressure to justify them, by downgrading the
-importance of helping one's neighbors--thus public spirit suffers.
-This is psychosocial harm associated with the material harm of
-discouraging use of the program.
-
-   Many users unconsciously recognize the wrong of refusing to share, so
-they decide to ignore the licenses and laws, and share programs anyway.
-But they often feel guilty about doing so.  They know that they must
-break the laws in order to be good neighbors, but they still consider
-the laws authoritative, and they conclude that being a good neighbor
-(which they are) is naughty or shameful.  That is also a kind of
-psychosocial harm, but one can escape it by deciding that these licenses
-and laws have no moral force.
-
-   Programmers also suffer psychosocial harm knowing that many users
-will not be allowed to use their work.  This leads to an attitude of
-cynicism or denial.  A programmer may describe enthusiastically the
-work that he finds technically exciting; then when asked, "Will I be
-permitted to use it?", his face falls, and he admits the answer is no.
-To avoid feeling discouraged, he either ignores this fact most of the
-time or adopts a cynical stance designed to minimize the importance of
-it.
-
-   Since the age of Reagan, the greatest scarcity in the United States
-is not technical innovation, but rather the willingness to work together
-for the public good.  It makes no sense to encourage the former at the
-expense of the latter.
-
-Obstructing Custom Adaptation of Programs
-=========================================
-
-   The second level of material harm is the inability to adapt programs.
-The ease of modification of software is one of its great advantages over
-older technology.  But most commercially available software isn't
-available for modification, even after you buy it.  It's available for
-you to take it or leave it, as a black box--that is all.
-
-   A program that you can run consists of a series of numbers whose
-meaning is obscure.  No one, not even a good programmer, can easily
-change the numbers to make the program do something different.
-
-   Programmers normally work with the "source code" for a program, which
-is written in a programming language such as Fortran or C.  It uses
-names to designate the data being used and the parts of the program, and
-it represents operations with symbols such as `+' for addition and `-'
-for subtraction.  It is designed to help programmers read and change
-programs.  Here is an example; a program to calculate the distance
-between two points in a plane:
-
-     float
-     distance (p0, p1)
-          struct point p0, p1;
-     {
-       float xdist = p1.x - p0.x;
-       float ydist = p1.y - p0.y;
-       return sqrt (xdist * xdist + ydist * ydist);
-     }
-
-   Here is the same program in executable form, on the computer I
-normally use:
-
-     1314258944      -232267772      -231844864      1634862
-     1411907592      -231844736      2159150         1420296208
-     -234880989      -234879837      -234879966      -232295424
-     1644167167      -3214848        1090581031      1962942495
-     572518958       -803143692      1314803317
-
-   Source code is useful (at least potentially) to every user of a
-program.  But most users are not allowed to have copies of the source
-code.  Usually the source code for a proprietary program is kept secret
-by the owner, lest anybody else learn something from it.  Users receive
-only the files of incomprehensible numbers that the computer will
-execute.  This means that only the program's owner can change the
-program.
-
-   A friend once told me of working as a programmer in a bank for about
-six months, writing a program similar to something that was commercially
-available.  She believed that if she could have gotten source code for
-that commercially available program, it could easily have been adapted
-to their needs.  The bank was willing to pay for this, but was not
-permitted to--the source code was a secret.  So she had to do six
-months of make-work, work that counts in the GNP but was actually waste.
-
-   The MIT Artificial Intelligence lab (AI lab) received a graphics
-printer as a gift from Xerox around 1977.  It was run by free software
-to which we added many convenient features.  For example, the software
-would notify a user immediately on completion of a print job.  Whenever
-the printer had trouble, such as a paper jam or running out of paper,
-the software would immediately notify all users who had print jobs
-queued.  These features facilitated smooth operation.
-
-   Later Xerox gave the AI lab a newer, faster printer, one of the first
-laser printers.  It was driven by proprietary software that ran in a
-separate dedicated computer, so we couldn't add any of our favorite
-features.  We could arrange to send a notification when a print job was
-sent to the dedicated computer, but not when the job was actually
-printed (and the delay was usually considerable).  There was no way to
-find out when the job was actually printed; you could only guess.  And
-no one was informed when there was a paper jam, so the printer often
-went for an hour without being fixed.
-
-   The system programmers at the AI lab were capable of fixing such
-problems, probably as capable as the original authors of the program.
-Xerox was uninterested in fixing them, and chose to prevent us, so we
-were forced to accept the problems.  They were never fixed.
-
-   Most good programmers have experienced this frustration.  The bank
-could afford to solve the problem by writing a new program from
-scratch, but a typical user, no matter how skilled, can only give up.
-
-   Giving up causes psychosocial harm--to the spirit of self-reliance.
-It is demoralizing to live in a house that you cannot rearrange to suit
-your needs.  It leads to resignation and discouragement, which can
-spread to affect other aspects of one's life.  People who feel this way
-are unhappy and do not do good work.
-
-   Imagine what it would be like if recipes were hoarded in the same
-fashion as software.  You might say, "How do I change this recipe to
-take out the salt?", and the great chef would respond, "How dare you
-insult my recipe, the child of my brain and my palate, by trying to
-tamper with it?  You don't have the judgment to change my recipe and
-make it work right!"
-
-   "But my doctor says I'm not supposed to eat salt!  What can I do?
-Will you take out the salt for me?"
-
-   "I would be glad to do that; my fee is only $50,000."  Since the
-owner has a monopoly on changes, the fee tends to be large.  "However,
-right now I don't have time.  I am busy with a commission to design a
-new recipe for ship's biscuit for the Navy Department.  I might get
-around to you in about two years."
-
-Obstructing Software Development
-================================
-
-   The third level of material harm affects software development.
-Software development used to be an evolutionary process, where a person
-would take an existing program and rewrite parts of it for one new
-feature, and then another person would rewrite parts to add another
-feature; in some cases, this continued over a period of twenty years.
-Meanwhile, parts of the program would be "cannibalized" to form the
-beginnings of other programs.
-
-   The existence of owners prevents this kind of evolution, making it
-necessary to start from scratch when developing a program.  It also
-prevents new practitioners from studying existing programs to learn
-useful techniques or even how large programs can be structured.
-
-   Owners also obstruct education.  I have met bright students in
-computer science who have never seen the source code of a large
-program.  They may be good at writing small programs, but they can't
-begin to learn the different skills of writing large ones if they can't
-see how others have done it.
-
-   In any intellectual field, one can reach greater heights by standing
-on the shoulders of others.  But that is no longer generally allowed in
-the software field--you can only stand on the shoulders of the other
-people *in your own company*.
-
-   The associated psychosocial harm affects the spirit of scientific
-cooperation, which used to be so strong that scientists would cooperate
-even when their countries were at war.  In this spirit, Japanese
-oceanographers abandoning their lab on an island in the Pacific
-carefully preserved their work for the invading U.S. Marines, and left a
-note asking them to take good care of it.
-
-   Conflict for profit has destroyed what international conflict spared.
-Nowadays scientists in many fields don't publish enough in their papers
-to enable others to replicate the experiment.  They publish only enough
-to let readers marvel at how much they were able to do.  This is
-certainly true in computer science, where the source code for the
-programs reported on is usually secret.
-
-It Does Not Matter How Sharing Is Restricted
-============================================
-
-   I have been discussing the effects of preventing people from copying,
-changing and building on a program.  I have not specified how this
-obstruction is carried out, because that doesn't affect the conclusion.
-Whether it is done by copy protection, or copyright, or licenses, or
-encryption, or ROM cards, or hardware serial numbers, if it *succeeds*
-in preventing use, it does harm.
-
-   Users do consider some of these methods more obnoxious than others.
-I suggest that the methods most hated are those that accomplish their
-objective.
-
-Software Should be Free
-=======================
-
-   I have shown how ownership of a program--the power to restrict
-changing or copying it--is obstructive.  Its negative effects are
-widespread and important.  It follows that society shouldn't have
-owners for programs.
-
-   Another way to understand this is that what society needs is free
-software, and proprietary software is a poor substitute.  Encouraging
-the substitute is not a rational way to get what we need.
-
-   Vaclav Havel has advised us to "Work for something because it is
-good, not just because it stands a chance to succeed."  A business
-making proprietary software stands a chance of success in its own narrow
-terms, but it is not what is good for society.
-
-Why People Will Develop Software
-********************************
-
-   If we eliminate intellectual property as a means of encouraging
-people to develop software, at first less software will be developed,
-but that software will be more useful.  It is not clear whether the
-overall delivered user satisfaction will be less; but if it is, or if
-we wish to increase it anyway, there are other ways to encourage
-development, just as there are ways besides toll booths to raise money
-for streets.  Before I talk about how that can be done, first I want to
-question how much artificial encouragement is truly necessary.
-
-Programming is Fun
-==================
-
-   There are some lines of work that few will enter except for money;
-road construction, for example.  There are other fields of study and
-art in which there is little chance to become rich, which people enter
-for their fascination or their perceived value to society.  Examples
-include mathematical logic, classical music, and archaeology; and
-political organizing among working people.  People compete, more sadly
-than bitterly, for the few funded positions available, none of which is
-funded very well.  They may even pay for the chance to work in the
-field, if they can afford to.
-
-   Such a field can transform itself overnight if it begins to offer the
-possibility of getting rich.  When one worker gets rich, others demand
-the same opportunity.  Soon all may demand large sums of money for doing
-what they used to do for pleasure.  When another couple of years go by,
-everyone connected with the field will deride the idea that work would
-be done in the field without large financial returns.  They will advise
-social planners to ensure that these returns are possible, prescribing
-special privileges, powers and monopolies as necessary to do so.
-
-   This change happened in the field of computer programming in the past
-decade.  Fifteen years ago, there were articles on "computer
-addiction": users were "onlining" and had hundred-dollar-a-week habits.
-It was generally understood that people frequently loved programming
-enough to break up their marriages.  Today, it is generally understood
-that no one would program except for a high rate of pay.  People have
-forgotten what they knew fifteen years ago.
-
-   When it is true at a given time that most people will work in a
-certain field only for high pay, it need not remain true.  The dynamic
-of change can run in reverse, if society provides an impetus.  If we
-take away the possibility of great wealth, then after a while, when the
-people have readjusted their attitudes, they will once again be eager
-to work in the field for the joy of accomplishment.
-
-   The question, "How can we pay programmers?", becomes an easier
-question when we realize that it's not a matter of paying them a
-fortune.  A mere living is easier to raise.
-
-Funding Free Software
-=====================
-
-   Institutions that pay programmers do not have to be software houses.
-Many other institutions already exist which can do this.
-
-   Hardware manufacturers find it essential to support software
-development even if they cannot control the use of the software.  In
-1970, much of their software was free because they did not consider
-restricting it.  Today, their increasing willingness to join
-consortiums shows their realization that owning the software is not
-what is really important for them.
-
-   Universities conduct many programming projects.  Today, they often
-sell the results, but in the 1970s, they did not.  Is there any doubt
-that universities would develop free software if they were not allowed
-to sell software?  These projects could be supported by the same
-government contracts and grants which now support proprietary software
-development.
-
-   It is common today for university researchers to get grants to
-develop a system, develop it nearly to the point of completion and call
-that "finished", and then start companies where they really finish the
-project and make it usable.  Sometimes they declare the unfinished
-version "free"; if they are thoroughly corrupt, they instead get an
-exclusive license from the university.  This is not a secret; it is
-openly admitted by everyone concerned.  Yet if the researchers were not
-exposed to the temptation to do these things, they would still do their
-research.
-
-   Programmers writing free software can make their living by selling
-services related to the software.  I have been hired to port the GNU C
-compiler to new hardware, and to make user-interface extensions to GNU
-Emacs.  (I offer these improvements to the public once they are done.)
-I also teach classes for which I am paid.
-
-   I am not alone in working this way; there is now a successful,
-growing corporation which does no other kind of work.  Several other
-companies also provide commercial support for the free software of the
-GNU system.  This is the beginning of the independent software support
-industry-an industry that could become quite large if free software
-becomes prevalent.  It provides users with an option generally
-unavailable for proprietary software, except to the very wealthy.
-
-   New institutions such as the Free Software Foundation can also fund
-programmers.  Most of the foundation's funds come from users buying
-tapes through the mail.  The software on the tapes is free, which means
-that every user has the freedom to copy it and change it, but many
-nonetheless pay to get copies.  (Recall that "free software" refers to
-freedom, not to price.)  Some users order tapes who already have a copy,
-as a way of making a contribution they feel we deserve.  The Foundation
-also receives sizable donations from computer manufacturers.
-
-   The Free Software Foundation is a charity, and its income is spent on
-hiring as many programmers as possible.  If it had been set up as a
-business, distributing the same free software to the public for the same
-fee, it would now provide a very good living for its founder.
-
-   Because the Foundation is a charity, programmers often work for the
-Foundation for half of what they could make elsewhere.  They do this
-because we are free of bureaucracy, and because they feel satisfaction
-in knowing that their work will not be obstructed from use.  Most of
-all, they do it because programming is fun.  In addition, volunteers
-have written many useful programs for us.  (Recently even technical
-writers have begun to volunteer.)
-
-   This confirms that programming is among the most fascinating of all
-fields, along with music and art.  We don't have to fear that no one
-will want to program.
-
-What Do Users Owe to Developers?
-================================
-
-   There is a good reason for users of software to feel a moral
-obligation to contribute to its support.  Developers of free software
-are contributing to the users' activities, and it is both fair and in
-the long term interest of the users to give them funds to continue.
-
-   However, this does not apply to proprietary software developers,
-since obstructionism deserves a punishment rather than a reward.
-
-   We thus have a paradox: the developer of useful software is entitled
-to the support of the users, but any attempt to turn this moral
-obligation into a requirement destroys the basis for the obligation.  A
-developer can either deserve a reward or demand it, but not both.
-
-   I believe that an ethical developer faced with this paradox must act
-so as to deserve the reward, but should also entreat the users for
-voluntary donations.  Eventually the users will learn to support
-developers without coercion, just as they have learned to support public
-radio and television stations.
-
-What Is Software Productivity?
-******************************
-
-   If software were free, there would still be programmers, but perhaps
-fewer of them.  Would this be bad for society?
-
-   Not necessarily.  Today the advanced nations have fewer farmers than
-in 1900, but we do not think this is bad for society, because the few
-deliver more food to the consumers than the many used to do.  We call
-this improved productivity.  Free software would require far fewer
-programmers to satisfy the demand, because of increased software
-productivity at all levels:
-
-   * Wider use of each program that is developed.
-
-   * The ability to adapt existing programs for customization instead
-     of starting from scratch.
-
-   * Better education of programmers.
-
-   * The elimination of duplicate development effort.
-
-   Those who object to cooperation because it would result in the
-employment of fewer programmers, are actually objecting to increased
-productivity.  Yet these people usually accept the widely-held belief
-that the software industry needs increased productivity.  How is this?
-
-   "Software productivity" can mean two different things: the overall
-productivity of all software development, or the productivity of
-individual projects.  Overall productivity is what society would like to
-improve, and the most straightforward way to do this is to eliminate the
-artificial obstacles to cooperation which reduce it.  But researchers
-who study the field of "software productivity" focus only on the
-second, limited, sense of the term, where improvement requires difficult
-technological advances.
-
-Is Competition Inevitable?
-**************************
-
-   Is it inevitable that people will try to compete, to surpass their
-rivals in society?  Perhaps it is.  But competition itself is not
-harmful; the harmful thing is *combat*.
-
-   There are many ways to compete.  Competition can consist of trying to
-achieve ever more, to outdo what others have done.  For example, in the
-old days, there was competition among programming wizards--competition
-for who could make the computer do the most amazing thing, or for who
-could make the shortest or fastest program for a given task.  This kind
-of competition can benefit everyone, *as long as* the spirit of good
-sportsmanship is maintained.
-
-   Constructive competition is enough competition to motivate people to
-great efforts.  A number of people are competing to be the first to have
-visited all the countries on Earth; some even spend fortunes trying to
-do this.  But they do not bribe ship captains to strand their rivals on
-desert islands.  They are content to let the best person win.
-
-   Competition becomes combat when the competitors begin trying to
-impede each other instead of advancing themselves--when "Let the best
-person win" gives way to "Let me win, best or not."  Proprietary
-software is harmful, not because it is a form of competition, but
-because it is a form of combat among the citizens of our society.
-
-   Competition in business is not necessarily combat.  For example, when
-two grocery stores compete, their entire effort is to improve their own
-operations, not to sabotage the rival.  But this does not demonstrate a
-special commitment to business ethics; rather, there is little scope for
-combat in this line of business short of physical violence.  Not all
-areas of business share this characteristic.  Withholding information
-that could help everyone advance is a form of combat.
-
-   Business ideology does not prepare people to resist the temptation to
-combat the competition.  Some forms of combat have been made banned with
-anti-trust laws, truth in advertising laws, and so on, but rather than
-generalizing this to a principled rejection of combat in general,
-executives invent other forms of combat which are not specifically
-prohibited.  Society's resources are squandered on the economic
-equivalent of factional civil war.
-
-"Why Don't You Move to Russia?"
-*******************************
-
-   In the United States, any advocate of other than the most extreme
-form of laissez-faire selfishness has often heard this accusation.  For
-example, it is leveled against the supporters of a national health care
-system, such as is found in all the other industrialized nations of the
-free world.  It is leveled against the advocates of public support for
-the arts, also universal in advanced nations.  The idea that citizens
-have any obligation to the public good is identified in America with
-Communism.  But how similar are these ideas?
-
-   Communism as was practiced in the Soviet Union was a system of
-central control where all activity was regimented, supposedly for the
-common good, but actually for the sake of the members of the Communist
-party.  And where copying equipment was closely guarded to prevent
-illegal copying.
-
-   The American system of intellectual property exercises central
-control over distribution of a program, and guards copying equipment
-with automatic copying protection schemes to prevent illegal copying.
-
-   By contrast, I am working to build a system where people are free to
-decide their own actions; in particular, free to help their neighbors,
-and free to alter and improve the tools which they use in their daily
-lives.  A system based on voluntary cooperation, and decentralization.
-
-   Thus, if we are to judge views by their resemblance to Russian
-Communism, it is the software owners who are the Communists.
-
-The Question of Premises
-************************
-
-   I make the assumption in this paper that a user of software is no
-less important than an author, or even an author's employer.  In other
-words, their interests and needs have equal weight, when we decide
-which course of action is best.
-
-   This premise is not universally accepted.  Many maintain that an
-author's employer is fundamentally more important than anyone else.
-They say, for example, that the purpose of having owners of software is
-to give the author's employer the advantage he deserves--regardless of
-how this may affect the public.
-
-   It is no use trying to prove or disprove these premises.  Proof
-requires shared premises.  So most of what I have to say is addressed
-only to those who share the premises I use, or at least are interested
-in what their consequences are.  For those who believe that the owners
-are more important than everyone else, this paper is simply irrelevant.
-
-   But why would a large number of Americans accept a premise which
-elevates certain people in importance above everyone else?  Partly
-because of the belief that this premise is part of the legal traditions
-of American society.  Some people feel that doubting the premise means
-challenging the basis of society.
-
-   It is important for these people to know that this premise is not
-part of our legal tradition.  It never has been.
-
-   Thus, the Constitution says that the purpose of copyright is to
-"promote the progress of science and the useful arts."  The Supreme
-Court has elaborated on this, stating in `Fox Film vs. Doyal' that "The
-sole interest of the United States and the primary object in conferring
-the [copyright] monopoly lie in the general benefits derived by the
-public from the labors of authors."
-
-   We are not required to agree with the Constitution or the Supreme
-Court.  (At one time, they both condoned slavery.)  So their positions
-do not disprove the owner supremacy premise.  But I hope that the
-awareness that this is a radical right-wing assumption rather than a
-traditionally recognized one will weaken its appeal.
-
-Conclusion
-**********
-
-   We like to think that our society encourages helping your neighbor;
-but each time we reward someone for obstructionism, or admire them for
-the wealth they have gained in this way, we are sending the opposite
-message.
-
-   Software hoarding is one form of our general willingness to disregard
-the welfare of society for personal gain.  We can trace this disregard
-from Ronald Reagan to Jim Bakker, from Ivan Boesky to Exxon, from
-failing banks to failing schools.  We can measure it with the size of
-the homeless population and the prison population.  The antisocial
-spirit feeds on itself, because the more we see that other people will
-not help us, the more it seems futile to help them.  Thus society decays
-into a jungle.
-
-   If we don't want to live in a jungle, we must change our attitudes.
-We must start sending the message that a good citizen is one who
-cooperates when appropriate, not one who is successful at taking from
-others.  I hope that the free software movement will contribute to
-this: at least in one area, we will replace the jungle with a more
-efficient system which encourages and runs on voluntary cooperation.
-
-   ---------- Footnotes ----------
-
-   (1)  The word "free" in "free software" refers to freedom, not to
-price; the price paid for a copy of a free program may be zero, or
-small, or (rarely) quite large.
-
-   (2)  The issues of pollution and traffic congestion do not alter
-this conclusion.  If we wish to make driving more expensive to
-discourage driving in general, it is disadvantageous to do this using
-toll booths, which contribute to both pollution and congestion.  A tax
-on gasoline is much better.  Likewise, a desire to enhance safety by
-limiting maximum speed is not relevant; a free access road enhances the
-average speed by avoiding stops and delays, for any given speed limit.
-
-   (3)  One might regard a particular computer program as a harmful
-thing that should not be available at all, like the Lotus Marketplace
-database of personal information, which was withdrawn from sale due to
-public disapproval.  Most of what I say does not apply to this case,
-but it makes little sense to argue for having an owner on the grounds
-that the owner will make the program less available.  The owner will
-not make it *completely* unavailable, as one would wish in the case of
-a program whose use is considered destructive.
-
index 5647c86053e8ee147b17b7c7d38b827c20b5b20d..d113d60af835273bcb5182c8c58fd648e0b7936e 100644 (file)
@@ -1,5 +1,45 @@
+2014-01-12  Xue Fuqiao  <xfq.free@gmail.com>
+
+       * net/eww.el (eww-download-directory): Rename from
+       `eww-download-path' (Bug#16419).
+
+2014-01-12  Leo Liu  <sdl.web@gmail.com>
+
+       * dired-x.el (dired-mode-map): Fix last change.
+
+       * emacs-lisp/eldoc.el (eldoc-mode): Add hook locally.
+
+2014-01-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Spelling fixes.
+       * emacs-lisp/generic.el (generic--normalize-comments):
+       Rename from generic--normalise-comments.  All uses changed.
+       * play/bubbles.el (bubbles--neighborhood-score):
+       (bubbles--mark-direct-neighbors, bubbles--mark-neighborhood)
+       (bubbles--neighborhood-available)
+       (bubbles--update-neighborhood-score):
+       Rename from names with 'neighbourhood'.  All uses changed.
+
+2014-01-12  Leo Liu  <sdl.web@gmail.com>
+
+       Re-implement the feature of showing eldoc info after editing.
+       * emacs-lisp/eldoc.el (eldoc-post-insert-mode): Remove.
+       (eldoc-edit-message-commands): New function.
+       (eldoc-print-after-edit): New variable.
+       (eldoc-pre-command-refresh-echo-area): Emit message only by
+       eldoc-message-commands.
+       (eldoc-mode): Restrict eldoc-message-commands to editing commands
+       if eldoc-print-after-edit is set.  (Bug#16346)
+
+       * progmodes/octave.el (octave-mode-menu): Adapt to change in
+       eldoc.
+
 2014-01-11  Eric S. Raymond  <esr@thyrsus.com>
 
+       * version.el (emacs-repository-get-version): Enhance so the
+       function works correctly in either a Bazaar or Git repo. The
+       Bazaar case can be discarded  after the repo transition.
+
        * play/meese.el: It's 2014 and Ed Meese is justly forgotten. Goes
        with removal of the joke manpages from /etc.
 
 2014-01-06  Leo Liu  <sdl.web@gmail.com>
 
        * dired-x.el (dired-mode-map): Rebind dired-omit-mode to C-x M-o
-       to avoid shadowning global key.  (Bug#16354)
+       to avoid shadowing global key.  (Bug#16354)
 
 2014-01-06  Daniel Colascione  <dancol@dancol.org>
 
index a1ee1fa2e07a46899c8901a2eff0c9ed61d0f015..947de7cd9f8d7ba5310404b3be312db488b48991 100644 (file)
@@ -241,7 +241,7 @@ to nil: a pipe using `zcat' or `gunzip -c' will be used."
 
 ;;; KEY BINDINGS.
 
-(define-key dired-mode-map "\C-c\M-o" 'dired-omit-mode)
+(define-key dired-mode-map "\C-x\M-o" 'dired-omit-mode)
 (define-key dired-mode-map "*O" 'dired-mark-omitted)
 (define-key dired-mode-map "\M-(" 'dired-mark-sexp)
 (define-key dired-mode-map "*(" 'dired-mark-sexp)
index 571e0d25be1d43f3bbf7dceeb1d63bb2581017ce..a30f34bc43a2a0df7120de6bffb3ea2e645ee449 100644 (file)
@@ -4353,7 +4353,7 @@ instead.
 
 ;;;***
 \f
-;;;### (autoloads nil "dired-x" "dired-x.el" "fe5dbf515419da3b9907f32e5d4311fa")
+;;;### (autoloads nil "dired-x" "dired-x.el" "291bc6e869bf72c900604c45d40f45ed")
 ;;; Generated autoloads from dired-x.el
 
 (autoload 'dired-jump "dired-x" "\
index 8bd9ebc1e631626e8dc49eb95270f5fd333e2ccb..fa1574b0a887f3735ca823fe243dec7bde0e09d5 100644 (file)
@@ -1,4 +1,4 @@
-;;; eldoc.el --- show function arglist or variable docstring in echo area
+;;; eldoc.el --- show function arglist or variable docstring in echo area  -*- lexical-binding: t; -*-
 
 ;; Copyright (C) 1996-2014 Free Software Foundation, Inc.
 
@@ -62,6 +62,12 @@ If this variable is set to 0, no idle time is required."
   :type 'number
   :group 'eldoc)
 
+(defcustom eldoc-print-after-edit nil
+  "If non-nil eldoc info is only shown when editing.
+Changing the value requires toggling `eldoc-mode'."
+  :type 'boolean
+  :group 'eldoc)
+
 ;;;###autoload
 (defcustom eldoc-minor-mode-string (purecopy " ElDoc")
   "String to display in mode line when ElDoc Mode is enabled; nil for none."
@@ -150,6 +156,16 @@ This is used to determine if `eldoc-idle-delay' is changed by the user.")
   "The function used by `eldoc-message' to display messages.
 It should receive the same arguments as `message'.")
 
+(defun eldoc-edit-message-commands ()
+  (let ((cmds (make-vector 31 0))
+       (re (regexp-opt '("delete" "insert" "edit" "electric" "newline"))))
+    (mapatoms (lambda (s)
+               (and (commandp s)
+                    (string-match-p re (symbol-name s))
+                    (intern (symbol-name s) cmds)))
+             obarray)
+    cmds))
+
 \f
 ;;;###autoload
 (define-minor-mode eldoc-mode
@@ -168,25 +184,13 @@ expression point is on."
   (setq eldoc-last-message nil)
   (if eldoc-mode
       (progn
+       (when eldoc-print-after-edit
+         (setq-local eldoc-message-commands (eldoc-edit-message-commands)))
        (add-hook 'post-command-hook 'eldoc-schedule-timer nil t)
-       (add-hook 'pre-command-hook 'eldoc-pre-command-refresh-echo-area t))
-   (remove-hook 'post-command-hook 'eldoc-schedule-timer)
-   (remove-hook 'pre-command-hook 'eldoc-pre-command-refresh-echo-area)))
-
-;;;###autoload
-(define-minor-mode eldoc-post-insert-mode nil
-  :group 'eldoc :lighter (:eval (if eldoc-mode ""
-                                 (concat eldoc-minor-mode-string "|i")))
-  (setq eldoc-last-message nil)
-  (let ((prn-info (lambda ()
-                   (unless eldoc-mode
-                     (eldoc-print-current-symbol-info)))))
-    (if eldoc-post-insert-mode
-       (add-hook 'post-self-insert-hook prn-info nil t)
-      (remove-hook 'post-self-insert-hook prn-info t))))
-
-;; FIXME: This changes Emacs's behavior when the file is loaded!
-(add-hook 'eval-expression-minibuffer-setup-hook 'eldoc-post-insert-mode)
+       (add-hook 'pre-command-hook 'eldoc-pre-command-refresh-echo-area nil t))
+    (kill-local-variable 'eldoc-message-commands)
+    (remove-hook 'post-command-hook 'eldoc-schedule-timer t)
+    (remove-hook 'pre-command-hook 'eldoc-pre-command-refresh-echo-area t)))
 
 ;;;###autoload
 (defun turn-on-eldoc-mode ()
@@ -264,8 +268,10 @@ Otherwise work like `message'."
 ;; This doesn't seem to be required for Emacs 19.28 and earlier.
 (defun eldoc-pre-command-refresh-echo-area ()
   (and eldoc-last-message
-       (if (eldoc-display-message-no-interference-p)
-           (eldoc-message eldoc-last-message)
+       (if (and (eldoc-display-message-no-interference-p)
+               (symbolp this-command)
+               (intern-soft (symbol-name this-command) eldoc-message-commands))
+          (eldoc-message eldoc-last-message)
          (setq eldoc-last-message nil))))
 
 ;; Decide whether now is a good time to display a message.
@@ -283,9 +289,7 @@ Otherwise work like `message'."
 ;; Check various conditions about the current environment that might make
 ;; it undesirable to print eldoc messages right this instant.
 (defun eldoc-display-message-no-interference-p ()
-  (and eldoc-mode
-       (not executing-kbd-macro)
-       (not (and (boundp 'edebug-active) edebug-active))))
+  (not (or executing-kbd-macro (bound-and-true-p edebug-active))))
 
 \f
 ;;;###autoload
@@ -309,7 +313,7 @@ Emacs Lisp mode) that support ElDoc.")
   ;; This is run from post-command-hook or some idle timer thing,
   ;; so we need to be careful that errors aren't ignored.
   (with-demoted-errors "eldoc error: %s"
-    (and (or (eldoc-display-message-p) eldoc-post-insert-mode)
+    (and (eldoc-display-message-p)
         (if eldoc-documentation-function
             (eldoc-message (funcall eldoc-documentation-function))
           (let* ((current-symbol (eldoc-current-symbol))
index 146219885da5c788da3c5443780d0efbe7138612..02c30aad55fda9d123df8decb9b4ee08a72fe9c7 100644 (file)
@@ -224,7 +224,7 @@ Some generic modes are defined in `generic-x.el'."
 
 ;;; Comment Functionality
 
-(defun generic--normalise-comments (comment-list)
+(defun generic--normalize-comments (comment-list)
   (let ((normalized '()))
     (dolist (start comment-list)
       (let (end)
@@ -300,7 +300,7 @@ Some generic modes are defined in `generic-x.el'."
 (defun generic-mode-set-comments (comment-list)
   "Set up comment functionality for generic mode."
   (let ((st (make-syntax-table))
-        (comment-list (generic--normalise-comments comment-list)))
+        (comment-list (generic--normalize-comments comment-list)))
     (generic-set-comment-syntax st comment-list)
     (generic-set-comment-vars comment-list)
     (set-syntax-table st)))
index a0115f8ea66ce2199f0e391ccbc826cb0e5b9002..082c9235ff9915d2aa78e8d7e2f754259fb0c508 100644 (file)
@@ -291,7 +291,7 @@ To test this function, evaluate:
               (or (mouse-movement-p event)
                   (eq (car-safe event) 'switch-frame)))
        ;; Scroll if see if we're on the edge.
-       ;; NEEDSWORK: should handle mouse-in-other window.
+       ;; FIXME: should handle mouse-in-other window.
        (cond
         ((not (eq start-window (posn-window end)))
          t) ; wait for return to original window
index 38726fd7dcc34d3f4f88b7679f8b337b703e976d..4375a31bd3690255bd49f6be804f8fa51abe814f 100644 (file)
@@ -50,8 +50,8 @@
   :group 'eww
   :type 'string)
 
-(defcustom eww-download-path "~/Downloads/"
-  "Path where files will downloaded."
+(defcustom eww-download-directory "~/Downloads/"
+  "Directory where files will downloaded."
   :version "24.4"
   :group 'eww
   :type 'string)
index 69ad4da60caf5f1bc2882dae242925f6c00753e4..d24dad28363de28ceadac9b06c426b7eefb94d05 100644 (file)
@@ -1223,7 +1223,7 @@ some heuristics to guess the result."
        ;; When `org-blank-before-new-entry' says so, it is 1.
        ((eq insert-blank-p t) 1)
        ;; `plain-list-item' is 'auto.  Count blank lines separating
-       ;; neighbours items in list.
+       ;; neighbors' items in list.
        (t (let ((next-p (org-list-get-next-item item struct prevs)))
            (cond
             ;; Is there a next item?
index fcf6aab20698f6049c48f03c5725aa3f7caaa85a..0102523b5c746b64b3526747c5369da93ef1af50 100644 (file)
@@ -5093,7 +5093,7 @@ Return the new string."
 ;;;; Topology
 ;;
 ;; Here are various functions to retrieve information about the
-;; neighbourhood of a given element or object.  Neighbours of interest
+;; neighborhood of a given element or object.  Neighbors of interest
 ;; are direct parent (`org-export-get-parent'), parent headline
 ;; (`org-export-get-parent-headline'), first element containing an
 ;; object, (`org-export-get-parent-element'), parent table
index 8294d6398fecdb416888022a6d2f63b1216f5510..e7f5725a0f0f68418066fa29fd7891d66ec72ed8 100644 (file)
@@ -231,7 +231,7 @@ Available modes are `shift-default' and `shift-always'."
 (defvar bubbles--score 0
   "Current Bubbles score.")
 
-(defvar bubbles--neighbourhood-score 0
+(defvar bubbles--neighborhood-score 0
   "Score of active bubbles neighborhood.")
 
 (defvar bubbles--faces nil
@@ -925,7 +925,7 @@ static char * dot3d_xpm[] = {
   (buffer-disable-undo)
   (force-mode-line-update)
   (redisplay)
-  (add-hook 'post-command-hook 'bubbles--mark-neighbourhood t t))
+  (add-hook 'post-command-hook 'bubbles--mark-neighborhood t t))
 
 ;;;###autoload
 (defun bubbles ()
@@ -1087,7 +1087,7 @@ Set `bubbles--col-offset' and `bubbles--row-offset'."
         (char-after (point))
       nil)))
 
-(defun bubbles--mark-direct-neighbours (row col char)
+(defun bubbles--mark-direct-neighbors (row col char)
   "Mark direct neighbors of bubble at ROW COL with same CHAR."
   (save-excursion
     (let ((count 0))
@@ -1097,13 +1097,13 @@ Set `bubbles--col-offset' and `bubbles--row-offset'."
         (add-text-properties (point) (1+ (point))
                              '(active t face 'bubbles--highlight-face))
         (setq count (+ 1
-                       (bubbles--mark-direct-neighbours row (1+ col) char)
-                       (bubbles--mark-direct-neighbours row (1- col) char)
-                       (bubbles--mark-direct-neighbours (1+ row) col char)
-                       (bubbles--mark-direct-neighbours (1- row) col char))))
+                       (bubbles--mark-direct-neighbors row (1+ col) char)
+                       (bubbles--mark-direct-neighbors row (1- col) char)
+                       (bubbles--mark-direct-neighbors (1+ row) col char)
+                       (bubbles--mark-direct-neighbors (1- row) col char))))
       count)))
 
-(defun bubbles--mark-neighbourhood (&optional pos)
+(defun bubbles--mark-neighborhood (&optional pos)
   "Mark neighborhood of point.
 Use optional parameter POS instead of point if given."
   (when bubbles--playing
@@ -1117,17 +1117,17 @@ Use optional parameter POS instead of point if given."
                              '(face default active nil))
         (let ((count 0))
           (when (and row col (not (eq char (bubbles--empty-char))))
-            (setq count (bubbles--mark-direct-neighbours row col char))
+            (setq count (bubbles--mark-direct-neighbors row col char))
             (unless (> count 1)
               (add-text-properties (point-min) (point-max)
                                    '(face default active nil))
               (setq count 0)))
-          (bubbles--update-neighbourhood-score count))
+          (bubbles--update-neighborhood-score count))
         (put-text-property (point-min) (point-max) 'pointer 'arrow)
         (bubbles--update-faces-or-images)
         (sit-for 0)))))
 
-(defun bubbles--neighbourhood-available ()
+(defun bubbles--neighborhood-available ()
   "Return t if another valid neighborhood is available."
   (catch 'found
     (save-excursion
@@ -1153,20 +1153,20 @@ Use optional parameter POS instead of point if given."
 
 (defun bubbles--reset-score ()
   "Reset bubbles score."
-  (setq bubbles--neighbourhood-score 0
+  (setq bubbles--neighborhood-score 0
         bubbles--score 0)
   (bubbles--update-score))
 
 (defun bubbles--update-score ()
   "Calculate and display new bubbles score."
-  (setq bubbles--score (+ bubbles--score bubbles--neighbourhood-score))
+  (setq bubbles--score (+ bubbles--score bubbles--neighborhood-score))
   (bubbles--show-scores))
 
-(defun bubbles--update-neighbourhood-score (size)
+(defun bubbles--update-neighborhood-score (size)
   "Calculate and display score of active neighborhood from its SIZE."
   (if (> size 1)
-      (setq bubbles--neighbourhood-score (expt (- size 1) 2))
-    (setq bubbles--neighbourhood-score 0))
+      (setq bubbles--neighborhood-score (expt (- size 1) 2))
+    (setq bubbles--neighborhood-score 0))
   (bubbles--show-scores))
 
 (defun bubbles--show-scores ()
@@ -1177,7 +1177,7 @@ Use optional parameter POS instead of point if given."
     (let ((inhibit-read-only t)
           (pos (point)))
       (delete-region (point) (point-max))
-      (insert (format "Selected: %4d\n" bubbles--neighbourhood-score))
+      (insert (format "Selected: %4d\n" bubbles--neighborhood-score))
       (insert " ")
       (add-text-properties (1- (point)) (point)
                            (list 'intangible t 'display
@@ -1216,10 +1216,10 @@ Use optional parameter POS instead of point if given."
   "Remove active bubbles region."
   (interactive)
   (when (and bubbles--playing
-             (> bubbles--neighbourhood-score 0))
+             (> bubbles--neighborhood-score 0))
     (setq bubbles--save-data (list bubbles--score (buffer-string)))
     (let ((inhibit-read-only t))
-      ;; blank out current neighbourhood
+      ;; blank out current neighborhood
       (let ((row (bubbles--row (point)))
             (col (bubbles--col (point))))
         (goto-char (point-max))
@@ -1289,7 +1289,7 @@ Use optional parameter POS instead of point if given."
           (bubbles--update-faces-or-images)
           (sit-for 0)))
       (put-text-property (point-min) (point-max) 'removed nil)
-      (unless (bubbles--neighbourhood-available)
+      (unless (bubbles--neighborhood-available)
         (bubbles--game-over)))
     ;; undo
     (setq buffer-undo-list '((apply bubbles-undo . nil)))
index e2ef492a9ad16654f1345f2b24f0543ab77055f3..1378e8fdb593078c351c309b1470073033f5b378 100644 (file)
@@ -154,12 +154,8 @@ parenthetical grouping.")
     ["Insert Function"              octave-insert-defun t]
     ["Update Function File Comment" octave-update-function-file-comment t]
     "---"
-    ["Function Syntax Hints" (call-interactively
-                              (if (fboundp 'eldoc-post-insert-mode)
-                                  'eldoc-post-insert-mode
-                                'eldoc-mode))
-     :style toggle :selected (or (bound-and-true-p eldoc-post-insert-mode)
-                                (bound-and-true-p eldoc-mode))
+    ["Function Syntax Hints" (eldoc-mode 'toggle)
+     :style toggle :selected (bound-and-true-p eldoc-mode)
      :help "Display function signatures after typing `SPC' or `('"]
     ["Delimiter Matching"           show-paren-mode
      :style toggle :selected show-paren-mode
index 3ae9a21c3e499f4ee0277c0281b66c3882f8cfe0..daf8d29966395454213701104c1fc2fc8a80af7d 100644 (file)
@@ -3504,7 +3504,7 @@ so that `occur-next' and `occur-prev' will work."
 
 ;; Originally this was sh-learn-region-indent (beg end)
 ;; However, in practice this was awkward so I changed it to
-;; use the whole buffer.  Use narrowing if needbe.
+;; use the whole buffer.  Use narrowing if need be.
 (defun sh-learn-buffer-indent (&optional arg)
   "Learn how to indent the buffer the way it currently is.
 
index 5c2f3c3db1d1b331de37619ff2438845ece0ef5c..ae18ae65fb540b506cf41754132ab033aeb2fee5 100644 (file)
@@ -1387,6 +1387,7 @@ display the result of expression evaluation."
         (lambda ()
           (add-hook 'completion-at-point-functions
                     #'lisp-completion-at-point nil t)
+         (eldoc-mode 1)
           (run-hooks 'eval-expression-minibuffer-setup-hook))
       (read-from-minibuffer prompt initial-contents
                             read-expression-map t
index 71e56858afa3cc4e7a487498ed953fbadd12683a..b2557142a78cfba5b4cfb7f94f3d3d21f87e68f1 100644 (file)
@@ -145,40 +145,52 @@ maybe ask the VCS itself, if the sources appear to be under
 version control.  If `force', always ask.  the VCS. Otherwise
 only ask the VCS if we cannot find any information ourselves."
   (or dir (setq dir source-directory))
-  (when (file-directory-p (expand-file-name ".bzr/branch" dir))
-    (if (eq external 'force)
-        (emacs-bzr-version-bzr dir)
-      (let (file loc rev)
-        (cond ((file-readable-p
-                (setq file (expand-file-name ".bzr/branch/last-revision" dir)))
-               (with-temp-buffer
-                 (insert-file-contents file)
-                 (goto-char (point-max))
-                 (if (looking-back "\n")
-                     (delete-char -1))
-                 (buffer-string)))
-              ;; OK, no last-revision.  Is it a lightweight checkout?
-              ((file-readable-p
-                (setq file (expand-file-name ".bzr/branch/location" dir)))
-               (setq rev (emacs-bzr-version-dirstate dir))
-               ;; If the parent branch is local, try looking there for the rev.
-               ;; Note: there is no guarantee that the parent branch's rev
-               ;; corresponds to this branch.  This branch could have
-               ;; been made with a specific -r revno argument, or the
-               ;; parent could have been updated since this branch was created.
-               ;; To try and detect this, we check the dirstate revids
-               ;; to see if they match.
-               (if (and (setq loc (with-temp-buffer
-                                    (insert-file-contents file)
-                                    (if (looking-at "file://\\(.*\\)")
-                                        (match-string 1))))
-                        (equal rev (emacs-bzr-version-dirstate loc)))
-                   (emacs-bzr-get-version loc)
-                 ;; If parent does not match, the best we can do without
-                 ;; calling external commands is to use the dirstate rev.
-                 rev))
-              (external
-               (emacs-bzr-version-bzr dir)))))))
+  (or 
+   ;; Bazaar case -- to be removed after transition
+   (when (file-directory-p (expand-file-name ".bzr/branch" dir))
+     (if (eq external 'force)
+        (emacs-bzr-version-bzr dir)
+       (let (file loc rev)
+        (cond ((file-readable-p
+                (setq file (expand-file-name ".bzr/branch/last-revision" dir)))
+               (with-temp-buffer
+                 (insert-file-contents file)
+                 (goto-char (point-max))
+                 (if (looking-back "\n")
+                     (delete-char -1))
+                 (buffer-string)))
+              ;; OK, no last-revision.  Is it a lightweight checkout?
+              ((file-readable-p
+                (setq file (expand-file-name ".bzr/branch/location" dir)))
+               (setq rev (emacs-bzr-version-dirstate dir))
+               ;; If the parent branch is local, try looking there for the rev.
+               ;; Note: there is no guarantee that the parent branch's rev
+               ;; corresponds to this branch.  This branch could have
+               ;; been made with a specific -r revno argument, or the
+               ;; parent could have been updated since this branch was created.
+               ;; To try and detect this, we check the dirstate revids
+               ;; to see if they match.
+               (if (and (setq loc (with-temp-buffer
+                                    (insert-file-contents file)
+                                    (if (looking-at "file://\\(.*\\)")
+                                        (match-string 1))))
+                        (equal rev (emacs-bzr-version-dirstate loc)))
+                   (emacs-bzr-get-version loc)
+                 ;; If parent does not match, the best we can do without
+                 ;; calling external commands is to use the dirstate rev.
+                 rev))
+              (external
+               (emacs-bzr-version-bzr dir))))))
+   ;; Git case
+  (when (file-directory-p (expand-file-name ".git" dir))
+    (message "Waiting for git...")
+    (with-temp-buffer
+      (if (zerop
+          (call-process "git" nil '(t nil) nil "log"
+                        "-1"
+                        "--pretty=format:%N"))
+         (replace-regexp-in-string "\n" "" (buffer-string)))))
+   ))
 
 ;; We put version info into the executable in the form that `ident' uses.
 (purecopy (concat "\n$Id: " (subst-char-in-string ?\n ?\s (emacs-version))
index 551b973b016ed9f8fed9700829fef77a4f07f457..5605fafb5e1e53e6c30d9ddfe4ecd64467e45b2a 100644 (file)
@@ -1,3 +1,8 @@
+2014-01-11  Claudio Bley  <claudio.bley@googlemail.com>
+
+       * inc/sys/stat.h (_WSTAT_DEFINED): Define, to avoid compilation
+       failures when wchar.h is included.
+
 2014-01-11  Fabrice Popineau  <fabrice.popineau@supelec.fr>
 
        * inc/ms-w32.h (pthread_sigmask): Undefine if defined, for MinGW64.
index d9a01ee112bf0be79fdf56f0050e1808d9fca8f9..7dfe78a27c3407bba303cc4ac86043f99a453133 100644 (file)
@@ -141,6 +141,13 @@ extern int w32_stat_get_owner_group;
 
 /* Prevent redefinition by other headers, e.g. wchar.h.  */
 #define _STAT_DEFINED
+/* This prevents definition in MinGW's wchar.h of inline functions
+   that use struct _stat64i32 etc., which we don't define and don't
+   support in our implementation of 'stat' and 'fstat'.  If we don't
+   prevent definition of those inline functions, any program (e.g.,
+   test programs run by configure) that includes both wchar.h and
+   sys/stat.h will fail to compile.  */
+#define _WSTAT_DEFINED
 
 int __cdecl __MINGW_NOTHROW    fstat (int, struct stat*);
 int __cdecl __MINGW_NOTHROW    stat (const char*, struct stat*);