diff options
| author | Eli Zaretskii | 2014-10-15 16:16:10 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2014-10-15 16:16:10 +0300 |
| commit | b8ec977659df3970a6c8afb7a5b79c9b61e08307 (patch) | |
| tree | 58d317d79edc1406c8f50235062c86cb71ae18b5 | |
| parent | 48af58622bd07f37124a7b35f903b00de119f4a8 (diff) | |
| parent | 73d4c39e1519a5fec742686e3c81941113d41448 (diff) | |
| download | emacs-b8ec977659df3970a6c8afb7a5b79c9b61e08307.tar.gz emacs-b8ec977659df3970a6c8afb7a5b79c9b61e08307.zip | |
Merge from trunk.
| -rw-r--r-- | INSTALL | 140 | ||||
| -rw-r--r-- | README | 5 | ||||
| -rw-r--r-- | admin/notes/exit-value | 28 | ||||
| -rw-r--r-- | admin/notes/iftc | 26 | ||||
| -rw-r--r-- | admin/notes/lel-TODO | 124 | ||||
| -rw-r--r-- | admin/notes/versioning | 26 | ||||
| -rw-r--r-- | admin/versioning | 49 | ||||
| -rw-r--r-- | etc/NXML-NEWS | 24 | ||||
| -rw-r--r-- | lisp/ChangeLog | 12 | ||||
| -rw-r--r-- | lisp/emacs-lisp/tabulated-list.el | 5 | ||||
| -rw-r--r-- | lisp/erc/ChangeLog | 9 | ||||
| -rw-r--r-- | lisp/erc/erc-track.el | 2 | ||||
| -rw-r--r-- | lisp/gnus/ChangeLog | 7 | ||||
| -rw-r--r-- | lisp/gnus/gnus-start.el | 33 | ||||
| -rw-r--r-- | lisp/progmodes/elisp-mode.el | 13 | ||||
| -rw-r--r-- | nextstep/INSTALL | 10 | ||||
| -rw-r--r-- | nextstep/README | 37 |
17 files changed, 148 insertions, 402 deletions
| @@ -1,6 +1,5 @@ | |||
| 1 | GNU Emacs Installation Guide | 1 | GNU Emacs Installation Guide |
| 2 | Copyright (C) 1992, 1994, 1996-1997, 2000-2014 Free Software Foundation, | 2 | Copyright (C) 1992, 1994, 1996-1997, 2000-2014 Free Software Foundation, Inc. |
| 3 | Inc. | ||
| 4 | See the end of the file for license conditions. | 3 | See the end of the file for license conditions. |
| 5 | 4 | ||
| 6 | 5 | ||
| @@ -34,9 +33,9 @@ some of the steps manually. The more detailed description in the other | |||
| 34 | sections of this guide will help you do that, so please refer to those | 33 | sections of this guide will help you do that, so please refer to those |
| 35 | sections if you need to. | 34 | sections if you need to. |
| 36 | 35 | ||
| 37 | 1. Unpacking the Emacs 24.1 release requires about 180 MB of free | 36 | 1. Unpacking the Emacs 24 release requires about 200 MB of free |
| 38 | disk space. Building Emacs uses about another 70 MB of space. | 37 | disk space. Building Emacs uses about another 200 MB of space. |
| 39 | The final installed Emacs uses about 110 MB of disk space. | 38 | The final installed Emacs uses about 150 MB of disk space. |
| 40 | This includes the space-saving that comes from automatically | 39 | This includes the space-saving that comes from automatically |
| 41 | compressing the Lisp source files on installation. | 40 | compressing the Lisp source files on installation. |
| 42 | 41 | ||
| @@ -208,24 +207,11 @@ corresponding command is `yum-builddep emacs'. | |||
| 208 | 207 | ||
| 209 | DETAILED BUILDING AND INSTALLATION: | 208 | DETAILED BUILDING AND INSTALLATION: |
| 210 | 209 | ||
| 211 | (This is for a Unix or Unix-like system. For MS-DOS and MS Windows 3.X, | 210 | (This is for a Unix or Unix-like system. For GNUstep and Mac OS X, |
| 212 | see msdos/INSTALL. For later versions of MS Windows, see the file | 211 | see nextstep/INSTALL. For non-ancient versions of MS Windows, see |
| 213 | nt/INSTALL. For GNUstep and Mac OS X, see nextstep/INSTALL.) | 212 | the file nt/INSTALL. For MS-DOS and MS Windows 3.X, see msdos/INSTALL.) |
| 214 | 213 | ||
| 215 | 1) Make sure your system has enough swapping space allocated to handle | 214 | 1) See the basic installation summary above for the disk space requirements. |
| 216 | a program whose pure code is 1.5 MB and whose data area is at | ||
| 217 | least 2.8 MB and can reach 100 MB or more. If the swapping space is | ||
| 218 | insufficient, you will get an error in the command `temacs -batch -l | ||
| 219 | loadup dump', found in `./src/Makefile.in', or possibly when | ||
| 220 | running the final dumped Emacs. (This should not be an issue | ||
| 221 | on any recent system.) | ||
| 222 | |||
| 223 | Building Emacs requires about 230 MB of disk space (including the | ||
| 224 | Emacs sources). Once installed, Emacs occupies about 120 MB in the file | ||
| 225 | system where it is installed; this includes the executable files, Lisp | ||
| 226 | libraries, miscellaneous data files, and on-line documentation. If | ||
| 227 | the building and installation take place in different directories, | ||
| 228 | then the installation procedure momentarily requires 230+120 MB. | ||
| 229 | 215 | ||
| 230 | 2) In the unlikely event that `configure' does not detect your system | 216 | 2) In the unlikely event that `configure' does not detect your system |
| 231 | type correctly, consult `./etc/MACHINES' to see what --host, --build | 217 | type correctly, consult `./etc/MACHINES' to see what --host, --build |
| @@ -264,8 +250,7 @@ Gtk or Motif, if you have the Xaw3d library installed (see | |||
| 264 | "Image support libraries" above for Xaw3d availability). | 250 | "Image support libraries" above for Xaw3d availability). |
| 265 | 251 | ||
| 266 | You can tell configure where to search for GTK by giving it the | 252 | You can tell configure where to search for GTK by giving it the |
| 267 | argument PKG_CONFIG='/full/name/of/pkg-config'. GTK version 2.6 or | 253 | argument PKG_CONFIG='/full/name/of/pkg-config'. |
| 268 | newer is required for Emacs. | ||
| 269 | 254 | ||
| 270 | Emacs will autolaunch a D-Bus session bus, when the environment | 255 | Emacs will autolaunch a D-Bus session bus, when the environment |
| 271 | variable DISPLAY is set, but no session bus is running. This might be | 256 | variable DISPLAY is set, but no session bus is running. This might be |
| @@ -374,8 +359,7 @@ without sound support. | |||
| 374 | `configure' doesn't do any compilation or installation itself. | 359 | `configure' doesn't do any compilation or installation itself. |
| 375 | It just creates the files that influence those things: | 360 | It just creates the files that influence those things: |
| 376 | `./Makefile' in the top-level directory and several subdirectories; | 361 | `./Makefile' in the top-level directory and several subdirectories; |
| 377 | and `./src/config.h'. For details on exactly what it does, see the | 362 | and `./src/config.h'. |
| 378 | section called `CONFIGURATION BY HAND', below. | ||
| 379 | 363 | ||
| 380 | When it is done, `configure' prints a description of what it did and | 364 | When it is done, `configure' prints a description of what it did and |
| 381 | creates a shell script `config.status' which, when run, recreates the | 365 | creates a shell script `config.status' which, when run, recreates the |
| @@ -430,11 +414,6 @@ those libraries are. For example: | |||
| 430 | ./configure \ | 414 | ./configure \ |
| 431 | PKG_CONFIG_PATH='/usr/local/alsa/lib/pkgconfig:/opt/gtk+-2.8/lib/pkgconfig' | 415 | PKG_CONFIG_PATH='/usr/local/alsa/lib/pkgconfig:/opt/gtk+-2.8/lib/pkgconfig' |
| 432 | 416 | ||
| 433 | The work of `configure' can be done by editing various files in the | ||
| 434 | distribution, but using `configure' is easier. See the section called | ||
| 435 | "CONFIGURATION BY HAND" below if you want to do the configuration | ||
| 436 | yourself. | ||
| 437 | |||
| 438 | 3b) To build in a separate directory, go to that directory | 417 | 3b) To build in a separate directory, go to that directory |
| 439 | and run the program `configure' as follows: | 418 | and run the program `configure' as follows: |
| 440 | 419 | ||
| @@ -444,9 +423,6 @@ SOURCE-DIR refers to the top-level Emacs source directory which is | |||
| 444 | where Emacs's configure script is located. `configure' looks for the | 423 | where Emacs's configure script is located. `configure' looks for the |
| 445 | Emacs source code in the directory that `configure' is in. | 424 | Emacs source code in the directory that `configure' is in. |
| 446 | 425 | ||
| 447 | (Do not try to build in a separate directory by creating many links to | ||
| 448 | the real source directory--there is no need, and installation will fail.) | ||
| 449 | |||
| 450 | 4) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs | 426 | 4) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs |
| 451 | Lisp code you want Emacs to load before it is dumped out. Use | 427 | Lisp code you want Emacs to load before it is dumped out. Use |
| 452 | site-load.el for additional libraries if you arrange for their | 428 | site-load.el for additional libraries if you arrange for their |
| @@ -559,11 +535,7 @@ to enable it to write the lock files. We believe this is safe. | |||
| 559 | 9) You are done! You can remove executables and object files from | 535 | 9) You are done! You can remove executables and object files from |
| 560 | the build directory by typing `make clean'. To also remove the files | 536 | the build directory by typing `make clean'. To also remove the files |
| 561 | that `configure' created (so you can compile Emacs for a different | 537 | that `configure' created (so you can compile Emacs for a different |
| 562 | configuration), type `make distclean'. If you don't need some, or all | 538 | configuration), type `make distclean'. |
| 563 | of the input methods from the Leim package, you can remove the | ||
| 564 | unneeded files in the leim subdirectories of your site's lisp | ||
| 565 | directory (usually /usr/local/share/emacs/VERSION/). | ||
| 566 | |||
| 567 | 539 | ||
| 568 | 540 | ||
| 569 | MAKE VARIABLES | 541 | MAKE VARIABLES |
| @@ -671,94 +643,6 @@ Makefiles for the subdirectories, so you don't have to specify them | |||
| 671 | when running make in the subdirectories. | 643 | when running make in the subdirectories. |
| 672 | 644 | ||
| 673 | 645 | ||
| 674 | CONFIGURATION BY HAND | ||
| 675 | |||
| 676 | This should not be necessary and is not recommended. Instead of | ||
| 677 | running the `configure' program, you have to perform the following steps. | ||
| 678 | |||
| 679 | 1) Copy `./src/config.in' to `./src/config.h'. | ||
| 680 | |||
| 681 | 2) Edit `./src/config.h' to set the right options for your system. | ||
| 682 | |||
| 683 | 3) Create `Makefile' files in various directories from the | ||
| 684 | corresponding `Makefile.in' files. This isn't so hard, just a matter | ||
| 685 | of editing in appropriate substitutions for the @...@ constructs. | ||
| 686 | |||
| 687 | The `configure' script is built from `configure.ac' by the | ||
| 688 | `autogen.sh' script, which checks that `autoconf' and other build | ||
| 689 | tools are sufficiently up to date and then runs the build tools. | ||
| 690 | |||
| 691 | BUILDING GNU EMACS BY HAND | ||
| 692 | |||
| 693 | Once Emacs is configured, running `make' in the top directory performs | ||
| 694 | the following steps. | ||
| 695 | |||
| 696 | 1) Run `make epaths-force' in the top directory. This produces | ||
| 697 | `./src/epaths.h' from the template file `./src/epaths.in', changing | ||
| 698 | the paths to the values specified in `./Makefile'. | ||
| 699 | |||
| 700 | 2) Go to directory `./lib' and run `make'. This creates include files | ||
| 701 | and libraries used in later steps. | ||
| 702 | |||
| 703 | 3) Go to directory `./lib-src' and run `make'. This creates | ||
| 704 | executables named `etags', `make-docfile', and others. | ||
| 705 | |||
| 706 | 4) Go to directory `./src' and run `make'. This refers to files in | ||
| 707 | the `./lisp', `./lib', and `./lib-src' subdirectories using names | ||
| 708 | `../lisp', `../lib', and `../lib-src'. | ||
| 709 | |||
| 710 | This creates a file `./src/emacs' which is the runnable Emacs, | ||
| 711 | which has another name that contains a version number. | ||
| 712 | Each time you do this, that version number increments in the last place. | ||
| 713 | |||
| 714 | It also creates a file in `./etc' whose name is `DOC' followed by the | ||
| 715 | current Emacs version. This file contains documentation strings for | ||
| 716 | all the functions in Emacs. Each time you run make to make a new | ||
| 717 | emacs, a new DOC file with a new name is made. You must keep the DOC | ||
| 718 | file for an Emacs version as long as you keep using that Emacs version. | ||
| 719 | |||
| 720 | |||
| 721 | INSTALLATION BY HAND | ||
| 722 | |||
| 723 | The steps below are done by running `make install' in the main | ||
| 724 | directory of the Emacs distribution. | ||
| 725 | |||
| 726 | 1) Copy `./lisp' and its subdirectories, `./etc', and the executables | ||
| 727 | in `./lib-src' to their final destinations, as selected in `./src/epaths.h'. | ||
| 728 | |||
| 729 | Strictly speaking, not all of the executables in `./lib-src' need be copied. | ||
| 730 | - The programs `hexl', `movemail', `profile', and `rcs2log' | ||
| 731 | are used by Emacs; they do need to be copied. | ||
| 732 | - The programs `etags', `ctags', and `emacsclient' are intended to be | ||
| 733 | run by users; they are handled below. | ||
| 734 | - The program `make-docfile' was used in building Emacs, and is | ||
| 735 | not needed any more. | ||
| 736 | |||
| 737 | 2) Copy the files in `./info' to the place specified in | ||
| 738 | `./lisp/site-init.el' or `./lisp/info.el'. Note that if the | ||
| 739 | destination directory already contains a file named `dir', you | ||
| 740 | probably don't want to replace it with the `dir' file in the Emacs | ||
| 741 | distribution. Instead, you should make sure that the existing `dir' | ||
| 742 | file contains an appropriate menu entry for the Emacs info. | ||
| 743 | |||
| 744 | 3) Copy `./src/emacs' to `/usr/local/bin', or to some other directory | ||
| 745 | in users' search paths. `./src/emacs' has an alternate name | ||
| 746 | `./src/emacs-EMACSVERSION'; you may wish to make a symbolic link named | ||
| 747 | `/usr/local/bin/emacs' pointing to that alternate name, as an easy way | ||
| 748 | of installing different versions. | ||
| 749 | |||
| 750 | You can delete `./src/temacs'. | ||
| 751 | |||
| 752 | 4) Copy the programs `emacsclient', `ctags', and `etags' from `./lib-src' | ||
| 753 | to `/usr/local/bin'. These programs are intended for users to run. | ||
| 754 | |||
| 755 | 5) Copy the man pages in `./doc/man' into the appropriate man directory. | ||
| 756 | |||
| 757 | 6) The files in the `./src' subdirectory, except for `emacs', are not | ||
| 758 | used by Emacs once it is built. However, it is very desirable to keep | ||
| 759 | the source on line for debugging. | ||
| 760 | |||
| 761 | |||
| 762 | PROBLEMS | 646 | PROBLEMS |
| 763 | 647 | ||
| 764 | See the file `./etc/PROBLEMS' for a list of various problems sometimes | 648 | See the file `./etc/PROBLEMS' for a list of various problems sometimes |
| @@ -39,10 +39,7 @@ process of building and installing Emacs. See INSTALL for more | |||
| 39 | detailed information. | 39 | detailed information. |
| 40 | 40 | ||
| 41 | The file `configure.ac' is the input used by the autoconf program to | 41 | The file `configure.ac' is the input used by the autoconf program to |
| 42 | construct the `configure' script. Since Emacs has some configuration | 42 | construct the `configure' script. |
| 43 | requirements that autoconf can't meet directly, and for historical | ||
| 44 | reasons, `configure.ac' uses an unholy marriage of custom-baked | ||
| 45 | configuration code and autoconf macros. | ||
| 46 | 43 | ||
| 47 | The shell script `autogen.sh' generates 'configure' and other files by | 44 | The shell script `autogen.sh' generates 'configure' and other files by |
| 48 | running the GNU build tools autoconf and automake, which in turn use | 45 | running the GNU build tools autoconf and automake, which in turn use |
diff --git a/admin/notes/exit-value b/admin/notes/exit-value deleted file mode 100644 index 96337e4c8dd..00000000000 --- a/admin/notes/exit-value +++ /dev/null | |||
| @@ -1,28 +0,0 @@ | |||
| 1 | ttn 2004-05-09 | ||
| 2 | |||
| 3 | The exit value of a program returning to the shell on unixoid systems | ||
| 4 | is typically 0 for success, and non-0 (such as 1) for failure. This is | ||
| 5 | not always the case on other systems. | ||
| 6 | |||
| 7 | From the point of view of the program stdlib.h provides macros | ||
| 8 | `EXIT_SUCCESS' and `EXIT_FAILURE' that should DTRT. N.B. The | ||
| 9 | numerical values of these macros DO NOT need to fulfill the exit value | ||
| 10 | requirements outlined in the first paragraph! That is the job of the | ||
| 11 | `exit' function. Thus, this kind of construct shows misunderstanding: | ||
| 12 | |||
| 13 | #ifdef WEIRD_OS | ||
| 14 | exit (1); | ||
| 15 | #else | ||
| 16 | exit (0); | ||
| 17 | #endif | ||
| 18 | |||
| 19 | Values aside from EXIT_SUCCESS and EXIT_FAILURE are tricky, but can be | ||
| 20 | used to indicate finer gradations of failure. If this is the only | ||
| 21 | information available to the caller, clamping such values to | ||
| 22 | EXIT_FAILURE loses information. If there are other ways to indicate | ||
| 23 | the problem to the caller (such as a message to stderr) it may be ok | ||
| 24 | to clamp. In all cases, it is the relationship between the program | ||
| 25 | and its caller that must be examined. | ||
| 26 | |||
| 27 | [Insert ZAMM quote here.] <-- I presume this refers to ``Zen and the | ||
| 28 | Art of Motorcycle Maintenance'' - Reuben Thomas <rrt@sc3d.org>. | ||
diff --git a/admin/notes/iftc b/admin/notes/iftc deleted file mode 100644 index 983b1486685..00000000000 --- a/admin/notes/iftc +++ /dev/null | |||
| @@ -1,26 +0,0 @@ | |||
| 1 | Iso-Functional Type Contour | ||
| 2 | |||
| 3 | |||
| 4 | This is a term coined to describe "column int->float" change approach, and can | ||
| 5 | be used whenever low-level types need to change (hopefully not often!) but the | ||
| 6 | meanings of the values (whose type has changed) do not. | ||
| 7 | |||
| 8 | The premise is that changing a low-level type potentially means lots of code | ||
| 9 | needs to be changed as well, and the question is how to do this incrementally, | ||
| 10 | which is the preferred way to change things. | ||
| 11 | |||
| 12 | Say LOW and HIGH are C functions: | ||
| 13 | |||
| 14 | int LOW (void) { return 1; } | ||
| 15 | void HIGH (void) { int value = LOW (); } | ||
| 16 | |||
| 17 | We want to convert LOW to return float, so we cast HIGH usage: | ||
| 18 | |||
| 19 | float LOW (void) { return 1.0; } | ||
| 20 | void HIGH (void) { int value = (int) LOW (); } /* iftc */ | ||
| 21 | |||
| 22 | The comment /* iftc */ is used to mark this type of casting to differentiate | ||
| 23 | it from other casting. We commit the changes and can now go about modifying | ||
| 24 | LOW and HIGH separately. When HIGH is ready to handle the type change, the | ||
| 25 | cast can be removed. | ||
| 26 | |||
diff --git a/admin/notes/lel-TODO b/admin/notes/lel-TODO deleted file mode 100644 index 4a4ccb5e6e8..00000000000 --- a/admin/notes/lel-TODO +++ /dev/null | |||
| @@ -1,124 +0,0 @@ | |||
| 1 | Some lisp/emacs-lisp/ Features and Where They Are Documented | ||
| 2 | |||
| 3 | Copyright (C) 2007-2014 Free Software Foundation, Inc. | ||
| 4 | See the end of the file for license conditions. | ||
| 5 | |||
| 6 | |||
| 7 | * Status Key | ||
| 8 | - -- as yet unknown | ||
| 9 | n/a -- not applicable (internal, uninteresting, etc) | ||
| 10 | obsolete -- an obsolete feature, to be removed in future | ||
| 11 | todo -- not documented but should be | ||
| 12 | NODE -- documented in or under info node NODE | ||
| 13 | |||
| 14 | |||
| 15 | * Features | ||
| 16 | advice (elisp) Advising Functions | ||
| 17 | advice-preload n/a | ||
| 18 | assoc - | ||
| 19 | authors - | ||
| 20 | autoload (elisp) Autoload | ||
| 21 | avl-tree - | ||
| 22 | backquote n/a | ||
| 23 | benchmark n/a | ||
| 24 | bindat (elisp) Byte Packing | ||
| 25 | byte-compile (elisp) Byte Compilation | ||
| 26 | byte-opt - | ||
| 27 | bytecomp (elisp) Compilation Functions | ||
| 28 | checkdoc (elisp) Documentation Tips | ||
| 29 | cl (cl) | ||
| 30 | cl-compat n/a | ||
| 31 | cl-specs n/a | ||
| 32 | copyright - | ||
| 33 | crm - | ||
| 34 | cust-print (elisp) Printing in Edebug | ||
| 35 | debug (elisp) Debugger | ||
| 36 | derived (elisp) Derived Modes | ||
| 37 | disass (elisp) Disassembly | ||
| 38 | easy-mmode (elisp) Defining Minor Modes | ||
| 39 | easymenu - | ||
| 40 | edebug (elisp) Edebug | ||
| 41 | eldoc - | ||
| 42 | elint - | ||
| 43 | elp n/a | ||
| 44 | ewoc (elisp) Separated Rendering | ||
| 45 | find-func - | ||
| 46 | find-gc - | ||
| 47 | generic (elisp) Generic Modes | ||
| 48 | gulp n/a | ||
| 49 | helper - | ||
| 50 | levents obsolete | ||
| 51 | lisp-float-type - | ||
| 52 | lisp-mnt - | ||
| 53 | lisp-mode n/a | ||
| 54 | lmenu obsolete | ||
| 55 | lucid obsolete | ||
| 56 | macroexp (elisp) Expansion | ||
| 57 | pp (emacs) Program Indent | ||
| 58 | re-builder - | ||
| 59 | regexp-opt (elisp) Regexp Functions | ||
| 60 | regi - | ||
| 61 | ring (elisp) Rings | ||
| 62 | rx - | ||
| 63 | shadow - | ||
| 64 | sregex obsolete | ||
| 65 | syntax (elisp) Position Parse | ||
| 66 | testcover - | ||
| 67 | timer (elisp) Timers | ||
| 68 | tq (elisp) Transaction Queues | ||
| 69 | trace - | ||
| 70 | unsafep (elisp) Function Safety | ||
| 71 | warnings (elisp) Warnings | ||
| 72 | |||
| 73 | |||
| 74 | * Above list created using default directory lisp/emacs-lisp/ with | ||
| 75 | (shell-command | ||
| 76 | "sed '/^(provide '\\''/!d;s// /;s/).*//' *.el | sort | uniq") | ||
| 77 | |||
| 78 | |||
| 79 | * How to use this file to improve Emacs | ||
| 80 | (loop | ||
| 81 | (let* ((feature (choose-one Features)) | ||
| 82 | (status (feature-status feature))) | ||
| 83 | (if (or (eq '- status) (not (verify status))) | ||
| 84 | (update feature (current-docs feature)) | ||
| 85 | (case status | ||
| 86 | (todo (let (doc patch feedback) | ||
| 87 | (while (not (grok feature)) | ||
| 88 | (or (play-with feature) | ||
| 89 | (grep feature Internet) | ||
| 90 | (grep feature (wisdom-maybe "emacs-devel")))) | ||
| 91 | (setq doc (write-documentation feature) | ||
| 92 | patch (diff (current-docs) doc)) | ||
| 93 | (while (not (and (correct doc) | ||
| 94 | (well-placed doc) | ||
| 95 | (well-formed patch))) | ||
| 96 | (setq doc (revise doc) | ||
| 97 | patch (diff (current-docs) doc)) | ||
| 98 | feedback (wisdom-maybe "emacs-devel" patch)) | ||
| 99 | (when (install patch) | ||
| 100 | (when (update feature (current-docs feature)) | ||
| 101 | (job-well-done user-login-name))))) | ||
| 102 | (n/a (job-well-done user-login-name)))))) | ||
| 103 | |||
| 104 | |||
| 105 | * Etc | ||
| 106 | |||
| 107 | This file is part of GNU Emacs. | ||
| 108 | |||
| 109 | GNU Emacs is free software: you can redistribute it and/or modify | ||
| 110 | it under the terms of the GNU General Public License as published by | ||
| 111 | the Free Software Foundation, either version 3 of the License, or | ||
| 112 | (at your option) any later version. | ||
| 113 | |||
| 114 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 115 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 116 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 117 | GNU General Public License for more details. | ||
| 118 | |||
| 119 | You should have received a copy of the GNU General Public License | ||
| 120 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | ||
| 121 | |||
| 122 | Local variables: | ||
| 123 | mode: outline | ||
| 124 | End: | ||
diff --git a/admin/notes/versioning b/admin/notes/versioning new file mode 100644 index 00000000000..e422b22e432 --- /dev/null +++ b/admin/notes/versioning | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | GNU EMACS VERSIONING -*- org -*- | ||
| 2 | |||
| 3 | Ref: http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00872.html | ||
| 4 | |||
| 5 | Emacs version numbers have the form | ||
| 6 | |||
| 7 | major.minor[.devel].build | ||
| 8 | |||
| 9 | "build" increments each time Emacs is built in the same location | ||
| 10 | (without cleaning) and isn't really part of the version. | ||
| 11 | |||
| 12 | bugfix releases increase "minor" by 1. | ||
| 13 | non-bugfix releases increase "major" by 1, and reset "minor" to 1. | ||
| 14 | (The division between bugfix and non-bugfix has not always been clear | ||
| 15 | historically.) | ||
| 16 | |||
| 17 | Unreleased (development) versions have an extra "devel" component. | ||
| 18 | This is a fairly meaningless number that may be unchanged for a long time. | ||
| 19 | It is normally 50. | ||
| 20 | When the release process starts, it changes to 90, 91, ... | ||
| 21 | When the actual release is made, this component is removed. | ||
| 22 | |||
| 23 | The development version for a new major release has "minor" = 0. | ||
| 24 | The development version for a new minor release has "minor" = that of | ||
| 25 | the previous release. | ||
| 26 | |||
diff --git a/admin/versioning b/admin/versioning deleted file mode 100644 index da547ee94ca..00000000000 --- a/admin/versioning +++ /dev/null | |||
| @@ -1,49 +0,0 @@ | |||
| 1 | GNU EMACS VERSIONING -*- org -*- | ||
| 2 | |||
| 3 | The version number scheme of Emacs, including how to determine when to | ||
| 4 | bump various components of the version number, has evolved over the | ||
| 5 | years. This file defines the current method, explains why it was | ||
| 6 | chosen, and lightly documents the previous schemes. It was prompted | ||
| 7 | by http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00872.html. | ||
| 8 | |||
| 9 | Related info: | ||
| 10 | - [[file:FOR-RELEASE][FOR-RELEASE]] | ||
| 11 | - [[file:make-tarball.txt][make-tarball.txt]] | ||
| 12 | |||
| 13 | * what: MAJOR.MINOR | ||
| 14 | |||
| 15 | This has always been the case (see [[was]], below). MINOR is 1 or more, | ||
| 16 | usually, the exception being for pretest releases, where there is | ||
| 17 | an additional trailing ".ALPHA" (e.g., 24.3.95 prior to 24.4). | ||
| 18 | |||
| 19 | To determine any release's version, we follow this algorithm: | ||
| 20 | |||
| 21 | - If MAJOR-CHANGES, increment MAJOR and set MINOR to 1. | ||
| 22 | - Otherwise, increment MINOR. | ||
| 23 | |||
| 24 | where MAJOR-CHANGES is defined roughly as the union of: | ||
| 25 | |||
| 26 | - dropped support for IMPORTANT | ||
| 27 | - platforms (almost never happens) | ||
| 28 | - Emacs Lisp features | ||
| 29 | - non-programming features/packages | ||
| 30 | - IMPORTANT additions and changes | ||
| 31 | - Emacs Lisp features | ||
| 32 | - non-programming features/packages | ||
| 33 | |||
| 34 | and IMPORTANT is defined through discussion on the [[http://mail.gnu.org/archive/html/emacs-devel/][emacs-devel]] | ||
| 35 | mailing list and/or private arm-twisting (although this latter | ||
| 36 | method is somewhat discouraged :-D). | ||
| 37 | |||
| 38 | * why | ||
| 39 | |||
| 40 | People expect bumps in MINOR for "minor" changes. This typically | ||
| 41 | includes bugfixes, doc improvements, or fully-backward-compatible | ||
| 42 | additions and changes, only. | ||
| 43 | |||
| 44 | Anything else is actually IMPORTANT, to the user. [Actually, who | ||
| 45 | really knows what the user thinks? I certainly don't. --ttn] | ||
| 46 | |||
| 47 | * was | ||
| 48 | |||
| 49 | TODO (be sure to include "ad-hoc" :-D) | ||
diff --git a/etc/NXML-NEWS b/etc/NXML-NEWS index ab0d351096d..8a284e2617b 100644 --- a/etc/NXML-NEWS +++ b/etc/NXML-NEWS | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | Copyright (C) 2007-2014 Free Software Foundation, Inc. | ||
| 2 | See the end of the file for license conditions. | ||
| 3 | |||
| 4 | |||
| 5 | For more recent changes, see the main Emacs NEWS file. | ||
| 6 | |||
| 7 | |||
| 1 | 20041004 | 8 | 20041004 |
| 2 | -------- | 9 | -------- |
| 3 | 10 | ||
| @@ -197,3 +204,20 @@ Bug fixes. | |||
| 197 | -------- | 204 | -------- |
| 198 | 205 | ||
| 199 | Initial release. | 206 | Initial release. |
| 207 | |||
| 208 | |||
| 209 | |||
| 210 | This file is part of GNU Emacs. | ||
| 211 | |||
| 212 | GNU Emacs is free software: you can redistribute it and/or modify | ||
| 213 | it under the terms of the GNU General Public License as published by | ||
| 214 | the Free Software Foundation, either version 3 of the License, or | ||
| 215 | (at your option) any later version. | ||
| 216 | |||
| 217 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 218 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 219 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 220 | GNU General Public License for more details. | ||
| 221 | |||
| 222 | You should have received a copy of the GNU General Public License | ||
| 223 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | ||
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 055ec17160e..80157c67704 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,15 @@ | |||
| 1 | 2014-10-15 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * emacs-lisp/tabulated-list.el (tabulated-list-mode): Force | ||
| 4 | bidi-paragraph-direction to 'left-to-right'. This fixes | ||
| 5 | buffer-menu display when the first buffer happens to start with | ||
| 6 | R2L letter. | ||
| 7 | |||
| 8 | 2014-10-15 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 9 | |||
| 10 | * progmodes/elisp-mode.el (elisp--local-variables-1): | ||
| 11 | Handle quoted expressions (bug#18688). | ||
| 12 | |||
| 1 | 2014-10-14 Jérémy Compostella <jeremy.compostella@intel.com> | 13 | 2014-10-14 Jérémy Compostella <jeremy.compostella@intel.com> |
| 2 | Michael Albinus <michael.albinus@gmx.de> | 14 | Michael Albinus <michael.albinus@gmx.de> |
| 3 | 15 | ||
diff --git a/lisp/emacs-lisp/tabulated-list.el b/lisp/emacs-lisp/tabulated-list.el index 3ee261aa06b..1e613c7fd4e 100644 --- a/lisp/emacs-lisp/tabulated-list.el +++ b/lisp/emacs-lisp/tabulated-list.el | |||
| @@ -519,7 +519,10 @@ as the ewoc pretty-printer." | |||
| 519 | (setq-local buffer-read-only t) | 519 | (setq-local buffer-read-only t) |
| 520 | (setq-local buffer-undo-list t) | 520 | (setq-local buffer-undo-list t) |
| 521 | (setq-local revert-buffer-function #'tabulated-list-revert) | 521 | (setq-local revert-buffer-function #'tabulated-list-revert) |
| 522 | (setq-local glyphless-char-display tabulated-list-glyphless-char-display)) | 522 | (setq-local glyphless-char-display tabulated-list-glyphless-char-display) |
| 523 | ;; Avoid messing up the entries' display just because the first | ||
| 524 | ;; column of the first entry happens to begin with a R2L letter. | ||
| 525 | (setq bidi-paragraph-direction 'left-to-right)) | ||
| 523 | 526 | ||
| 524 | (put 'tabulated-list-mode 'mode-class 'special) | 527 | (put 'tabulated-list-mode 'mode-class 'special) |
| 525 | 528 | ||
diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 0833bda4cb1..c12f289ce0f 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2014-10-15 Ivan Shmakov <ivan@siamics.net> | ||
| 2 | |||
| 3 | * erc-track.el (erc-modified-channels-display): Update mode line | ||
| 4 | more frequently (bug#18510). | ||
| 5 | |||
| 1 | 2014-10-10 Kelvin White <kwhite@gnu.org> | 6 | 2014-10-10 Kelvin White <kwhite@gnu.org> |
| 2 | 7 | ||
| 3 | * erc.el (erc-initialize-log-marker): Only initialize | 8 | * erc.el (erc-initialize-log-marker): Only initialize |
| @@ -434,9 +439,9 @@ | |||
| 434 | 439 | ||
| 435 | 2011-11-28 Mike Kazantsev <mk.fraggod@gmail.com> (tiny change) | 440 | 2011-11-28 Mike Kazantsev <mk.fraggod@gmail.com> (tiny change) |
| 436 | 441 | ||
| 437 | * erc-dcc.el (erc-dcc-ctcp-query-send-regexp): Updated regexp to | 442 | * erc-dcc.el (erc-dcc-ctcp-query-send-regexp): Update regexp to |
| 438 | match quoted filenames with spaces inside. | 443 | match quoted filenames with spaces inside. |
| 439 | (erc-dcc-handle-ctcp-send): Updated regexp match group numbers, | 444 | (erc-dcc-handle-ctcp-send): Update regexp match group numbers, |
| 440 | added processing of escaped quotes and backslashes if filename | 445 | added processing of escaped quotes and backslashes if filename |
| 441 | itself was in quotes. | 446 | itself was in quotes. |
| 442 | 447 | ||
diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el index 706cce2fefe..47e76c3ea1e 100644 --- a/lisp/erc/erc-track.el +++ b/lisp/erc/erc-track.el | |||
| @@ -860,7 +860,7 @@ Use `erc-make-mode-line-buffer-name' to create buttons." | |||
| 860 | faces (cdr faces))) | 860 | faces (cdr faces))) |
| 861 | strings))) | 861 | strings))) |
| 862 | (newobject (erc-modified-channels-object strings))) | 862 | (newobject (erc-modified-channels-object strings))) |
| 863 | (unless (equal oldobject newobject) | 863 | (unless (equal-including-properties oldobject newobject) |
| 864 | (setq erc-modified-channels-object newobject) | 864 | (setq erc-modified-channels-object newobject) |
| 865 | (force-mode-line-update t))))) | 865 | (force-mode-line-update t))))) |
| 866 | 866 | ||
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 6c59200dfa6..30eda3d2bf0 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2014-10-14 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 2 | |||
| 3 | * gnus-start.el (gnus-save-newsrc-file-check-timestamp): New option to | ||
| 4 | check the newsrc.eld file's timestamp before saving it. | ||
| 5 | (gnus-save-newsrc-file): Use it, with a prompt when the newsrc.eld | ||
| 6 | timestamp has changed to be newer. | ||
| 7 | |||
| 1 | 2014-10-06 Jan Tatarik <jan.tatarik@gmail.com> | 8 | 2014-10-06 Jan Tatarik <jan.tatarik@gmail.com> |
| 2 | 9 | ||
| 3 | * gnus-icalendar.el (gnus-icalendar-identities): | 10 | * gnus-icalendar.el (gnus-icalendar-identities): |
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el index 766e7c26ac4..5b734d0ae77 100644 --- a/lisp/gnus/gnus-start.el +++ b/lisp/gnus/gnus-start.el | |||
| @@ -442,6 +442,14 @@ See also `gnus-before-startup-hook'." | |||
| 442 | :group 'gnus-newsrc | 442 | :group 'gnus-newsrc |
| 443 | :type 'hook) | 443 | :type 'hook) |
| 444 | 444 | ||
| 445 | (defcustom gnus-save-newsrc-file-check-timestamp nil | ||
| 446 | "Check the modification time of the newsrc.eld file before saving it. | ||
| 447 | When the newsrc.eld file is updated by multiple machines, | ||
| 448 | checking the file's modification time is a good way to avoid | ||
| 449 | overwriting updated data." | ||
| 450 | :group 'gnus-newsrc | ||
| 451 | :type 'boolean) | ||
| 452 | |||
| 445 | (defcustom gnus-save-newsrc-hook nil | 453 | (defcustom gnus-save-newsrc-hook nil |
| 446 | "A hook called before saving any of the newsrc files." | 454 | "A hook called before saving any of the newsrc files." |
| 447 | :group 'gnus-newsrc | 455 | :group 'gnus-newsrc |
| @@ -2783,6 +2791,7 @@ If FORCE is non-nil, the .newsrc file is read." | |||
| 2783 | 'msdos-long-file-names | 2791 | 'msdos-long-file-names |
| 2784 | (lambda () t)))) | 2792 | (lambda () t)))) |
| 2785 | 2793 | ||
| 2794 | (defvar gnus-save-newsrc-file-last-timestamp nil) | ||
| 2786 | (defun gnus-save-newsrc-file (&optional force) | 2795 | (defun gnus-save-newsrc-file (&optional force) |
| 2787 | "Save .newsrc file." | 2796 | "Save .newsrc file." |
| 2788 | ;; Note: We cannot save .newsrc file if all newsgroups are removed | 2797 | ;; Note: We cannot save .newsrc file if all newsgroups are removed |
| @@ -2821,12 +2830,30 @@ If FORCE is non-nil, the .newsrc file is read." | |||
| 2821 | (erase-buffer) | 2830 | (erase-buffer) |
| 2822 | (gnus-message 5 "Saving %s.eld..." gnus-current-startup-file) | 2831 | (gnus-message 5 "Saving %s.eld..." gnus-current-startup-file) |
| 2823 | 2832 | ||
| 2833 | ;; check timestamp of `gnus-current-startup-file'.eld against | ||
| 2834 | ;; `gnus-save-newsrc-file-last-timestamp' | ||
| 2835 | (when gnus-save-newsrc-file-check-timestamp | ||
| 2836 | (let* ((checkfile (concat gnus-current-startup-file ".eld")) | ||
| 2837 | (mtime (nth 5 (file-attributes checkfile)))) | ||
| 2838 | (when (and gnus-save-newsrc-file-last-timestamp | ||
| 2839 | (time-less-p gnus-save-newsrc-file-last-timestamp | ||
| 2840 | mtime)) | ||
| 2841 | (unless (y-or-n-p | ||
| 2842 | (format "%s was updated externally after %s, save?" | ||
| 2843 | checkfile | ||
| 2844 | (format-time-string | ||
| 2845 | "%c" | ||
| 2846 | gnus-save-newsrc-file-last-timestamp))) | ||
| 2847 | (error "Couldn't save %s: updated externally" checkfile))))) | ||
| 2848 | |||
| 2824 | (if gnus-save-startup-file-via-temp-buffer | 2849 | (if gnus-save-startup-file-via-temp-buffer |
| 2825 | (let ((coding-system-for-write gnus-ding-file-coding-system) | 2850 | (let ((coding-system-for-write gnus-ding-file-coding-system) |
| 2826 | (standard-output (current-buffer))) | 2851 | (standard-output (current-buffer))) |
| 2827 | (gnus-gnus-to-quick-newsrc-format) | 2852 | (gnus-gnus-to-quick-newsrc-format) |
| 2828 | (gnus-run-hooks 'gnus-save-quick-newsrc-hook) | 2853 | (gnus-run-hooks 'gnus-save-quick-newsrc-hook) |
| 2829 | (save-buffer)) | 2854 | (save-buffer) |
| 2855 | (setq gnus-save-newsrc-file-last-timestamp | ||
| 2856 | (nth 5 (file-attributes buffer-file-name)))) | ||
| 2830 | (let ((coding-system-for-write gnus-ding-file-coding-system) | 2857 | (let ((coding-system-for-write gnus-ding-file-coding-system) |
| 2831 | (version-control gnus-backup-startup-file) | 2858 | (version-control gnus-backup-startup-file) |
| 2832 | (startup-file (concat gnus-current-startup-file ".eld")) | 2859 | (startup-file (concat gnus-current-startup-file ".eld")) |
| @@ -2861,7 +2888,9 @@ If FORCE is non-nil, the .newsrc file is read." | |||
| 2861 | 2888 | ||
| 2862 | ;; Replace the existing startup file with the temp file. | 2889 | ;; Replace the existing startup file with the temp file. |
| 2863 | (rename-file working-file startup-file t) | 2890 | (rename-file working-file startup-file t) |
| 2864 | (gnus-set-file-modes startup-file setmodes))) | 2891 | (gnus-set-file-modes startup-file setmodes) |
| 2892 | (setq gnus-save-newsrc-file-last-timestamp | ||
| 2893 | (nth 5 (file-attributes startup-file))))) | ||
| 2865 | (condition-case nil | 2894 | (condition-case nil |
| 2866 | (delete-file working-file) | 2895 | (delete-file working-file) |
| 2867 | (file-error nil))))) | 2896 | (file-error nil))))) |
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index f3143bd76ee..900e859b54a 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el | |||
| @@ -255,18 +255,27 @@ Blank lines separate paragraphs. Semicolons start comments. | |||
| 255 | (dolist (binding bindings) | 255 | (dolist (binding bindings) |
| 256 | (push (or (car-safe binding) binding) vars)) | 256 | (push (or (car-safe binding) binding) vars)) |
| 257 | (elisp--local-variables-1 vars (car (last body))))) | 257 | (elisp--local-variables-1 vars (car (last body))))) |
| 258 | (`(lambda ,_) (setq sexp nil)) | 258 | (`(lambda ,_args) |
| 259 | ;; FIXME: Look for the witness inside `args'. | ||
| 260 | (setq sexp nil)) | ||
| 259 | (`(lambda ,args . ,body) | 261 | (`(lambda ,args . ,body) |
| 260 | (elisp--local-variables-1 | 262 | (elisp--local-variables-1 |
| 261 | (append args vars) (car (last body)))) | 263 | (append (remq '&optional (remq '&rest args)) vars) |
| 264 | (car (last body)))) | ||
| 262 | (`(condition-case ,_ ,e) (elisp--local-variables-1 vars e)) | 265 | (`(condition-case ,_ ,e) (elisp--local-variables-1 vars e)) |
| 263 | (`(condition-case ,v ,_ . ,catches) | 266 | (`(condition-case ,v ,_ . ,catches) |
| 264 | (elisp--local-variables-1 | 267 | (elisp--local-variables-1 |
| 265 | (cons v vars) (cdr (car (last catches))))) | 268 | (cons v vars) (cdr (car (last catches))))) |
| 269 | (`(quote . ,_) | ||
| 270 | ;; FIXME: Look for the witness inside sexp. | ||
| 271 | (setq sexp nil)) | ||
| 272 | ;; FIXME: Handle `cond'. | ||
| 266 | (`(,_ . ,_) | 273 | (`(,_ . ,_) |
| 267 | (elisp--local-variables-1 vars (car (last sexp)))) | 274 | (elisp--local-variables-1 vars (car (last sexp)))) |
| 268 | (`elisp--witness--lisp (or vars '(nil))) | 275 | (`elisp--witness--lisp (or vars '(nil))) |
| 269 | (_ nil))) | 276 | (_ nil))) |
| 277 | ;; We didn't find the witness in the last element so we try to | ||
| 278 | ;; backtrack to the last-but-one. | ||
| 270 | (setq sexp (ignore-errors (butlast sexp))))) | 279 | (setq sexp (ignore-errors (butlast sexp))))) |
| 271 | res)) | 280 | res)) |
| 272 | 281 | ||
diff --git a/nextstep/INSTALL b/nextstep/INSTALL index 63f52efdca9..76cc01c5831 100644 --- a/nextstep/INSTALL +++ b/nextstep/INSTALL | |||
| @@ -2,6 +2,16 @@ Copyright (C) 2008-2014 Free Software Foundation, Inc. | |||
| 2 | See the end of the file for license conditions. | 2 | See the end of the file for license conditions. |
| 3 | 3 | ||
| 4 | 4 | ||
| 5 | Requirements | ||
| 6 | ------------ | ||
| 7 | Mac OS X 10.6 or later | ||
| 8 | |||
| 9 | - or - | ||
| 10 | |||
| 11 | GNUstep "Startup 0.23" or later | ||
| 12 | Tested on GNU/Linux, may work on other systems. | ||
| 13 | |||
| 14 | |||
| 5 | Compilation | 15 | Compilation |
| 6 | ----------- | 16 | ----------- |
| 7 | 17 | ||
diff --git a/nextstep/README b/nextstep/README index 07f0d897e13..45b9b23ee10 100644 --- a/nextstep/README +++ b/nextstep/README | |||
| @@ -1,37 +1,4 @@ | |||
| 1 | Copyright (C) 2008-2014 Free Software Foundation, Inc. | 1 | This directory contains files needed to build Emacs on Nextstep-based |
| 2 | See the end of the file for license conditions. | 2 | platforms, including GNUstep and Mac OS X (using the Cocoa libraries). |
| 3 | |||
| 4 | This directory contains the files needed to build Emacs on | ||
| 5 | Nextstep-based platforms, including GNUstep and Mac OS X. | ||
| 6 | |||
| 7 | The Nextstep support code works on many POSIX systems (and possibly | ||
| 8 | W32) using the GNUstep libraries, and on MacOS X systems using the | ||
| 9 | Cocoa libraries. | ||
| 10 | 3 | ||
| 11 | See the INSTALL file in this directory for compilation instructions. | 4 | See the INSTALL file in this directory for compilation instructions. |
| 12 | |||
| 13 | Requirements | ||
| 14 | ------------ | ||
| 15 | Mac OS X 10.6 or later | ||
| 16 | |||
| 17 | - or - | ||
| 18 | |||
| 19 | GNUstep "Startup 0.23" or later | ||
| 20 | Tested on GNU/Linux, should work on other systems, perhaps with minor | ||
| 21 | build tweaking. | ||
| 22 | |||
| 23 | |||
| 24 | This file is part of GNU Emacs. | ||
| 25 | |||
| 26 | GNU Emacs is free software: you can redistribute it and/or modify | ||
| 27 | it under the terms of the GNU General Public License as published by | ||
| 28 | the Free Software Foundation, either version 3 of the License, or | ||
| 29 | (at your option) any later version. | ||
| 30 | |||
| 31 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 32 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 33 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 34 | GNU General Public License for more details. | ||
| 35 | |||
| 36 | You should have received a copy of the GNU General Public License | ||
| 37 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | ||