Mercurial > emacs
changeset 86275:2cce56fd7361
Merge from emacs--rel--22
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-937
author | Miles Bader <miles@gnu.org> |
---|---|
date | Wed, 21 Nov 2007 04:55:58 +0000 |
parents | 860b7eb2a46f (current diff) 65d8378b766b (diff) |
children | b284b075c181 |
files | admin/FOR-RELEASE doc/emacs/ChangeLog doc/emacs/mule.texi doc/misc/cl.texi doc/misc/flymake.texi etc/PROBLEMS lisp/ChangeLog lisp/add-log.el lisp/bindings.el lisp/emacs-lisp/byte-opt.el lisp/filecache.el lisp/international/mule-cmds.el lisp/mail/rmail.el lisp/menu-bar.el lisp/url/ChangeLog lisp/url/url.el src/ChangeLog src/ChangeLog.10 src/search.c |
diffstat | 22 files changed, 154 insertions(+), 101 deletions(-) [+] |
line wrap: on
line diff
--- a/admin/FOR-RELEASE Wed Nov 21 04:36:42 2007 +0000 +++ b/admin/FOR-RELEASE Wed Nov 21 04:55:58 2007 +0000 @@ -106,6 +106,12 @@ ** Extra question asked when doing a reply in Gnus http://thread.gmane.org/gmane.emacs.gnus.general/65627 +** sdl.web@gmail.com, 30 Oct: ps-lpr-switches has no effect + +** Stephen.Berman@gmx.net: minibuffer and current-local-map + +** timh@insightful.com, 9 Nov: X-coding-system incompatibility, and workaround + * DOCUMENTATION ** Check the Emacs Tutorial.
--- a/doc/emacs/ChangeLog Wed Nov 21 04:36:42 2007 +0000 +++ b/doc/emacs/ChangeLog Wed Nov 21 04:55:58 2007 +0000 @@ -1,3 +1,8 @@ +2007-11-18 Richard Stallman <rms@gnu.org> + + * flymake.texi (Example -- Configuring a tool called directly): + Update example. + 2007-11-17 Eli Zaretskii <eliz@gnu.org> * 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 <rms@gnu.org> + + * 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 <handa@ni.aist.go.jp> - * 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.
--- a/doc/emacs/mule.texi Wed Nov 21 04:36:42 2007 +0000 +++ b/doc/emacs/mule.texi Wed Nov 21 04:55:58 2007 +0000 @@ -1129,6 +1129,15 @@ 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
--- a/doc/misc/cl.texi Wed Nov 21 04:36:42 2007 +0000 +++ b/doc/misc/cl.texi Wed Nov 21 04:55:58 2007 +0000 @@ -62,14 +62,14 @@ @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 @@ 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 @@ @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 @@ @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 @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 @@ 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 @@ 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 @@ 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
--- a/doc/misc/flymake.texi Wed Nov 21 04:36:42 2007 +0000 +++ b/doc/misc/flymake.texi Wed Nov 21 04:55:58 2007 +0000 @@ -413,12 +413,9 @@ (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
--- a/etc/PROBLEMS Wed Nov 21 04:36:42 2007 +0000 +++ b/etc/PROBLEMS Wed Nov 21 04:55:58 2007 +0000 @@ -2218,7 +2218,11 @@ 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
--- a/lisp/ChangeLog Wed Nov 21 04:36:42 2007 +0000 +++ b/lisp/ChangeLog Wed Nov 21 04:55:58 2007 +0000 @@ -1,3 +1,39 @@ +2007-11-21 Eli Zaretskii <eliz@gnu.org> + + * 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 <monnier@iro.umontreal.ca> + + * 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 <rms@gnu.org> + + * 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 <jasonr@gnu.org> + + * international/mule-cmds.el (set-locale-environment): + Set default-file-name-coding-system from system defaults on Windows. + 2007-11-21 Jason Rumney <jasonr@gnu.org> * term/w32console.el: New term init file for w32 console.
--- a/lisp/add-log.el Wed Nov 21 04:36:42 2007 +0000 +++ b/lisp/add-log.el Wed Nov 21 04:55:58 2007 +0000 @@ -664,7 +664,6 @@ (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)
--- a/lisp/bindings.el Wed Nov 21 04:36:42 2007 +0000 +++ b/lisp/bindings.el Wed Nov 21 04:55:58 2007 +0000 @@ -710,7 +710,8 @@ ;; 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 @@ (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
--- a/lisp/emacs-lisp/byte-opt.el Wed Nov 21 04:36:42 2007 +0000 +++ b/lisp/emacs-lisp/byte-opt.el Wed Nov 21 04:55:58 2007 +0000 @@ -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)))
--- a/lisp/filecache.el Wed Nov 21 04:36:42 2007 +0000 +++ b/lisp/filecache.el Wed Nov 21 04:55:58 2007 +0000 @@ -780,10 +780,6 @@ ;; 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
--- a/lisp/international/mule-cmds.el Wed Nov 21 04:36:42 2007 +0000 +++ b/lisp/international/mule-cmds.el Wed Nov 21 04:55:58 2007 +0000 @@ -2619,14 +2619,24 @@ (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
--- a/lisp/mail/rmail.el Wed Nov 21 04:36:42 2007 +0000 +++ b/lisp/mail/rmail.el Wed Nov 21 04:55:58 2007 +0000 @@ -3282,7 +3282,9 @@ (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)
--- a/lisp/menu-bar.el Wed Nov 21 04:36:42 2007 +0000 +++ b/lisp/menu-bar.el Wed Nov 21 04:55:58 2007 +0000 @@ -1343,10 +1343,10 @@ '(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 @@ (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 @@ (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 @@ (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]
--- a/lisp/pcvs-parse.el Wed Nov 21 04:36:42 2007 +0000 +++ b/lisp/pcvs-parse.el Wed Nov 21 04:55:58 2007 +0000 @@ -235,7 +235,7 @@ ;; 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 @@ ;; 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)) "/$")
--- a/lisp/reposition.el Wed Nov 21 04:36:42 2007 +0000 +++ b/lisp/reposition.el Wed Nov 21 04:55:58 2007 +0000 @@ -171,8 +171,6 @@ ;;(repos-debug-macro "4") )))) -;;;###autoload (define-key esc-map "\C-l" 'reposition-window) - ;;; Auxiliary functions ;; Return number of screen lines between START and END.
--- a/lisp/url/ChangeLog Wed Nov 21 04:36:42 2007 +0000 +++ b/lisp/url/ChangeLog Wed Nov 21 04:55:58 2007 +0000 @@ -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 <rms@gnu.org> + + * url.el (url-retrieve-synchronously): Call delete-process. + 2007-10-31 Juanma Barranquero <lekktu@gmail.com> * url-vars.el (url-vars-unload-hook): Remove function and variable.
--- a/lisp/url/url.el Wed Nov 21 04:36:42 2007 +0000 +++ b/lisp/url/url.el Wed Nov 21 04:55:58 2007 +0000 @@ -241,7 +241,9 @@ ;; 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.
--- a/src/ChangeLog Wed Nov 21 04:36:42 2007 +0000 +++ b/src/ChangeLog Wed Nov 21 04:55:58 2007 +0000 @@ -1,3 +1,13 @@ +2007-11-21 Jason Rumney <jasonr@gnu.org> + + * w32bdf.c (w32_init_bdf_font, w32_BDF_to_x_font): CreateFileMapping + returns NULL on failure. + +2007-11-21 Stefan Monnier <monnier@iro.umontreal.ca> + + * search.c (Fset_match_data): Remove the `evaporate' feature. + (unwind_set_match_data): Don't use the `evaporate' feature. + 2007-11-21 Jason Rumney <jasonr@gnu.org> * dispnew.c (init_display) [WINDOWSNT]: Hardcode terminal_type.
--- a/src/ChangeLog.10 Wed Nov 21 04:36:42 2007 +0000 +++ b/src/ChangeLog.10 Wed Nov 21 04:55:58 2007 +0000 @@ -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.
--- a/src/search.c Wed Nov 21 04:36:42 2007 +0000 +++ b/src/search.c Wed Nov 21 04:55:58 2007 +0000 @@ -2964,11 +2964,15 @@ 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 (!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 (!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 @@ 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. */
--- a/src/w32bdf.c Wed Nov 21 04:36:42 2007 +0000 +++ b/src/w32bdf.c Wed Nov 21 04:55:58 2007 +0000 @@ -261,7 +261,7 @@ 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 @@ size = fileinfo.nFileSizeLow; hfilemap = CreateFileMapping (hfile, NULL, PAGE_READONLY, 0, 0, NULL); - if (hfilemap == INVALID_HANDLE_VALUE) + if (!hfilemap) { CloseHandle (hfile); return 0;