Mercurial > hg > xemacs-beta
changeset 4800:b828e06dbe38
New (Common Lisp) function get-propertie
author | Didier Verna <didier@xemacs.org> |
---|---|
date | Wed, 06 Jan 2010 13:48:25 +0100 |
parents | ea7a6c12df45 |
children | 591091481f20 |
files | lisp/ChangeLog lisp/cl-extra.el |
diffstat | 2 files changed, 542 insertions(+), 526 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Mon Jan 04 16:48:55 2010 -0700 +++ b/lisp/ChangeLog Wed Jan 06 13:48:25 2010 +0100 @@ -1,3 +1,7 @@ +2010-01-06 Didier Verna <didier@xemacs.org> + + * cl-extra.el (get-properties): New. + 2009-12-31 Aidan Kehoe <kehoea@parhasard.net> * list-mode.el (next-list-mode-item, switch-to-completions): Use @@ -21,12 +25,12 @@ 2009-12-21 Aidan Kehoe <kehoea@parhasard.net> - * mule/arabic.el (arabic-iso8859-6): + * mule/arabic.el (arabic-iso8859-6): Move the creation of this character set to this (dumped) file, - since it's needed for input on X11. - * mule/iso-with-esc.el: + since it's needed for input on X11. + * mule/iso-with-esc.el: Remove arabic-iso8859-6 and its Unicode map from this file. - * unicode.el (load-unicode-tables): + * unicode.el (load-unicode-tables): Load arabic-iso8859-6 on startup again. 2009-12-19 Aidan Kehoe <kehoea@parhasard.net> @@ -38,54 +42,54 @@ 2009-12-18 Aidan Kehoe <kehoea@parhasard.net> - * alist.el (modify-alist): - * autoload.el (update-autoload-files, autoload-print-form): + * alist.el (modify-alist): + * autoload.el (update-autoload-files, autoload-print-form): * bytecomp.el (batch-byte-compile-1) (byte-compile-multiple-value-call, byte-compile-funcall) (byte-compile-insert, byte-compile-concat, byte-compile-list) - (byte-compile-normal-call, byte-compile-flush-pending): - * cl-macs.el (letf): + (byte-compile-normal-call, byte-compile-flush-pending): + * cl-macs.el (letf): * cl.el: - * disass.el (disassemble-1): - * easy-mmode.el (easy-mmode-define-syntax): - * faces.el (set-face-parent): - * files.el (cd): + * disass.el (disassemble-1): + * easy-mmode.el (easy-mmode-define-syntax): + * faces.el (set-face-parent): + * files.el (cd): * finder.el (finder-list-matches, finder-list-keywords) - (finder-compile-keywords): + (finder-compile-keywords): * frame.el (frame-notice-user-settings) - (frame-remove-geometry-props): + (frame-remove-geometry-props): * ldap.el (ldap-delete-entries, ldap-modify-entries) - (ldap-add-entries): - * loadhist.el (unload-feature): - * map-ynp.el (map-y-or-n-p): - * menubar-items.el (default-menubar): + (ldap-add-entries): + * loadhist.el (unload-feature): + * map-ynp.el (map-y-or-n-p): + * menubar-items.el (default-menubar): * mouse.el (default-mouse-track-next-move-rect) (default-mouse-track-next-move-rect) (default-mouse-track-cleanup-hook) - (default-mouse-track-cleanup-extent): + (default-mouse-track-cleanup-extent): * mule/ethio-util.el (ethio-fidel-to-sera-buffer) - (ethio-modify-vowel): - * obsolete.el: - * package-get.el (package-get-update-all): + (ethio-modify-vowel): + * obsolete.el: + * package-get.el (package-get-update-all): * package-ui.el (pui-list-packages) - (pui-install-selected-packages, pui-install-selected-packages): + (pui-install-selected-packages, pui-install-selected-packages): * select.el (select-make-extent-for-selection) - (dehilight-selection): - * simple.el (clone-buffer): - * term/tvi970.el: - * term/wyse50.el: - * unicode.el: - (load-unicode-tables): + (dehilight-selection): + * simple.el (clone-buffer): + * term/tvi970.el: + * term/wyse50.el: + * unicode.el: + (load-unicode-tables): * x-font-menu.el (fc-make-font-menu-entry) - (x-reset-device-font-menus-xft): - * x-misc.el (x-init-specifier-from-resources): + (x-reset-device-font-menus-xft): + * x-misc.el (x-init-specifier-from-resources): Eliminate byte-compile warnings, with the exception of Stephen's various non-defined fontconfig functions, as I don't know if he plans to add them and is keeping the warnings around as a reminder. The warnings actually eliminated involve i) using mapcar instead of mapc where the result is discarded and ii) using a lambda quoted as data in a context where it is unequivocally used - as a function. + as a function. 2009-12-17 Aidan Kehoe <kehoea@parhasard.net> @@ -119,20 +123,20 @@ 2009-11-15 Aidan Kehoe <kehoea@parhasard.net> - * custom.el (custom-quote): + * custom.el (custom-quote): Define this as an alias for `quote-maybe', which is in C and more comprehensive; packages still use this name in places. (customize-mark-to-save, customize-mark-as-set): Use `quote-maybe', not `custom-quote'. * cus-edit.el (customize-set-variable, customize-save-variable) (custom-variable-value-create, custom-variable-set) - (custom-variable-pre-save): + (custom-variable-pre-save): Remove a version of `custom-quote' specific to this file; use `quote-maybe' universally instead. 2009-11-14 Aidan Kehoe <kehoea@parhasard.net> - * bytecomp.el (byte-compile-funarg-n): + * bytecomp.el (byte-compile-funarg-n): New macro, used to create the various byte-compile-funarg functions, which check for quoted lambdas in given positions. (byte-compile-funarg, byte-compile-funarg-2) @@ -142,21 +146,21 @@ to this problem. Be much more comprehensive in the functions that we use byte-compile-funarg and related function to compile, especially - including functions from cl-seq.el. + including functions from cl-seq.el. 2009-11-14 Aidan Kehoe <kehoea@parhasard.net> - * cl-macs.el (letf): + * cl-macs.el (letf): Check whether arguments to #'values are bound, and make them unbound after evaluating BODY; document the limitations of this macro. 2009-11-14 Aidan Kehoe <kehoea@parhasard.net> - * faces.el (init-other-random-faces): + * faces.el (init-other-random-faces): If the modeline face is using its fallbacks, avoid that, specify the corresponding problems instead. Fixes problems described in - http://mid.gmane.org/3ggprc2diyt.wl_Ron.Isaacson@morganstanley.com + http://mid.gmane.org/3ggprc2diyt.wl_Ron.Isaacson@morganstanley.com 2009-11-09 Didier Verna <didier@xemacs.org> @@ -167,7 +171,7 @@ 2009-11-08 Aidan Kehoe <kehoea@parhasard.net> - * bytecomp.el (save-window-excursion): + * bytecomp.el (save-window-excursion): Remove the compiler form for this bytecode, we no longer generate calls to it. Keep the information about the bytecode's numeric value, we want that for disassembling code. @@ -178,16 +182,16 @@ (cl-bit-vector-vector-equalp, cl-vector-array-equalp) (cl-hash-table-contents-equalp): New functions, to implement equalp treating arrays with identical contents as equivalent, as - specified by Common Lisp. + specified by Common Lisp. (equalp): Revise this function to implement array equivalence, and the hash-table equalp behaviour specified by CL. * cl-macs.el (equalp): Add a compiler macro for this function, used when one of the arguments is constant, and as such, its type - is known at compile time. + is known at compile time. 2009-11-01 Aidan Kehoe <kehoea@parhasard.net> - * cl-extra.el (equalp): + * cl-extra.el (equalp): Don't error if handed a string and a non-string. 2009-11-01 Stephen Turnbull <stephen@xemacs.org> @@ -243,7 +247,7 @@ 2009-10-30 Aidan Kehoe <kehoea@parhasard.net> - * cl-macs.el (regexp-quote): + * cl-macs.el (regexp-quote): If STRING is constant, call regexp-quote at compile time. 2009-10-24 Aidan Kehoe <kehoea@parhasard.net> @@ -254,32 +258,32 @@ New function; return t if file names under PATH should be treated case-insensitively. * minibuf.el (read-file-name-1, read-file-name-internal-1) - (read-file-name-internal-1): - * package-admin.el (package-admin-check-manifest): + (read-file-name-internal-1): + * package-admin.el (package-admin-check-manifest): Use file-system-ignore-case-p instead of checking system-type directly in these functions. (Even though minibuf.el is dumped before files.el, the function is only called in interactive usage, - there's no dump time order dependency here.) + there's no dump time order dependency here.) 2009-10-19 Aidan Kehoe <kehoea@parhasard.net> - * bytecomp.el (byte-compile-default-warnings): + * bytecomp.el (byte-compile-default-warnings): Add two new warning types, discarded-consing (basically use of mapcar instead of mapc where its result is discarded) and quoted-lambda (use of a lambda expression quoted as data in a function context). - (byte-compile-warnings): Document the new warnings. + (byte-compile-warnings): Document the new warnings. (byte-compile-fset, byte-compile-funarg): Implement the - quoted-lambda warning option. + quoted-lambda warning option. (byte-compile-mapcar): Renamed to byte-compile-maybe-mapc. - (byte-compile-maybe-mapc, byte-compile-maplist): - Implement the discarded-consing warning option. + (byte-compile-maybe-mapc, byte-compile-maplist): + Implement the discarded-consing warning option. Add more functions that should be compiled using byte-compile-funarg, notably mapvector, mapc-internal, - map-char-table. - * cl-macs.el (mapcar*): + map-char-table. + * cl-macs.el (mapcar*): If we know at compile time that there are no CL options being - used, use the mapcar subr, not the byte-coded function. + used, use the mapcar subr, not the byte-coded function. 2009-10-12 Aidan Kehoe <kehoea@parhasard.net> @@ -291,13 +295,13 @@ mapc-internal call instead, and warn, because the programmer probably can't rely on always being compiled by an XEmacs that does this. Similarly for maplist and mapl; and use - byte-compile-funarg for map, mapl, mapcan, mapcon. + byte-compile-funarg for map, mapl, mapcan, mapcon. 2009-10-12 Aidan Kehoe <kehoea@parhasard.net> - * cl-macs.el (delete-duplicates): + * cl-macs.el (delete-duplicates): Fix another bug in the delete-duplicates compiler macro, thank you - the byte compiler. + the byte compiler. 2009-10-07 Andreas Roehler <andreas.roehler@online.de> @@ -334,7 +338,7 @@ 2009-10-03 Aidan Kehoe <kehoea@parhasard.net> - * cl-macs.el (delete-duplicates): + * cl-macs.el (delete-duplicates): Make this compiler macro aware that CL-SEQ is a sequence, which may not necessarily be a list. @@ -352,66 +356,66 @@ 2009-09-27 Aidan Kehoe <kehoea@parhasard.net> - * cus-edit.el (custom-variable-prompt): + * cus-edit.el (custom-variable-prompt): nil is a symbol, check that variable-at-point is non-nil before checking if it's a symbol when deciding on the prompt used in this - function. + function. 2009-09-22 Andreas Roehler <andreas.roehler@online.de> * lisp.el (beginning-of-defun-raw): - new variable: beginning-of-defun-function, + new variable: beginning-of-defun-function, beginning-of-defun may call FUNCTION determining start position * lisp.el (end-of-defun): - new variable: end-of-defun-function, + new variable: end-of-defun-function, end-of-defun may call FUNCTION determining the end position 2009-09-20 Aidan Kehoe <kehoea@parhasard.net> Add arglist information to docstrings for autoloaded functions and macros. - * hyper-apropos.el (hyper-apropos-get-doc): + * hyper-apropos.el (hyper-apropos-get-doc): Treat autoload docstrings like subr docstrings; correct the regexp used. - * help.el (describe-function-show-arglist): - This no longer treats autoloads specially. - (function-arglist): Treat autoload docstrings like subr docstrings. + * help.el (describe-function-show-arglist): + This no longer treats autoloads specially. + (function-arglist): Treat autoload docstrings like subr docstrings. (function-documentation): Treat documentation strings that are zero-length after the arglist has been removed as indicating a lack of documentation. - * cl-macs.el (case): - (ecase): - (typecase): - (etypecase): - (block): - (return): - (return-from): - (progv): - (lexical-let): - (lexical-let*): - (remf): - (callf): - (callf2): - (define-modify-macro): - (deftype): - (define-compiler-macro): + * cl-macs.el (case): + (ecase): + (typecase): + (etypecase): + (block): + (return): + (return-from): + (progv): + (lexical-let): + (lexical-let*): + (remf): + (callf): + (callf2): + (define-modify-macro): + (deftype): + (define-compiler-macro): Rely on the autoload code to always show an arglist for these functions, don't supply an ad-hoc one in the docstring. These changes are for the most obvious functions; there are some missed that would require changing argument names in the docstring or in the function bodies. - * autoload.el (make-autoload): + * autoload.el (make-autoload): Add arg list information to the doc string, using the same approach as for subrs. 2009-09-20 Aidan Kehoe <kehoea@parhasard.net> - * help.el (function-arglist): - Show the double-quotes in the sample output, correctly. - Bind print-gensym to nil, now we're using uninterned symbols. + * help.el (function-arglist): + Show the double-quotes in the sample output, correctly. + Bind print-gensym to nil, now we're using uninterned symbols. Don't #'mapcar + #'intern to create uppercase symbols, use #'loop and #'make-symbol instead. - * cl-macs.el (cl-upcase-arg): + * cl-macs.el (cl-upcase-arg): Don't intern the upcased symbols we're using for cosmetic reasons. Trust #'true-list-p in #'cl-function-arglist to detect circularity. @@ -424,82 +428,82 @@ 2009-09-20 Aidan Kehoe <kehoea@parhasard.net> - * mule/make-coding-system.el (make-coding-system): + * mule/make-coding-system.el (make-coding-system): Require a minimum of two, not four, arguments; thank you for the problem report, Adam Sjøgren! 2009-09-19 Aidan Kehoe <kehoea@parhasard.net> Move the #'query-coding-region implementation to C. - * coding.el: + * coding.el: Consolidate code that depends on the presence or absence of Mule - at the end of this file. + at the end of this file. (default-query-coding-region, query-coding-region): - Move these functions to C. + Move these functions to C. (default-query-coding-region-safe-charset-skip-chars-map): Remove this variable, the corresponding C variable is - Vdefault_query_coding_region_chartab_cache in file-coding.c. + Vdefault_query_coding_region_chartab_cache in file-coding.c. (query-coding-string): Update docstring to reflect actual multiple values, be more careful about not modifying a range table that we're currently mapping over. (encode-coding-char): Make the implementation of this simpler. (featurep 'mule): Autoload #'make-coding-system from mule/make-coding-system.el if we're a mule build; provide an - appropriate compiler macro. + appropriate compiler macro. Do various non-mule compatibility things if we're not a mule - build. - * update-elc.el (additional-dump-dependencies): + build. + * update-elc.el (additional-dump-dependencies): Add mule/make-coding-system as a dump time dependency if we're a - mule build. - * unicode.el (ccl-encode-to-ucs-2): - (decode-char): - (encode-char): + mule build. + * unicode.el (ccl-encode-to-ucs-2): + (decode-char): + (encode-char): Move these earlier in the file, for the sake of some byte compile - warnings. - (unicode-query-coding-region): + warnings. + (unicode-query-coding-region): Move this to unicode.c * mule/make-coding-system.el: New file, not dumped. Contains the functionality to rework the arguments necessary for fixed-width coding systems, and contains the implementation of #'make-coding-system, which now calls #'make-coding-system-internal. - * mule/vietnamese.el (viscii): - * mule/latin.el (iso-8859-2): - (windows-1250): - (iso-8859-3): - (iso-8859-4): - (iso-8859-14): - (iso-8859-15): - (iso-8859-16): - (iso-8859-9): - (macintosh): - (windows-1252): - * mule/hebrew.el (iso-8859-8): - * mule/greek.el (iso-8859-7): - (windows-1253): - * mule/cyrillic.el (iso-8859-5): - (koi8-r): - (koi8-u): - (windows-1251): - (alternativnyj): - (koi8-ru): - (koi8-t): - (koi8-c): - (koi8-o): - * mule/arabic.el (iso-8859-6): - (windows-1256): + * mule/vietnamese.el (viscii): + * mule/latin.el (iso-8859-2): + (windows-1250): + (iso-8859-3): + (iso-8859-4): + (iso-8859-14): + (iso-8859-15): + (iso-8859-16): + (iso-8859-9): + (macintosh): + (windows-1252): + * mule/hebrew.el (iso-8859-8): + * mule/greek.el (iso-8859-7): + (windows-1253): + * mule/cyrillic.el (iso-8859-5): + (koi8-r): + (koi8-u): + (windows-1251): + (alternativnyj): + (koi8-ru): + (koi8-t): + (koi8-c): + (koi8-o): + * mule/arabic.el (iso-8859-6): + (windows-1256): Move all these coding systems to being of type fixed-width, not of type CCL. This allows the distinct query-coding-region for them to be in C, something which will eventually allow us to implement query-coding-region for the mswindows-multibyte coding systems. - * mule/general-late.el (posix-charset-to-coding-system-hash): + * mule/general-late.el (posix-charset-to-coding-system-hash): Document why we're pre-emptively persuading the byte compiler that the ELC for this file needs to be written using escape-quoted. Call #'set-unicode-query-skip-chars-args, now the Unicode - query-coding-region implementation is in C. - * mule/thai-xtis.el (tis-620): + query-coding-region implementation is in C. + * mule/thai-xtis.el (tis-620): Don't bother checking whether we're XEmacs or not here. - * mule/mule-coding.el: + * mule/mule-coding.el: Move the eight bit fixed-width functionality from this file to make-coding-system.el. @@ -514,44 +518,44 @@ * simple.el (handle-pre-motion-command-current-command-is-motion): If KEY is a character, ascertain that once, not every iteration of the loop. - * mule/mule-cmds.el (finish-set-language-environment): + * mule/mule-cmds.el (finish-set-language-environment): Don't call #'string-match on a one-character string, use functions that have bytecodes instead, since this is called so often on - startup. + startup. 2009-08-31 Aidan Kehoe <kehoea@parhasard.net> - * byte-optimize.el (byte-optimize-form-code-walker): + * byte-optimize.el (byte-optimize-form-code-walker): Be careful about discarding multiple values when optimising - #'prog1 calls. - (byte-optimize-or): + #'prog1 calls. + (byte-optimize-or): Preserve any trailing nil, as this is a supported way to explicitly discard multiple values. (byte-optimize-cond-1): Discard multiple values with a singleton followed by no more clauses. - * bytecomp.el (progn): + * bytecomp.el (progn): (prog1): (prog2): Be careful about discarding multiple values in the byte-hunk - handler of these three forms. + handler of these three forms. * bytecomp.el (byte-compile-prog1, byte-compile-prog2): Don't call #'values explicitly, use `(or ,(pop form) nil) instead, since that compiles to bytecode, not a funcall. - * bytecomp.el (byte-compile-values): + * bytecomp.el (byte-compile-values): With one non-const argument, byte-compile to `(or ,(second form) nil), not an explicit #'values call. - * bytecomp.el (byte-compile-insert-header): + * bytecomp.el (byte-compile-insert-header): Be nicer in the error message to emacs versions that don't understand our bytecode. 2009-08-27 Aidan Kehoe <kehoea@parhasard.net> * cl.el (bytecomp-load-hook): New. - * bytecomp.el (bytecomp-load-hook): Use id. + * bytecomp.el (bytecomp-load-hook): Use id. Merge Dave Love's 2000-02-02 GNU (GPLv2) change, forcing the byte-compiler to be more consistent about loading cl-macs at - compile time. + compile time. 2009-08-19 Malcolm Purvis <malcolmp@xemacs.org> @@ -566,7 +570,7 @@ 2009-08-16 Aidan Kehoe <kehoea@parhasard.net> - * faces.el (xpm-color-symbols): + * faces.el (xpm-color-symbols): Call (featurep 'x) when faces.elc is dumped, not repeatedly (myriad times) at image instantiation time. @@ -577,17 +581,17 @@ 2009-08-14 Aidan Kehoe <kehoea@parhasard.net> - * minibuf.el (read-from-minibuffer): + * minibuf.el (read-from-minibuffer): Use buffer (format " *Minibuf-%d*" (minibuffer-depth)), regardless - of depth. + of depth. 2009-08-11 Aidan Kehoe <kehoea@parhasard.net> - * cl-extra.el (ceiling*, floor*, round*, truncate*): + * cl-extra.el (ceiling*, floor*, round*, truncate*): Implement these in terms of the C functions; mark them as - obsolete. + obsolete. (mod*, rem*): Use #'nth-value with the C functions, not #'nth with - the CL emulation functions. + the CL emulation functions. 2009-08-11 Aidan Kehoe <kehoea@parhasard.net> @@ -597,10 +601,10 @@ -- Four new bytecodes, and special compiler functions to compile multiple-value-call, multiple-value-list-internal, values, values-list, and, since it now needs to pass back multiple values - and is a special form, throw. + and is a special form, throw. -- There's a new compiler variable, byte-compile-checks-on-load, which is a list of forms that are evaluated at the very start of a - file, with an error thrown if any of them give nil. + file, with an error thrown if any of them give nil. -- The header is now inserted *after* compilation, giving a chance for the compilation process to influence what those checks are. There is still a check done before compilation for non-ASCII @@ -609,73 +613,73 @@ Space is reserved for checks; comments describing the version of the byte compiler generating the file are inserted if space remains for them. - * bytecomp.el (byte-compile-version): + * bytecomp.el (byte-compile-version): Update this, we're a newer version of the byte compiler. - * byte-optimize.el (byte-optimize-funcall): + * byte-optimize.el (byte-optimize-funcall): Correct a comment. - * bytecomp.el (byte-compile-lapcode): + * bytecomp.el (byte-compile-lapcode): Discard the arg with byte-multiple-value-call. - * bytecomp.el (byte-compile-checks-and-comments-space): + * bytecomp.el (byte-compile-checks-and-comments-space): New variable, describe how many octets to reserve for checks at - the start of byte-compiled files. - * cl-compat.el: + the start of byte-compiled files. + * cl-compat.el: Remove the fake multiple-value implementation. Have the functions - that use it use the real multiple-value implementation instead. - * cl-macs.el (cl-block-wrapper, cl-block-throw): + that use it use the real multiple-value implementation instead. + * cl-macs.el (cl-block-wrapper, cl-block-throw): Revise the byte-compile properties of these symbols to work now we've made throw into a special form; keep the byte-compile properties as anonymous lambdas, since we don't have docstrings - for them. + for them. * cl-macs.el (multiple-value-bind, multiple-value-setq) - (multiple-value-list, nth-value): + (multiple-value-list, nth-value): Update these functions to work with the C support for multiple values. - * cl-macs.el (values): + * cl-macs.el (values): Modify the setf handler for this to call #'multiple-value-list-internal appropriately. - * cl-macs.el (cl-setf-do-store): + * cl-macs.el (cl-setf-do-store): If the store form is a cons, treat it specially as wrapping the store value. - * cl.el (cl-block-wrapper): + * cl.el (cl-block-wrapper): Make this an alias of #'and, not #'identity, since it needs to pass back multiple values. - * cl.el (multiple-value-apply): - We no longer support this, mark it obsolete. - * lisp-mode.el (eval-interactive-verbose): - Remove a useless space in the docstring. - * lisp-mode.el (eval-interactive): + * cl.el (multiple-value-apply): + We no longer support this, mark it obsolete. + * lisp-mode.el (eval-interactive-verbose): + Remove a useless space in the docstring. + * lisp-mode.el (eval-interactive): Update this function and its docstring. It now passes back a list, basically wrapping any eval calls with multiple-value-list. This - allows multiple values to be printed by default in *scratch*. - * lisp-mode.el (prin1-list-as-multiple-values): + allows multiple values to be printed by default in *scratch*. + * lisp-mode.el (prin1-list-as-multiple-values): New function, printing a list as multiple values in the manner of Bruno Haible's clisp, separating each entry with " ;\n". * lisp-mode.el (eval-last-sexp): Call #'prin1-list-as-multiple-values on the return value of - #'eval-interactive. - * lisp-mode.el (eval-defun): + #'eval-interactive. + * lisp-mode.el (eval-defun): Call #'prin1-list-as-multiple-values on the return value of - #'eval-interactive. - * mouse.el (mouse-eval-sexp): + #'eval-interactive. + * mouse.el (mouse-eval-sexp): Deal with lists corresponding to multiple values from #'eval-interactive. Call #'cl-prettyprint, which is always available, instead of sometimes calling #'pprint and sometimes - falling back to prin1. - * obsolete.el (obsolete-throw): + falling back to prin1. + * obsolete.el (obsolete-throw): New function, called from eval.c when #'funcall encounters an attempt to call #'throw (now a special form) as a function. Only - needed for compatibility with 21.4 byte-code. + needed for compatibility with 21.4 byte-code. 2009-08-10 Aidan Kehoe <kehoea@parhasard.net> - * help.el (function-arglist, function-documentation): + * help.el (function-arglist, function-documentation): Deal more gracefully with tabs in the function arglist; in function-documentation, when stripping the arglist, pay attention to the fact that they may span multiple lines. 2009-08-09 Aidan Kehoe <kehoea@parhasard.net> - * faces.el (set-face-background-pixmap-file): + * faces.el (set-face-background-pixmap-file): Remove some extra parentheses revealed by change set 7757334005ae. 2009-08-07 Mike Sperber <mike@xemacs.org> @@ -703,48 +707,48 @@ 2009-07-18 Aidan Kehoe <kehoea@parhasard.net> - * files.el (find-file-create-switch-thunk): + * files.el (find-file-create-switch-thunk): Check that #'buffer-file-name gives non-nil before trying to determine whether that file exists; avoids problems in dired. Thank you Mats Lidell! 2009-07-13 Aidan Kehoe <kehoea@parhasard.net> - * code-files.el (insert-file-contents): + * code-files.el (insert-file-contents): Set the buffer coding system even on error; especially important - when dealing with nonexistent files. + when dealing with nonexistent files. If the `coding-system' property of an undecided coding system is itself undecided, don't use that as a value for - buffer-file-coding-system. + buffer-file-coding-system. 2009-07-12 Aidan Kehoe <kehoea@parhasard.net> - * files.el (after-find-file): + * files.el (after-find-file): If the answer to "The directory containing %s does not exist. Create?" is no, kill the current buffer, since the user probably just misspelled the directory name. Thank you Rodney Sparapani! 2009-07-12 Aidan Kehoe <kehoea@parhasard.net> - * files.el (find-file-create-switch-thunk): + * files.el (find-file-create-switch-thunk): New macro, used to mark buffers created within #'find-file (and related) modified if the associated file doesn't exist. - (find-alternate-file-other-window): - Correct this, pass CODESYS to find-file-other-window. - (find-file-read-only): - Correct behaviour of this function in the presence of wildcards. - (find-file): - (find-file-other-window): - (find-file-other-frame): - (find-file-read-only-other-window): - (find-file-read-only-other-frame): - (find-alternate-file): + (find-alternate-file-other-window): + Correct this, pass CODESYS to find-file-other-window. + (find-file-read-only): + Correct behaviour of this function in the presence of wildcards. + (find-file): + (find-file-other-window): + (find-file-other-frame): + (find-file-read-only-other-window): + (find-file-read-only-other-frame): + (find-alternate-file): Simplify these functions, use #'find-file-create-switch-thunk' - instead of explicit #'switch-to-buffer calls. + instead of explicit #'switch-to-buffer calls. 2009-07-11 Aidan Kehoe <kehoea@parhasard.net> - * code-files.el (insert-file-contents): + * code-files.el (insert-file-contents): Take advantage of more sensible behaviour from #'insert-file-contents-internal, allowing us to actually follow the documented coding system behaviour for nonexistent files (that @@ -758,19 +762,19 @@ 2009-06-14 Aidan Kehoe <kehoea@parhasard.net> - * help.el (describe-function-1): + * help.el (describe-function-1): Check macro-p, not macrop, when describing whether a symbol has an associated macro or an associated function. Relevant with - autoloaded macros. - (function-arglist): + autoloaded macros. + (function-arglist): Accept multi-line arglists in built-in functions, as found in #'write-region-internal. #'dontusethis-set-symbol-value-handler - is still broken for other reasons. + is still broken for other reasons. 2009-06-07 Aidan Kehoe <kehoea@parhasard.net> - * code-files.el (insert-file-contents): - Autodetection may return undecided as a coding system. If the file + * code-files.el (insert-file-contents): + Autodetection may return undecided as a coding system. If the file was zero-length, this is kosher, and we should set buffer-file-coding-system to its default; if it is not zero-length, we still need to set b-f-c-s, but we warn that the @@ -778,21 +782,21 @@ failing is something very distinct from what we use it to mean here.) See http://mid.gmane.org/18986.53111.800393.660612@parhasard.net and - the related thread. + the related thread. 2009-06-06 Aidan Kehoe <kehoea@parhasard.net> - * files.el (cd): + * files.el (cd): Make CDPATH handling portable, accept entries without trailing slashes within it. Some style corrections from Stephen Turnbull, - thank you Stephen. + thank you Stephen. 2009-05-29 Aidan Kehoe <kehoea@parhasard.net> - * bytecomp.el (byte-compile-lambda): + * bytecomp.el (byte-compile-lambda): Even if we are going to store uncompiled interactive forms in the compiled-function object, byte compile (and discard) the code, for - the sake of the warnings generated. + the sake of the warnings generated. 2009-05-18 Stephen J. Turnbull <stephen@xemacs.org> @@ -816,65 +820,65 @@ 2009-03-01 Aidan Kehoe <kehoea@parhasard.net> - * x-compose.el: - Document an XIM bug, and how one might work around it. - (define-compose-map): + * x-compose.el: + Document an XIM bug, and how one might work around it. + (define-compose-map): Revise this macro, call it with compose-caron-map, compose-macron-map, compose-breve-map, compose-dot-map, compose-doubleacute-map, compose-ogonek-map, compose-hook-map, - compose-horn-map as well as the previous existing maps. - (compose-map): + compose-horn-map as well as the previous existing maps. + (compose-map): Add entries for caron, macron, doubleacute, ogonek, breve and - abovedot to this map. + abovedot to this map. Add an assert, this code assumes that a non-Mule build has no - character codes above U+00FF. + character codes above U+00FF. Incorporate all the precomposed Latin characters in UnicodeData.txt that we can into the maps, deciding at runtime on which exactly depending on whether this is a non-Mule or a Mule build. - Remove a commented-out old X11 bug workaround. + Remove a commented-out old X11 bug workaround. Use #'flet instead of defun + unintern for #'alias-colon-to-doublequote. Correct #'electric-diacritic to work with the keyboard macro - versions of the maps. - (compose-help): + versions of the maps. + (compose-help): This has been turned off since 1994; no-one appears to have noticed, since the normal help mechanism offers similar - functionality and is actually maintained. Removed entirely. - Remove a superflous setting of a default value for ctl-arrow. - * x-init.el (x-initialize-compose): + functionality and is actually maintained. Removed entirely. + Remove a superflous setting of a default value for ctl-arrow. + * x-init.el (x-initialize-compose): Support the new dead key maps we just added to x-compose.el with - autoloads here. + autoloads here. 2009-02-22 Aidan Kehoe <kehoea@parhasard.net> * bytecomp.el (byte-compile-force-escape-quoted): New variable, used to force `byte-compile-insert-header' to treat the output as - having characters above ?\xFF. - (byte-compile-from-buffer): + having characters above ?\xFF. + (byte-compile-from-buffer): If the compiled output contains characters above ?\xFF, and byte-compile-dynamic-docstrings or byte-compile-dynamic is non-nil (or we're using an inappropriate coding system) recompile the file, turning off the dynamic features and using a more - appropriate header. + appropriate header. (byte-compile-insert-header): Pay attention to - byte-compile-force-escape-quoted. + byte-compile-force-escape-quoted. 2009-02-18 Aidan Kehoe <kehoea@parhasard.net> - * coding.el (check-coding-systems-region): + * coding.el (check-coding-systems-region): Return null on success, not t. See http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=1723 2009-02-17 Aidan Kehoe <kehoea@parhasard.net> - * mule/mule-cmds.el (finish-set-language-environment): + * mule/mule-cmds.el (finish-set-language-environment): Correct this function, don't try to format non-control characters with ^ followed by their value plus (char-int ?@). 2009-02-17 Aidan Kehoe <kehoea@parhasard.net> - * unicode.el (unicode-query-coding-region): + * unicode.el (unicode-query-coding-region): Avoid eval-when-compile where that gives incorrect results when compiled on a non-Mule XEmacs but run on a Mule XEmacs. Fixes problems seen by @@ -883,7 +887,7 @@ (An equivalent way to get the efficiency of the eval-when-compile would be to provide two defvars, evaluated at dump time, but this code will be in C soon enough, and we can use the relevant - preprocessor constants there.) + preprocessor constants there.) 2009-02-02 Aidan Kehoe <kehoea@parhasard.net> @@ -894,144 +898,144 @@ 2009-02-02 Aidan Kehoe <kehoea@parhasard.net> - * mule/latin.el (macintosh): - Add GNU Emacs' name for this coding system as an alias. + * mule/latin.el (macintosh): + Add GNU Emacs' name for this coding system as an alias. 2009-02-13 Aidan Kehoe <kehoea@parhasard.net> - * mule/mule-cmds.el (init-mule-at-startup): + * mule/mule-cmds.el (init-mule-at-startup): Actually use leim-list-file-name, don't load a hardcoded - leim-list.el in this function. + leim-list.el in this function. 2009-02-11 Aidan Kehoe <kehoea@parhasard.net> - * coding.el (query-coding-string): - Correct the order of arguments passed to #'query-coding-region. - (unencodable-char-position): + * coding.el (query-coding-string): + Correct the order of arguments passed to #'query-coding-region. + (unencodable-char-position): Handle string offsets correctly, they're one less than buffer - offsets. Handle START and END correctly if passed a string. + offsets. Handle START and END correctly if passed a string. 2009-02-08 Aidan Kehoe <kehoea@parhasard.net> - * cl-macs.el (delete-duplicates): + * cl-macs.el (delete-duplicates): Add a new compiler macro, inlining this function if it's called with a literal #'eq or #'equal test arguments and no other keywords. - * font-lock.el (font-lock-unique): - Remove this function. - * font-lock.el (font-lock-prepend-text-property): - (font-lock-append-text-property): + * font-lock.el (font-lock-unique): + Remove this function. + * font-lock.el (font-lock-prepend-text-property): + (font-lock-append-text-property): Use #'delete-duplicates instead of #'font-lock-unique. * font.el (font-unique): Remove this function. - * font.el (font-combine-fonts-internal): - (x-font-families-for-device): - (xft-font-families-for-device): - (ns-font-families-for-device): + * font.el (font-combine-fonts-internal): + (x-font-families-for-device): + (xft-font-families-for-device): + (ns-font-families-for-device): Use #'delete-duplicates instead of #'font-unique. - * fontconfig.el (fc-delete-duplicates): - * fontconfig.el (fc-filter): - Remove these functions. - * fontconfig.el (fc-find-available-font-families): + * fontconfig.el (fc-delete-duplicates): + * fontconfig.el (fc-filter): + Remove these functions. + * fontconfig.el (fc-find-available-font-families): Replace #'fc-delete-duplicates with #'delete-duplicates, #'fc-filter with #'delete-if-not. - * format.el (format-make-relatively-unique): + * format.el (format-make-relatively-unique): Document that this is equivalent to #'nset-exclusive-or with a test of #'equal. 2009-02-07 Aidan Kehoe <kehoea@parhasard.net> * descr-text.el (describe-text-sexp): - pp is in packages, use cl-prettyprint instead. - * mule/mule-coding.el (make-8-bit-generate-helper): + pp is in packages, use cl-prettyprint instead. + * mule/mule-coding.el (make-8-bit-generate-helper): Don't uselessly bind args-out-of-range, thank you the byte - compiler. - * mule/mule-coding.el (8-bit-fixed-query-coding-region): + compiler. + * mule/mule-coding.el (8-bit-fixed-query-coding-region): Don't uselessly bind previous-fail, thank you the byte compiler. - * tty-init.el (make-device-early-tty-entry-point): - Set make-device-early-tty-entry-point-called-p, not - pre-tty-win-initted, thank you the byte compiler. - * unicode.el (unicode-query-coding-region): + * tty-init.el (make-device-early-tty-entry-point): + Set make-device-early-tty-entry-point-called-p, not + pre-tty-win-initted, thank you the byte compiler. + * unicode.el (unicode-query-coding-region): Don't uselessly bind invalid-sequence-p, thank you the - byte-compiler. + byte-compiler. 2009-02-07 Aidan Kehoe <kehoea@parhasard.net> - * coding.el (query-coding-clear-highlights): + * coding.el (query-coding-clear-highlights): Rename the BUFFER argument to BUFFER-OR-STRING, describe it as - possibly being a string in its documentation. - (default-query-coding-region): + possibly being a string in its documentation. + (default-query-coding-region): Add a new IGNORE-INVALID-SEQUENCESP argument, document that this - function does not support it. + function does not support it. Bind case-fold-search to nil, we don't want this to influence what the function thinks is encodable or not. (query-coding-region): Add a new IGNORE-INVALID-SEQUENCESP argument, document what it - does; reflect this new argument in the associated compiler macro. - (query-coding-string): + does; reflect this new argument in the associated compiler macro. + (query-coding-string): Add a new IGNORE-INVALID-SEQUENCESP argument, document what it does. Support the HIGHLIGHT argument correctly. - * unicode.el (unicode-query-coding-region): + * unicode.el (unicode-query-coding-region): Add a new IGNORE-INVALID-SEQUENCESP argument, document what it - does, implement this. Document a potential problem. + does, implement this. Document a potential problem. Use #'query-coding-clear-highlights instead of reimplementing it - ourselves. - Remove some debugging messages. - * mule/arabic.el (iso-8859-6): - * mule/cyrillic.el (iso-8859-5): - * mule/greek.el (iso-8859-7): - * mule/hebrew.el (iso-8859-8): - * mule/latin.el (iso-8859-2): - * mule/latin.el (iso-8859-3): - * mule/latin.el (iso-8859-4): - * mule/latin.el (iso-8859-14): - * mule/latin.el (iso-8859-15): - * mule/latin.el (iso-8859-16): - * mule/latin.el (iso-8859-9): - * mule/latin.el (windows-1252): - * mule/mule-coding.el (iso-8859-1): - Avoid the assumption that characters not given an explicit mapping - in these coding systems map to the ISO 8859-1 characters - corresponding to the octets on disk; this makes it much more - reasonable to implement the IGNORE-INVALID-SEQUENCESP argument to - query-coding-region. - * mule/mule-cmds.el (set-language-info): - Correct the docstring. - * mule/mule-cmds.el (finish-set-language-environment): - Treat invalid Unicode sequences produced from - invalid-sequence-coding-system and corresponding to control - characters the same as control characters in redisplay. - * mule/mule-cmds.el: - Document that encode-coding-char is available in coding.el - * mule/mule-coding.el (make-8-bit-generate-helper): - Change to return the both the encode-program generated and the - relevant non-ASCII charset; update the docstring to reflect this. - * mule/mule-coding.el - (make-8-bit-generate-encode-program-and-skip-chars-strings): - Rename this function; have it return skip-chars-strings as well as - the encode program. Have these skip-chars-strings use ranges for - charsets, where possible. - * mule/mule-coding.el (make-8-bit-create-decode-encode-tables): - Revise this to allow people to specify explicitly characters that - should be undefined (= corresponding to keys in - unicode-error-default-translation-table), and treating unspecified - octets above #x7f as undefined by default. - * mule/mule-coding.el (8-bit-fixed-query-coding-region): - Add a new IGNORE-INVALID-SEQUENCESP argument, implement support - for it using the 8-bit-fixed-invalid-sequences-skip-chars coding - system property; remove some debugging messages. - * mule/mule-coding.el (make-8-bit-coding-system): - This function is dumped, autoloading it makes no sense. + ourselves. + Remove some debugging messages. + * mule/arabic.el (iso-8859-6): + * mule/cyrillic.el (iso-8859-5): + * mule/greek.el (iso-8859-7): + * mule/hebrew.el (iso-8859-8): + * mule/latin.el (iso-8859-2): + * mule/latin.el (iso-8859-3): + * mule/latin.el (iso-8859-4): + * mule/latin.el (iso-8859-14): + * mule/latin.el (iso-8859-15): + * mule/latin.el (iso-8859-16): + * mule/latin.el (iso-8859-9): + * mule/latin.el (windows-1252): + * mule/mule-coding.el (iso-8859-1): + Avoid the assumption that characters not given an explicit mapping + in these coding systems map to the ISO 8859-1 characters + corresponding to the octets on disk; this makes it much more + reasonable to implement the IGNORE-INVALID-SEQUENCESP argument to + query-coding-region. + * mule/mule-cmds.el (set-language-info): + Correct the docstring. + * mule/mule-cmds.el (finish-set-language-environment): + Treat invalid Unicode sequences produced from + invalid-sequence-coding-system and corresponding to control + characters the same as control characters in redisplay. + * mule/mule-cmds.el: + Document that encode-coding-char is available in coding.el + * mule/mule-coding.el (make-8-bit-generate-helper): + Change to return the both the encode-program generated and the + relevant non-ASCII charset; update the docstring to reflect this. + * mule/mule-coding.el + (make-8-bit-generate-encode-program-and-skip-chars-strings): + Rename this function; have it return skip-chars-strings as well as + the encode program. Have these skip-chars-strings use ranges for + charsets, where possible. + * mule/mule-coding.el (make-8-bit-create-decode-encode-tables): + Revise this to allow people to specify explicitly characters that + should be undefined (= corresponding to keys in + unicode-error-default-translation-table), and treating unspecified + octets above #x7f as undefined by default. + * mule/mule-coding.el (8-bit-fixed-query-coding-region): + Add a new IGNORE-INVALID-SEQUENCESP argument, implement support + for it using the 8-bit-fixed-invalid-sequences-skip-chars coding + system property; remove some debugging messages. + * mule/mule-coding.el (make-8-bit-coding-system): + This function is dumped, autoloading it makes no sense. Document what happens when characters above #x7f are not - specified, implement this. - * mule/vietnamese.el: - Correct spelling. + specified, implement this. + * mule/vietnamese.el: + Correct spelling. 2009-02-04 Aidan Kehoe <kehoea@parhasard.net> - * help.el: - (describe-function-1): - * byte-optimize.el: + * help.el: + (describe-function-1): + * byte-optimize.el: Remove any reference to mocklisp as an active technology. 2009-02-04 Aidan Kehoe <kehoea@parhasard.net> @@ -1044,8 +1048,8 @@ 2009-02-04 Aidan Kehoe <kehoea@parhasard.net> - * coding.el (force-coding-system-equivalency): - Document this macro and the motivation for it. + * coding.el (force-coding-system-equivalency): + Document this macro and the motivation for it. 2009-01-15 Aidan Kehoe <kehoea@parhasard.net> @@ -1063,31 +1067,31 @@ 2009-02-04 Aidan Kehoe <kehoea@parhasard.net> - * coding.el (query-coding-region): + * coding.el (query-coding-region): Revert this to being a defun, add a compiler macro without - needless binding. - (query-coding-string): - Correct a bug here, string indices are zero- not one-based. + needless binding. + (query-coding-string): + Correct a bug here, string indices are zero- not one-based. * mule/general-late.el (unicode-query-coding-skip-chars-arg): - Correct the algorithm used to initialise this variable. + Correct the algorithm used to initialise this variable. 2009-02-04 Aidan Kehoe <kehoea@parhasard.net> - * help.el (describe-function-1): + * help.el (describe-function-1): Distinguish between special forms and subrs; don't bind autoload-file, #'symbol-file returns it like any other function file name. 2009-01-31 Aidan Kehoe <kehoea@parhasard.net> - * mule/mule-cmds.el (finish-set-language-environment): + * mule/mule-cmds.el (finish-set-language-environment): Treat control characters specially in the invalid-sequence-coding-system handling, display them using the - caret notation. + caret notation. 2009-01-31 Aidan Kehoe <kehoea@parhasard.net> - * frame.el (display-graphic-p): + * frame.el (display-graphic-p): Call #'display-device on the DISPLAY argument, ensuring that the argument to #'device-on-window-system-p is correct. @@ -1100,7 +1104,7 @@ 2009-01-13 Aidan Kehoe <kehoea@parhasard.net> - * mule/mule-cmds.el (set-language-environment-coding-systems): + * mule/mule-cmds.el (set-language-environment-coding-systems): Fix a cosmetic bug; the relationship between file-name-coding-system and the file-name coding system alias established in coding.el wasn't being maintained. See Katsumi @@ -1121,118 +1125,118 @@ 2008-12-30 Aidan Kehoe <kehoea@parhasard.net> - * make-docfile.el: + * make-docfile.el: Use absolute source file names when checking if DOC is out of date, don't use relative paths that may not be related to the - current directory. + current directory. 2008-12-28 Aidan Kehoe <kehoea@parhasard.net> - * coding.el (query-coding-region): - (query-coding-string): + * coding.el (query-coding-region): + (query-coding-string): Make these defsubsts, they're short enough and they're called explicitly rarely enough that it make some sense. The alternative - would be compiler macros that avoid the binding of the arguments. - (unencodable-char-position): - Document where the docstring and API are from. + would be compiler macros that avoid the binding of the arguments. + (unencodable-char-position): + Document where the docstring and API are from. Correct a special case for zero--check-argument-type returns nil when it succeeds, we can't usefully chain its result in an and - here. + here. (check-coding-systems-region): New. API taken from GNU; docstring - and implementation are independent. - (encode-coding-char): + and implementation are independent. + (encode-coding-char): Add an optional third argument, as used by recent GNU. Document - the origen of the docstring. + the origen of the docstring. (default-query-coding-region): Add a short docstring to the - non-Mule implementation of this function. - * unicode.el: + non-Mule implementation of this function. + * unicode.el: Don't set the query-coding-function property for unicode coding systems if we're on non-mule. Unintern unicode-query-coding-region, unicode-query-coding-skip-chars-arg - in the same context. + in the same context. 2008-12-30 Aidan Kehoe <kehoea@parhasard.net> - * frame.el (display-mouse-p): - (display-popup-menus-p): - (display-images-p): - (display-selections-p): - (display-visual-class): + * frame.el (display-mouse-p): + (display-popup-menus-p): + (display-images-p): + (display-selections-p): + (display-visual-class): Make all these functions more general, do not hard code device - type symbols where that is inappropriate. + type symbols where that is inappropriate. 2008-12-28 Aidan Kehoe <kehoea@parhasard.net> - * coding.el (default-query-coding-region): + * coding.el (default-query-coding-region): Declare using defun*, so we can #'return-from to it on encountering a safe-charsets value of t. Comment out a few - debug messages. - (query-coding-region): + debug messages. + (query-coding-region): Correct the docstring, it deals with a region, not a string. - (unencodable-char-position): + (unencodable-char-position): Correct the implementation for non-nil COUNT, special-case a zero value for count, treat it as one. Don't rely on dynamic scope when calling the main lambda. - * unicode.el (unicode-query-coding-region): - Comment out some debug messages here. - * mule/mule-coding.el (8-bit-fixed-query-coding-region): - Comment out some debug messages here. - - * code-init.el (raw-text): - Add a safe-charsets property to this coding system. - * mule/korean.el (iso-2022-int-1): - * mule/korean.el (euc-kr): - * mule/korean.el (iso-2022-kr): - Add safe-charsets properties for these coding systems. - * mule/japanese.el (iso-2022-jp): - * mule/japanese.el (jis7): - * mule/japanese.el (jis8): - * mule/japanese.el (shift-jis): - * mule/japanese.el (iso-2022-jp-1978-irv): - * mule/japanese.el (euc-jp): - Add safe-charsets properties for all these coding systems. - * mule/iso-with-esc.el: + * unicode.el (unicode-query-coding-region): + Comment out some debug messages here. + * mule/mule-coding.el (8-bit-fixed-query-coding-region): + Comment out some debug messages here. + + * code-init.el (raw-text): + Add a safe-charsets property to this coding system. + * mule/korean.el (iso-2022-int-1): + * mule/korean.el (euc-kr): + * mule/korean.el (iso-2022-kr): + Add safe-charsets properties for these coding systems. + * mule/japanese.el (iso-2022-jp): + * mule/japanese.el (jis7): + * mule/japanese.el (jis8): + * mule/japanese.el (shift-jis): + * mule/japanese.el (iso-2022-jp-1978-irv): + * mule/japanese.el (euc-jp): + Add safe-charsets properties for all these coding systems. + * mule/iso-with-esc.el: Add safe-charsets properties to all the coding systems in here. Comment on the downside of a safe-charsets value of t for iso-latin-1-with-esc. - * mule/hebrew.el (ctext-hebrew): - Add a safe-charsets property for this coding system. - * mule/devanagari.el (in-is13194-devanagari): - Add a safe-charsets property for this coding system. - * mule/chinese.el (cn-gb-2312): - * mule/chinese.el (hz-gb-2312): - * mule/chinese.el (big5): - Add safe-charsets properties for these coding systems. - * mule/latin.el (iso-8859-14): + * mule/hebrew.el (ctext-hebrew): + Add a safe-charsets property for this coding system. + * mule/devanagari.el (in-is13194-devanagari): + Add a safe-charsets property for this coding system. + * mule/chinese.el (cn-gb-2312): + * mule/chinese.el (hz-gb-2312): + * mule/chinese.el (big5): + Add safe-charsets properties for these coding systems. + * mule/latin.el (iso-8859-14): Add an implementation for this, using #'make-8-bit-coding-system. - * mule/mule-coding.el (ctext): - * mule/mule-coding.el (iso-2022-8bit-ss2): - * mule/mule-coding.el (iso-2022-7bit-ss2): - * mule/mule-coding.el (iso-2022-jp-2): - * mule/mule-coding.el (iso-2022-7bit): - * mule/mule-coding.el (iso-2022-8): - * mule/mule-coding.el (escape-quoted): - * mule/mule-coding.el (iso-2022-lock): - Add safe-charsets properties for all these coding systems. + * mule/mule-coding.el (ctext): + * mule/mule-coding.el (iso-2022-8bit-ss2): + * mule/mule-coding.el (iso-2022-7bit-ss2): + * mule/mule-coding.el (iso-2022-jp-2): + * mule/mule-coding.el (iso-2022-7bit): + * mule/mule-coding.el (iso-2022-8): + * mule/mule-coding.el (escape-quoted): + * mule/mule-coding.el (iso-2022-lock): + Add safe-charsets properties for all these coding systems. 2008-12-27 Aidan Kehoe <kehoea@parhasard.net> - * loadhist.el (symbol-file): + * loadhist.el (symbol-file): Use #'defun*, not #'defun, to allow the checks for autoloaded functions and variables to call #'return-from correctly. Use - #'return-from instead of #'return throughout the function. + #'return-from instead of #'return throughout the function. 2008-12-27 Aidan Kehoe <kehoea@parhasard.net> - * loadup.el (load-history): + * loadup.el (load-history): Add the contents of current-load-list to load-history before clearing it. Move the variable declarations earlier in the file to - a format understood by make-docfile.c. + a format understood by make-docfile.c. * custom.el (custom-declare-variable): Add the variable's symbol to the current file's load history entry correctly, don't use a cons. Eliminate a comment that we don't need to worry about, we don't need to check the `initialized' C variable in Lisp. - * bytecomp.el (byte-compile-output-file-form): + * bytecomp.el (byte-compile-output-file-form): Merge Andreas Schwab's pre-GPLv3 GNU change of 19970831 here; treat #'custom-declare-variable correctly, generating the docstrings in a format understood by make-docfile.c. @@ -1243,25 +1247,25 @@ it relative to lisp-directory if the filename corresponds to a Lisp file, and relative to (concat source-directory "/src/") otherwise. - * make-docfile.el (preloaded-file-list): + * make-docfile.el (preloaded-file-list): Rationalise some let bindings a little. Use the "-d" argument to make-docfile.c to supply Lisp paths relative to lisp-directory, not absolutely. Add in loadup.el explicitly to the list of files to be processed by make-docfile.c--it doesn't make sense to add it to preloaded-file-list, since that is used for purposes of - byte-compilation too. + byte-compilation too. 2008-12-22 Aidan Kehoe <kehoea@parhasard.net> - * loadhist.el (symbol-file): + * loadhist.el (symbol-file): Add support for differentiating between variables and functions to - #'symbol-file. - * help.el (describe-function-1): - (describe-variable): + #'symbol-file. + * help.el (describe-function-1): + (describe-variable): Call #'symbol-function explicitly with a 'defun or 'defvar argument, depending on whether we're looking for a variable or a - function. - * cus-face.el (custom-declare-face): + function. + * cus-face.el (custom-declare-face): Record information about the face in the load history; code taken from GNU, pre-GPLv3 revision 1.45. @@ -1288,13 +1292,13 @@ * window.el (only-window-p): New. Check if WINDOW is the only window in some context, normally its frame. - (one-window-p): + (one-window-p): Implemented this in terms of #'only-window-p, calling it on the - selected window. - (window-buffer-height): Uncomment this, make it work. - (count-screen-lines): Support a BUFFER argument. + selected window. + (window-buffer-height): Uncomment this, make it work. + (count-screen-lines): Support a BUFFER argument. (fit-window-to-buffer): Uncomment this, correct its implementation - to work with XEmacs. + to work with XEmacs. * help.el (temp-buffer-resize-mode): New. Name taken from GNU, implementation our own. * (resize-temp-buffer-window): New. GNU-compatible alias for @@ -1304,32 +1308,32 @@ * frame.el: Point to #'temp-buffer-resize-mode in a comment. Some of this code is from GNU; help.el CVS version 1.327 of 2007-03-21, window.el CVS version 1.122, of 2007-06-24. Both these - are GPLV2 or later. + are GPLV2 or later. 2008-08-27 Aidan Kehoe <kehoea@parhasard.net> - * subr.el (skip-chars-quote): + * subr.el (skip-chars-quote): Correct the implementation, following the docstring of #'skip-char-forward more closely rather than the documentation of - character classes in the Lispref. + character classes in the Lispref. 2008-08-23 Aidan Kehoe <kehoea@parhasard.net> * custom.el: Move #'custom-variable-p to C, since it's now called - from #'user-variable-p. + from #'user-variable-p. 2008-08-23 Aidan Kehoe <kehoea@parhasard.net> - - * mule/mule-coding.el (make-8-bit-coding-system): - * mule/general-late.el (posix-charset-to-coding-system-hash): - Use #'skip-chars-quote as appropriate. + + * mule/mule-coding.el (make-8-bit-coding-system): + * mule/general-late.el (posix-charset-to-coding-system-hash): + Use #'skip-chars-quote as appropriate. 2008-08-09 Aidan Kehoe <kehoea@parhasard.net> * subr.el (skip-chars-quote): New. Given STRING, return a string that means that all characters in STRING will be skipped when passed to #'skip-chars-forward, - #'skip-chars-backward. + #'skip-chars-backward. 2008-08-09 Aidan Kehoe <kehoea@parhasard.net> @@ -1337,10 +1341,10 @@ 2008-08-08 Aidan Kehoe <kehoea@parhasard.net> - * unicode.el: - * mule/mule-cmds.el: - * mule/latin.el: - * mule/cyrillic.el: + * unicode.el: + * mule/mule-cmds.el: + * mule/latin.el: + * mule/cyrillic.el: Rework the various identifiers using error-sequence to use invalid-sequence instead. @@ -1350,58 +1354,58 @@ in x-init.el, since we want it even on non-X builds to use the support for displaying Unicode error sequences according to the current locale. - * mule/mule-cmds.el (set-language-info): + * mule/mule-cmds.el (set-language-info): Document error-sequence-coding-system, used to describe how to - display characters that are not valid Unicode on disk. - * mule/mule-cmds.el (finish-set-language-environment): - Implement error-sequence-coding-system. - * unicode.el (unicode-error-sequence-warning-face): + display characters that are not valid Unicode on disk. + * mule/mule-cmds.el (finish-set-language-environment): + Implement error-sequence-coding-system. + * unicode.el (unicode-error-sequence-warning-face): New face, to make it possible to distinguish invalid Unicode sequences from the characters given by the valid Unicode - sequences. - * mule/cyrillic.el ("Russian"): - ("Ukrainian"): - ("Bulgarian"): - ("Belarusian"): + sequences. + * mule/cyrillic.el ("Russian"): + ("Ukrainian"): + ("Bulgarian"): + ("Belarusian"): ("Cyrillic-ALT"): Add support for error-sequence-coding-system for all these languages. - * mule/latin.el: + * mule/latin.el: Add support for error-sequence-coding-system for the Latin-alphabet language environments. 2008-08-05 Aidan Kehoe <kehoea@parhasard.net> - * mule/iso-with-esc.el (greek-iso-8bit-with-esc): - (arabic-iso-8bit-with-esc): + * mule/iso-with-esc.el (greek-iso-8bit-with-esc): + (arabic-iso-8bit-with-esc): Add these two here. Move the implementation of the 'arabic-iso8859-6 character set here, with commentary on why that - is reasonable. - * mule/arabic.el (iso-8859-6): + is reasonable. + * mule/arabic.el (iso-8859-6): Add iso-8859-6, windows-1256 implementations using make-8-bit-coding-system. Remove our non-standard Mule character - sets. + sets. * unicode.el (load-unicode-tables): Remove Arabic since it's no longer dumped. * mule/mule-msw-init-late.el: Remove Arabic. * mule/mule-category.el (predefined-category-list): Remove - Arabic. + Arabic. 2008-07-26 Aidan Kehoe <kehoea@parhasard.net> - * x-init.el (x-initialize-compose): + * x-init.el (x-initialize-compose): Rewrite to use #'loop, as does similar code in x-win-sun.el, x-win-xfree86.el. Locally bind function-key-map to the correct value for the device's console. - * x-win-xfree86.el (x-win-init-xfree86): + * x-win-xfree86.el (x-win-init-xfree86): Locally bind function-key-map to the correct value for the device's console. - * x-win-sun.el (x-win-init-sun): + * x-win-sun.el (x-win-init-sun): Locally bind function-key-map to the correct value for the device's console. 2008-07-20 Aidan Kehoe <kehoea@parhasard.net> - * descr-text.el (describe-char-unicode-data): + * descr-text.el (describe-char-unicode-data): Correct three calls to #'error; it doesn't take #'message style format strings and arguments. @@ -1409,11 +1413,11 @@ * descr-text.el (describe-property-list): Move the (require 'hyper-apropos) call to top level, this isn't the only function - that uses the relevant face. + that uses the relevant face. (describe-char): Wrap the Unihan field descriptions if they are longer than the windows width minus 50. Rename the created buffer to reflect the character's position as - well as its value. + well as its value. 2008-07-07 Aidan Kehoe <kehoea@parhasard.net> @@ -1421,7 +1425,7 @@ various Lisp functions should be called during device creation, not relying on the startup code to decide this. Also, rename initial-window-system to initial-device-type (which makes more - sense in this scheme), always set it. + sense in this scheme), always set it. * startup.el (command-line): Use initial-device-type, not initial-window-system; just call @@ -1448,49 +1452,49 @@ what device-specific things need doing. Don't use create-console-hook in core code. * x-win-xfree86.el (x-win-init-xfree86): Take a DEVICE argument; - use it. - * x-win-sun.el (x-win-init-sun): Take a DEVICE argument; use it. + use it. + * x-win-sun.el (x-win-init-sun): Take a DEVICE argument; use it. * mule/mule-x-init.el: Remove #'init-mule-x-win, an empty - function. + function. * tty-init.el (make-device-early-tty-entry-point-called-p): New. Rename pre-tty-win-initted. (make-device-early-tty-entry-point): New. Rename init-pre-tty-win. (make-frame-after-init-entry-point): New. - Rename init-post-tty-win to better reflect when it's called. + Rename init-post-tty-win to better reflect when it's called. * gtk-init.el (gtk-early-lisp-options-file): New. - Move this path to a documented variable. + Move this path to a documented variable. (gtk-command-switch-alist): Wrap the docstring to fewer than 79 - columns. + columns. (make-device-early-gtk-entry-point-called-p): New. (make-device-late-gtk-entry-point-called-p): New. Renamed gtk-pre-win-initted, gtk-post-win-initted to these. - (make-device-early-gtk-entry-point): New. + (make-device-early-gtk-entry-point): New. (make-device-late-gtk-entry-point): New. Renamed init-pre-gtk-win, init-post-gtk-win to these. Have make-device-late-gtk-entry-point take a device argument, and use it; have make-device-early-gtk-entry-point load the GTK-specific - startup code, instead of doing that in C. + startup code, instead of doing that in C. (init-gtk-win): Deleted, functionality moved to the GTK device - creation code. + creation code. (gtk-define-dead-key): Have it take a DEVICE argument; use this - argument. - (gtk-initialize-compose): Ditto. - - * coding.el (set-terminal-coding-system): - Correct the docstring; the function isn't broken. + argument. + (gtk-initialize-compose): Ditto. + + * coding.el (set-terminal-coding-system): + Correct the docstring; the function isn't broken. 2008-06-29 Aidan Kehoe <kehoea@parhasard.net> - * descr-text.el (describe-char-unicode-data): + * descr-text.el (describe-char-unicode-data): Don't leak the Unihan database handle when looking up non-Han - characters. + characters. 2008-06-04 Aidan Kehoe <kehoea@parhasard.net> - * descr-text.el (describe-property-list): + * descr-text.el (describe-property-list): #'require hyper-apropos, since we use hyper-apropos-face 2008-05-25 Aidan Kehoe <kehoea@parhasard.net> @@ -1499,27 +1503,27 @@ Taken from GNU's GPLV2 version of 2007-02-14, with modifications for XEmacs support and extensions for Unihan.txt support and db/dbm caches. - * simple.el (what-cursor-position): + * simple.el (what-cursor-position): Support an optional prefix argument, as does GNU, calling #'describe-char to giving more detail on the character at point, notably from UnicodeData and (in our case, optionally) Unihan.txt. - * syntax.el (syntax-after): - Make this available for the sake of #'describe-char. + * syntax.el (syntax-after): + Make this available for the sake of #'describe-char. * mule/mule-cmds.el (iso-2022-control-alist): Make this available, for the sake of #'encoded-string-description - and #'describe-char. + and #'describe-char. * mule/mule-cmds.el (encoded-string-description): Make this available, for the sake of #'describe-char. - * unicode.el (unicode-error-default-translation-table): + * unicode.el (unicode-error-default-translation-table): Make this a char table of type generic, not of type char. Makes it possible to have the relevant logic in #'describe-char reasonably clear; also, and this is undocumented, makes it much easier to implement #'frob-unicode-errors-region. I should document this, - and revise #'frob-unicode-errors-region. + and revise #'frob-unicode-errors-region. 2008-05-21 Aidan Kehoe <kehoea@parhasard.net> - * mule/mule-coding.el (make-8-bit-choose-category): + * mule/mule-coding.el (make-8-bit-choose-category): Merge my change of 2008-05-14 to the query-coding-region code. 2008-05-14 Stephen J. Turnbull <stephen@xemacs.org> @@ -1529,7 +1533,7 @@ 2008-05-14 Aidan Kehoe <kehoea@parhasard.net> * subr.el (add-to-list): Implement the same logic with a more - concise syntax; thank you Stephen, in + concise syntax; thank you Stephen, in http://mid.gmane.org/87ablomdwx.fsf@uwakimon.sk.tsukuba.ac.jp . 2008-02-25 bpalmer <bpalmer@gmail.com> @@ -1545,22 +1549,22 @@ 2008-05-13 Aidan Kehoe <kehoea@parhasard.net> - * printer.el (generic-print-region): - (generic-print-buffer): + * printer.el (generic-print-region): + (generic-print-buffer): Use #'valid-device-type-p instead of #'valid-specifier-tag-p to check if the msprinter device is available, now that msprinter is - always available as a specifier tag. + always available as a specifier tag. 2008-05-11 Aidan Kehoe <kehoea@parhasard.net> - * disp-table.el (make-display-table): + * disp-table.el (make-display-table): Update the example code to make it more general, and more compatible with GNU. Also, I previously said #xFF when I meant ?\xFF; correct this. - * mule/cyril-util.el (standard-display-cyrillic-translit): + * mule/cyril-util.el (standard-display-cyrillic-translit): Make the selection of the default language more sensible; change the API a little to make a sensible default Cyrillic language - available, checking current-language-environment. + available, checking current-language-environment. 2007-07-21 Aidan Kehoe <kehoea@parhasard.net> @@ -1569,11 +1573,11 @@ * mule/cyril-util.el (cyrillic-encode-alternativnyj-char): Removed. No-one uses these functions in google.com/codesearch, GNU have a comment doubting their utility, and their - implementation is trivial. + implementation is trivial. * mule/cyril-util.el (cyrillic-language-alist): Reformatted. * mule/cyril-util.el (standard-display-table)): Removed. It wasn't - used anyway. + used anyway. * mule/cyril-util.el (standard-display-cyrillic-translit): Rewrite it to work with character tables as display tables, and not to abort with an error. @@ -1582,11 +1586,11 @@ * disp-table.el: * disp-table.el (make-display-table): Moved earlier in the file in - a weak attempt at making syncing with GNU easier. + a weak attempt at making syncing with GNU easier. * disp-table.el (frob-display-table): Autoload it, accept TAG-SET, for editing specifiers. * disp-table.el (describe-display-table): - Have it handle character sets. + Have it handle character sets. * disp-table.el (standard-display-8bit-1): * disp-table.el (standard-display-8bit): * disp-table.el (standard-display-default-1): @@ -1597,13 +1601,13 @@ * disp-table.el (standard-display-european): Rework them all to use put-char-table, remove-char-table instead of aset. Limit standard-display-g1, standard-display-graphic to - TTYs; have standard-display-underline work on X11 too. - + TTYs; have standard-display-underline work on X11 too. + * font.el (font-caps-display-table): Use put-char-table instead of aset when editing a display table. * x-init.el: * x-init.el (tab): - Create the initial display table as a char-table, not a vector. + Create the initial display table as a char-table, not a vector. 2008-01-20 Aidan Kehoe <kehoea@parhasard.net> @@ -1615,15 +1619,15 @@ 2008-05-07 Aidan Kehoe <kehoea@parhasard.net> * mule/latin.el (windows-1250): Add the Central European Windows - coding system. + coding system. * mule/mule-win32-init.el: Don't use the Windows-specific CP1250 - implementation, rely on that in latin.el instead. + implementation, rely on that in latin.el instead. 2008-05-11 Aidan Kehoe <kehoea@parhasard.net> - * coding.el (query-coding-clear-highlights): + * coding.el (query-coding-clear-highlights): New function--clear any face information added by - `query-coding-region'. + `query-coding-region'. (default-query-coding-region): Use it. 2008-04-13 Henry S. Thompson <ht@inf.ed.ac.uk>, Mike Sperber <mike@xemacs.org> @@ -1633,10 +1637,10 @@ alist mapping the window objects from the original window configuration to the window objects corresponding to them in the restored configuration. - (set-window-configuration): - (saved-window): - (root-window->saved-window): - (really-set-window-configuration): + (set-window-configuration): + (saved-window): + (root-window->saved-window): + (really-set-window-configuration): (restore-saved-window): Record the mapping for above functions. 2008-04-12 Henry S. Thompson <ht@inf.ed.ac.uk> @@ -1645,10 +1649,10 @@ these to the original definitions of `split-window' and `delete-window', and use them in the window-configuration code to make sure it doesn't get affected by advice to these functions. - + 2008-04-10 Aidan Kehoe <kehoea@parhasard.net> - * help.el (describe-function-1): + * help.el (describe-function-1): Rely on #'symbol-file to tell which file an autoloaded function belongs to, don't special-case them. @@ -1711,55 +1715,55 @@ * info.el (Info-suffix-list): Support LZMA compression, as used--oddly--by Mandriva Linux. - * coding.el (decode-coding-string): + * coding.el (decode-coding-string): (encode-coding-string): Accept GNU's NOCOPY argument for - these. Todo; write compiler macros to use it. + these. Todo; write compiler macros to use it. (query-coding-warning-face): New face, to show unencodable - characters. - (default-query-coding-region-safe-charset-skip-chars-map): - New variable, a cache used by #'default-query-coding-region. + characters. + (default-query-coding-region-safe-charset-skip-chars-map): + New variable, a cache used by #'default-query-coding-region. (default-query-coding-region): Default implementation of #'query-coding-region, using the safe-charsets and safe-chars - coding systemproperties. + coding systemproperties. (query-coding-region): New function; can a given coding system - encode a given region? + encode a given region? (query-coding-string): New function; can a given coding system - encode a given string? + encode a given string? (unencodable-char-position): Function API taken from GNU; return - the first unencodable position given a string and coding system. + the first unencodable position given a string and coding system. (encode-coding-char): Function API taken from GNU; return CHAR encoded using CODING-SYSTEM, or nil if CODING-SYSTEM would trash - CHAR. + CHAR. ((unless (featurep 'mule)): Override the default - query-coding-region implementation on non-Mule. + query-coding-region implementation on non-Mule. * mule/mule-coding.el (make-8-bit-generate-helper): Eliminate a - duplicate comment. - (make-8-bit-choose-category): Simplify implementation. + duplicate comment. + (make-8-bit-choose-category): Simplify implementation. (8-bit-fixed-query-coding-region): Implementation of #'query-coding-region for coding systems created with - #'make-8-bit-coding-system. + #'make-8-bit-coding-system. (make-8-bit-coding-system): Initialise the #'query-coding-region - implementation for these character sets. + implementation for these character sets. (make-8-bit-coding-system): Ditto for the compiler macro version - of this function. + of this function. * unicode.el (unicode-query-coding-skip-chars-arg): New variable, used by unicode-query-coding-region, initialised in - mule/general-late.el. + mule/general-late.el. (unicode-query-coding-region): New function, the - #'query-coding-region implementation for Unicode coding systems. + #'query-coding-region implementation for Unicode coding systems. Initialise the query-coding-function property for the Unicode coding systems to #'unicode-query-coding-region. * mule/mule-charset.el (charset-skip-chars-string): New function. Return a #'skip-chars-forward argument that skips all - characters in CHARSET. + characters in CHARSET. (map-charset-chars): Function synced from GNU, modified to work with XEmacs. Map FUNC across the int value charset ranges of - CHARSET. + CHARSET. 2008-01-21 Aidan Kehoe <kehoea@parhasard.net> - * info.el (Info-suffix-list): - Support LZMA compression, as used--oddly--by Mandriva Linux. + * info.el (Info-suffix-list): + Support LZMA compression, as used--oddly--by Mandriva Linux. 2008-01-17 Mike Sperber <mike@xemacs.org>
--- a/lisp/cl-extra.el Mon Jan 04 16:48:55 2010 -0700 +++ b/lisp/cl-extra.el Wed Jan 06 13:48:25 2010 +0100 @@ -103,8 +103,8 @@ (or (eq (setq cl-char (aref cl-string cl-i)) (setq cl-other (aref cl-vector cl-i))) (and (characterp cl-other) ; Note we want to call this - ; as rarely as possible, it - ; doesn't have a bytecode. + ; as rarely as possible, it + ; doesn't have a bytecode. (eq (downcase cl-char) (downcase cl-other)))))) (< cl-i 0)))) @@ -118,7 +118,7 @@ (when (= cl-i (length cl-vector)) (while (and (>= (setq cl-i (1- cl-i)) 0) (numberp (setq cl-other (aref cl-vector cl-i))) - ;; Differs from clisp here. + ;; Differs from clisp here. (= (aref cl-bit-vector cl-i) cl-other))) (< cl-i 0)))) @@ -182,7 +182,7 @@ (setq x (cdr x) y (cdr y))) (and (not (consp x)) (equalp x y))) (t - ;; From here on, the type tests don't (yet) have bytecodes. + ;; From here on, the type tests don't (yet) have bytecodes. (let ((x-type (type-of x))) (cond ((eq 'vector x-type) (if (stringp y) @@ -501,7 +501,7 @@ symbols (cdr symbols)) (push `(make-obsolete ',(intern (format "%s*" symbol)) ',symbol "21.5.29") - result) + result) (push `(defun ,(intern (format "%s*" symbol)) (number &optional divisor) ,(format "See `%s'. This returns a list, not multiple values." @@ -698,6 +698,18 @@ ;; XEmacs change: we have a builtin remprop (defalias 'cl-remprop 'remprop) +(defun get-properties (plist indicator-list) + "Find a property from INDICATOR-LIST in PLIST. +Return 3 values: +- the first property found, +- its value, +- the tail of PLIST beginning with the found entry." + (do ((plst plist (cddr plst))) + ((null plst) (values nil nil nil)) + (cond ((atom (cdr plst)) + (error "Malformed property list: %S." plist)) + ((memq (car plst) indicator-list) + (return (values (car plst) (cadr plst) plst)))))) ;;; Hash tables. @@ -764,7 +776,7 @@ (defun cl-do-prettyprint () (skip-chars-forward " ") (if (looking-at "(") - (let ((skip (or (looking-at "((") + (let ((skip (or (looking-at "((") ;; XEmacs: be selective about trailing stuff after prog (looking-at "(prog[nv12\\(ress-feedback\\|n-with-message\\)]") (looking-at "(unwind-protect ")