------------------------------------------------------------ revno: 116525 committer: Juanma Barranquero branch nick: trunk timestamp: Sat 2014-02-22 04:46:18 +0100 message: doc/lispref/functions.texi (Declare Form): Fix typo in previous change. diff: === modified file 'doc/lispref/functions.texi' --- doc/lispref/functions.texi 2014-02-22 03:39:10 +0000 +++ doc/lispref/functions.texi 2014-02-22 03:46:18 +0000 @@ -1583,9 +1583,9 @@ @item (compiler-macro @var{expander}) This can only be used for functions, and tells the compiler to use @var{expander} as an optimization function. When encountering a call to the -function, of the form @code{(@var{function} @var{args}@dots)}, the macro +function, of the form @code{(@var{function} @var{args}@dots{})}, the macro expander will call @var{expander} with that form as well as with -@var{args}@dots, and @var{expander} can either return a new expression to use +@var{args}@dots{}, and @var{expander} can either return a new expression to use instead of the function call, or it can return just the form unchanged, to indicate that the function call should be left alone. @var{expander} can be a symbol, or it can be a form @code{(lambda (@var{arg}) @var{body})} in ------------------------------------------------------------ revno: 116524 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16829 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2014-02-21 22:39:10 -0500 message: * doc/lispref/functions.texi (Declare Form): Document gv-expander, gv-setter, and compiler-macro. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-02-21 20:10:56 +0000 +++ doc/lispref/ChangeLog 2014-02-22 03:39:10 +0000 @@ -1,3 +1,8 @@ +2014-02-22 Stefan Monnier + + * functions.texi (Declare Form): Document gv-expander, gv-setter, and + compiler-macro (bug#16829). + 2014-02-21 Juanma Barranquero * windows.texi (Window Configurations): Doc fix. @@ -16,6 +21,11 @@ * functions.texi (Defining Functions): Mention defalias-fset-function. +2014-02-17 Stefan Monnier + + * minibuf.texi (Completion Commands): Don't document obsolete + `common-substring' arg of display-completion-list. + 2014-02-17 Glenn Morris * minibuf.texi (Text from Minibuffer): Update read-regexp details. @@ -31,8 +41,8 @@ 2014-02-10 Lars Ingebrigtsen - * text.texi (User-Level Deletion): Document - `delete-trailing-whitespace' (bug#15309). + * text.texi (User-Level Deletion): + Document `delete-trailing-whitespace' (bug#15309). 2014-02-09 Lars Ingebrigtsen @@ -237,8 +247,8 @@ 2013-12-24 Tassilo Horn * control.texi (Pattern matching case statement): Fix missing - argument in simple expression language sample (Bug#16238). Add - some sample programs written in that language. Mention that + argument in simple expression language sample (Bug#16238). + Add some sample programs written in that language. Mention that `pcase' requires lexical binding. 2013-12-23 Xue Fuqiao @@ -253,8 +263,8 @@ 2013-12-23 Chong Yidong - * keymaps.texi (Controlling Active Maps): Renamed - set-temporary-overlay-map to set-transient map. Doc fixes. + * keymaps.texi (Controlling Active Maps): + Rename set-temporary-overlay-map to set-transient map. Doc fixes. (Searching Keymaps): The transient keymap takes precedence. 2013-12-23 Glenn Morris @@ -523,8 +533,8 @@ 2013-10-08 Eli Zaretskii Support menus on text-mode terminals. - * keymaps.texi (Defining Menus, Mouse Menus, Menu Bar): Modify - wording to the effect that menus are supported on TTYs. + * keymaps.texi (Defining Menus, Mouse Menus, Menu Bar): + Modify wording to the effect that menus are supported on TTYs. * frames.texi (Pop-Up Menus, Dialog Boxes) (Display Feature Testing): Update for menu support on TTYs. @@ -731,8 +741,8 @@ 2013-07-22 Michael Albinus * files.texi (Magic File Names): Add file-notify-add-watch, - file-notify-rm-watch and file-notify-supported-p. Move - file-remote-p down. + file-notify-rm-watch and file-notify-supported-p. + Move file-remote-p down. * errors.texi (Standard Errors): Add file-notify-error. === modified file 'doc/lispref/functions.texi' --- doc/lispref/functions.texi 2014-02-20 07:38:47 +0000 +++ doc/lispref/functions.texi 2014-02-22 03:39:10 +0000 @@ -1554,14 +1554,17 @@ This acts like a call to @code{set-advertised-calling-convention} (@pxref{Obsolete Functions}); @var{signature} specifies the correct argument list for calling the function or macro, and @var{when} should -be a string indicating when the variable was first made obsolete. +be a string indicating when the old argument list was first made obsolete. @item (debug @var{edebug-form-spec}) This is valid for macros only. When stepping through the macro with Edebug, use @var{edebug-form-spec}. @xref{Instrumenting Macro Calls}. @item (doc-string @var{n}) -Use element number @var{n}, if any, as the documentation string. +This is used when defining a function or macro which itself will be used to +define entities like functions, macros, or variables. It indicates that +the @var{n}th argument, if any, should be considered +as a documentation string. @item (indent @var{indent-spec}) Indent calls to this function or macro according to @var{indent-spec}. @@ -1576,7 +1579,37 @@ which case the warning message gives no extra details). @var{when} should be a string indicating when the function or macro was first made obsolete. + +@item (compiler-macro @var{expander}) +This can only be used for functions, and tells the compiler to use +@var{expander} as an optimization function. When encountering a call to the +function, of the form @code{(@var{function} @var{args}@dots)}, the macro +expander will call @var{expander} with that form as well as with +@var{args}@dots, and @var{expander} can either return a new expression to use +instead of the function call, or it can return just the form unchanged, +to indicate that the function call should be left alone. @var{expander} can +be a symbol, or it can be a form @code{(lambda (@var{arg}) @var{body})} in +which case @var{arg} will hold the original function call expression, and the +(unevaluated) arguments to the function can be accessed using the function's +formal arguments. + +@item (gv-expander @var{expander}) +Declare @var{expander} to be the function to handle calls to the macro (or +function) as a generalized variable, similarly to @code{gv-define-expander}. +@var{expander} can be a symbol or it can be of the form @code{(lambda +(@var{arg}) @var{body})} in which case that function will additionally have +access to the macro (or function)'s arguments. + +@item (gv-setter @var{setter}) +Declare @var{setter} to be the function to handle calls to the macro (or +function) as a generalized variable. @var{setter} can be a symbol in which +case it will be passed to @code{gv-define-simple-setter}, or it can be of the +form @code{(lambda (@var{arg}) @var{body})} in which case that function will +additionally have access to the macro (or function)'s arguments and it will +passed to @code{gv-define-setter}. + @end table + @end defmac @node Declaring Functions ------------------------------------------------------------ revno: 116523 committer: Juanma Barranquero branch nick: trunk timestamp: Sat 2014-02-22 03:10:49 +0100 message: lisp/desktop.el: Do not fail when desktop-files-not-to-save is nil. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-02-22 00:47:42 +0000 +++ lisp/ChangeLog 2014-02-22 02:10:49 +0000 @@ -1,3 +1,9 @@ +2014-02-22 Juanma Barranquero + + * desktop.el (desktop-save-buffer-p): Do not fail when + desktop-files-not-to-save is nil. Return t for true result + as the doc says. + 2014-02-22 Daniel Colascione * net/secrets.el (secrets-create-item,secrets-search-items): Check === modified file 'lisp/desktop.el' --- lisp/desktop.el 2014-02-18 01:33:30 +0000 +++ lisp/desktop.el 2014-02-22 02:10:49 +0000 @@ -878,23 +878,25 @@ MODE is the major mode. \n\(fn FILENAME BUFNAME MODE)" (let ((case-fold-search nil) - dired-skip) - (and (not (and (stringp desktop-buffers-not-to-save) - (not filename) - (string-match-p desktop-buffers-not-to-save bufname))) - (not (memq mode desktop-modes-not-to-save)) - ;; FIXME this is broken if desktop-files-not-to-save is nil. - (or (and filename - (stringp desktop-files-not-to-save) - (not (string-match-p desktop-files-not-to-save filename))) - (and (memq mode '(dired-mode vc-dir-mode)) - (with-current-buffer bufname - (not (setq dired-skip - (string-match-p desktop-files-not-to-save - default-directory))))) - (and (null filename) - (null dired-skip) ; bug#5755 - (with-current-buffer bufname desktop-save-buffer)))))) + (no-regexp-to-check (not (stringp desktop-files-not-to-save))) + dired-skip) + (and (or filename + (not (stringp desktop-buffers-not-to-save)) + (not (string-match-p desktop-buffers-not-to-save bufname))) + (not (memq mode desktop-modes-not-to-save)) + (or (and filename + (or no-regexp-to-check + (not (string-match-p desktop-files-not-to-save filename)))) + (and (memq mode '(dired-mode vc-dir-mode)) + (or no-regexp-to-check + (not (setq dired-skip + (with-current-buffer bufname + (string-match-p desktop-files-not-to-save + default-directory)))))) + (and (null filename) + (null dired-skip) ; bug#5755 + (with-current-buffer bufname desktop-save-buffer))) + t))) ;; ---------------------------------------------------------------------------- (defun desktop-file-name (filename dirname) ------------------------------------------------------------ revno: 116522 committer: Daniel Colascione branch nick: trunk timestamp: Fri 2014-02-21 17:44:59 -0800 message: Build correct secrets pattern from auth-source pattern diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2014-02-13 22:52:51 +0000 +++ lisp/gnus/ChangeLog 2014-02-22 01:44:59 +0000 @@ -1,3 +1,9 @@ +2014-02-22 Daniel Colascione + + * auth-source.el (auth-source-secrets-listify-pattern): New function. + (auth-source-secrets-search): Don't pass invalid patterns to secrets.el; + instead, build list of patterns. + 2014-02-13 Teodor Zlatanov * auth-source.el (auth-sources): Add pointer to what the .gpg extension === modified file 'lisp/gnus/auth-source.el' --- lisp/gnus/auth-source.el 2014-02-13 22:52:51 +0000 +++ lisp/gnus/auth-source.el 2014-02-22 01:44:59 +0000 @@ -1506,6 +1506,31 @@ ;; (let ((auth-sources '("secrets:Login"))) (auth-source-search :max 1)) ;; (let ((auth-sources '("secrets:Login"))) (auth-source-search :max 1 :signon_realm "https://git.gnus.org/Git")) +(defun auth-source-secrets-listify-pattern (pattern) + "Convert a pattern with lists to a list of string patterns. + +auth-source patterns can have values of the form :foo (\"bar\" +\"qux\"), which means to match any secret with :foo equal to +\"bar\" otr :foo equal to \"qux\". The secrets backend supports +only string values for patterns, so this routine returns a list +of patterns that is equivalent to the single original pattern +when interpreted such that if a secret matches any pattern in the +list, it mathces the original pattern." + (if (null pattern) + '(nil) + (let* ((key (pop pattern)) + (value (pop pattern)) + (tails (auth-source-secrets-listify-pattern pattern)) + (heads (if (stringp value) + (list (list key value)) + (mapcar (lambda (v) (list key v)) value)))) + (cl-loop + for h in heads + nconc + (cl-loop + for tl in tails + collect (append h tl)))))) + (defun* auth-source-secrets-search (&rest spec &key backend create delete label @@ -1558,21 +1583,25 @@ collect (nth i spec))) ;; build a search spec without the ignored keys ;; if a search key is nil or t (match anything), we skip it - (search-spec (apply 'append (mapcar + (search-specs (auth-source-secrets-listify-pattern + (apply 'append (mapcar (lambda (k) (if (or (null (plist-get spec k)) (eq t (plist-get spec k))) nil (list k (plist-get spec k)))) - search-keys))) + search-keys)))) ;; needed keys (always including host, login, port, and secret) (returned-keys (mm-delete-duplicates (append '(:host :login :port :secret) search-keys))) - (items (loop for item in (apply 'secrets-search-items coll search-spec) - unless (and (stringp label) - (not (string-match label item))) - collect item)) + (items + (loop for search-spec in search-specs + nconc + (loop for item in (apply 'secrets-search-items coll search-spec) + unless (and (stringp label) + (not (string-match label item))) + collect item))) ;; TODO: respect max in `secrets-search-items', not after the fact (items (butlast items (- (length items) max))) ;; convert the item name to a full plist ------------------------------------------------------------ revno: 116521 committer: Daniel Colascione branch nick: trunk timestamp: Fri 2014-02-21 16:47:42 -0800 message: Additional type checking in secrets API diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-02-21 19:01:19 +0000 +++ lisp/ChangeLog 2014-02-22 00:47:42 +0000 @@ -1,3 +1,9 @@ +2014-02-22 Daniel Colascione + + * net/secrets.el (secrets-create-item,secrets-search-items): Check + that attribute values are strings, avoiding the construction of + invalid dbus messages. + 2014-02-21 Juanma Barranquero * emacs-lisp/gv.el: Avoid duplicating gv-expander and gv-setter in === modified file 'lisp/net/secrets.el' --- lisp/net/secrets.el 2014-01-01 07:43:34 +0000 +++ lisp/net/secrets.el 2014-02-22 00:47:42 +0000 @@ -609,6 +609,8 @@ (while (consp (cdr attributes)) (unless (keywordp (car attributes)) (error 'wrong-type-argument (car attributes))) + (unless (stringp (cadr attributes)) + (error 'wrong-type-argument (cadr attributes))) (setq props (add-to-list 'props (list :dict-entry @@ -647,6 +649,8 @@ (while (consp (cdr attributes)) (unless (keywordp (car attributes)) (error 'wrong-type-argument (car attributes))) + (unless (stringp (cadr attributes)) + (error 'wrong-type-argument (cadr attributes))) (setq props (add-to-list 'props (list :dict-entry ------------------------------------------------------------ revno: 116520 committer: Glenn Morris branch nick: trunk timestamp: Fri 2014-02-21 15:24:02 -0500 message: NEWS copyedits diff: === modified file 'etc/NEWS' --- etc/NEWS 2014-02-20 08:14:20 +0000 +++ etc/NEWS 2014-02-21 20:24:02 +0000 @@ -814,17 +814,16 @@ with an indented sample file. --- -** SQL -Improved login monitoring and appropriate response to login failures. -Includes `sql-login-delay' to define maximum wait for a connection. - -*** Oracle support +** SQL mode + +*** Improved login monitoring and appropriate response to login failures. +New variable `sql-login-delay' defines maximum wait time for a connection. + +*** Oracle support. SQL*Plus script placeholders are properly highlighted and identified -in `sql-placeholders-filter' correctly. When SQL*Plus is started, -options specified in `sql-oracle-options' are passed before the logon -parameter, as SQL*Plus expects. The default setting for -`sql-oracle-options' has been altered to pass the `-L' option to limit -the number of logon attempts per invocation. +in `sql-placeholders-filter'. When starting SQL*Plus, `sql-oracle-options' +are passed before the logon parameter, as required. The default now +includes `-L', to limit the number of logon attempts per invocation. --- ** New Term mode option `term-suppress-hard-newline'. ------------------------------------------------------------ revno: 116519 committer: Glenn Morris branch nick: trunk timestamp: Fri 2014-02-21 15:10:56 -0500 message: Tweak earlier doc/lispref/processes.texi change diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-02-21 13:33:57 +0000 +++ doc/lispref/ChangeLog 2014-02-21 20:10:56 +0000 @@ -6,9 +6,9 @@ 2014-02-21 Glenn Morris * internals.texi (Process Internals): - * processes.texi (Deleting Processes, Output from Processes) - (Process Buffers, Filter Functions, Accepting Output, Sentinels) - (Network, Network Servers, Network Processes, Serial Ports): + * processes.texi (Subprocess Creation, Deleting Processes) + (Output from Processes, Process Buffers, Filter Functions) + (Accepting Output, Sentinels, Network, Network Servers): Filters and sentinels can no longer be nil. * elisp.texi (Top): Menu update. === modified file 'doc/lispref/processes.texi' --- doc/lispref/processes.texi 2014-02-21 08:04:15 +0000 +++ doc/lispref/processes.texi 2014-02-21 20:10:56 +0000 @@ -112,7 +112,7 @@ argument that specifies where the standard output from the program will go. It should be a buffer or a buffer name; if it is a buffer name, that will create the buffer if it does not already exist. It can also -be @code{nil}, which says to discard the output unless a filter function +be @code{nil}, which says to discard the output unless a custom filter function handles it. (@xref{Filter Functions}, and @ref{Read and Print}.) Normally, you should avoid having multiple processes send output to the same buffer because their output would be intermixed randomly. @@ -1130,12 +1130,12 @@ @cindex process output @cindex output from processes - There are two ways to receive the output that a subprocess writes to -its standard output stream. The output can be inserted in a buffer, -which is called the associated buffer of the process (@pxref{Process -Buffers}), or a function called the @dfn{filter function} can be -called to act on the output. If the process has no buffer and no -filter function, its output is discarded. + The output that a subprocess writes to its standard output stream +is passed to a function called the @dfn{filter function}. The default +filter function simply inserts the output into a buffer, which is +called the associated buffer of the process (@pxref{Process +Buffers}). If the process has no buffer then the default filter +discards the output. When a subprocess terminates, Emacs reads any pending output, then stops reading output from that subprocess. Therefore, if the @@ -1221,13 +1221,12 @@ If @var{process} does not have a buffer, @code{process-mark} returns a marker that points nowhere. -Insertion of process output in a buffer uses this marker to decide where -to insert, and updates it to point after the inserted text. That is why -successive batches of output are inserted consecutively. +The default filter function uses this marker to decide where to +insert process output, and updates it to point after the inserted text. +That is why successive batches of output are inserted consecutively. -Filter functions normally should use this marker in the same fashion -as is done by direct insertion of output in the buffer. For an -example of a filter function that uses @code{process-mark}, +Custom filter functions normally should use this marker in the same fashion. +For an example of a filter function that uses @code{process-mark}, @pxref{Process Filter Example}. When the user is expected to enter input in the process buffer for @@ -1269,7 +1268,7 @@ @cindex process filter A process @dfn{filter function} is a function that receives the -standard output from the associated process. @emph{all} output from +standard output from the associated process. @emph{All} output from that process is passed to the filter. The default filter simply outputs directly to the process buffer. @@ -1454,6 +1453,7 @@ @c set-process-filter-multibyte and process-filter-multibyte-p, @cindex filter multibyte flag, of process @cindex process filter multibyte flag +@c FIXME there is always a filter function now When Emacs calls a process filter function, it provides the process output as a multibyte string or as a unibyte string according to the process's filter coding system. Emacs @@ -2282,8 +2282,7 @@ @xref{Query Before Exit}. @item :filter @var{filter} -Initialize the process filter to @var{filter}. (Otherwise the default -filter is used.) +Initialize the process filter to @var{filter}. @item :filter-multibyte @var{multibyte} If @var{multibyte} is non-@code{nil}, strings given to the process @@ -2291,8 +2290,7 @@ default value of @code{enable-multibyte-characters}. @item :sentinel @var{sentinel} -Initialize the process sentinel to @var{sentinel}. (Otherwise the default -sentinel is used.) +Initialize the process sentinel to @var{sentinel}. @item :log @var{log} Initialize the log function of a server process to @var{log}. The log @@ -2580,12 +2578,10 @@ @code{stop-process}. @item :filter @var{filter} -Install @var{filter} as the process filter. (Otherwise the default -filter is used.) +Install @var{filter} as the process filter. @item :sentinel @var{sentinel} -Install @var{sentinel} as the process sentinel. (Otherwise the default -sentinel is used.) +Install @var{sentinel} as the process sentinel. @item :plist @var{plist} Install @var{plist} as the initial plist of the process. ------------------------------------------------------------ revno: 116518 committer: Juanma Barranquero branch nick: trunk timestamp: Fri 2014-02-21 20:01:19 +0100 message: lisp/emacs-lisp/gv.el: Avoid duplicating entries of defun-declaration-alist. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-02-21 17:45:26 +0000 +++ lisp/ChangeLog 2014-02-21 19:01:19 +0000 @@ -1,3 +1,8 @@ +2014-02-21 Juanma Barranquero + + * emacs-lisp/gv.el: Avoid duplicating gv-expander and gv-setter in + defun-declarations-alist. + 2014-02-21 Stefan Monnier * emacs-lisp/cl-macs.el (cl-define-compiler-macro): Add indent rule === modified file 'lisp/emacs-lisp/gv.el' --- lisp/emacs-lisp/gv.el 2014-01-01 07:43:34 +0000 +++ lisp/emacs-lisp/gv.el 2014-02-21 19:01:19 +0000 @@ -157,11 +157,13 @@ (_ (message "Unknown %s declaration %S" symbol handler) nil)))) ;;;###autoload -(push `(gv-expander ,(apply-partially #'gv--defun-declaration 'gv-expander)) - defun-declarations-alist) +(or (assq 'gv-expander defun-declarations-alist) + (push `(gv-expander ,(apply-partially #'gv--defun-declaration 'gv-expander)) + defun-declarations-alist)) ;;;###autoload -(push `(gv-setter ,(apply-partially #'gv--defun-declaration 'gv-setter)) - defun-declarations-alist) +(or (assq 'gv-setter defun-declarations-alist) + (push `(gv-setter ,(apply-partially #'gv--defun-declaration 'gv-setter)) + defun-declarations-alist)) ;; (defmacro gv-define-expand (name expander) ;; "Use EXPANDER to handle NAME as a generalized var. ------------------------------------------------------------ revno: 116517 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16829 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2014-02-21 12:45:26 -0500 message: * lisp/emacs-lisp/cl-macs.el (cl-define-compiler-macro): Add indent rule. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-02-21 16:18:56 +0000 +++ lisp/ChangeLog 2014-02-21 17:45:26 +0000 @@ -1,3 +1,8 @@ +2014-02-21 Stefan Monnier + + * emacs-lisp/cl-macs.el (cl-define-compiler-macro): Add indent rule + (bug#16829). + 2014-02-21 Juanma Barranquero * whitespace.el (whitespace-space, whitespace-hspace, whitespace-tab) @@ -25,10 +30,10 @@ 2014-02-21 Martin Rudalics Fix handling of window-min-height/-width (Bug#16738). - * window.el (window--dump-window, window--dump-frame): New - functions. - (window--min-size-1): Account for window dividers. When - window-resize-pixelwise is nil, delay rounding till after the + * window.el (window--dump-window, window--dump-frame): + New functions. + (window--min-size-1): Account for window dividers. + When window-resize-pixelwise is nil, delay rounding till after the sum of the window components has been calculated. (window--min-delta-1, window--max-delta-1): When PIXELWISE is nil make sure at least one text line and two text columns remain === modified file 'lisp/emacs-lisp/cl-macs.el' --- lisp/emacs-lisp/cl-macs.el 2014-01-23 15:01:41 +0000 +++ lisp/emacs-lisp/cl-macs.el 2014-02-21 17:45:26 +0000 @@ -2710,7 +2710,7 @@ possible. Unlike regular macros, BODY can decide to \"punt\" and leave the original function call alone by declaring an initial `&whole foo' parameter and then returning foo." - (declare (debug cl-defmacro)) + (declare (debug cl-defmacro) (indent 2)) (let ((p args) (res nil)) (while (consp p) (push (pop p) res)) (setq args (nconc (nreverse res) (and p (list '&rest p))))) ------------------------------------------------------------ revno: 116516 committer: Eli Zaretskii branch nick: trunk timestamp: Fri 2014-02-21 18:47:04 +0200 message: Another update of MS-Windows entries in etc/PROBLEMS. diff: === modified file 'etc/PROBLEMS' --- etc/PROBLEMS 2014-02-21 09:02:19 +0000 +++ etc/PROBLEMS 2014-02-21 16:47:04 +0000 @@ -1934,6 +1934,22 @@ accessible by right-clicking "My Computer" or "Computer", selecting "Manage", then clicking on "Services".) +** Emacs crashes when exiting the Emacs session + +This was reported to happen when some optional DLLs, such as those +used for displaying images or the GnuTLS library, which are loaded +on-demand, have a runtime dependency on the libgcc DLL, +libgcc_s_dw2-1.dll. The reason seems to be a bug in libgcc which +rears its ugly head whenever the libgcc DLL is loaded after Emacs has +started. + +One solution for this problem is to find an alternative build of the +same optional library that does not depend on the libgcc DLL. + +Another possibility is to rebuild Emacs with the -shared-libgcc +switch, which will force Emacs to load libgcc_s_dw2-1.dll on startup, +ahead of any optional DLLs loaded on-demand later in the session. + ** PATH can contain unexpanded environment variables Old releases of TCC (version 9) and 4NT (up to version 8) do not correctly ------------------------------------------------------------ revno: 116515 committer: Juanma Barranquero branch nick: trunk timestamp: Fri 2014-02-21 17:18:56 +0100 message: lisp/whitespace.el: End obsolescence messages with dot. (whitespace-space, whitespace-hspace, whitespace-tab) (whitespace-newline, whitespace-trailing, whitespace-line) (whitespace-space-before-tab, whitespace-indentation, whitespace-empty) (whitespace-space-after-tab): Fix typo in docstrings. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-02-21 15:39:17 +0000 +++ lisp/ChangeLog 2014-02-21 16:18:56 +0000 @@ -1,3 +1,10 @@ +2014-02-21 Juanma Barranquero + + * whitespace.el (whitespace-space, whitespace-hspace, whitespace-tab) + (whitespace-newline, whitespace-trailing, whitespace-line) + (whitespace-space-before-tab, whitespace-indentation, whitespace-empty) + (whitespace-space-after-tab): Fix typo in docstrings. + 2014-02-21 Dmitry Gutov * progmodes/ruby-mode.el (auto-mode-alist): Add missing "or". === modified file 'lisp/whitespace.el' --- lisp/whitespace.el 2014-01-27 12:30:17 +0000 +++ lisp/whitespace.el 2014-02-21 16:18:56 +0000 @@ -557,7 +557,7 @@ (defvar whitespace-space 'whitespace-space "Symbol face used to visualize SPACE. Used when `whitespace-style' includes the value `spaces'.") -(make-obsolete-variable 'whitespace-space "use the face instead" "24.4") +(make-obsolete-variable 'whitespace-space "use the face instead." "24.4") (defface whitespace-space @@ -573,7 +573,7 @@ (defvar whitespace-hspace 'whitespace-hspace "Symbol face used to visualize HARD SPACE. Used when `whitespace-style' includes the value `spaces'.") -(make-obsolete-variable 'whitespace-hspace "use the face instead" "24.4") +(make-obsolete-variable 'whitespace-hspace "use the face instead." "24.4") (defface whitespace-hspace ; 'nobreak-space '((((class color) (background dark)) @@ -588,7 +588,7 @@ (defvar whitespace-tab 'whitespace-tab "Symbol face used to visualize TAB. Used when `whitespace-style' includes the value `tabs'.") -(make-obsolete-variable 'whitespace-tab "use the face instead" "24.4") +(make-obsolete-variable 'whitespace-tab "use the face instead." "24.4") (defface whitespace-tab '((((class color) (background dark)) @@ -605,7 +605,7 @@ See `whitespace-display-mappings'. Used when `whitespace-style' includes the values `newline-mark' and `newline'.") -(make-obsolete-variable 'whitespace-newline "use the face instead" "24.4") +(make-obsolete-variable 'whitespace-newline "use the face instead." "24.4") (defface whitespace-newline '((default :weight normal) @@ -624,7 +624,7 @@ (defvar whitespace-trailing 'whitespace-trailing "Symbol face used to visualize trailing blanks. Used when `whitespace-style' includes the value `trailing'.") -(make-obsolete-variable 'whitespace-trailing "use the face instead" "24.4") +(make-obsolete-variable 'whitespace-trailing "use the face instead." "24.4") (defface whitespace-trailing ; 'trailing-whitespace '((default :weight bold) @@ -638,7 +638,7 @@ "Symbol face used to visualize \"long\" lines. See `whitespace-line-column'. Used when `whitespace-style' includes the value `line'.") -(make-obsolete-variable 'whitespace-line "use the face instead" "24.4") +(make-obsolete-variable 'whitespace-line "use the face instead." "24.4") (defface whitespace-line '((((class mono)) :inverse-video t :weight bold :underline t) @@ -653,7 +653,7 @@ "Symbol face used to visualize SPACEs before TAB. Used when `whitespace-style' includes the value `space-before-tab'.") (make-obsolete-variable 'whitespace-space-before-tab - "use the face instead" "24.4") + "use the face instead." "24.4") (defface whitespace-space-before-tab '((((class mono)) :inverse-video t :weight bold :underline t) @@ -665,7 +665,7 @@ (defvar whitespace-indentation 'whitespace-indentation "Symbol face used to visualize 8 or more SPACEs at beginning of line. Used when `whitespace-style' includes the value `indentation'.") -(make-obsolete-variable 'whitespace-indentation "use the face instead" "24.4") +(make-obsolete-variable 'whitespace-indentation "use the face instead." "24.4") (defface whitespace-indentation '((((class mono)) :inverse-video t :weight bold :underline t) @@ -677,7 +677,7 @@ (defvar whitespace-empty 'whitespace-empty "Symbol face used to visualize empty lines at beginning and/or end of buffer. Used when `whitespace-style' includes the value `empty'.") -(make-obsolete-variable 'whitespace-empty "use the face instead" "24.4") +(make-obsolete-variable 'whitespace-empty "use the face instead." "24.4") (defface whitespace-empty '((((class mono)) :inverse-video t :weight bold :underline t) @@ -690,7 +690,7 @@ "Symbol face used to visualize 8 or more SPACEs after TAB. Used when `whitespace-style' includes the value `space-after-tab'.") (make-obsolete-variable 'whitespace-space-after-tab - "use the face instead" "24.4") + "use the face instead." "24.4") (defface whitespace-space-after-tab '((((class mono)) :inverse-video t :weight bold :underline t) ------------------------------------------------------------ revno: 116514 committer: Dmitry Gutov branch nick: trunk timestamp: Fri 2014-02-21 17:39:17 +0200 message: * lisp/progmodes/ruby-mode.el (auto-mode-alist): Add missing "or". diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-02-21 14:29:28 +0000 +++ lisp/ChangeLog 2014-02-21 15:39:17 +0000 @@ -1,5 +1,7 @@ 2014-02-21 Dmitry Gutov + * progmodes/ruby-mode.el (auto-mode-alist): Add missing "or". + * electric.el (electric-indent-functions-without-reindent): Add `yaml-indent-line'. === modified file 'lisp/progmodes/ruby-mode.el' --- lisp/progmodes/ruby-mode.el 2014-02-03 15:59:39 +0000 +++ lisp/progmodes/ruby-mode.el 2014-02-21 15:39:17 +0000 @@ -2174,7 +2174,7 @@ "\\|jbuilder\\|gemspec\\|podspec" "\\|/" "\\(?:Gem\\|Rake\\|Cap\\|Thor" - "Vagrant\\|Guard\\|Pod\\)file" + "\\|Vagrant\\|Guard\\|Pod\\)file" "\\)\\'")) 'ruby-mode)) ;;;###autoload ------------------------------------------------------------ revno: 116513 committer: Dmitry Gutov branch nick: trunk timestamp: Fri 2014-02-21 16:29:28 +0200 message: * lisp/electric.el (electric-indent-functions-without-reindent): Add `yaml-indent-line'. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-02-21 14:26:17 +0000 +++ lisp/ChangeLog 2014-02-21 14:29:28 +0000 @@ -1,3 +1,8 @@ +2014-02-21 Dmitry Gutov + + * electric.el (electric-indent-functions-without-reindent): + Add `yaml-indent-line'. + 2014-02-21 Juanma Barranquero * w32-vars.el (w32-enable-synthesized-fonts): Mark as obsolete. === modified file 'lisp/electric.el' --- lisp/electric.el 2014-02-17 18:16:32 +0000 +++ lisp/electric.el 2014-02-21 14:29:28 +0000 @@ -220,7 +220,7 @@ (defvar electric-indent-functions-without-reindent '(indent-relative indent-to-left-margin indent-relative-maybe - py-indent-line coffee-indent-line org-indent-line + py-indent-line coffee-indent-line org-indent-line yaml-indent-line haskell-indentation-indent-line haskell-indent-cycle haskell-simple-indent) "List of indent functions that can't reindent. If `line-indent-function' is one of those, then `electric-indent-mode' will ------------------------------------------------------------ revno: 116512 committer: Juanma Barranquero branch nick: trunk timestamp: Fri 2014-02-21 15:26:17 +0100 message: lisp/w32-vars.el (w32-enable-synthesized-fonts): Mark as obsolete. It has done nothing for years; should be removed after the release. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-02-21 13:22:14 +0000 +++ lisp/ChangeLog 2014-02-21 14:26:17 +0000 @@ -1,5 +1,8 @@ 2014-02-21 Juanma Barranquero + * w32-vars.el (w32-enable-synthesized-fonts): Mark as obsolete. + It has done nothing for years; should be removed after the release. + * simple.el (choose-completion): Fix docstring typo. (read-quoted-char-radix): Remove unneeded * in docstring. (process-file, kill-whole-line, pop-to-mark-command, set-mark-command): === modified file 'lisp/w32-vars.el' --- lisp/w32-vars.el 2014-01-01 07:43:34 +0000 +++ lisp/w32-vars.el 2014-02-21 14:26:17 +0000 @@ -149,6 +149,8 @@ (string :tag "Font"))))))) :group 'w32) +(make-obsolete-variable 'w32-enable-synthesized-fonts nil "24.4") + (provide 'w32-vars) ;;; w32-vars.el ends here ------------------------------------------------------------ revno: 116511 committer: Juanma Barranquero branch nick: trunk timestamp: Fri 2014-02-21 14:33:57 +0100 message: doc/lispref/windows.texi (Window Configurations): Doc fix. (Windows and Frames): Fix typo. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-02-21 08:04:15 +0000 +++ doc/lispref/ChangeLog 2014-02-21 13:33:57 +0000 @@ -1,3 +1,8 @@ +2014-02-21 Juanma Barranquero + + * windows.texi (Window Configurations): Doc fix. + (Windows and Frames): Fix typo. + 2014-02-21 Glenn Morris * internals.texi (Process Internals): === modified file 'doc/lispref/windows.texi' --- doc/lispref/windows.texi 2014-01-01 07:43:34 +0000 +++ doc/lispref/windows.texi 2014-02-21 13:33:57 +0000 @@ -252,7 +252,7 @@ window @var{W2} and the internal window @var{W3}. The child windows of @var{W3} form a vertical combination, consisting of the live windows @var{W4} and @var{W5}. Hence, the live windows in this -window tree are @var{W2} @var{W4}, and @var{W5}. +window tree are @var{W2}, @var{W4}, and @var{W5}. The following functions can be used to retrieve a child window of an internal window, and the siblings of a child window. @@ -3504,8 +3504,9 @@ This function puts the window state @var{state} into @var{window}. The argument @var{state} should be the state of a window returned by an earlier invocation of @code{window-state-get}, see above. The optional -argument @var{window} must specify a live window and defaults to the -selected one. +argument @var{window} must specify a valid window and defaults to the +selected one. If @var{window} is not live, it is replaced by a live +window before putting @var{state} into it. If the optional argument @var{ignore} is non-@code{nil}, it means to ignore minimum window sizes and fixed-size restrictions. If @var{ignore} ------------------------------------------------------------ revno: 116510 committer: Juanma Barranquero branch nick: trunk timestamp: Fri 2014-02-21 14:22:14 +0100 message: lisp/simple.el (choose-completion): Fix docstring typo. (read-quoted-char-radix): Remove unneeded * in docstring. (process-file, kill-whole-line, pop-to-mark-command, set-mark-command): Don't escape parentheses unnecessarily in docstrings. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-02-21 11:04:27 +0000 +++ lisp/ChangeLog 2014-02-21 13:22:14 +0000 @@ -1,3 +1,10 @@ +2014-02-21 Juanma Barranquero + + * simple.el (choose-completion): Fix docstring typo. + (read-quoted-char-radix): Remove unneeded * in docstring. + (process-file, kill-whole-line, pop-to-mark-command, set-mark-command): + Don't escape parentheses unnecessarily in docstrings. + 2014-02-21 Martin Rudalics Fix handling of window-min-height/-width (Bug#16738). === modified file 'lisp/simple.el' --- lisp/simple.el 2014-02-10 06:58:34 +0000 +++ lisp/simple.el 2014-02-21 13:22:14 +0000 @@ -641,7 +641,7 @@ (indent-according-to-mode))) (defcustom read-quoted-char-radix 8 - "*Radix for \\[quoted-insert] and other uses of `read-quoted-char'. + "Radix for \\[quoted-insert] and other uses of `read-quoted-char'. Legitimate radix values are 8, 10 and 16." :type '(choice (const 8) (const 10) (const 16)) :group 'editing-basics) @@ -3184,9 +3184,9 @@ File names in INFILE and BUFFER are handled normally, but file names in ARGS should be relative to `default-directory', as they -are passed to the process verbatim. \(This is a difference to +are passed to the process verbatim. (This is a difference to `call-process' which does not support file handlers for INFILE -and BUFFER.\) +and BUFFER.) Some file handlers might not support all variants, for example they might behave as if DISPLAY was nil, regardless of the actual @@ -4107,7 +4107,7 @@ "Kill current line. With prefix ARG, kill that many lines starting from the current line. If ARG is negative, kill backward. Also kill the preceding newline. -\(This is meant to make \\[repeat] work well with negative arguments.\) +\(This is meant to make \\[repeat] work well with negative arguments.) If ARG is zero, kill current line but exclude the trailing newline." (interactive "p") (or arg (setq arg 1)) @@ -4531,7 +4531,7 @@ (defun pop-to-mark-command () "Jump to mark, and pop a new position for mark off the ring. -\(Does not affect global mark ring\)." +\(Does not affect global mark ring)." (interactive) (if (null (mark t)) (error "No mark set in this buffer") @@ -4577,11 +4577,11 @@ When Transient Mark Mode is off, immediately repeating this command activates `transient-mark-mode' temporarily. -With prefix argument \(e.g., \\[universal-argument] \\[set-mark-command]\), \ +With prefix argument (e.g., \\[universal-argument] \\[set-mark-command]), \ jump to the mark, and set the mark from -position popped off the local mark ring \(this does not affect the global -mark ring\). Use \\[pop-global-mark] to jump to a mark popped off the global -mark ring \(see `pop-global-mark'\). +position popped off the local mark ring (this does not affect the global +mark ring). Use \\[pop-global-mark] to jump to a mark popped off the global +mark ring (see `pop-global-mark'). If `set-mark-command-repeat-pop' is non-nil, repeating the \\[set-mark-command] command with no prefix argument pops the next position @@ -5380,7 +5380,7 @@ ;; the middle of a continued line. When we get to ;; line-move-finish, point is at the start of a new *screen* ;; line but the same text line; then line-move-to-column would - ;; move us backwards. Test using C-n with point on the "x" in + ;; move us backwards. Test using C-n with point on the "x" in ;; (insert "a" (propertize "x" 'field t) (make-string 89 ?y)) (and forward (< (point) old) @@ -6914,7 +6914,7 @@ (defun choose-completion (&optional event) "Choose the completion at point. -If EVENT, use EVENTs position to determine the starting position." +If EVENT, use EVENT's position to determine the starting position." (interactive (list last-nonmenu-event)) ;; In case this is run via the mouse, give temporary modes such as ;; isearch a chance to turn off. ------------------------------------------------------------ revno: 116509 committer: martin rudalics branch nick: trunk timestamp: Fri 2014-02-21 12:04:27 +0100 message: In with-temp-buffer-window don't evaluate BODY within with-current-buffer (Bug#16816). * window.el (with-temp-buffer-window): Don't evaluate BODY within with-current-buffer (Bug#16816). diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-02-21 08:02:05 +0000 +++ lisp/ChangeLog 2014-02-21 11:04:27 +0000 @@ -15,6 +15,9 @@ (adjust-window-trailing-edge): Call window--resizable with correct TRAIL argument. + (with-temp-buffer-window): Don't evaluate BODY within + with-current-buffer (Bug#16816). + 2014-02-21 Michael Albinus * net/tramp.el (tramp-check-cached-permissions): === modified file 'lisp/window.el' --- lisp/window.el 2014-02-21 08:02:05 +0000 +++ lisp/window.el 2014-02-21 11:04:27 +0000 @@ -189,8 +189,8 @@ `(let* ((,buffer (temp-buffer-window-setup ,buffer-or-name)) (standard-output ,buffer) ,window ,value) + (setq ,value (progn ,@body)) (with-current-buffer ,buffer - (setq ,value (progn ,@body)) (setq ,window (temp-buffer-window-show ,buffer ,action))) (if (functionp ,quit-function) ------------------------------------------------------------ revno: 116508 committer: Michael Albinus branch nick: trunk timestamp: Fri 2014-02-21 11:43:49 +0100 message: * automated/tramp-tests.el (tramp-test19-directory-files-and-attributes): Do not include directories in comparison; they might have changed their timestamps already. diff: === modified file 'test/ChangeLog' --- test/ChangeLog 2014-02-20 14:08:00 +0000 +++ test/ChangeLog 2014-02-21 10:43:49 +0000 @@ -1,3 +1,10 @@ +2014-02-21 Michael Albinus + + * automated/tramp-tests.el + (tramp-test19-directory-files-and-attributes): Do not include + directories in comparison; they might have changed their + timestamps already. + 2014-02-20 Michael Albinus * automated/tramp-tests.el (tramp--instrument-test-case): New macro. === modified file 'test/automated/tramp-tests.el' --- test/automated/tramp-tests.el 2014-02-20 18:26:40 +0000 +++ test/automated/tramp-tests.el 2014-02-21 10:43:49 +0000 @@ -906,13 +906,19 @@ (setq attr (directory-files-and-attributes tmp-name)) (should (consp attr)) (dolist (elt attr) - (should - (equal (file-attributes (expand-file-name (car elt) tmp-name)) - (cdr elt)))) + ;; We cannot include "." and "..". They might have + ;; changed their timestamp already. + (when (string-match "foo$\\|bar$\\|baz$" (car elt)) + (should + (equal (file-attributes (expand-file-name (car elt) tmp-name)) + (cdr elt))))) (setq attr (directory-files-and-attributes tmp-name 'full)) (dolist (elt attr) - (should - (equal (file-attributes (car elt)) (cdr elt)))) + ;; We cannot include "." and "..". They might have + ;; changed their timestamp already. + (when (string-match "foo$\\|bar$\\|baz$" (car elt)) + (should + (equal (file-attributes (car elt)) (cdr elt))))) (setq attr (directory-files-and-attributes tmp-name nil "^b")) (should (equal (mapcar 'car attr) '("bar" "boz")))) (ignore-errors (delete-directory tmp-name 'recursive)))))) ------------------------------------------------------------ revno: 116507 committer: Eli Zaretskii branch nick: trunk timestamp: Fri 2014-02-21 11:02:19 +0200 message: Update MS-Windows entries in etc/PROBLEMS. diff: === modified file 'etc/PROBLEMS' --- etc/PROBLEMS 2014-01-23 02:11:13 +0000 +++ etc/PROBLEMS 2014-02-21 09:02:19 +0000 @@ -1901,6 +1901,39 @@ * Runtime problems specific to MS-Windows +** Emacs on Windows 9X requires UNICOWS.DLL + +If that DLL is not available, Emacs will display an error dialog +stating its absence, and refuse to run. + +This is because Emacs 24.4 and later uses functions whose non-stub +implementation is only available in UNICOWS.DLL, which implements the +Microsoft Layer for Unicode on Windows 9X, or "MSLU". This article on +MSDN: + + http://msdn.microsoft.com/en-us/goglobal/bb688166.aspx + +includes a short description of MSLU and a link where it can be +downloaded. + +** A few seconds delay is seen at startup and for many file operations + +This happens when the Net Logon service is enabled. During Emacs +startup, this service issues many DNS requests looking up for the +Windows Domain Controller. When Emacs accesses files on networked +drives, it automatically logs on the user into those drives, which +again causes delays when Net Logon is running. + +The solution seems to be to disable Net Logon with this command typed +at the Windows shell prompt: + + net stop netlogon + +To start the service again, type "net start netlogon". (You can also +stop and start the service from the Computer Management application, +accessible by right-clicking "My Computer" or "Computer", selecting +"Manage", then clicking on "Services".) + ** PATH can contain unexpanded environment variables Old releases of TCC (version 9) and 4NT (up to version 8) do not correctly @@ -1920,8 +1953,8 @@ ** Windows 95 and networking. -To support server sockets, Emacs 22.1 loads ws2_32.dll. If this file -is missing, all Emacs networking features are disabled. +To support server sockets, Emacs loads ws2_32.dll. If this file is +missing, all Emacs networking features are disabled. Old versions of Windows 95 may not have the required DLL. To use Emacs's networking features on Windows 95, you must install the @@ -1940,28 +1973,36 @@ rails-mode that avoids this crash, or avoid using UNC paths if using rails-mode. -** Known problems with the MS-Windows port of Emacs 22.3 - -M-x term does not work on MS-Windows. TTY emulation on Windows is -undocumented, and programs such as stty which are used on posix platforms -to control tty emulation do not exist for native windows terminals. - -Using create-fontset-from-ascii-font or the --font startup parameter +** M-x term does not work on MS-Windows. + +TTY emulation on Windows is undocumented, and programs such as stty +which are used on posix platforms to control tty emulation do not +exist for native windows terminals. + +** Using create-fontset-from-ascii-font or the --font startup parameter with a Chinese, Japanese or Korean font leads to display problems. Use a Latin-only font as your default font. If you want control over which font is used to display Chinese, Japanese or Korean character, use create-fontset-from-fontset-spec to define a fontset. -Frames are not refreshed while the File or Font dialog or a pop-up menu -is displayed. This also means help text for pop-up menus is not -displayed at all. This is because message handling under Windows is -synchronous, so we cannot handle repaint (or any other) messages while -waiting for a system function to return the result of the dialog or -pop-up menu interaction. +** Frames are not refreshed while dialogs or menus are displayed + +This means no redisplay while the File or Font dialog or a pop-up menu +is displayed. This also means tooltips with help text for pop-up +menus is not displayed at all (except in a TTY session, where the help +text is shown in the echo area). This is because message handling +under Windows is synchronous, so we cannot handle repaint (or any +other) messages while waiting for a system function, which popped up +the menu/dialog, to return the result of the dialog or pop-up menu +interaction. + +** Help text in tooltips does not work on old Windows versions Windows 95 and Windows NT up to version 4.0 do not support help text for menus. Help text is only available in later versions of Windows. +** Display problems with ClearType method of smoothing + When "ClearType" method is selected as the "method to smooth edges of screen fonts" (in Display Properties, Appearance tab, under "Effects"), there are various problems related to display of @@ -1973,6 +2014,8 @@ this display feature needs more changes to get it 100% right. A workaround is to disable ClearType. +** Problems with mouse-tracking and focus management + There are problems with display if mouse-tracking is enabled and the mouse is moved off a frame, over another frame then back over the first frame. A workaround is to click the left mouse button inside the frame @@ -1984,22 +2027,22 @@ An inactive cursor remains in an active window after the Windows Manager driven switch of the focus, until a key is pressed. -Windows input methods are not recognized by Emacs. However, some -of these input methods cause the keyboard to send characters encoded -in the appropriate coding system (e.g., ISO 8859-1 for Latin-1 -characters, ISO 8859-8 for Hebrew characters, etc.). To make these -input methods work with Emacs, set the keyboard coding system to the -appropriate value after you activate the Windows input method. For -example, if you activate the Hebrew input method, type this: +** Problems with Windows input methods + +Some of the Windows input methods cause the keyboard to send +characters encoded in the appropriate coding system (e.g., ISO 8859-1 +for Latin-1 characters, ISO 8859-8 for Hebrew characters, etc.). To +make these input methods work with Emacs on Windows 9X, you might need +to set the keyboard coding system to the appropriate value after you +activate the Windows input method. For example, if you activate the +Hebrew input method, type this: C-x RET k hebrew-iso-8bit RET -(Emacs ought to recognize the Windows language-change event and set up -the appropriate keyboard encoding automatically, but it doesn't do -that yet.) In addition, to use these Windows input methods, you -should set your "Language for non-Unicode programs" (on Windows XP, -this is on the Advanced tab of Regional Settings) to the language of -the input method. +In addition, to use these Windows input methods, you might need to set +your "Language for non-Unicode programs" (on Windows XP, this is on +the Advanced tab of Regional Settings) to the language of the input +method. To bind keys that produce non-ASCII characters with modifiers, you must specify raw byte codes. For instance, if you want to bind @@ -2011,20 +2054,28 @@ of the encoded a-grave is 340 octal. For other environments, use the encoding appropriate to that environment. +** Problems with the %b format specifier for format-time-string + The %b specifier for format-time-string does not produce abbreviated month names with consistent widths for some locales on some versions of Windows. This is caused by a deficiency in the underlying system library function. +** Problems with set-time-zone-rule function + The function set-time-zone-rule gives incorrect results for many non-US timezones. This is due to over-simplistic handling of daylight savings switchovers by the Windows libraries. +** Files larger than 4GB report wrong size + Files larger than 4GB cause overflow in the size (represented as a 32-bit integer) reported by `file-attributes'. This affects Dired as well, since the Windows port uses a Lisp emulation of `ls' that relies on `file-attributes'. +** Playing sound doesn't support the :data method + Sound playing is not supported with the `:data DATA' key-value pair. You _must_ use the `:file FILE' method.