diff options
| author | Paul Eggert | 2016-11-04 15:02:03 -0700 |
|---|---|---|
| committer | Paul Eggert | 2016-11-04 15:02:03 -0700 |
| commit | ae0a1a890ec7b885e85cd945a21ca42fed80df3d (patch) | |
| tree | 495f1d851cb3a43a0e677bff9c09d4211a35fbde | |
| parent | 66b5222c3cd72839bf72e0b2a03912719c930451 (diff) | |
| parent | acae275b2752357497a2411876b83240ce7c8aec (diff) | |
| download | emacs-ae0a1a890ec7b885e85cd945a21ca42fed80df3d.tar.gz emacs-ae0a1a890ec7b885e85cd945a21ca42fed80df3d.zip | |
Merge from origin/emacs-25
acae275 ; Spelling fixes
d8fac73 Update README for precompiled windows Emacs.
23570fd Clarify documentation of 'vc-responsible-backend' wrt symlinks
f708cb2 Clarify doc string of 'transpose-sexps'
cd05b1d Fix docstring of 'browse-url-firefox-new-window-is-tab'
bdc89eb Improve documentation of 'font-lock-remove-keywords'
4a0c590 Fix documentation of the command summary key
0221b7a Mark relocation workarounds with REL_ALLOC
| -rw-r--r-- | doc/emacs/maintaining.texi | 2 | ||||
| -rw-r--r-- | doc/lispref/files.texi | 15 | ||||
| -rw-r--r-- | doc/lispref/modes.texi | 4 | ||||
| -rw-r--r-- | doc/misc/ChangeLog.1 | 2 | ||||
| -rw-r--r-- | doc/misc/info.texi | 15 | ||||
| -rw-r--r-- | etc/ERC-NEWS | 2 | ||||
| -rw-r--r-- | etc/NEWS.23 | 2 | ||||
| -rw-r--r-- | etc/TODO | 2 | ||||
| -rw-r--r-- | lisp/cedet/ede/locate.el | 4 | ||||
| -rw-r--r-- | lisp/cedet/semantic/db-typecache.el | 2 | ||||
| -rw-r--r-- | lisp/emacs-lisp/eieio-core.el | 2 | ||||
| -rw-r--r-- | lisp/emulation/edt.el | 2 | ||||
| -rw-r--r-- | lisp/erc/erc-backend.el | 6 | ||||
| -rw-r--r-- | lisp/international/ucs-normalize.el | 2 | ||||
| -rw-r--r-- | lisp/language/ind-util.el | 2 | ||||
| -rw-r--r-- | lisp/mh-e/mh-search.el | 4 | ||||
| -rw-r--r-- | lisp/mh-e/mh-thread.el | 8 | ||||
| -rw-r--r-- | lisp/net/browse-url.el | 5 | ||||
| -rw-r--r-- | lisp/simple.el | 10 | ||||
| -rw-r--r-- | lisp/subr.el | 2 | ||||
| -rw-r--r-- | lisp/vc/vc.el | 6 | ||||
| -rw-r--r-- | nt/README.W32 | 292 | ||||
| -rw-r--r-- | src/emacs.c | 2 | ||||
| -rw-r--r-- | src/lread.c | 8 | ||||
| -rw-r--r-- | src/search.c | 9 |
25 files changed, 145 insertions, 265 deletions
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index 1037bd1fdd7..13668cc9269 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi | |||
| @@ -223,7 +223,7 @@ basic editing operations under Bazaar. | |||
| 223 | @cindex SRC | 223 | @cindex SRC |
| 224 | @cindex src | 224 | @cindex src |
| 225 | @item | 225 | @item |
| 226 | SRC (src) is RCS, reloaded - a specialized version-control system | 226 | SRC (src) is RCS, reloaded---a specialized version-control system |
| 227 | designed for single-file projects worked on by only one person. It | 227 | designed for single-file projects worked on by only one person. It |
| 228 | allows multiple files with independent version-control histories to | 228 | allows multiple files with independent version-control histories to |
| 229 | exist in one directory, and is thus particularly well suited for | 229 | exist in one directory, and is thus particularly well suited for |
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi index ecc3e03967c..cb31ca5a3de 100644 --- a/doc/lispref/files.texi +++ b/doc/lispref/files.texi | |||
| @@ -1148,6 +1148,21 @@ compares the truenames of the two directories. If @var{dir} does not | |||
| 1148 | name an existing directory, the return value is @code{nil}. | 1148 | name an existing directory, the return value is @code{nil}. |
| 1149 | @end defun | 1149 | @end defun |
| 1150 | 1150 | ||
| 1151 | @defun vc-responsible-backend file | ||
| 1152 | This function determines the responsible VC backend of the given | ||
| 1153 | @var{file}. For example, if @file{emacs.c} is a file tracked by Git, | ||
| 1154 | @w{@code{(vc-responsible-backend "emacs.c")}} returns @samp{Git}. | ||
| 1155 | Note that if @var{file} is a symbolic link, | ||
| 1156 | @code{vc-responsible-backend} will not resolve it---the backend of the | ||
| 1157 | symbolic link file itself is reported. To get the backend VC of the | ||
| 1158 | file to which @var{file} refers, wrap @var{file} with a symbolic link | ||
| 1159 | resolving function such as @code{file-chase-links}: | ||
| 1160 | |||
| 1161 | @smallexample | ||
| 1162 | (vc-responsible-backend (file-chase-links "emacs.c")) | ||
| 1163 | @end smallexample | ||
| 1164 | @end defun | ||
| 1165 | |||
| 1151 | @node File Attributes | 1166 | @node File Attributes |
| 1152 | @subsection File Attributes | 1167 | @subsection File Attributes |
| 1153 | @cindex file attributes | 1168 | @cindex file attributes |
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index 368d882a4b8..c7b6106ef5b 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi | |||
| @@ -2934,7 +2934,9 @@ This function removes @var{keywords} from @code{font-lock-keywords} | |||
| 2934 | for the current buffer or for major mode @var{mode}. As in | 2934 | for the current buffer or for major mode @var{mode}. As in |
| 2935 | @code{font-lock-add-keywords}, @var{mode} should be a major mode | 2935 | @code{font-lock-add-keywords}, @var{mode} should be a major mode |
| 2936 | command name or @code{nil}. All the caveats and requirements for | 2936 | command name or @code{nil}. All the caveats and requirements for |
| 2937 | @code{font-lock-add-keywords} apply here too. | 2937 | @code{font-lock-add-keywords} apply here too. The argument |
| 2938 | @var{keywords} must exactly match the one used by the corresponding | ||
| 2939 | @code{font-lock-add-keywords}. | ||
| 2938 | @end defun | 2940 | @end defun |
| 2939 | 2941 | ||
| 2940 | For example, the following code adds two fontification patterns for C | 2942 | For example, the following code adds two fontification patterns for C |
diff --git a/doc/misc/ChangeLog.1 b/doc/misc/ChangeLog.1 index eb16d4ac565..93aacb521a9 100644 --- a/doc/misc/ChangeLog.1 +++ b/doc/misc/ChangeLog.1 | |||
| @@ -5331,7 +5331,7 @@ | |||
| 5331 | 5331 | ||
| 5332 | 2010-07-09 Michael Albinus <michael.albinus@gmx.de> | 5332 | 2010-07-09 Michael Albinus <michael.albinus@gmx.de> |
| 5333 | 5333 | ||
| 5334 | * dbus.texi (Top): Introduce Index. Emphasize "nil" whereever | 5334 | * dbus.texi (Top): Introduce Index. Emphasize "nil" wherever |
| 5335 | forgotten. | 5335 | forgotten. |
| 5336 | (Type Conversion): Precise conversion of natural numbers. | 5336 | (Type Conversion): Precise conversion of natural numbers. |
| 5337 | (Errors and Events): Add "debugging" to concept index. Add variable | 5337 | (Errors and Events): Add "debugging" to concept index. Add variable |
diff --git a/doc/misc/info.texi b/doc/misc/info.texi index 0a8100fec46..1b964e6b2c4 100644 --- a/doc/misc/info.texi +++ b/doc/misc/info.texi | |||
| @@ -70,7 +70,8 @@ To read about advanced Info commands, type @kbd{n} twice. This | |||
| 70 | brings you to @cite{Advanced Info Commands}, skipping over the ``Getting | 70 | brings you to @cite{Advanced Info Commands}, skipping over the ``Getting |
| 71 | Started'' chapter. | 71 | Started'' chapter. |
| 72 | 72 | ||
| 73 | Type @kbd{H} to see a summary of all available commands. | 73 | If you are using Emacs, type @kbd{?} to see a summary of all available |
| 74 | commands. In the stand-alone Info reader, type @kbd{H} instead. | ||
| 74 | @end ifinfo | 75 | @end ifinfo |
| 75 | @end ifnottex | 76 | @end ifnottex |
| 76 | 77 | ||
| @@ -393,16 +394,18 @@ the @key{BACKSPACE} key (or @key{DEL}) many times. You can also type | |||
| 393 | @end format | 394 | @end format |
| 394 | 395 | ||
| 395 | @kindex ? @r{(Info mode)} | 396 | @kindex ? @r{(Info mode)} |
| 397 | @kindex H @r{(stand-alone Info reader)} | ||
| 396 | @findex Info-summary | 398 | @findex Info-summary |
| 397 | You have just learned a considerable number of commands. If you | 399 | You have just learned a considerable number of commands. If you |
| 398 | want to use one but have trouble remembering which, you should type | 400 | want to use one but have trouble remembering which, you should type |
| 399 | @kbd{?}, which displays a brief list of commands. When you are | 401 | @kbd{?} (@kbd{H} in the stand-alone Info reader), which displays a |
| 400 | finished looking at the list, make it go away by typing @key{SPC} | 402 | brief list of commands. When you are finished looking at the list, |
| 401 | repeatedly. | 403 | make it go away by typing @key{SPC} repeatedly. |
| 402 | 404 | ||
| 403 | @format | 405 | @format |
| 404 | >> Type a @key{?} now. Press @key{SPC} to see consecutive screenfuls of | 406 | >> Type a @key{?} (or @key{H} in the stand-alone Info reader) now. |
| 405 | the list until finished. Then type @key{SPC} several times. If | 407 | Press @key{SPC} to see consecutive screenfuls of the list |
| 408 | until finished. Then type @key{SPC} several times. If | ||
| 406 | you are using Emacs, the help will then go away automatically. | 409 | you are using Emacs, the help will then go away automatically. |
| 407 | If you are using the stand-alone Info reader, type @kbd{x} to | 410 | If you are using the stand-alone Info reader, type @kbd{x} to |
| 408 | return here. | 411 | return here. |
diff --git a/etc/ERC-NEWS b/etc/ERC-NEWS index 13827c67786..69b846884fe 100644 --- a/etc/ERC-NEWS +++ b/etc/ERC-NEWS | |||
| @@ -1077,7 +1077,7 @@ major changes for implementers, and module writers: | |||
| 1077 | corresponding hook variables. | 1077 | corresponding hook variables. |
| 1078 | 1078 | ||
| 1079 | The mapping of server commands to hook variables is no longer | 1079 | The mapping of server commands to hook variables is no longer |
| 1080 | done via `erc-event-to-hook', but through an #'equal hashtable, | 1080 | done via `erc-event-to-hook', but through an #'equal hash table, |
| 1081 | `erc-server-responses'. In order to find a hook you do: | 1081 | `erc-server-responses'. In order to find a hook you do: |
| 1082 | 1082 | ||
| 1083 | (erc-get-hook command) | 1083 | (erc-get-hook command) |
diff --git a/etc/NEWS.23 b/etc/NEWS.23 index d92bf237979..f74141db49a 100644 --- a/etc/NEWS.23 +++ b/etc/NEWS.23 | |||
| @@ -551,7 +551,7 @@ System (CLOS). It is used by the other CEDET packages. | |||
| 551 | 551 | ||
| 552 | ** js.el is a new major mode for JavaScript files. | 552 | ** js.el is a new major mode for JavaScript files. |
| 553 | 553 | ||
| 554 | ** imap-hash.el is a new library to address IMAP mailboxes as hashtables. | 554 | ** imap-hash.el is a new library to address IMAP mailboxes as hash tables. |
| 555 | 555 | ||
| 556 | 556 | ||
| 557 | * Incompatible Lisp Changes in Emacs 23.2 | 557 | * Incompatible Lisp Changes in Emacs 23.2 |
| @@ -38,7 +38,7 @@ stay within exec_byte_code. | |||
| 38 | ** Add new 'switch' byte-code | 38 | ** Add new 'switch' byte-code |
| 39 | This byte-code would take one argument from the stack (the object to test) | 39 | This byte-code would take one argument from the stack (the object to test) |
| 40 | and one argument from the constant-pool (a switch table, implemented as an | 40 | and one argument from the constant-pool (a switch table, implemented as an |
| 41 | eq-hashtable) and would jump to the "label" contained in the hashtable. | 41 | 'eq' hash table) and would jump to the "label" contained in the hash table. |
| 42 | 42 | ||
| 43 | Then add a 'case' special-form that can be compiled to this byte-code. | 43 | Then add a 'case' special-form that can be compiled to this byte-code. |
| 44 | This would behave just like cl-case, but instead of expanding to cond+eq it | 44 | This would behave just like cl-case, but instead of expanding to cond+eq it |
diff --git a/lisp/cedet/ede/locate.el b/lisp/cedet/ede/locate.el index 38d23883951..8564719c810 100644 --- a/lisp/cedet/ede/locate.el +++ b/lisp/cedet/ede/locate.el | |||
| @@ -124,12 +124,12 @@ based on `ede-locate-setup-options'." | |||
| 124 | t) | 124 | t) |
| 125 | 125 | ||
| 126 | (cl-defmethod ede-locate-flush-hash ((loc ede-locate-base)) | 126 | (cl-defmethod ede-locate-flush-hash ((loc ede-locate-base)) |
| 127 | "For LOC, flush hashtable and start from scratch." | 127 | "For LOC, flush hash table and start from scratch." |
| 128 | (oset loc hash (make-hash-table :test 'equal))) | 128 | (oset loc hash (make-hash-table :test 'equal))) |
| 129 | 129 | ||
| 130 | (cl-defmethod ede-locate-file-in-hash ((loc ede-locate-base) | 130 | (cl-defmethod ede-locate-file-in-hash ((loc ede-locate-base) |
| 131 | filestring) | 131 | filestring) |
| 132 | "For LOC, is the file FILESTRING in our hashtable?" | 132 | "For LOC, is the file FILESTRING in our hash table?" |
| 133 | (gethash filestring (oref loc hash))) | 133 | (gethash filestring (oref loc hash))) |
| 134 | 134 | ||
| 135 | (cl-defmethod ede-locate-add-file-to-hash ((loc ede-locate-base) | 135 | (cl-defmethod ede-locate-add-file-to-hash ((loc ede-locate-base) |
diff --git a/lisp/cedet/semantic/db-typecache.el b/lisp/cedet/semantic/db-typecache.el index 366af60034c..76382a30dd1 100644 --- a/lisp/cedet/semantic/db-typecache.el +++ b/lisp/cedet/semantic/db-typecache.el | |||
| @@ -56,7 +56,7 @@ | |||
| 56 | (stream :initform nil | 56 | (stream :initform nil |
| 57 | :documentation | 57 | :documentation |
| 58 | "The searchable tag stream for this cache. | 58 | "The searchable tag stream for this cache. |
| 59 | NOTE: Can I get rid of this? Use a hashtable instead?") | 59 | NOTE: Can I get rid of this? Use a hash table instead?") |
| 60 | (dependants :initform nil | 60 | (dependants :initform nil |
| 61 | :documentation | 61 | :documentation |
| 62 | "Any other object that is dependent on typecache results. | 62 | "Any other object that is dependent on typecache results. |
diff --git a/lisp/emacs-lisp/eieio-core.el b/lisp/emacs-lisp/eieio-core.el index 52577adefac..624dccef075 100644 --- a/lisp/emacs-lisp/eieio-core.el +++ b/lisp/emacs-lisp/eieio-core.el | |||
| @@ -460,7 +460,7 @@ See `defclass' for more information." | |||
| 460 | (cl--slot-descriptor-initform (aref slots i))))) | 460 | (cl--slot-descriptor-initform (aref slots i))))) |
| 461 | (setf (eieio--class-class-allocation-values newc) v)) | 461 | (setf (eieio--class-class-allocation-values newc) v)) |
| 462 | 462 | ||
| 463 | ;; Attach slot symbols into a hashtable, and store the index of | 463 | ;; Attach slot symbols into a hash table, and store the index of |
| 464 | ;; this slot as the value this table. | 464 | ;; this slot as the value this table. |
| 465 | (let* ((slots (eieio--class-slots newc)) | 465 | (let* ((slots (eieio--class-slots newc)) |
| 466 | ;; (cslots (eieio--class-class-slots newc)) | 466 | ;; (cslots (eieio--class-class-slots newc)) |
diff --git a/lisp/emulation/edt.el b/lisp/emulation/edt.el index 6bda15bf98d..f408ff73106 100644 --- a/lisp/emulation/edt.el +++ b/lisp/emulation/edt.el | |||
| @@ -497,7 +497,7 @@ Argument NUM is the number of EOL marks to move." | |||
| 497 | ;;; of line, etc.) it takes a bit of special handling. | 497 | ;;; of line, etc.) it takes a bit of special handling. |
| 498 | ;;; | 498 | ;;; |
| 499 | ;;; The variable edt-word-entities contains a list of characters which | 499 | ;;; The variable edt-word-entities contains a list of characters which |
| 500 | ;;; are to be viewed as distinct words where ever they appear in the | 500 | ;;; are to be viewed as distinct words wherever they appear in the |
| 501 | ;;; buffer. This emulates the EDT line mode command SET ENTITY WORD. | 501 | ;;; buffer. This emulates the EDT line mode command SET ENTITY WORD. |
| 502 | 502 | ||
| 503 | 503 | ||
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el index 54c17bf73d9..288e8efe73e 100644 --- a/lisp/erc/erc-backend.el +++ b/lisp/erc/erc-backend.el | |||
| @@ -108,7 +108,7 @@ | |||
| 108 | ;;;; Variables and options | 108 | ;;;; Variables and options |
| 109 | 109 | ||
| 110 | (defvar erc-server-responses (make-hash-table :test #'equal) | 110 | (defvar erc-server-responses (make-hash-table :test #'equal) |
| 111 | "Hashtable mapping server responses to their handler hooks.") | 111 | "Hash table mapping server responses to their handler hooks.") |
| 112 | 112 | ||
| 113 | (cl-defstruct (erc-response (:conc-name erc-response.)) | 113 | (cl-defstruct (erc-response (:conc-name erc-response.)) |
| 114 | (unparsed "" :type string) | 114 | (unparsed "" :type string) |
| @@ -1061,7 +1061,7 @@ See also `erc-server-responses'." | |||
| 1061 | (defun erc-call-hooks (process message) | 1061 | (defun erc-call-hooks (process message) |
| 1062 | "Call hooks associated with MESSAGE in PROCESS. | 1062 | "Call hooks associated with MESSAGE in PROCESS. |
| 1063 | 1063 | ||
| 1064 | Finds hooks by looking in the `erc-server-responses' hashtable." | 1064 | Finds hooks by looking in the `erc-server-responses' hash table." |
| 1065 | (let ((hook (or (erc-get-hook (erc-response.command message)) | 1065 | (let ((hook (or (erc-get-hook (erc-response.command message)) |
| 1066 | 'erc-default-server-functions))) | 1066 | 'erc-default-server-functions))) |
| 1067 | (run-hook-with-args-until-success hook process message) | 1067 | (run-hook-with-args-until-success hook process message) |
| @@ -1218,7 +1218,7 @@ add things to `%s' instead." | |||
| 1218 | (put ',fn-name 'definition-name ',name) | 1218 | (put ',fn-name 'definition-name ',name) |
| 1219 | (put ',hook-name 'definition-name ',name) | 1219 | (put ',hook-name 'definition-name ',name) |
| 1220 | 1220 | ||
| 1221 | ;; Hashtable map of responses to hook variables | 1221 | ;; Hash table map of responses to hook variables |
| 1222 | ,@(cl-loop for response in (cons name aliases) | 1222 | ,@(cl-loop for response in (cons name aliases) |
| 1223 | for var in (cons hook-name var-alternates) | 1223 | for var in (cons hook-name var-alternates) |
| 1224 | collect `(puthash ,(format "%s" response) ',var | 1224 | collect `(puthash ,(format "%s" response) ',var |
diff --git a/lisp/international/ucs-normalize.el b/lisp/international/ucs-normalize.el index ac2a0d9e778..cf2e81e20f2 100644 --- a/lisp/international/ucs-normalize.el +++ b/lisp/international/ucs-normalize.el | |||
| @@ -227,7 +227,7 @@ | |||
| 227 | table)) | 227 | table)) |
| 228 | 228 | ||
| 229 | (defvar ucs-normalize-decomposition-pair-to-primary-composite nil | 229 | (defvar ucs-normalize-decomposition-pair-to-primary-composite nil |
| 230 | "Hashtable of decomposed pair to primary composite. | 230 | "Hash table of decomposed pair to primary composite. |
| 231 | Note that Hangul are excluded.") | 231 | Note that Hangul are excluded.") |
| 232 | (setq ucs-normalize-decomposition-pair-to-primary-composite | 232 | (setq ucs-normalize-decomposition-pair-to-primary-composite |
| 233 | (ucs-normalize-make-hash-table-from-alist | 233 | (ucs-normalize-make-hash-table-from-alist |
diff --git a/lisp/language/ind-util.el b/lisp/language/ind-util.el index deea48933c8..f7424ecd84f 100644 --- a/lisp/language/ind-util.el +++ b/lisp/language/ind-util.el | |||
| @@ -39,7 +39,7 @@ | |||
| 39 | (eval-and-compile | 39 | (eval-and-compile |
| 40 | 40 | ||
| 41 | (defun indian-regexp-of-hashtbl-keys (hashtbl) | 41 | (defun indian-regexp-of-hashtbl-keys (hashtbl) |
| 42 | "Returns the regular expression of hashtable keys." | 42 | "Return the regular expression of hash table keys." |
| 43 | (let (keys) | 43 | (let (keys) |
| 44 | (maphash (lambda (key val) (push key keys)) hashtbl) | 44 | (maphash (lambda (key val) (push key keys)) hashtbl) |
| 45 | (regexp-opt keys))) | 45 | (regexp-opt keys))) |
diff --git a/lisp/mh-e/mh-search.el b/lisp/mh-e/mh-search.el index 6e607444ad8..d5a2d779b21 100644 --- a/lisp/mh-e/mh-search.el +++ b/lisp/mh-e/mh-search.el | |||
| @@ -1859,7 +1859,7 @@ PROC is used to convert the value to actual data." | |||
| 1859 | (defun mh-index-update-maps (folder &optional origin-map) | 1859 | (defun mh-index-update-maps (folder &optional origin-map) |
| 1860 | "Annotate all as yet unannotated messages in FOLDER with their MD5 hash. | 1860 | "Annotate all as yet unannotated messages in FOLDER with their MD5 hash. |
| 1861 | As a side effect msg -> checksum map is updated. Optional | 1861 | As a side effect msg -> checksum map is updated. Optional |
| 1862 | argument ORIGIN-MAP is a hashtable which maps each message in the | 1862 | argument ORIGIN-MAP is a hash table which maps each message in the |
| 1863 | index folder to the original folder and message from whence it | 1863 | index folder to the original folder and message from whence it |
| 1864 | was copied. If present the checksum -> (origin-folder, | 1864 | was copied. If present the checksum -> (origin-folder, |
| 1865 | origin-index) map is updated too." | 1865 | origin-index) map is updated too." |
| @@ -1913,7 +1913,7 @@ origin-index) map is updated too." | |||
| 1913 | (defun mh-index-update-single-msg (msg checksum origin-map) | 1913 | (defun mh-index-update-single-msg (msg checksum origin-map) |
| 1914 | "Update various maps for one message. | 1914 | "Update various maps for one message. |
| 1915 | MSG is a index folder message, CHECKSUM its MD5 hash and | 1915 | MSG is a index folder message, CHECKSUM its MD5 hash and |
| 1916 | ORIGIN-MAP, if non-nil, a hashtable containing which maps each | 1916 | ORIGIN-MAP, if non-nil, a hash table containing which maps each |
| 1917 | message in the index folder to the folder and message that it was | 1917 | message in the index folder to the folder and message that it was |
| 1918 | copied from. The function updates the hash tables | 1918 | copied from. The function updates the hash tables |
| 1919 | `mh-index-msg-checksum-map' and `mh-index-checksum-origin-map'. | 1919 | `mh-index-msg-checksum-map' and `mh-index-checksum-origin-map'. |
diff --git a/lisp/mh-e/mh-thread.el b/lisp/mh-e/mh-thread.el index e6acdba8b30..2a37cfc9e42 100644 --- a/lisp/mh-e/mh-thread.el +++ b/lisp/mh-e/mh-thread.el | |||
| @@ -89,11 +89,11 @@ | |||
| 89 | (real-child-p t)) | 89 | (real-child-p t)) |
| 90 | 90 | ||
| 91 | (defvar mh-thread-id-hash nil | 91 | (defvar mh-thread-id-hash nil |
| 92 | "Hashtable used to canonicalize message identifiers.") | 92 | "Hash table used to canonicalize message identifiers.") |
| 93 | (make-variable-buffer-local 'mh-thread-id-hash) | 93 | (make-variable-buffer-local 'mh-thread-id-hash) |
| 94 | 94 | ||
| 95 | (defvar mh-thread-subject-hash nil | 95 | (defvar mh-thread-subject-hash nil |
| 96 | "Hashtable used to canonicalize subject strings.") | 96 | "Hash table used to canonicalize subject strings.") |
| 97 | (make-variable-buffer-local 'mh-thread-subject-hash) | 97 | (make-variable-buffer-local 'mh-thread-subject-hash) |
| 98 | 98 | ||
| 99 | (defvar mh-thread-id-table nil | 99 | (defvar mh-thread-id-table nil |
| @@ -109,11 +109,11 @@ | |||
| 109 | (make-variable-buffer-local 'mh-thread-id-index-map) | 109 | (make-variable-buffer-local 'mh-thread-id-index-map) |
| 110 | 110 | ||
| 111 | (defvar mh-thread-subject-container-hash nil | 111 | (defvar mh-thread-subject-container-hash nil |
| 112 | "Hashtable used to group messages by subject.") | 112 | "Hash table used to group messages by subject.") |
| 113 | (make-variable-buffer-local 'mh-thread-subject-container-hash) | 113 | (make-variable-buffer-local 'mh-thread-subject-container-hash) |
| 114 | 114 | ||
| 115 | (defvar mh-thread-duplicates nil | 115 | (defvar mh-thread-duplicates nil |
| 116 | "Hashtable used to associate messages with the same message identifier.") | 116 | "Hash table used to associate messages with the same message identifier.") |
| 117 | (make-variable-buffer-local 'mh-thread-duplicates) | 117 | (make-variable-buffer-local 'mh-thread-duplicates) |
| 118 | 118 | ||
| 119 | (defvar mh-thread-history () | 119 | (defvar mh-thread-history () |
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index 1bb48314bc8..15f6df742cc 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el | |||
| @@ -365,10 +365,7 @@ If non-nil, then open the URL in a new tab rather than a new window if | |||
| 365 | (defcustom browse-url-firefox-new-window-is-tab nil | 365 | (defcustom browse-url-firefox-new-window-is-tab nil |
| 366 | "Whether to open up new windows in a tab or a new window. | 366 | "Whether to open up new windows in a tab or a new window. |
| 367 | If non-nil, then open the URL in a new tab rather than a new window if | 367 | If non-nil, then open the URL in a new tab rather than a new window if |
| 368 | `browse-url-firefox' is asked to open it in a new window. | 368 | `browse-url-firefox' is asked to open it in a new window." |
| 369 | |||
| 370 | This option is currently ignored on MS-Windows, since the necessary | ||
| 371 | functionality is not available there." | ||
| 372 | :type 'boolean | 369 | :type 'boolean |
| 373 | :group 'browse-url) | 370 | :group 'browse-url) |
| 374 | 371 | ||
diff --git a/lisp/simple.el b/lisp/simple.el index d915ee2eb63..fe613255ab0 100644 --- a/lisp/simple.el +++ b/lisp/simple.el | |||
| @@ -6783,9 +6783,13 @@ are interchanged." | |||
| 6783 | (transpose-subr 'forward-word arg)) | 6783 | (transpose-subr 'forward-word arg)) |
| 6784 | 6784 | ||
| 6785 | (defun transpose-sexps (arg) | 6785 | (defun transpose-sexps (arg) |
| 6786 | "Like \\[transpose-words] but applies to sexps. | 6786 | "Like \\[transpose-chars] (`transpose-chars'), but applies to sexps. |
| 6787 | Does not work on a sexp that point is in the middle of | 6787 | Unlike `transpose-words', point must be between the two sexps and not |
| 6788 | if it is a list or string." | 6788 | in the middle of a sexp to be transposed. |
| 6789 | With non-zero prefix arg ARG, effect is to take the sexp before point | ||
| 6790 | and drag it forward past ARG other sexps (backward if ARG is negative). | ||
| 6791 | If ARG is zero, the sexps ending at or after point and at or after mark | ||
| 6792 | are interchanged." | ||
| 6789 | (interactive "*p") | 6793 | (interactive "*p") |
| 6790 | (transpose-subr | 6794 | (transpose-subr |
| 6791 | (lambda (arg) | 6795 | (lambda (arg) |
diff --git a/lisp/subr.el b/lisp/subr.el index fd46a818df9..ebcb1fd4b82 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -910,7 +910,7 @@ KEY is a string or vector representing a sequence of keystrokes." | |||
| 910 | 910 | ||
| 911 | (defun substitute-key-definition (olddef newdef keymap &optional oldmap prefix) | 911 | (defun substitute-key-definition (olddef newdef keymap &optional oldmap prefix) |
| 912 | "Replace OLDDEF with NEWDEF for any keys in KEYMAP now defined as OLDDEF. | 912 | "Replace OLDDEF with NEWDEF for any keys in KEYMAP now defined as OLDDEF. |
| 913 | In other words, OLDDEF is replaced with NEWDEF where ever it appears. | 913 | In other words, OLDDEF is replaced with NEWDEF wherever it appears. |
| 914 | Alternatively, if optional fourth argument OLDMAP is specified, we redefine | 914 | Alternatively, if optional fourth argument OLDMAP is specified, we redefine |
| 915 | in KEYMAP as NEWDEF those keys which are defined as OLDDEF in OLDMAP. | 915 | in KEYMAP as NEWDEF those keys which are defined as OLDDEF in OLDMAP. |
| 916 | 916 | ||
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index ac020d09539..2ddf4e19e1f 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el | |||
| @@ -959,7 +959,11 @@ use." | |||
| 959 | If FILE is already registered, return the | 959 | If FILE is already registered, return the |
| 960 | backend of FILE. If FILE is not registered, then the | 960 | backend of FILE. If FILE is not registered, then the |
| 961 | first backend in `vc-handled-backends' that declares itself | 961 | first backend in `vc-handled-backends' that declares itself |
| 962 | responsible for FILE is returned." | 962 | responsible for FILE is returned. |
| 963 | |||
| 964 | Note that if FILE is a symbolic link, it will not be resolved -- | ||
| 965 | the responsible backend system for the symbolic link itself will | ||
| 966 | be reported." | ||
| 963 | (or (and (not (file-directory-p file)) (vc-backend file)) | 967 | (or (and (not (file-directory-p file)) (vc-backend file)) |
| 964 | (catch 'found | 968 | (catch 'found |
| 965 | ;; First try: find a responsible backend. If this is for registration, | 969 | ;; First try: find a responsible backend. If this is for registration, |
diff --git a/nt/README.W32 b/nt/README.W32 index 5bd87962650..d866d9fc7a6 100644 --- a/nt/README.W32 +++ b/nt/README.W32 | |||
| @@ -3,24 +3,30 @@ See the end of the file for license conditions. | |||
| 3 | 3 | ||
| 4 | Emacs for Windows | 4 | Emacs for Windows |
| 5 | 5 | ||
| 6 | This README.W32 file describes how to set up and run a precompiled | 6 | This README file describes how to set up and run a precompiled |
| 7 | distribution of GNU Emacs for Windows. You can find the precompiled | 7 | distribution of GNU Emacs for Windows. You can find the precompiled |
| 8 | distribution on the ftp.gnu.org server and its mirrors: | 8 | distribution on the ftp.gnu.org server and its mirrors: |
| 9 | 9 | ||
| 10 | ftp://ftp.gnu.org/gnu/emacs/windows/ | 10 | ftp://ftp.gnu.org/gnu/emacs/windows/ |
| 11 | 11 | ||
| 12 | This server contains other distributions, including the full Emacs | 12 | This server contains other distributions, including the full Emacs |
| 13 | source distribution, as well as older releases of Emacs for Windows. | 13 | source distribution, as well as older releases of Emacs for Windows. |
| 14 | 14 | ||
| 15 | Information on how to compile Emacs from sources on Windows is in | 15 | Information on how to compile Emacs from sources on Windows is in |
| 16 | the files README and INSTALL in the nt/ sub-directory of the | 16 | the files README and INSTALL in the nt/ sub-directory of the |
| 17 | top-level Emacs directory in the source distribution. If you | 17 | top-level Emacs directory in the source distribution, as is this |
| 18 | received this file as part of the Emacs source distribution, and are | 18 | file as README.precompiled. If you received this file as part of |
| 19 | looking for information on how to build Emacs on MS-Windows, please | 19 | the Emacs source distribution, and are looking for information on |
| 20 | read those 2 files and not this one. | 20 | how to build Emacs on MS-Windows, please read those 2 files and not |
| 21 | this one. | ||
| 21 | 22 | ||
| 22 | * Preliminaries | 23 | * Preliminaries |
| 23 | 24 | ||
| 25 | There are two binary distributions named | ||
| 26 | emacs-n-x86_64-w64-mingw32.zip and | ||
| 27 | emacs-n-i686-w64-mingw32.zip. These are for 64-bit and 32-bit | ||
| 28 | machines respectively. | ||
| 29 | |||
| 24 | The binary distribution has these top-level directories: | 30 | The binary distribution has these top-level directories: |
| 25 | + bin | 31 | + bin |
| 26 | + libexec | 32 | + libexec |
| @@ -30,33 +36,24 @@ See the end of the file for license conditions. | |||
| 30 | * Setting up Emacs | 36 | * Setting up Emacs |
| 31 | 37 | ||
| 32 | To install Emacs, simply unpack the binary package into a directory | 38 | To install Emacs, simply unpack the binary package into a directory |
| 33 | of your choice. To complete the installation process, you can | 39 | of your choice. If you use File Explorer and "Extract" by default |
| 34 | optionally run the program addpm.exe in the bin subdirectory. This | 40 | this will be in a top-level directory with the same name as the zip |
| 35 | will put an icon for Emacs in the Start Menu under | 41 | file. |
| 36 | "Start -> Programs -> Gnu Emacs". | 42 | |
| 37 | 43 | We also provide a set of optional dependencies, in | |
| 38 | Some users have reported that the Start Menu item is not created for | 44 | emacs-25-x86_64-deps.zip or emacs-25-i686-deps.zip respectively, |
| 39 | them. If this happens, just create your own shortcut to runemacs.exe, | 45 | which provide Emacs with an number of additional capabilities. To |
| 40 | eg. by dragging it on to the desktop or the Start button. | 46 | add these, unpack them directly over the emacs directory structure. |
| 41 | 47 | ||
| 42 | Note that running addpm is now an optional step; Emacs is able to | 48 | Finally, and also optionally, you can run the program addpm.exe in |
| 43 | locate all of its files without needing any information to be set in | 49 | the bin subdirectory which will place an icon for Emacs on the start |
| 44 | the environment or the registry, although such settings will still | 50 | page. |
| 45 | be obeyed if present. This is convenient for running Emacs on a | 51 | |
| 46 | machine which disallows registry changes, or on which software | 52 | Emacs is completely portable. You can create your own shortcut to |
| 47 | should not be installed. For instance, you can now run Emacs | 53 | runemacs.exe and place this wherever you find it convenient, or |
| 48 | directly from a CD or USB flash drive without copying or installing | 54 | run it from a USB or network drive without copying or installing |
| 49 | anything on the machine itself. | 55 | anything on the machine itself. |
| 50 | 56 | ||
| 51 | * Prerequisites for Windows 9X | ||
| 52 | |||
| 53 | To run Emacs on Windows 9X (Windows 95/98/Me), you will need to have | ||
| 54 | the Microsoft Layer for Unicode (MSLU) installed. It can be | ||
| 55 | downloaded from the Microsoft site, and comes in a form of a single | ||
| 56 | dynamic library called UNICOWS.DLL. If this library is not | ||
| 57 | accessible to Emacs, it will pop up a dialog saying that it cannot | ||
| 58 | find the library, and will refuse to start up. | ||
| 59 | |||
| 60 | * Starting Emacs | 57 | * Starting Emacs |
| 61 | 58 | ||
| 62 | To run Emacs, simply select Emacs from the Start Menu, or invoke | 59 | To run Emacs, simply select Emacs from the Start Menu, or invoke |
| @@ -93,8 +90,7 @@ See the end of the file for license conditions. | |||
| 93 | + emacsclientw.exe - A version of emacsclient that does not open | 90 | + emacsclientw.exe - A version of emacsclient that does not open |
| 94 | a command-line window. | 91 | a command-line window. |
| 95 | 92 | ||
| 96 | + addpm.exe - A basic installer that creates Start Menu icons for Emacs. | 93 | + addpm.exe - The installer that adds Emacs to "Start". |
| 97 | Running this is optional. | ||
| 98 | 94 | ||
| 99 | + ctags.exe, etags.exe - Tools for generating tag files. See the | 95 | + ctags.exe, etags.exe - Tools for generating tag files. See the |
| 100 | `Tags' node of the Emacs manual. | 96 | `Tags' node of the Emacs manual. |
| @@ -128,128 +124,26 @@ See the end of the file for license conditions. | |||
| 128 | + update-game-score.exe - A utility for updating the score files of | 124 | + update-game-score.exe - A utility for updating the score files of |
| 129 | Emacs games. | 125 | Emacs games. |
| 130 | 126 | ||
| 131 | * Image support | 127 | * Optional Dependencies |
| 132 | 128 | ||
| 133 | Emacs has built in support for XBM and PPM/PGM/PBM images, and the | 129 | Emacs has built in support for XBM and PPM/PGM/PBM images, and the |
| 134 | libXpm library is bundled, providing XPM support (required for color | 130 | libXpm library is bundled, providing XPM support (required for color |
| 135 | toolbar icons and splash screen). Source for libXpm should be available | 131 | toolbar icons and splash screen). Source for libXpm should be |
| 136 | from the same place from which you got this binary distribution. | 132 | available from the same place from which you got this binary |
| 137 | 133 | distribution. | |
| 138 | Emacs can also support some other image formats with appropriate | ||
| 139 | libraries. These libraries are all available on the following sites: | ||
| 140 | |||
| 141 | 1. http://sourceforge.net/projects/ezwinports/files/ | ||
| 142 | -- up-to-date builds, self-contained archives, only for 32-bit Emacs | ||
| 143 | 2. Libraries from the MSYS2 project on ftp.gnu.org: | ||
| 144 | http://ftp.gnu.org/gnu/emacs/windows/emacs-NN-i686-deps.zip (32-bit) | ||
| 145 | http://ftp.gnu.org/gnu/emacs/windows/emacs-NN-x86_64-deps.zip (64-bit) | ||
| 146 | where NN is the Emacs version to which the libraries correspond. | ||
| 147 | 3. The MSYS2 project -- for 64-bit Emacs: | ||
| 148 | http://msys2.github.io/ | ||
| 149 | https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/ | ||
| 150 | 4. GnuWin32 project -- very old 32-bit builds, not recommended | ||
| 151 | |||
| 152 | The libraries to download are mentioned below. Some libraries | ||
| 153 | depend on others that need to be downloaded separately from the same | ||
| 154 | site; please consult the download instructions on each site for the | ||
| 155 | details. In general, the ezwinports site mentioned above has all | ||
| 156 | the dependencies bundled in the same zip archive, so installing from | ||
| 157 | there is the easiest. For MSYS2 builds, we recommend that you | ||
| 158 | install and use the 'pacman' utility (available from the MSYS2 | ||
| 159 | site), see the instructions below -- it will automatically install | ||
| 160 | all the dependencies. | ||
| 161 | |||
| 162 | Emacs will find these libraries if the directory they are installed | ||
| 163 | in is on the PATH or in the same directory where you have emacs.exe. | ||
| 164 | Here are some specific comments about each image type: | ||
| 165 | |||
| 166 | PNG: requires the PNG reference library 1.4 or later, which will | ||
| 167 | be named libpngNN.dll or libpngNN-NN.dll. LibPNG requires zlib, | ||
| 168 | which should come from the same source as you got libpng. | ||
| 169 | Starting with Emacs 23.3, the precompiled Emacs binaries are | ||
| 170 | built with libpng 1.4.x and later, and are incompatible with | ||
| 171 | earlier versions of libpng DLLs. So if you have libpng 1.2.x, | ||
| 172 | the PNG support will not work, and you will have to download | ||
| 173 | newer versions. | ||
| 174 | |||
| 175 | JPEG: requires the Independent JPEG Group's libjpeg 6b or later, | ||
| 176 | which will be called jpeg62.dll, libjpeg.dll, jpeg-62.dll or jpeg.dll. | ||
| 177 | |||
| 178 | TIFF: requires libTIFF 3.0 or later, which will be called libtiffN.dll | ||
| 179 | or libtiff-N.dll or libtiff.dll. | ||
| 180 | |||
| 181 | GIF: requires libungif or giflib 4.1 or later, which will be | ||
| 182 | called libgif-6.dll, giflib4.dll, libungif4.dll or libungif.dll. | ||
| 183 | |||
| 184 | SVG: requires librsvg 2.x whose DLL will be called | ||
| 185 | librsvg-2-2.dll. SVG also requires several dependency DLLs, | ||
| 186 | such as Pango, Cairo, and Glib, all of them found on the | ||
| 187 | above-mentioned sites. If you download from the ezwinports | ||
| 188 | site, you need only librsvg-2.nn.mm-x-w32-bin.zip, it comes with | ||
| 189 | all the other dependencies bundled. | ||
| 190 | |||
| 191 | If you have image support DLLs under different names, customize the | ||
| 192 | value of `dynamic-library-alist'. | ||
| 193 | |||
| 194 | * GnuTLS support | ||
| 195 | |||
| 196 | GnuTLS provides SSL/TLS network support for Emacs (https, imaps and | ||
| 197 | so on.) | ||
| 198 | |||
| 199 | In order to support GnuTLS at runtime, Emacs must be able to find | ||
| 200 | the relevant DLLs during startup; failure to do so is not an error, | ||
| 201 | but GnuTLS won't be available to the running session. | ||
| 202 | |||
| 203 | You can get pre-built binaries (including any dependency DLLs) at | ||
| 204 | http://sourceforge.net/projects/ezwinports/files/ and on | ||
| 205 | http://ftp.gnu.org/gnu/emacs/windows/ | ||
| 206 | |||
| 207 | * libxml2 support | ||
| 208 | |||
| 209 | libxml2 provides HTML parsing support for Emacs, which is necessary | ||
| 210 | to use the built-in eww browser. | ||
| 211 | |||
| 212 | In order to support libxml2 at runtime, a libxml2-enabled Emacs must | ||
| 213 | be able to find the relevant DLLs during startup; failure to do so | ||
| 214 | is not an error, but libxml2 features won't be available to the | ||
| 215 | running session. | ||
| 216 | |||
| 217 | You can get pre-built binaries (including any required DLL and the | ||
| 218 | header files) at http://sourceforge.net/projects/ezwinports/files/ and | ||
| 219 | http://ftp.gnu.org/gnu/emacs/windows/ | ||
| 220 | |||
| 221 | * zlib support | ||
| 222 | |||
| 223 | zlib provides support for decompressing text, which is necessary for | ||
| 224 | the zlib-decompress-region primitive. | ||
| 225 | 134 | ||
| 226 | Prebuilt binaries of zlib DLL (for 32-bit builds of Emacs) are | 135 | In addition, as described, there is a separate dependency bundle |
| 227 | available from the ezwinports site and on ftp.gnu.org; see above for | 136 | providing support for many images formats, TLS, XML parsing and |
| 228 | the URLs. For the 64-bit DLL, see the instructions below for | 137 | compression. |
| 229 | installing from MSYS2 site. | ||
| 230 | 138 | ||
| 231 | (This library is also a prerequisite for several image libraries, so | 139 | * Installing with an existing MSYS2 installation. |
| 232 | you may already have it; look for zlib1.dll or libz-1.dll.) | ||
| 233 | 140 | ||
| 234 | * Installing 64-bit optional libraries from the MSYS2 site | 141 | You may also use Emacs with an existing MSYS2 installation by simply |
| 235 | 142 | unpacking the Emacs distribution over MSYS2. You can then use the | |
| 236 | We recommend that you use the 'pacman' utility to download the | 143 | 'pacman' utility to install dependencies. You should not use the |
| 237 | libraries you need and all of their dependencies. If you don't have | 144 | optional dependencies bundle, as this will overwrite MSYS2 files |
| 238 | 'pacman' installed, proceed as follows: | 145 | (the dependency bundle derives from MSYS2, but may be a different |
| 239 | 146 | version). | |
| 240 | . Install the MSYS2 64-bit (x86_64) installer, named | ||
| 241 | msys2-x86_64-YYYYMMDD.exe (where "YYYYMMDD" is the release date, | ||
| 242 | like 20160205) from http://msys2.github.io/. | ||
| 243 | |||
| 244 | . Run the installer, select the installation directory, make sure | ||
| 245 | "Run MSYS2 now" checkbox is checked, and click "Finish". A Bash | ||
| 246 | window will open. | ||
| 247 | |||
| 248 | . Type into the Bash window the following command: | ||
| 249 | |||
| 250 | pacman -Sy pacman | ||
| 251 | |||
| 252 | When asked whether to proceed with installation, type Y. | ||
| 253 | 147 | ||
| 254 | To install the optional libraries, start the MSYS2 Bash window and | 148 | To install the optional libraries, start the MSYS2 Bash window and |
| 255 | type the following command: | 149 | type the following command: |
| @@ -259,72 +153,36 @@ See the end of the file for license conditions. | |||
| 259 | where PACKAGES is the list of packages you want to install. The | 153 | where PACKAGES is the list of packages you want to install. The |
| 260 | full list is as follows: | 154 | full list is as follows: |
| 261 | 155 | ||
| 262 | mingw-w64-x86_64-xpm-nox mingw-w64-x86_64-libtiff mingw-w64-x86_64-giflib | 156 | mingw-w64-x86_64-giflib |
| 263 | mingw-w64-x86_64-libpng mingw-w64-x86_64-libjpeg-turbo | 157 | mingw-w64-x86_64-gnutls |
| 264 | mingw-w64-x86_64-librsvg mingw-w64-x86_64-libxml2 mingw-w64-x86_64-gnutls | 158 | mingw-w64-x86_64-libjpeg-turbo |
| 265 | mingw-w64-x86_64-zlib | 159 | mingw-w64-x86_64-libpng |
| 160 | mingw-w64-x86_64-librsvg | ||
| 161 | mingw-w64-x86_64-libtiff | ||
| 162 | mingw-w64-x86_64-libxml2 | ||
| 163 | mingw-w64-x86_64-xpm-nox | ||
| 266 | 164 | ||
| 267 | You can type any subset of this list. Once again, when asked | 165 | You can type any subset of this list. Once again, when asked |
| 268 | whether to proceed with installation, answer Y. | 166 | whether to proceed with installation, answer Y. |
| 269 | 167 | ||
| 270 | Alternatively, you could install the packages manually from this | ||
| 271 | page: | ||
| 272 | |||
| 273 | https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/ | ||
| 274 | |||
| 275 | However, the packages there are not self-contained, so you will need | ||
| 276 | to download all their dependencies as well. | ||
| 277 | |||
| 278 | After the installation, if you will be installing Emacs in a | ||
| 279 | directory different from where the DLLs were installed, we recommend | ||
| 280 | to add the directory with DLLs to your PATH, so that Emacs will be | ||
| 281 | able to find those DLLs. | ||
| 282 | |||
| 283 | * Uninstalling Emacs | 168 | * Uninstalling Emacs |
| 284 | 169 | ||
| 285 | If you should need to uninstall Emacs, simply delete all the files | 170 | If you should need to uninstall Emacs, simply delete all the files |
| 286 | and subdirectories from the directory where it was unpacked (Emacs | 171 | and subdirectories from the directory where it was unpacked (Emacs |
| 287 | does not install or update any files in system directories or | 172 | does not install or update any files in system directories or |
| 288 | anywhere else). If you ran the addpm.exe program to create the | 173 | anywhere else). |
| 289 | registry entries and the Start menu icon, then you can remove the | ||
| 290 | registry entries using regedit. All of the settings are written | ||
| 291 | under the Software\GNU\Emacs key in HKEY_LOCAL_MACHINE, or if you | ||
| 292 | didn't have administrator privileges when you installed, the same | ||
| 293 | key in HKEY_CURRENT_USER. Just delete the whole Software\GNU\Emacs | ||
| 294 | key. | ||
| 295 | |||
| 296 | The Start menu entry can be removed by right-clicking on the Taskbar | ||
| 297 | and selecting Properties, then using the Remove option on the Start | ||
| 298 | Menu Programs page. (If you installed under an account with | ||
| 299 | administrator privileges, then you need to click the Advanced button | ||
| 300 | and look for the Gnu Emacs menu item under All Users.) | ||
| 301 | 174 | ||
| 302 | * Troubleshooting | 175 | If you ran the addpm.exe program to create the Start menu icon, this |
| 303 | 176 | can be removed by right-clicking and "Uninstall". | |
| 304 | Unpacking the distributions | ||
| 305 | |||
| 306 | If you encounter trouble trying to run Emacs, there are a number of | ||
| 307 | possible causes. Check the following for indications that the | ||
| 308 | distribution was not corrupted by the tools used to unpack it: | ||
| 309 | |||
| 310 | * Be sure to disable CR/LF translation or the executables will | ||
| 311 | be unusable. Older versions of WinZipNT would enable this | ||
| 312 | translation by default. If you are using WinZipNT, disable it. | ||
| 313 | (I don't have WinZipNT myself, and I do not know the specific | ||
| 314 | commands necessary to disable it.) | ||
| 315 | |||
| 316 | * Check that filenames were not truncated to 8.3. For example, | ||
| 317 | there should be a file lisp\abbrevlist.elc; if this has been | ||
| 318 | truncated to abbrevli.elc, your distribution has been corrupted | ||
| 319 | while unpacking and Emacs will not start. | ||
| 320 | 177 | ||
| 321 | * On Windows 9X, make sure you have the UNICOWS.DLL library either | 178 | Finally, addpm.exe also creates a few registry entries; these can be |
| 322 | in the same directory where you have emacs.exe or in the | 179 | safely left, but if you really wish to remove them, all of the |
| 323 | directory where system-wide DLLs are kept. | 180 | settings are written under the Software\GNU\Emacs key in |
| 181 | HKEY_LOCAL_MACHINE, or if you didn't have administrator privileges | ||
| 182 | when you installed, the same key in HKEY_CURRENT_USER. Just delete | ||
| 183 | the whole Software\GNU\Emacs key. | ||
| 324 | 184 | ||
| 325 | If you believe you have unpacked the distributions correctly and are | 185 | * Troubleshooting |
| 326 | still encountering problems, see the section on Further Information | ||
| 327 | below. | ||
| 328 | 186 | ||
| 329 | Virus scanners | 187 | Virus scanners |
| 330 | 188 | ||
| @@ -345,31 +203,21 @@ See the end of the file for license conditions. | |||
| 345 | 203 | ||
| 346 | http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Microsoft-Windows | 204 | http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Microsoft-Windows |
| 347 | 205 | ||
| 348 | In addition to the manual, there is a mailing list for discussing | 206 | In addition to the manual, there is a mailing list for help with |
| 349 | issues related to the Windows port of Emacs. For information about | 207 | Emacs here: |
| 350 | the list, see this Web page: | ||
| 351 | 208 | ||
| 352 | http://lists.gnu.org/mailman/listinfo/help-emacs-windows | 209 | https://lists.gnu.org/mailman/listinfo/help-gnu-emacs |
| 353 | 210 | ||
| 354 | To ask questions on the mailing list, send email to | 211 | To ask questions on the mailing list, send email to |
| 355 | help-emacs-windows@gnu.org. (You don't need to subscribe for that.) | 212 | help-gnu-emacs@gnu.org. |
| 356 | To subscribe to the list or unsubscribe from it, fill the form you | ||
| 357 | find at http://lists.gnu.org/mailman/listinfo/help-emacs-windows as | ||
| 358 | explained there. | ||
| 359 | |||
| 360 | Another valuable source of information and help which should not be | ||
| 361 | overlooked is the various Usenet news groups dedicated to Emacs. | ||
| 362 | These are particularly good for help with general issues which aren't | ||
| 363 | specific to the Windows port of Emacs. The main news groups to use | ||
| 364 | for seeking help are: | ||
| 365 | 213 | ||
| 366 | gnu.emacs.help | 214 | And a more specific one for issues related to the Windows port of |
| 367 | comp.emacs | 215 | Emacs. For information about the list, see this Web page: |
| 368 | 216 | ||
| 369 | There are also fairly regular postings and announcements of new or | 217 | http://lists.gnu.org/mailman/listinfo/help-emacs-windows |
| 370 | updated Emacs packages on this group: | ||
| 371 | 218 | ||
| 372 | gnu.emacs.sources | 219 | To ask questions on the mailing list, send email to |
| 220 | help-emacs-windows@gnu.org. | ||
| 373 | 221 | ||
| 374 | * Reporting bugs | 222 | * Reporting bugs |
| 375 | 223 | ||
diff --git a/src/emacs.c b/src/emacs.c index 13378c4c3b0..b74df21196a 100644 --- a/src/emacs.c +++ b/src/emacs.c | |||
| @@ -1193,7 +1193,7 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem | |||
| 1193 | 1193 | ||
| 1194 | /* Called before syms_of_fileio, because it sets up Qerror_condition. */ | 1194 | /* Called before syms_of_fileio, because it sets up Qerror_condition. */ |
| 1195 | syms_of_data (); | 1195 | syms_of_data (); |
| 1196 | syms_of_fns (); /* Before syms_of_charset which uses hashtables. */ | 1196 | syms_of_fns (); /* Before syms_of_charset which uses hash tables. */ |
| 1197 | syms_of_fileio (); | 1197 | syms_of_fileio (); |
| 1198 | /* Before syms_of_coding to initialize Vgc_cons_threshold. */ | 1198 | /* Before syms_of_coding to initialize Vgc_cons_threshold. */ |
| 1199 | syms_of_alloc (); | 1199 | syms_of_alloc (); |
diff --git a/src/lread.c b/src/lread.c index 58d518ce40b..eab9b8bea08 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -2574,7 +2574,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list) | |||
| 2574 | c = READCHAR; | 2574 | c = READCHAR; |
| 2575 | if (c == '(') | 2575 | if (c == '(') |
| 2576 | { | 2576 | { |
| 2577 | /* Accept extended format for hashtables (extensible to | 2577 | /* Accept extended format for hash tables (extensible to |
| 2578 | other types), e.g. | 2578 | other types), e.g. |
| 2579 | #s(hash-table size 2 test equal data (k1 v1 k2 v2)) */ | 2579 | #s(hash-table size 2 test equal data (k1 v1 k2 v2)) */ |
| 2580 | Lisp_Object tmp = read_list (0, readcharfun); | 2580 | Lisp_Object tmp = read_list (0, readcharfun); |
| @@ -2620,10 +2620,10 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list) | |||
| 2620 | if (!NILP (params[param_count + 1])) | 2620 | if (!NILP (params[param_count + 1])) |
| 2621 | param_count += 2; | 2621 | param_count += 2; |
| 2622 | 2622 | ||
| 2623 | /* This is the hashtable data. */ | 2623 | /* This is the hash table data. */ |
| 2624 | data = Fplist_get (tmp, Qdata); | 2624 | data = Fplist_get (tmp, Qdata); |
| 2625 | 2625 | ||
| 2626 | /* Now use params to make a new hashtable and fill it. */ | 2626 | /* Now use params to make a new hash table and fill it. */ |
| 2627 | ht = Fmake_hash_table (param_count, params); | 2627 | ht = Fmake_hash_table (param_count, params); |
| 2628 | 2628 | ||
| 2629 | while (CONSP (data)) | 2629 | while (CONSP (data)) |
| @@ -2631,7 +2631,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list) | |||
| 2631 | key = XCAR (data); | 2631 | key = XCAR (data); |
| 2632 | data = XCDR (data); | 2632 | data = XCDR (data); |
| 2633 | if (!CONSP (data)) | 2633 | if (!CONSP (data)) |
| 2634 | error ("Odd number of elements in hashtable data"); | 2634 | error ("Odd number of elements in hash table data"); |
| 2635 | val = XCAR (data); | 2635 | val = XCAR (data); |
| 2636 | data = XCDR (data); | 2636 | data = XCDR (data); |
| 2637 | Fputhash (key, val, ht); | 2637 | Fputhash (key, val, ht); |
diff --git a/src/search.c b/src/search.c index 25d81f2baf6..e597c33a0fb 100644 --- a/src/search.c +++ b/src/search.c | |||
| @@ -2022,20 +2022,27 @@ boyer_moore (EMACS_INT n, unsigned char *base_pat, | |||
| 2022 | cursor += dirlen - i - direction; /* fix cursor */ | 2022 | cursor += dirlen - i - direction; /* fix cursor */ |
| 2023 | if (i + direction == 0) | 2023 | if (i + direction == 0) |
| 2024 | { | 2024 | { |
| 2025 | ptrdiff_t position, start, end, cursor_off; | 2025 | ptrdiff_t position, start, end; |
| 2026 | #ifdef REL_ALLOC | ||
| 2027 | ptrdiff_t cursor_off; | ||
| 2028 | #endif | ||
| 2026 | 2029 | ||
| 2027 | cursor -= direction; | 2030 | cursor -= direction; |
| 2028 | 2031 | ||
| 2029 | position = pos_byte + cursor - p2 + ((direction > 0) | 2032 | position = pos_byte + cursor - p2 + ((direction > 0) |
| 2030 | ? 1 - len_byte : 0); | 2033 | ? 1 - len_byte : 0); |
| 2034 | #ifdef REL_ALLOC | ||
| 2031 | /* set_search_regs might call malloc, which could | 2035 | /* set_search_regs might call malloc, which could |
| 2032 | cause ralloc.c relocate buffer text. We need to | 2036 | cause ralloc.c relocate buffer text. We need to |
| 2033 | update pointers into buffer text due to that. */ | 2037 | update pointers into buffer text due to that. */ |
| 2034 | cursor_off = cursor - p2; | 2038 | cursor_off = cursor - p2; |
| 2039 | #endif | ||
| 2035 | set_search_regs (position, len_byte); | 2040 | set_search_regs (position, len_byte); |
| 2041 | #ifdef REL_ALLOC | ||
| 2036 | p_limit = BYTE_POS_ADDR (limit); | 2042 | p_limit = BYTE_POS_ADDR (limit); |
| 2037 | p2 = BYTE_POS_ADDR (pos_byte); | 2043 | p2 = BYTE_POS_ADDR (pos_byte); |
| 2038 | cursor = p2 + cursor_off; | 2044 | cursor = p2 + cursor_off; |
| 2045 | #endif | ||
| 2039 | 2046 | ||
| 2040 | if (NILP (Vinhibit_changing_match_data)) | 2047 | if (NILP (Vinhibit_changing_match_data)) |
| 2041 | { | 2048 | { |