aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiles Bader <[email protected]>2007-11-21 04:55:58 +0000
committerMiles Bader <[email protected]>2007-11-21 04:55:58 +0000
commitd4aa48db8ed36b1fc7e7b0e6bd35049353f7f96e (patch)
tree4a8c1381059835b73876f59183e228a2fb740d59
parent3d9bd2bc2806ecaf85f4474060a7fadfd00e61fd (diff)
parent33127d1a78f2a37d68ffa09642df2f38d78e95b1 (diff)
Merge from emacs--rel--22
Revision: [email protected]/emacs--devo--0--patch-937
-rw-r--r--admin/FOR-RELEASE6
-rw-r--r--doc/emacs/ChangeLog16
-rw-r--r--doc/emacs/mule.texi9
-rw-r--r--doc/misc/cl.texi63
-rw-r--r--doc/misc/flymake.texi9
-rw-r--r--etc/PROBLEMS6
-rw-r--r--lisp/ChangeLog36
-rw-r--r--lisp/add-log.el1
-rw-r--r--lisp/bindings.el6
-rw-r--r--lisp/emacs-lisp/byte-opt.el2
-rw-r--r--lisp/filecache.el4
-rw-r--r--lisp/international/mule-cmds.el16
-rw-r--r--lisp/mail/rmail.el4
-rw-r--r--lisp/menu-bar.el14
-rw-r--r--lisp/pcvs-parse.el7
-rw-r--r--lisp/reposition.el2
-rw-r--r--lisp/url/ChangeLog6
-rw-r--r--lisp/url/url.el4
-rw-r--r--src/ChangeLog10
-rw-r--r--src/ChangeLog.102
-rw-r--r--src/search.c28
-rw-r--r--src/w32bdf.c4
22 files changed, 154 insertions, 101 deletions
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index 71f9d08d34..4b40c74c90 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -106,6 +106,12 @@ http://thread.gmane.org/gmane.emacs.gnus.general/65622
** Extra question asked when doing a reply in Gnus
http://thread.gmane.org/gmane.emacs.gnus.general/65627
+** [email protected], 30 Oct: ps-lpr-switches has no effect
+
+** [email protected]: minibuffer and current-local-map
+
+** [email protected], 9 Nov: X-coding-system incompatibility, and workaround
+
* DOCUMENTATION
** Check the Emacs Tutorial.
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index cb40f08230..02d9e85ac5 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,8 @@
+2007-11-18 Richard Stallman <[email protected]>
+
+ * flymake.texi (Example -- Configuring a tool called directly):
+ Update example.
+
2007-11-17 Eli Zaretskii <[email protected]>
* mule.texi (Communication Coding): Fix wording of last change.
@@ -7,9 +12,18 @@
* custom.texi (Specifying File Variables), major.texi (Choosing
Modes): Mention '\" in man pages.
+2007-11-15 Richard Stallman <[email protected]>
+
+ * cl.texi (Equality Predicates): Delete `eql'.
+ (Predicates, Naming Conventions, Top): Delete `eql'.
+ (Common Lisp Compatibility): Delete `eql'.
+ (Porting Common Lisp): Delete obsolete backquote info.
+ Minor clarification about character constants.
+ (Sequence Basics): Minor clarification.
+
2007-11-16 Kenichi Handa <[email protected]>
- * mule.texi (Communication Coding): Mention x-select-request-type.
+ * mule.texi (Communication Coding): Document x-select-request-type.
* frames.texi (Cut/Paste Other App): Mention x-select-request-type.
diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi
index 27b3284082..d7dd364b6d 100644
--- a/doc/emacs/mule.texi
+++ b/doc/emacs/mule.texi
@@ -1129,6 +1129,15 @@ specified by one of the environment variables @env{LC_ALL},
specified above, whose value is nonempty is the one that determines
the text representation.)
+@vindex x-select-request-type
+ The variable @code{x-select-request-type} specifies a selection data
+type of selection to request from the X server. The default value is
+@code{nil}, which means Emacs tries @code{COMPOUND_TEXT} and
+@code{UTF8_STRING}, and uses whichever result seems more appropriate.
+You can explicitly specify the data type by setting the variable to
+one of the symbols @code{COMPOUND_TEXT}, @code{UTF8_STRING},
+@code{STRING} and @code{TEXT}.
+
@node File Name Coding
@section Coding Systems for File Names
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi
index c27021cb32..ea485ef84f 100644
--- a/doc/misc/cl.texi
+++ b/doc/misc/cl.texi
@@ -62,14 +62,14 @@ does assume a basic familiarity with Emacs Lisp.
@menu
* Overview:: Installation, usage, etc.
* Program Structure:: Arglists, `eval-when', `defalias'
-* Predicates:: `typep', `eql', and `equalp'
+* Predicates:: `typep' and `equalp'
* Control Structure:: `setf', `do', `loop', etc.
* Macros:: Destructuring, `define-compiler-macro'
* Declarations:: `proclaim', `declare', etc.
* Symbols:: Property lists, `gensym'
* Numbers:: Predicates, functions, random numbers
* Sequences:: Mapping, functions, searching, sorting
-* Lists:: `cadr', `sublis', `member*', `assoc*', etc.
+* Lists:: `caddr', `sublis', `member*', `assoc*', etc.
* Structures:: `defstruct'
* Assertions:: `check-type', `assert', `ignore-errors'.
@@ -287,7 +287,7 @@ The following simple functions and macros are defined in @file{cl.el};
they do not cause other components like @file{cl-extra} to be loaded.
@example
-eql floatp-safe endp
+floatp-safe endp
evenp oddp plusp minusp
caaar .. cddddr
list* ldiff rest first .. tenth
@@ -700,7 +700,7 @@ facts are true or false.
@menu
* Type Predicates:: `typep', `deftype', and `coerce'
-* Equality Predicates:: `eql' and `equalp'
+* Equality Predicates:: `equalp'
@end menu
@node Type Predicates, Equality Predicates, Predicates, Predicates
@@ -840,40 +840,7 @@ arguments to specify the type of sequence to return. @xref{Sequences}.
@section Equality Predicates
@noindent
-This package defines two Common Lisp predicates, @code{eql} and
-@code{equalp}.
-
-@defun eql a b
-This function is almost the same as @code{eq}, except that if @var{a}
-and @var{b} are numbers of the same type, it compares them for numeric
-equality (as if by @code{equal} instead of @code{eq}). This makes a
-difference only for versions of Emacs that are compiled with
-floating-point support. Emacs floats are allocated
-objects just like cons cells, which means that @code{(eq 3.0 3.0)}
-will not necessarily be true---if the two @code{3.0}s were allocated
-separately, the pointers will be different even though the numbers are
-the same. But @code{(eql 3.0 3.0)} will always be true.
-
-The types of the arguments must match, so @code{(eql 3 3.0)} is
-still false.
-
-Note that Emacs integers are ``direct'' rather than allocated, which
-basically means @code{(eq 3 3)} will always be true. Thus @code{eq}
-and @code{eql} behave differently only if floating-point numbers are
-involved, and are indistinguishable on Emacs versions that don't
-support floats.
-
-There is a slight inconsistency with Common Lisp in the treatment of
-positive and negative zeros. Some machines, notably those with IEEE
-standard arithmetic, represent @code{+0} and @code{-0} as distinct
-values. Normally this doesn't matter because the standard specifies
-that @code{(= 0.0 -0.0)} should always be true, and this is indeed
-what Emacs Lisp and Common Lisp do. But the Common Lisp standard
-states that @code{(eql 0.0 -0.0)} and @code{(equal 0.0 -0.0)} should
-be false on IEEE-like machines; Emacs Lisp does not do this, and in
-fact the only known way to distinguish between the two zeros in Emacs
-Lisp is to @code{format} them and check for a minus sign.
-@end defun
+This package defines the Common Lisp predicate @code{equalp}.
@defun equalp a b
This function is a more flexible version of @code{equal}. In
@@ -3685,7 +3652,7 @@ the same sequence, in the same order as they appear in that sequence.)
The @code{:test} argument specifies a function which must return
true (non-@code{nil}) to indicate a match; instead, you may use
@code{:test-not} to give a function which returns @emph{false} to
-indicate a match. The default test function is @code{:test 'eql}.
+indicate a match. The default test function is @code{eql}.
Many functions which take @var{item} and @code{:test} or @code{:test-not}
arguments also come in @code{-if} and @code{-if-not} varieties,
@@ -4998,7 +4965,7 @@ which understand full-featured argument lists. The @code{&whole}
keyword does not work in @code{defmacro} argument lists (except
inside recursive argument lists).
-The @code{eql} and @code{equal} predicates do not distinguish
+The @code{equal} predicate does not distinguish
between IEEE floating-point plus and minus zero. The @code{equalp}
predicate has several differences with Common Lisp; @pxref{Predicates}.
@@ -5218,12 +5185,6 @@ whereas Emacs Lisp's parser just treats quote as a special case.
Some Lisp packages use reader macros to create special syntaxes
for themselves, which the Emacs parser is incapable of reading.
-The lack of reader macros, incidentally, is the reason behind
-Emacs Lisp's unusual backquote syntax. Since backquotes are
-implemented as a Lisp package and not built-in to the Emacs
-parser, they are forced to use a regular macro named @code{`}
-which is used with the standard function/macro call notation.
-
@item
Other syntactic features. Common Lisp provides a number of
notations beginning with @code{#} that the Emacs Lisp parser
@@ -5287,11 +5248,11 @@ matters, Emacs has its own @code{#(} notation for
something entirely different---strings with properties.
@item
-Characters are distinct from integers in Common Lisp. The
-notation for character constants is also different: @code{#\A}
-instead of @code{?A}. Also, @code{string=} and @code{string-equal}
-are synonyms in Emacs Lisp whereas the latter is case-insensitive
-in Common Lisp.
+Characters are distinct from integers in Common Lisp. The notation
+for character constants is also different: @code{#\A} in Common Lisp
+where Emacs Lisp uses @code{?A}. Also, @code{string=} and
+@code{string-equal} are synonyms in Emacs Lisp, whereas the latter is
+case-insensitive in Common Lisp.
@item
Data types. Some Common Lisp data types do not exist in Emacs
diff --git a/doc/misc/flymake.texi b/doc/misc/flymake.texi
index 491ee631fe..6ab4c199de 100644
--- a/doc/misc/flymake.texi
+++ b/doc/misc/flymake.texi
@@ -413,12 +413,9 @@ First, we write the @code{init-function}:
(defun flymake-perl-init ()
(let* ((temp-file (flymake-init-create-temp-buffer-copy
'flymake-create-temp-inplace))
- (local-file (concat (flymake-build-relative-filename
- (file-name-directory
- (buffer-file-name
- (current-buffer)))
- (file-name-directory temp-file))
- (file-name-nondirectory temp-file))))
+ (local-file (file-relative-name
+ temp-file
+ (file-name-directory buffer-file-name))))
(list "perl" (list "-wc " local-file))))
@end lisp
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 3b1b69caab..21d4d695a1 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -2218,7 +2218,11 @@ This combination of keys is a command to change keyboard layout. If
you proceed to type another non-modifier key before you let go of Alt
and Shift, the Alt and Shift act as modifiers in the usual way. A
more permanent work around is to change it to another key combination,
-or disable it in the keyboard control panel.
+or disable it in the "Regional and Language Options" applet of the
+Control Panel. (The exact sequence of mouse clicks in the "Regional
+and Language Options" applet needed to find the key combination that
+changes the keyboard layout depends on your Windows version; for XP,
+in the Languages tab, click "Details" and then "Key Settings".)
** Cygwin build of Emacs hangs after rebasing Cygwin DLLs
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 34215cd55a..31437fb1a3 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,39 @@
+2007-11-21 Eli Zaretskii <[email protected]>
+
+ * international/mule-cmds.el (set-locale-environment): Set
+ default-file-name-coding-system _after_ keyboard and terminal
+ coding systems. This fixes last change.
+
+ * mail/rmail.el (rmail-current-subject-regexp): Allow more than
+ one space after "Subject:".
+
+2007-11-21 Stefan Monnier <[email protected]>
+
+ * pcvs-parse.el (cvs-parse-table): Ignore errors when looking up files
+ in order to determine if there's a conflict.
+
+2007-11-21 Richard Stallman <[email protected]>
+
+ * bindings.el (esc-map): Bind C-M-l here; moved from reposition.el.
+
+ * reposition.el (reposition-window):
+ Binding C-M-l moved to bindings.el.
+
+ * bindings.el (ctl-x-4-map): Bind C-x 4 a here; moved from add-log.el.
+
+ * add-log.el (add-change-log-entry-other-window):
+ Key binding C-x 4 a moved to bindings.el.
+
+ * bindings.el (minibuffer-local-map): Bind C-tab here; moved
+ from filecache.el.
+
+ * filecache.el: Minibuffer map bindings moved to bindings.el.
+
+2007-11-21 Jason Rumney <[email protected]>
+
+ * international/mule-cmds.el (set-locale-environment):
+ Set default-file-name-coding-system from system defaults on Windows.
+
2007-11-21 Jason Rumney <[email protected]>
* term/w32console.el: New term init file for w32 console.
diff --git a/lisp/add-log.el b/lisp/add-log.el
index 21b4a5dbdc..89aeafc75d 100644
--- a/lisp/add-log.el
+++ b/lisp/add-log.el
@@ -664,7 +664,6 @@ the change log file in another window."
(list current-prefix-arg
(prompt-for-change-log-name))))
(add-change-log-entry whoami file-name t))
-;;;###autoload (define-key ctl-x-4-map "a" 'add-change-log-entry-other-window)
(defvar change-log-indent-text 0)
diff --git a/lisp/bindings.el b/lisp/bindings.el
index 52d7a6f6a5..ca9f03c4c7 100644
--- a/lisp/bindings.el
+++ b/lisp/bindings.el
@@ -710,7 +710,8 @@ language you are using."
;; Override the global binding (which calls indent-relative via
;; indent-for-tab-command). The alignment that indent-relative tries to
;; do doesn't make much sense here since the prompt messes it up.
- (define-key map "\t" 'self-insert-command))
+ (define-key map "\t" 'self-insert-command)
+ (define-key minibuffer-local-map [C-tab] 'file-cache-minibuffer-complete))
(define-key global-map "\C-u" 'universal-argument)
(let ((i ?0))
@@ -1079,6 +1080,9 @@ language you are using."
(define-key ctl-x-map "z" 'repeat)
+(define-key esc-map "\C-l" 'reposition-window)
+
+(define-key ctl-x-4-map "a" 'add-change-log-entry-other-window)
(define-key ctl-x-4-map "c" 'clone-indirect-buffer-other-window)
;; Signal handlers
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index f56e254427..b021b8d9f1 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -277,6 +277,8 @@
;; Isn't it an error for `string' not to be unibyte?? --stef
(if (fboundp 'string-as-unibyte)
(setq string (string-as-unibyte string)))
+ ;; `byte-compile-splice-in-already-compiled-code'
+ ;; takes care of inlining the body.
(cons `(lambda ,(aref fn 0)
(byte-code ,string ,(aref fn 2) ,(aref fn 3)))
(cdr form)))
diff --git a/lisp/filecache.el b/lisp/filecache.el
index 18c537fed7..5138c947b7 100644
--- a/lisp/filecache.el
+++ b/lisp/filecache.el
@@ -780,10 +780,6 @@ match REGEXP."
;; Keybindings
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;;###autoload (define-key minibuffer-local-completion-map [C-tab] 'file-cache-minibuffer-complete)
-;;;###autoload (define-key minibuffer-local-map [C-tab] 'file-cache-minibuffer-complete)
-;;;###autoload (define-key minibuffer-local-must-match-map [C-tab] 'file-cache-minibuffer-complete)
-
(provide 'filecache)
;;; arch-tag: 433d3ca4-4af2-47ce-b2cf-1f727460f538
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index d61e1f31d8..ca76d4f505 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -2619,14 +2619,24 @@ See also `locale-charset-language-names', `locale-language-names',
(setq locale-coding-system coding-system))))
;; On Windows, override locale-coding-system,
- ;; keyboard-coding-system with system codepage. Note:
- ;; selection-coding-system is already set in w32select.c.
+ ;; default-file-name-coding-system, keyboard-coding-system,
+ ;; terminal-coding-system with system codepage.
(when (boundp 'w32-ansi-code-page)
(let ((code-page-coding (intern (format "cp%d" w32-ansi-code-page))))
(when (coding-system-p code-page-coding)
(unless frame (setq locale-coding-system code-page-coding))
(set-keyboard-coding-system code-page-coding frame)
- (set-terminal-coding-system code-page-coding frame))))
+ (set-terminal-coding-system code-page-coding frame)
+ ;; Set default-file-name-coding-system last, so that Emacs
+ ;; doesn't try to use cpNNNN when it defines keyboard and
+ ;; terminal encoding. That's because the above two lines
+ ;; will want to load code-pages.el, where cpNNNN are
+ ;; defined; if default-file-name-coding-system were set to
+ ;; cpNNNN while these two lines run, Emacs will want to use
+ ;; it for encoding the file name it wants to load. And that
+ ;; will fail, since cpNNNN is not yet usable until
+ ;; code-pages.el finishes loading.
+ (setq default-file-name-coding-system code-page-coding))))
(when (eq system-type 'darwin)
;; On Darwin, file names are always encoded in utf-8, no matter
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index c999f687fb..53296cfb0f 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -3282,7 +3282,9 @@ and more whitespace. The returned regular expressions contains
(setq subject (regexp-quote subject))
(setq subject
(replace-regexp-in-string "[ \t\n]+" "[ \t\n]+" subject t t))
- (concat "^Subject: "
+ ;; Some mailers insert extra spaces after "Subject:", so allow any
+ ;; amount of them.
+ (concat "^Subject:[ \t]+"
(if (string= "\\`" (substring rmail-reply-regexp 0 2))
(substring rmail-reply-regexp 2)
rmail-reply-regexp)
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index ca20f6182f..116d784205 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -1343,10 +1343,10 @@ key, a click, or a menu-item"))
'(menu-item "Introduction to Emacs Lisp" menu-bar-read-lispintro
:help "Read the Introduction to Emacs Lisp Programming"))
-(define-key menu-bar-help-menu [describe-project]
+(define-key menu-bar-help-menu [about-gnu-project]
'(menu-item "About GNU" describe-project
:help "About the GNU System, GNU Project, and GNU/Linux"))
-(define-key menu-bar-help-menu [about]
+(define-key menu-bar-help-menu [about-emacs]
'(menu-item "About Emacs" about-emacs
:help "Display version number, copyright info, and basic help"))
(define-key menu-bar-help-menu [sep4]
@@ -1357,7 +1357,7 @@ key, a click, or a menu-item"))
(define-key menu-bar-help-menu [describe-copying]
'(menu-item "Copying Conditions" describe-copying
:help "Show the Emacs license (GPL)"))
-(define-key menu-bar-help-menu [describe-distribution]
+(define-key menu-bar-help-menu [getting-new-versions]
'(menu-item "Getting New Versions" describe-distribution
:help "How to get latest versions of Emacs"))
(defun menu-bar-help-extra-packages ()
@@ -1369,10 +1369,10 @@ key, a click, or a menu-item"))
(goto-address)))
(define-key menu-bar-help-menu [sep2]
'("--"))
-(define-key menu-bar-help-menu [more]
+(define-key menu-bar-help-menu [external-packages]
'(menu-item "External Packages" menu-bar-help-extra-packages
:help "Lisp packages distributed separately for use in Emacs"))
-(define-key menu-bar-help-menu [finder-by-keyword]
+(define-key menu-bar-help-menu [find-emacs-packages]
'(menu-item "Find Emacs Packages" finder-by-keyword
:help "Find packages and features by keyword"))
(define-key menu-bar-help-menu [more-manuals]
@@ -1386,10 +1386,10 @@ key, a click, or a menu-item"))
(list 'menu-item "Search Documentation" menu-bar-search-documentation-menu))
(define-key menu-bar-help-menu [sep1]
'("--"))
-(define-key menu-bar-help-menu [eliza]
+(define-key menu-bar-help-menu [emacs-psychotherapist]
'(menu-item "Emacs Psychotherapist" doctor
:help "Our doctor will help you feel better"))
-(define-key menu-bar-help-menu [report-emacs-bug]
+(define-key menu-bar-help-menu [send-emacs-bug-report]
'(menu-item "Send Bug Report..." report-emacs-bug
:help "Send e-mail to Emacs maintainers"))
(define-key menu-bar-help-menu [emacs-known-problems]
diff --git a/lisp/pcvs-parse.el b/lisp/pcvs-parse.el
index 3ca1829030..7eb5c0b488 100644
--- a/lisp/pcvs-parse.el
+++ b/lisp/pcvs-parse.el
@@ -235,7 +235,7 @@ The remaining KEYS are passed directly to `cvs-create-fileinfo'."
;; servers, this should not be necessary, because they return
;; a complete merge output.
(with-temp-buffer
- (insert-file-contents path)
+ (ignore-errors (insert-file-contents path))
(goto-char (point-min))
(if (re-search-forward "^<<<<<<< " nil t)
'CONFLICT 'NEED-MERGE))))
@@ -272,8 +272,9 @@ The remaining KEYS are passed directly to `cvs-create-fileinfo'."
;; branches, or because it's been removed).
(if (ignore-errors
(with-temp-buffer
- (insert-file-contents (expand-file-name
- ".cvsignore" (file-name-directory dir)))
+ (ignore-errors
+ (insert-file-contents
+ (expand-file-name ".cvsignore" (file-name-directory dir))))
(goto-char (point-min))
(re-search-forward
(concat "^" (regexp-quote (file-name-nondirectory dir)) "/$")
diff --git a/lisp/reposition.el b/lisp/reposition.el
index 3a5f24cbe8..6ebbe57840 100644
--- a/lisp/reposition.el
+++ b/lisp/reposition.el
@@ -171,8 +171,6 @@ first comment line visible (if point is in a comment)."
;;(repos-debug-macro "4")
))))
-;;;###autoload (define-key esc-map "\C-l" 'reposition-window)
-
;;; Auxiliary functions
;; Return number of screen lines between START and END.
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index e8ae7233c2..d5dd002cf7 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -2,11 +2,15 @@
* url-mailto.el (mail-send-and-exit):
* url-http.el (url-dav-file-attributes):
- * url-file.el (ange-ftp-set-passwd, ange-ftp-copy-file-internal):
+ * url-file.el (ange-ftp-set-passwd, ange-ftp-copy-file-internal)
(url-generate-unique-filename): Declare as functions.
* url-privacy.el (url-device-type): Define unconditionally.
+2007-11-15 Richard Stallman <[email protected]>
+
+ * url.el (url-retrieve-synchronously): Call delete-process.
+
2007-10-31 Juanma Barranquero <[email protected]>
* url-vars.el (url-vars-unload-hook): Remove function and variable.
diff --git a/lisp/url/url.el b/lisp/url/url.el
index 3b292b4452..c375a75e06 100644
--- a/lisp/url/url.el
+++ b/lisp/url/url.el
@@ -241,7 +241,9 @@ no further processing). URL is either a string or a parsed URL."
;; XXX: The callback must always be called. Any
;; exception is a bug that should be fixed, not worked
;; around.
- (setq retrieval-done t))
+ (progn ;; Call delete-process so we run any sentinel now.
+ (delete-process proc)
+ (setq retrieval-done t)))
;; We used to use `sit-for' here, but in some cases it wouldn't
;; work because apparently pending keyboard input would always
;; interrupt it before it got a chance to handle process input.
diff --git a/src/ChangeLog b/src/ChangeLog
index 8b6b11b39f..9f99493e66 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,15 @@
2007-11-21 Jason Rumney <[email protected]>
+ * w32bdf.c (w32_init_bdf_font, w32_BDF_to_x_font): CreateFileMapping
+ returns NULL on failure.
+
+2007-11-21 Stefan Monnier <[email protected]>
+
+ * search.c (Fset_match_data): Remove the `evaporate' feature.
+ (unwind_set_match_data): Don't use the `evaporate' feature.
+
+2007-11-21 Jason Rumney <[email protected]>
+
* dispnew.c (init_display) [WINDOWSNT]: Hardcode terminal_type.
* w32console.c (w32con_write_glyphs): Remove unused variables.
diff --git a/src/ChangeLog.10 b/src/ChangeLog.10
index c5e7bc61e4..b718726325 100644
--- a/src/ChangeLog.10
+++ b/src/ChangeLog.10
@@ -3016,7 +3016,7 @@
* w32.c: Fix high cpu load for server sockets.
(pfn_WSAEventSelect): New function ptr.
(init_winsock): Load it.
- (sys_listen): Set FILE_LISTEN flag. Set event mask for socket's
+ (sys_listen): Set FILE_LISTEN flag. Set event mask for socket's
char_avail event object to FD_ACCEPT.
(sys_accept): Check FILE_LISTEN flag. Set event mask on new
socket's char_avail event object to FD_READ|FD_CLOSE.
diff --git a/src/search.c b/src/search.c
index aca95c0330..29def81c3e 100644
--- a/src/search.c
+++ b/src/search.c
@@ -2964,11 +2964,15 @@ Return value is undefined if the last search failed. */)
return reuse;
}
-/* Internal usage only:
- If RESEAT is `evaporate', put the markers back on the free list
- immediately. No other references to the markers must exist in this case,
- so it is used only internally on the unwind stack and save-match-data from
- Lisp. */
+/* We used to have an internal use variant of `reseat' described as:
+
+ If RESEAT is `evaporate', put the markers back on the free list
+ immediately. No other references to the markers must exist in this
+ case, so it is used only internally on the unwind stack and
+ save-match-data from Lisp.
+
+ But it was ill-conceived: those supposedly-internal markers get exposed via
+ the undo-list, so freeing them here is unsafe. */
DEFUN ("set-match-data", Fset_match_data, Sset_match_data, 1, 2, 0,
doc: /* Set internal data on last search match from elements of LIST.
@@ -3053,10 +3057,7 @@ If optional arg RESEAT is non-nil, make markers on LIST point nowhere. */)
if (!NILP (reseat) && MARKERP (m))
{
- if (EQ (reseat, Qevaporate))
- free_marker (m);
- else
- unchain_marker (XMARKER (m));
+ unchain_marker (XMARKER (m));
XSETCAR (list, Qnil);
}
@@ -3074,10 +3075,7 @@ If optional arg RESEAT is non-nil, make markers on LIST point nowhere. */)
if (!NILP (reseat) && MARKERP (m))
{
- if (EQ (reseat, Qevaporate))
- free_marker (m);
- else
- unchain_marker (XMARKER (m));
+ unchain_marker (XMARKER (m));
XSETCAR (list, Qnil);
}
}
@@ -3141,8 +3139,8 @@ static Lisp_Object
unwind_set_match_data (list)
Lisp_Object list;
{
- /* It is safe to free (evaporate) the markers immediately. */
- return Fset_match_data (list, Qevaporate);
+ /* It is NOT ALWAYS safe to free (evaporate) the markers immediately. */
+ return Fset_match_data (list, Qt);
}
/* Called to unwind protect the match data. */
diff --git a/src/w32bdf.c b/src/w32bdf.c
index 80ef098d8d..4a12b1f019 100644
--- a/src/w32bdf.c
+++ b/src/w32bdf.c
@@ -261,7 +261,7 @@ w32_init_bdf_font(char *filename)
error("Fail to open BDF file");
}
hfilemap = CreateFileMapping(hfile, NULL, PAGE_READONLY, 0, 0, NULL);
- if (hfilemap == INVALID_HANDLE_VALUE)
+ if (!hfilemap)
{
CloseHandle(hfile);
error("Can't map font");
@@ -828,7 +828,7 @@ int w32_BDF_to_x_font (char *file, char* xstr, int len)
size = fileinfo.nFileSizeLow;
hfilemap = CreateFileMapping (hfile, NULL, PAGE_READONLY, 0, 0, NULL);
- if (hfilemap == INVALID_HANDLE_VALUE)
+ if (!hfilemap)
{
CloseHandle (hfile);
return 0;