Mercurial > hg > xemacs-beta
view lisp/fontl-hooks.el @ 5182:2e528066e2fc
Move #'sort*, #'fill, #'merge to C from cl-seq.el.
lisp/ChangeLog addition:
2010-04-01 Aidan Kehoe <kehoea@parhasard.net>
* cl-seq.el (fill, sort*, merge): Move these functions to fns.c.
(stable-sort): Make this docstring reflect the argument names used
in the #'sort* docstring.
* cl-macs.el (stable-sort): Make #'stable-sort exactly equivalent
to #'sort* in compiled code.
* bytecomp.el (byte-compile-maybe-add-*):
New macro, for functions like #'sort and #'mapcar that, to be
strictly compatible, should only take two args, but in our
implementation can take more, because they're aliases of #'sort*
and #'mapcar*.
(byte-compile-mapcar, byte-compile-sort, byte-compile-fillarray):
Use this new macro.
(map-into): Add a byte-compile method for #'map-into in passing.
* apropos.el (apropos-print): Use #'sort* with a :key argument,
now it's in C.
* compat.el (extent-at): Ditto.
* register.el (list-registers): Ditto.
* package-ui.el (pui-list-packages): Ditto.
* help.el (sorted-key-descriptions): Ditto.
src/ChangeLog addition:
2010-03-31 Aidan Kehoe <kehoea@parhasard.net>
* fns.c (STRING_DATA_TO_OBJECT_ARRAY)
(BIT_VECTOR_TO_OBJECT_ARRAY, c_merge_predicate_key)
(c_merge_predicate_nokey, list_merge, array_merge)
(list_array_merge_into_list, list_list_merge_into_array)
(list_array_merge_into_array, CHECK_KEY_ARGUMENT, Fmerge)
(list_sort, array_sort, FsortX):
Move #'sort*, #'fill, #'merge from cl-seq.el to C, extending the
implementations of Fsort, Ffillarray, and merge() to do so.
* keymap.c (keymap_submaps, map_keymap_sort_predicate)
(describe_map_sort_predicate):
Change the calling semantics of the C sort predicates to return a
non-nil Lisp object if the first argument is less than the second,
rather than C integers.
* fontcolor-msw.c (sort_font_list_function):
* fileio.c (build_annotations):
* dired.c (Fdirectory_files):
* abbrev.c (Finsert_abbrev_table_description):
Call list_sort instead of Fsort, list_merge instead of merge() in
these functions.
man/ChangeLog addition:
2010-04-01 Aidan Kehoe <kehoea@parhasard.net>
* lispref/lists.texi (Rearrangement):
Update the documentation of #'sort here, now that it accepts any
type of sequence and the KEY keyword argument. (Though this is
probably now the wrong place for this function, given that.)
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Thu, 01 Apr 2010 20:22:50 +0100 |
parents | d44af0c54775 |
children | 308d34e9f07d |
line wrap: on
line source
;;; fontl-hooks.el --- pre-loaded stuff for font-lock. ;; Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc. ;; Copyright (C) 1995 Amdahl Corporation. ;; Copyright (C) 1996 Ben Wing. ;; This file is part of XEmacs. ;; XEmacs is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; XEmacs is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with XEmacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Synched up with: FSF 19.30. (font-lock.el) ;;; Commentary: ;; The reason for the existence of this file is so that modes can ;; call `font-lock-set-defaults' without worrying about whether ;; font-lock is loaded. We don't autoload this from font-lock.el ;; because loading font-lock.el automatically turns font-lock on. ;;; Code: (defun font-lock-set-defaults (&optional explicit-defaults) "Set fontification defaults appropriately for this mode. Sets `font-lock-keywords', `font-lock-keywords-only', `font-lock-syntax-table', `font-lock-beginning-of-syntax-function' and `font-lock-keywords-case-fold-search'. If `font-lock-defaults' is currently set, it is used. Otherwise, the symbol naming the major mode is examined for a `font-lock-defaults' property. If that is not present, but a variable `foo-mode-font-lock-keywords' is, the value of that variable is used as the default for `font-lock-keywords'. Various other backward-compatible behaviors also exist -- if you're curious, look at the source. The value of `font-lock-maximum-decoration' is used to determine which set of keywords applies, if more than one exists. This will also put the buffer into Font Lock mode if any keywords exist and if auto-fontification is called for, as determined by `font-lock-auto-fontify', `font-lock-mode-enable-list', and `font-lock-mode-disable-list'. Calling this function multiple times in the same buffer is safe -- this function keeps track of whether it has already been called in this buffer, and does nothing if so. This allows for multiple ways of getting Font Lock properly initialized in a buffer, to deal with existing major modes that do not call this function. (For example, Font Lock adds this function to `find-file-hooks'.) Major modes that have any font-lock defaults specified should call this function during their initialization process, after they have set the variable `major-mode'. If EXPLICIT-DEFAULTS is t, this function will not check whether it has already been run in this buffer, and will always do the full computation. If EXPLICIT-DEFAULTS is not nil and not t, it should be something that is allowable as a value for `font-lock-defaults' and will be used to initialize the Font Lock variables." (when (and (featurep 'font-lock) (if font-lock-auto-fontify (not (memq major-mode font-lock-mode-disable-list)) (memq major-mode font-lock-mode-enable-list)) (font-lock-set-defaults-1 explicit-defaults) font-lock-keywords) (turn-on-font-lock))) (provide 'fontl-hooks) ;;; fontl-hooks.el ends here