Merge from origin/emacs-25
acae275
; Spelling fixesd8fac73
Update README for precompiled windows Emacs.23570fd
Clarify documentation of 'vc-responsible-backend' wrt symlinksf708cb2
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 key0221b7a
Mark relocation workarounds with REL_ALLOC
This commit is contained in:
commit
ae0a1a890e
25 changed files with 145 additions and 265 deletions
|
@ -223,7 +223,7 @@ basic editing operations under Bazaar.
|
|||
@cindex SRC
|
||||
@cindex src
|
||||
@item
|
||||
SRC (src) is RCS, reloaded - a specialized version-control system
|
||||
SRC (src) is RCS, reloaded---a specialized version-control system
|
||||
designed for single-file projects worked on by only one person. It
|
||||
allows multiple files with independent version-control histories to
|
||||
exist in one directory, and is thus particularly well suited for
|
||||
|
|
|
@ -1148,6 +1148,21 @@ compares the truenames of the two directories. If @var{dir} does not
|
|||
name an existing directory, the return value is @code{nil}.
|
||||
@end defun
|
||||
|
||||
@defun vc-responsible-backend file
|
||||
This function determines the responsible VC backend of the given
|
||||
@var{file}. For example, if @file{emacs.c} is a file tracked by Git,
|
||||
@w{@code{(vc-responsible-backend "emacs.c")}} returns @samp{Git}.
|
||||
Note that if @var{file} is a symbolic link,
|
||||
@code{vc-responsible-backend} will not resolve it---the backend of the
|
||||
symbolic link file itself is reported. To get the backend VC of the
|
||||
file to which @var{file} refers, wrap @var{file} with a symbolic link
|
||||
resolving function such as @code{file-chase-links}:
|
||||
|
||||
@smallexample
|
||||
(vc-responsible-backend (file-chase-links "emacs.c"))
|
||||
@end smallexample
|
||||
@end defun
|
||||
|
||||
@node File Attributes
|
||||
@subsection File Attributes
|
||||
@cindex file attributes
|
||||
|
|
|
@ -2934,7 +2934,9 @@ This function removes @var{keywords} from @code{font-lock-keywords}
|
|||
for the current buffer or for major mode @var{mode}. As in
|
||||
@code{font-lock-add-keywords}, @var{mode} should be a major mode
|
||||
command name or @code{nil}. All the caveats and requirements for
|
||||
@code{font-lock-add-keywords} apply here too.
|
||||
@code{font-lock-add-keywords} apply here too. The argument
|
||||
@var{keywords} must exactly match the one used by the corresponding
|
||||
@code{font-lock-add-keywords}.
|
||||
@end defun
|
||||
|
||||
For example, the following code adds two fontification patterns for C
|
||||
|
|
|
@ -5331,7 +5331,7 @@
|
|||
|
||||
2010-07-09 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* dbus.texi (Top): Introduce Index. Emphasize "nil" whereever
|
||||
* dbus.texi (Top): Introduce Index. Emphasize "nil" wherever
|
||||
forgotten.
|
||||
(Type Conversion): Precise conversion of natural numbers.
|
||||
(Errors and Events): Add "debugging" to concept index. Add variable
|
||||
|
|
|
@ -70,7 +70,8 @@ To read about advanced Info commands, type @kbd{n} twice. This
|
|||
brings you to @cite{Advanced Info Commands}, skipping over the ``Getting
|
||||
Started'' chapter.
|
||||
|
||||
Type @kbd{H} to see a summary of all available commands.
|
||||
If you are using Emacs, type @kbd{?} to see a summary of all available
|
||||
commands. In the stand-alone Info reader, type @kbd{H} instead.
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
|
@ -393,16 +394,18 @@ the @key{BACKSPACE} key (or @key{DEL}) many times. You can also type
|
|||
@end format
|
||||
|
||||
@kindex ? @r{(Info mode)}
|
||||
@kindex H @r{(stand-alone Info reader)}
|
||||
@findex Info-summary
|
||||
You have just learned a considerable number of commands. If you
|
||||
want to use one but have trouble remembering which, you should type
|
||||
@kbd{?}, which displays a brief list of commands. When you are
|
||||
finished looking at the list, make it go away by typing @key{SPC}
|
||||
repeatedly.
|
||||
@kbd{?} (@kbd{H} in the stand-alone Info reader), which displays a
|
||||
brief list of commands. When you are finished looking at the list,
|
||||
make it go away by typing @key{SPC} repeatedly.
|
||||
|
||||
@format
|
||||
>> Type a @key{?} now. Press @key{SPC} to see consecutive screenfuls of
|
||||
the list until finished. Then type @key{SPC} several times. If
|
||||
>> Type a @key{?} (or @key{H} in the stand-alone Info reader) now.
|
||||
Press @key{SPC} to see consecutive screenfuls of the list
|
||||
until finished. Then type @key{SPC} several times. If
|
||||
you are using Emacs, the help will then go away automatically.
|
||||
If you are using the stand-alone Info reader, type @kbd{x} to
|
||||
return here.
|
||||
|
|
|
@ -1077,7 +1077,7 @@ major changes for implementers, and module writers:
|
|||
corresponding hook variables.
|
||||
|
||||
The mapping of server commands to hook variables is no longer
|
||||
done via `erc-event-to-hook', but through an #'equal hashtable,
|
||||
done via `erc-event-to-hook', but through an #'equal hash table,
|
||||
`erc-server-responses'. In order to find a hook you do:
|
||||
|
||||
(erc-get-hook command)
|
||||
|
|
|
@ -551,7 +551,7 @@ System (CLOS). It is used by the other CEDET packages.
|
|||
|
||||
** js.el is a new major mode for JavaScript files.
|
||||
|
||||
** imap-hash.el is a new library to address IMAP mailboxes as hashtables.
|
||||
** imap-hash.el is a new library to address IMAP mailboxes as hash tables.
|
||||
|
||||
|
||||
* Incompatible Lisp Changes in Emacs 23.2
|
||||
|
|
2
etc/TODO
2
etc/TODO
|
@ -38,7 +38,7 @@ stay within exec_byte_code.
|
|||
** Add new 'switch' byte-code
|
||||
This byte-code would take one argument from the stack (the object to test)
|
||||
and one argument from the constant-pool (a switch table, implemented as an
|
||||
eq-hashtable) and would jump to the "label" contained in the hashtable.
|
||||
'eq' hash table) and would jump to the "label" contained in the hash table.
|
||||
|
||||
Then add a 'case' special-form that can be compiled to this byte-code.
|
||||
This would behave just like cl-case, but instead of expanding to cond+eq it
|
||||
|
|
|
@ -124,12 +124,12 @@ based on `ede-locate-setup-options'."
|
|||
t)
|
||||
|
||||
(cl-defmethod ede-locate-flush-hash ((loc ede-locate-base))
|
||||
"For LOC, flush hashtable and start from scratch."
|
||||
"For LOC, flush hash table and start from scratch."
|
||||
(oset loc hash (make-hash-table :test 'equal)))
|
||||
|
||||
(cl-defmethod ede-locate-file-in-hash ((loc ede-locate-base)
|
||||
filestring)
|
||||
"For LOC, is the file FILESTRING in our hashtable?"
|
||||
"For LOC, is the file FILESTRING in our hash table?"
|
||||
(gethash filestring (oref loc hash)))
|
||||
|
||||
(cl-defmethod ede-locate-add-file-to-hash ((loc ede-locate-base)
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
(stream :initform nil
|
||||
:documentation
|
||||
"The searchable tag stream for this cache.
|
||||
NOTE: Can I get rid of this? Use a hashtable instead?")
|
||||
NOTE: Can I get rid of this? Use a hash table instead?")
|
||||
(dependants :initform nil
|
||||
:documentation
|
||||
"Any other object that is dependent on typecache results.
|
||||
|
|
|
@ -460,7 +460,7 @@ See `defclass' for more information."
|
|||
(cl--slot-descriptor-initform (aref slots i)))))
|
||||
(setf (eieio--class-class-allocation-values newc) v))
|
||||
|
||||
;; Attach slot symbols into a hashtable, and store the index of
|
||||
;; Attach slot symbols into a hash table, and store the index of
|
||||
;; this slot as the value this table.
|
||||
(let* ((slots (eieio--class-slots newc))
|
||||
;; (cslots (eieio--class-class-slots newc))
|
||||
|
|
|
@ -497,7 +497,7 @@ Argument NUM is the number of EOL marks to move."
|
|||
;;; of line, etc.) it takes a bit of special handling.
|
||||
;;;
|
||||
;;; The variable edt-word-entities contains a list of characters which
|
||||
;;; are to be viewed as distinct words where ever they appear in the
|
||||
;;; are to be viewed as distinct words wherever they appear in the
|
||||
;;; buffer. This emulates the EDT line mode command SET ENTITY WORD.
|
||||
|
||||
|
||||
|
|
|
@ -108,7 +108,7 @@
|
|||
;;;; Variables and options
|
||||
|
||||
(defvar erc-server-responses (make-hash-table :test #'equal)
|
||||
"Hashtable mapping server responses to their handler hooks.")
|
||||
"Hash table mapping server responses to their handler hooks.")
|
||||
|
||||
(cl-defstruct (erc-response (:conc-name erc-response.))
|
||||
(unparsed "" :type string)
|
||||
|
@ -1061,7 +1061,7 @@ See also `erc-server-responses'."
|
|||
(defun erc-call-hooks (process message)
|
||||
"Call hooks associated with MESSAGE in PROCESS.
|
||||
|
||||
Finds hooks by looking in the `erc-server-responses' hashtable."
|
||||
Finds hooks by looking in the `erc-server-responses' hash table."
|
||||
(let ((hook (or (erc-get-hook (erc-response.command message))
|
||||
'erc-default-server-functions)))
|
||||
(run-hook-with-args-until-success hook process message)
|
||||
|
@ -1218,7 +1218,7 @@ add things to `%s' instead."
|
|||
(put ',fn-name 'definition-name ',name)
|
||||
(put ',hook-name 'definition-name ',name)
|
||||
|
||||
;; Hashtable map of responses to hook variables
|
||||
;; Hash table map of responses to hook variables
|
||||
,@(cl-loop for response in (cons name aliases)
|
||||
for var in (cons hook-name var-alternates)
|
||||
collect `(puthash ,(format "%s" response) ',var
|
||||
|
|
|
@ -227,7 +227,7 @@
|
|||
table))
|
||||
|
||||
(defvar ucs-normalize-decomposition-pair-to-primary-composite nil
|
||||
"Hashtable of decomposed pair to primary composite.
|
||||
"Hash table of decomposed pair to primary composite.
|
||||
Note that Hangul are excluded.")
|
||||
(setq ucs-normalize-decomposition-pair-to-primary-composite
|
||||
(ucs-normalize-make-hash-table-from-alist
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
(eval-and-compile
|
||||
|
||||
(defun indian-regexp-of-hashtbl-keys (hashtbl)
|
||||
"Returns the regular expression of hashtable keys."
|
||||
"Return the regular expression of hash table keys."
|
||||
(let (keys)
|
||||
(maphash (lambda (key val) (push key keys)) hashtbl)
|
||||
(regexp-opt keys)))
|
||||
|
|
|
@ -1859,7 +1859,7 @@ PROC is used to convert the value to actual data."
|
|||
(defun mh-index-update-maps (folder &optional origin-map)
|
||||
"Annotate all as yet unannotated messages in FOLDER with their MD5 hash.
|
||||
As a side effect msg -> checksum map is updated. Optional
|
||||
argument ORIGIN-MAP is a hashtable which maps each message in the
|
||||
argument ORIGIN-MAP is a hash table which maps each message in the
|
||||
index folder to the original folder and message from whence it
|
||||
was copied. If present the checksum -> (origin-folder,
|
||||
origin-index) map is updated too."
|
||||
|
@ -1913,7 +1913,7 @@ origin-index) map is updated too."
|
|||
(defun mh-index-update-single-msg (msg checksum origin-map)
|
||||
"Update various maps for one message.
|
||||
MSG is a index folder message, CHECKSUM its MD5 hash and
|
||||
ORIGIN-MAP, if non-nil, a hashtable containing which maps each
|
||||
ORIGIN-MAP, if non-nil, a hash table containing which maps each
|
||||
message in the index folder to the folder and message that it was
|
||||
copied from. The function updates the hash tables
|
||||
`mh-index-msg-checksum-map' and `mh-index-checksum-origin-map'.
|
||||
|
|
|
@ -89,11 +89,11 @@
|
|||
(real-child-p t))
|
||||
|
||||
(defvar mh-thread-id-hash nil
|
||||
"Hashtable used to canonicalize message identifiers.")
|
||||
"Hash table used to canonicalize message identifiers.")
|
||||
(make-variable-buffer-local 'mh-thread-id-hash)
|
||||
|
||||
(defvar mh-thread-subject-hash nil
|
||||
"Hashtable used to canonicalize subject strings.")
|
||||
"Hash table used to canonicalize subject strings.")
|
||||
(make-variable-buffer-local 'mh-thread-subject-hash)
|
||||
|
||||
(defvar mh-thread-id-table nil
|
||||
|
@ -109,11 +109,11 @@
|
|||
(make-variable-buffer-local 'mh-thread-id-index-map)
|
||||
|
||||
(defvar mh-thread-subject-container-hash nil
|
||||
"Hashtable used to group messages by subject.")
|
||||
"Hash table used to group messages by subject.")
|
||||
(make-variable-buffer-local 'mh-thread-subject-container-hash)
|
||||
|
||||
(defvar mh-thread-duplicates nil
|
||||
"Hashtable used to associate messages with the same message identifier.")
|
||||
"Hash table used to associate messages with the same message identifier.")
|
||||
(make-variable-buffer-local 'mh-thread-duplicates)
|
||||
|
||||
(defvar mh-thread-history ()
|
||||
|
|
|
@ -365,10 +365,7 @@ If non-nil, then open the URL in a new tab rather than a new window if
|
|||
(defcustom browse-url-firefox-new-window-is-tab nil
|
||||
"Whether to open up new windows in a tab or a new window.
|
||||
If non-nil, then open the URL in a new tab rather than a new window if
|
||||
`browse-url-firefox' is asked to open it in a new window.
|
||||
|
||||
This option is currently ignored on MS-Windows, since the necessary
|
||||
functionality is not available there."
|
||||
`browse-url-firefox' is asked to open it in a new window."
|
||||
:type 'boolean
|
||||
:group 'browse-url)
|
||||
|
||||
|
|
|
@ -6783,9 +6783,13 @@ are interchanged."
|
|||
(transpose-subr 'forward-word arg))
|
||||
|
||||
(defun transpose-sexps (arg)
|
||||
"Like \\[transpose-words] but applies to sexps.
|
||||
Does not work on a sexp that point is in the middle of
|
||||
if it is a list or string."
|
||||
"Like \\[transpose-chars] (`transpose-chars'), but applies to sexps.
|
||||
Unlike `transpose-words', point must be between the two sexps and not
|
||||
in the middle of a sexp to be transposed.
|
||||
With non-zero prefix arg ARG, effect is to take the sexp before point
|
||||
and drag it forward past ARG other sexps (backward if ARG is negative).
|
||||
If ARG is zero, the sexps ending at or after point and at or after mark
|
||||
are interchanged."
|
||||
(interactive "*p")
|
||||
(transpose-subr
|
||||
(lambda (arg)
|
||||
|
|
|
@ -910,7 +910,7 @@ KEY is a string or vector representing a sequence of keystrokes."
|
|||
|
||||
(defun substitute-key-definition (olddef newdef keymap &optional oldmap prefix)
|
||||
"Replace OLDDEF with NEWDEF for any keys in KEYMAP now defined as OLDDEF.
|
||||
In other words, OLDDEF is replaced with NEWDEF where ever it appears.
|
||||
In other words, OLDDEF is replaced with NEWDEF wherever it appears.
|
||||
Alternatively, if optional fourth argument OLDMAP is specified, we redefine
|
||||
in KEYMAP as NEWDEF those keys which are defined as OLDDEF in OLDMAP.
|
||||
|
||||
|
|
|
@ -959,7 +959,11 @@ use."
|
|||
If FILE is already registered, return the
|
||||
backend of FILE. If FILE is not registered, then the
|
||||
first backend in `vc-handled-backends' that declares itself
|
||||
responsible for FILE is returned."
|
||||
responsible for FILE is returned.
|
||||
|
||||
Note that if FILE is a symbolic link, it will not be resolved --
|
||||
the responsible backend system for the symbolic link itself will
|
||||
be reported."
|
||||
(or (and (not (file-directory-p file)) (vc-backend file))
|
||||
(catch 'found
|
||||
;; First try: find a responsible backend. If this is for registration,
|
||||
|
|
292
nt/README.W32
292
nt/README.W32
|
@ -3,24 +3,30 @@ See the end of the file for license conditions.
|
|||
|
||||
Emacs for Windows
|
||||
|
||||
This README.W32 file describes how to set up and run a precompiled
|
||||
This README file describes how to set up and run a precompiled
|
||||
distribution of GNU Emacs for Windows. You can find the precompiled
|
||||
distribution on the ftp.gnu.org server and its mirrors:
|
||||
|
||||
ftp://ftp.gnu.org/gnu/emacs/windows/
|
||||
ftp://ftp.gnu.org/gnu/emacs/windows/
|
||||
|
||||
This server contains other distributions, including the full Emacs
|
||||
source distribution, as well as older releases of Emacs for Windows.
|
||||
|
||||
Information on how to compile Emacs from sources on Windows is in
|
||||
the files README and INSTALL in the nt/ sub-directory of the
|
||||
top-level Emacs directory in the source distribution. If you
|
||||
received this file as part of the Emacs source distribution, and are
|
||||
looking for information on how to build Emacs on MS-Windows, please
|
||||
read those 2 files and not this one.
|
||||
top-level Emacs directory in the source distribution, as is this
|
||||
file as README.precompiled. If you received this file as part of
|
||||
the Emacs source distribution, and are looking for information on
|
||||
how to build Emacs on MS-Windows, please read those 2 files and not
|
||||
this one.
|
||||
|
||||
* Preliminaries
|
||||
|
||||
There are two binary distributions named
|
||||
emacs-n-x86_64-w64-mingw32.zip and
|
||||
emacs-n-i686-w64-mingw32.zip. These are for 64-bit and 32-bit
|
||||
machines respectively.
|
||||
|
||||
The binary distribution has these top-level directories:
|
||||
+ bin
|
||||
+ libexec
|
||||
|
@ -30,33 +36,24 @@ See the end of the file for license conditions.
|
|||
* Setting up Emacs
|
||||
|
||||
To install Emacs, simply unpack the binary package into a directory
|
||||
of your choice. To complete the installation process, you can
|
||||
optionally run the program addpm.exe in the bin subdirectory. This
|
||||
will put an icon for Emacs in the Start Menu under
|
||||
"Start -> Programs -> Gnu Emacs".
|
||||
of your choice. If you use File Explorer and "Extract" by default
|
||||
this will be in a top-level directory with the same name as the zip
|
||||
file.
|
||||
|
||||
Some users have reported that the Start Menu item is not created for
|
||||
them. If this happens, just create your own shortcut to runemacs.exe,
|
||||
eg. by dragging it on to the desktop or the Start button.
|
||||
We also provide a set of optional dependencies, in
|
||||
emacs-25-x86_64-deps.zip or emacs-25-i686-deps.zip respectively,
|
||||
which provide Emacs with an number of additional capabilities. To
|
||||
add these, unpack them directly over the emacs directory structure.
|
||||
|
||||
Note that running addpm is now an optional step; Emacs is able to
|
||||
locate all of its files without needing any information to be set in
|
||||
the environment or the registry, although such settings will still
|
||||
be obeyed if present. This is convenient for running Emacs on a
|
||||
machine which disallows registry changes, or on which software
|
||||
should not be installed. For instance, you can now run Emacs
|
||||
directly from a CD or USB flash drive without copying or installing
|
||||
Finally, and also optionally, you can run the program addpm.exe in
|
||||
the bin subdirectory which will place an icon for Emacs on the start
|
||||
page.
|
||||
|
||||
Emacs is completely portable. You can create your own shortcut to
|
||||
runemacs.exe and place this wherever you find it convenient, or
|
||||
run it from a USB or network drive without copying or installing
|
||||
anything on the machine itself.
|
||||
|
||||
* Prerequisites for Windows 9X
|
||||
|
||||
To run Emacs on Windows 9X (Windows 95/98/Me), you will need to have
|
||||
the Microsoft Layer for Unicode (MSLU) installed. It can be
|
||||
downloaded from the Microsoft site, and comes in a form of a single
|
||||
dynamic library called UNICOWS.DLL. If this library is not
|
||||
accessible to Emacs, it will pop up a dialog saying that it cannot
|
||||
find the library, and will refuse to start up.
|
||||
|
||||
* Starting Emacs
|
||||
|
||||
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.
|
|||
+ emacsclientw.exe - A version of emacsclient that does not open
|
||||
a command-line window.
|
||||
|
||||
+ addpm.exe - A basic installer that creates Start Menu icons for Emacs.
|
||||
Running this is optional.
|
||||
+ addpm.exe - The installer that adds Emacs to "Start".
|
||||
|
||||
+ ctags.exe, etags.exe - Tools for generating tag files. See the
|
||||
`Tags' node of the Emacs manual.
|
||||
|
@ -128,128 +124,26 @@ See the end of the file for license conditions.
|
|||
+ update-game-score.exe - A utility for updating the score files of
|
||||
Emacs games.
|
||||
|
||||
* Image support
|
||||
* Optional Dependencies
|
||||
|
||||
Emacs has built in support for XBM and PPM/PGM/PBM images, and the
|
||||
libXpm library is bundled, providing XPM support (required for color
|
||||
toolbar icons and splash screen). Source for libXpm should be available
|
||||
from the same place from which you got this binary distribution.
|
||||
toolbar icons and splash screen). Source for libXpm should be
|
||||
available from the same place from which you got this binary
|
||||
distribution.
|
||||
|
||||
Emacs can also support some other image formats with appropriate
|
||||
libraries. These libraries are all available on the following sites:
|
||||
In addition, as described, there is a separate dependency bundle
|
||||
providing support for many images formats, TLS, XML parsing and
|
||||
compression.
|
||||
|
||||
1. http://sourceforge.net/projects/ezwinports/files/
|
||||
-- up-to-date builds, self-contained archives, only for 32-bit Emacs
|
||||
2. Libraries from the MSYS2 project on ftp.gnu.org:
|
||||
http://ftp.gnu.org/gnu/emacs/windows/emacs-NN-i686-deps.zip (32-bit)
|
||||
http://ftp.gnu.org/gnu/emacs/windows/emacs-NN-x86_64-deps.zip (64-bit)
|
||||
where NN is the Emacs version to which the libraries correspond.
|
||||
3. The MSYS2 project -- for 64-bit Emacs:
|
||||
http://msys2.github.io/
|
||||
https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/
|
||||
4. GnuWin32 project -- very old 32-bit builds, not recommended
|
||||
* Installing with an existing MSYS2 installation.
|
||||
|
||||
The libraries to download are mentioned below. Some libraries
|
||||
depend on others that need to be downloaded separately from the same
|
||||
site; please consult the download instructions on each site for the
|
||||
details. In general, the ezwinports site mentioned above has all
|
||||
the dependencies bundled in the same zip archive, so installing from
|
||||
there is the easiest. For MSYS2 builds, we recommend that you
|
||||
install and use the 'pacman' utility (available from the MSYS2
|
||||
site), see the instructions below -- it will automatically install
|
||||
all the dependencies.
|
||||
|
||||
Emacs will find these libraries if the directory they are installed
|
||||
in is on the PATH or in the same directory where you have emacs.exe.
|
||||
Here are some specific comments about each image type:
|
||||
|
||||
PNG: requires the PNG reference library 1.4 or later, which will
|
||||
be named libpngNN.dll or libpngNN-NN.dll. LibPNG requires zlib,
|
||||
which should come from the same source as you got libpng.
|
||||
Starting with Emacs 23.3, the precompiled Emacs binaries are
|
||||
built with libpng 1.4.x and later, and are incompatible with
|
||||
earlier versions of libpng DLLs. So if you have libpng 1.2.x,
|
||||
the PNG support will not work, and you will have to download
|
||||
newer versions.
|
||||
|
||||
JPEG: requires the Independent JPEG Group's libjpeg 6b or later,
|
||||
which will be called jpeg62.dll, libjpeg.dll, jpeg-62.dll or jpeg.dll.
|
||||
|
||||
TIFF: requires libTIFF 3.0 or later, which will be called libtiffN.dll
|
||||
or libtiff-N.dll or libtiff.dll.
|
||||
|
||||
GIF: requires libungif or giflib 4.1 or later, which will be
|
||||
called libgif-6.dll, giflib4.dll, libungif4.dll or libungif.dll.
|
||||
|
||||
SVG: requires librsvg 2.x whose DLL will be called
|
||||
librsvg-2-2.dll. SVG also requires several dependency DLLs,
|
||||
such as Pango, Cairo, and Glib, all of them found on the
|
||||
above-mentioned sites. If you download from the ezwinports
|
||||
site, you need only librsvg-2.nn.mm-x-w32-bin.zip, it comes with
|
||||
all the other dependencies bundled.
|
||||
|
||||
If you have image support DLLs under different names, customize the
|
||||
value of `dynamic-library-alist'.
|
||||
|
||||
* GnuTLS support
|
||||
|
||||
GnuTLS provides SSL/TLS network support for Emacs (https, imaps and
|
||||
so on.)
|
||||
|
||||
In order to support GnuTLS at runtime, Emacs must be able to find
|
||||
the relevant DLLs during startup; failure to do so is not an error,
|
||||
but GnuTLS won't be available to the running session.
|
||||
|
||||
You can get pre-built binaries (including any dependency DLLs) at
|
||||
http://sourceforge.net/projects/ezwinports/files/ and on
|
||||
http://ftp.gnu.org/gnu/emacs/windows/
|
||||
|
||||
* libxml2 support
|
||||
|
||||
libxml2 provides HTML parsing support for Emacs, which is necessary
|
||||
to use the built-in eww browser.
|
||||
|
||||
In order to support libxml2 at runtime, a libxml2-enabled Emacs must
|
||||
be able to find the relevant DLLs during startup; failure to do so
|
||||
is not an error, but libxml2 features won't be available to the
|
||||
running session.
|
||||
|
||||
You can get pre-built binaries (including any required DLL and the
|
||||
header files) at http://sourceforge.net/projects/ezwinports/files/ and
|
||||
http://ftp.gnu.org/gnu/emacs/windows/
|
||||
|
||||
* zlib support
|
||||
|
||||
zlib provides support for decompressing text, which is necessary for
|
||||
the zlib-decompress-region primitive.
|
||||
|
||||
Prebuilt binaries of zlib DLL (for 32-bit builds of Emacs) are
|
||||
available from the ezwinports site and on ftp.gnu.org; see above for
|
||||
the URLs. For the 64-bit DLL, see the instructions below for
|
||||
installing from MSYS2 site.
|
||||
|
||||
(This library is also a prerequisite for several image libraries, so
|
||||
you may already have it; look for zlib1.dll or libz-1.dll.)
|
||||
|
||||
* Installing 64-bit optional libraries from the MSYS2 site
|
||||
|
||||
We recommend that you use the 'pacman' utility to download the
|
||||
libraries you need and all of their dependencies. If you don't have
|
||||
'pacman' installed, proceed as follows:
|
||||
|
||||
. Install the MSYS2 64-bit (x86_64) installer, named
|
||||
msys2-x86_64-YYYYMMDD.exe (where "YYYYMMDD" is the release date,
|
||||
like 20160205) from http://msys2.github.io/.
|
||||
|
||||
. Run the installer, select the installation directory, make sure
|
||||
"Run MSYS2 now" checkbox is checked, and click "Finish". A Bash
|
||||
window will open.
|
||||
|
||||
. Type into the Bash window the following command:
|
||||
|
||||
pacman -Sy pacman
|
||||
|
||||
When asked whether to proceed with installation, type Y.
|
||||
You may also use Emacs with an existing MSYS2 installation by simply
|
||||
unpacking the Emacs distribution over MSYS2. You can then use the
|
||||
'pacman' utility to install dependencies. You should not use the
|
||||
optional dependencies bundle, as this will overwrite MSYS2 files
|
||||
(the dependency bundle derives from MSYS2, but may be a different
|
||||
version).
|
||||
|
||||
To install the optional libraries, start the MSYS2 Bash window and
|
||||
type the following command:
|
||||
|
@ -259,73 +153,37 @@ See the end of the file for license conditions.
|
|||
where PACKAGES is the list of packages you want to install. The
|
||||
full list is as follows:
|
||||
|
||||
mingw-w64-x86_64-xpm-nox mingw-w64-x86_64-libtiff mingw-w64-x86_64-giflib
|
||||
mingw-w64-x86_64-libpng mingw-w64-x86_64-libjpeg-turbo
|
||||
mingw-w64-x86_64-librsvg mingw-w64-x86_64-libxml2 mingw-w64-x86_64-gnutls
|
||||
mingw-w64-x86_64-zlib
|
||||
mingw-w64-x86_64-giflib
|
||||
mingw-w64-x86_64-gnutls
|
||||
mingw-w64-x86_64-libjpeg-turbo
|
||||
mingw-w64-x86_64-libpng
|
||||
mingw-w64-x86_64-librsvg
|
||||
mingw-w64-x86_64-libtiff
|
||||
mingw-w64-x86_64-libxml2
|
||||
mingw-w64-x86_64-xpm-nox
|
||||
|
||||
You can type any subset of this list. Once again, when asked
|
||||
whether to proceed with installation, answer Y.
|
||||
|
||||
Alternatively, you could install the packages manually from this
|
||||
page:
|
||||
|
||||
https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/
|
||||
|
||||
However, the packages there are not self-contained, so you will need
|
||||
to download all their dependencies as well.
|
||||
|
||||
After the installation, if you will be installing Emacs in a
|
||||
directory different from where the DLLs were installed, we recommend
|
||||
to add the directory with DLLs to your PATH, so that Emacs will be
|
||||
able to find those DLLs.
|
||||
|
||||
* Uninstalling Emacs
|
||||
|
||||
If you should need to uninstall Emacs, simply delete all the files
|
||||
and subdirectories from the directory where it was unpacked (Emacs
|
||||
does not install or update any files in system directories or
|
||||
anywhere else). If you ran the addpm.exe program to create the
|
||||
registry entries and the Start menu icon, then you can remove the
|
||||
registry entries using regedit. All of the settings are written
|
||||
under the Software\GNU\Emacs key in HKEY_LOCAL_MACHINE, or if you
|
||||
didn't have administrator privileges when you installed, the same
|
||||
key in HKEY_CURRENT_USER. Just delete the whole Software\GNU\Emacs
|
||||
key.
|
||||
anywhere else).
|
||||
|
||||
The Start menu entry can be removed by right-clicking on the Taskbar
|
||||
and selecting Properties, then using the Remove option on the Start
|
||||
Menu Programs page. (If you installed under an account with
|
||||
administrator privileges, then you need to click the Advanced button
|
||||
and look for the Gnu Emacs menu item under All Users.)
|
||||
If you ran the addpm.exe program to create the Start menu icon, this
|
||||
can be removed by right-clicking and "Uninstall".
|
||||
|
||||
Finally, addpm.exe also creates a few registry entries; these can be
|
||||
safely left, but if you really wish to remove them, all of the
|
||||
settings are written under the Software\GNU\Emacs key in
|
||||
HKEY_LOCAL_MACHINE, or if you didn't have administrator privileges
|
||||
when you installed, the same key in HKEY_CURRENT_USER. Just delete
|
||||
the whole Software\GNU\Emacs key.
|
||||
|
||||
* Troubleshooting
|
||||
|
||||
Unpacking the distributions
|
||||
|
||||
If you encounter trouble trying to run Emacs, there are a number of
|
||||
possible causes. Check the following for indications that the
|
||||
distribution was not corrupted by the tools used to unpack it:
|
||||
|
||||
* Be sure to disable CR/LF translation or the executables will
|
||||
be unusable. Older versions of WinZipNT would enable this
|
||||
translation by default. If you are using WinZipNT, disable it.
|
||||
(I don't have WinZipNT myself, and I do not know the specific
|
||||
commands necessary to disable it.)
|
||||
|
||||
* Check that filenames were not truncated to 8.3. For example,
|
||||
there should be a file lisp\abbrevlist.elc; if this has been
|
||||
truncated to abbrevli.elc, your distribution has been corrupted
|
||||
while unpacking and Emacs will not start.
|
||||
|
||||
* On Windows 9X, make sure you have the UNICOWS.DLL library either
|
||||
in the same directory where you have emacs.exe or in the
|
||||
directory where system-wide DLLs are kept.
|
||||
|
||||
If you believe you have unpacked the distributions correctly and are
|
||||
still encountering problems, see the section on Further Information
|
||||
below.
|
||||
|
||||
Virus scanners
|
||||
|
||||
Some virus scanners interfere with Emacs' use of subprocesses. If you
|
||||
|
@ -345,31 +203,21 @@ See the end of the file for license conditions.
|
|||
|
||||
http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Microsoft-Windows
|
||||
|
||||
In addition to the manual, there is a mailing list for discussing
|
||||
issues related to the Windows port of Emacs. For information about
|
||||
the list, see this Web page:
|
||||
In addition to the manual, there is a mailing list for help with
|
||||
Emacs here:
|
||||
|
||||
https://lists.gnu.org/mailman/listinfo/help-gnu-emacs
|
||||
|
||||
To ask questions on the mailing list, send email to
|
||||
help-gnu-emacs@gnu.org.
|
||||
|
||||
And a more specific one for issues related to the Windows port of
|
||||
Emacs. For information about the list, see this Web page:
|
||||
|
||||
http://lists.gnu.org/mailman/listinfo/help-emacs-windows
|
||||
|
||||
To ask questions on the mailing list, send email to
|
||||
help-emacs-windows@gnu.org. (You don't need to subscribe for that.)
|
||||
To subscribe to the list or unsubscribe from it, fill the form you
|
||||
find at http://lists.gnu.org/mailman/listinfo/help-emacs-windows as
|
||||
explained there.
|
||||
|
||||
Another valuable source of information and help which should not be
|
||||
overlooked is the various Usenet news groups dedicated to Emacs.
|
||||
These are particularly good for help with general issues which aren't
|
||||
specific to the Windows port of Emacs. The main news groups to use
|
||||
for seeking help are:
|
||||
|
||||
gnu.emacs.help
|
||||
comp.emacs
|
||||
|
||||
There are also fairly regular postings and announcements of new or
|
||||
updated Emacs packages on this group:
|
||||
|
||||
gnu.emacs.sources
|
||||
help-emacs-windows@gnu.org.
|
||||
|
||||
* Reporting bugs
|
||||
|
||||
|
|
|
@ -1193,7 +1193,7 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem
|
|||
|
||||
/* Called before syms_of_fileio, because it sets up Qerror_condition. */
|
||||
syms_of_data ();
|
||||
syms_of_fns (); /* Before syms_of_charset which uses hashtables. */
|
||||
syms_of_fns (); /* Before syms_of_charset which uses hash tables. */
|
||||
syms_of_fileio ();
|
||||
/* Before syms_of_coding to initialize Vgc_cons_threshold. */
|
||||
syms_of_alloc ();
|
||||
|
|
|
@ -2574,7 +2574,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
|
|||
c = READCHAR;
|
||||
if (c == '(')
|
||||
{
|
||||
/* Accept extended format for hashtables (extensible to
|
||||
/* Accept extended format for hash tables (extensible to
|
||||
other types), e.g.
|
||||
#s(hash-table size 2 test equal data (k1 v1 k2 v2)) */
|
||||
Lisp_Object tmp = read_list (0, readcharfun);
|
||||
|
@ -2620,10 +2620,10 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
|
|||
if (!NILP (params[param_count + 1]))
|
||||
param_count += 2;
|
||||
|
||||
/* This is the hashtable data. */
|
||||
/* This is the hash table data. */
|
||||
data = Fplist_get (tmp, Qdata);
|
||||
|
||||
/* Now use params to make a new hashtable and fill it. */
|
||||
/* Now use params to make a new hash table and fill it. */
|
||||
ht = Fmake_hash_table (param_count, params);
|
||||
|
||||
while (CONSP (data))
|
||||
|
@ -2631,7 +2631,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
|
|||
key = XCAR (data);
|
||||
data = XCDR (data);
|
||||
if (!CONSP (data))
|
||||
error ("Odd number of elements in hashtable data");
|
||||
error ("Odd number of elements in hash table data");
|
||||
val = XCAR (data);
|
||||
data = XCDR (data);
|
||||
Fputhash (key, val, ht);
|
||||
|
|
|
@ -2022,20 +2022,27 @@ boyer_moore (EMACS_INT n, unsigned char *base_pat,
|
|||
cursor += dirlen - i - direction; /* fix cursor */
|
||||
if (i + direction == 0)
|
||||
{
|
||||
ptrdiff_t position, start, end, cursor_off;
|
||||
ptrdiff_t position, start, end;
|
||||
#ifdef REL_ALLOC
|
||||
ptrdiff_t cursor_off;
|
||||
#endif
|
||||
|
||||
cursor -= direction;
|
||||
|
||||
position = pos_byte + cursor - p2 + ((direction > 0)
|
||||
? 1 - len_byte : 0);
|
||||
#ifdef REL_ALLOC
|
||||
/* set_search_regs might call malloc, which could
|
||||
cause ralloc.c relocate buffer text. We need to
|
||||
update pointers into buffer text due to that. */
|
||||
cursor_off = cursor - p2;
|
||||
#endif
|
||||
set_search_regs (position, len_byte);
|
||||
#ifdef REL_ALLOC
|
||||
p_limit = BYTE_POS_ADDR (limit);
|
||||
p2 = BYTE_POS_ADDR (pos_byte);
|
||||
cursor = p2 + cursor_off;
|
||||
#endif
|
||||
|
||||
if (NILP (Vinhibit_changing_match_data))
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue