Mercurial > hg > xemacs-beta
view nt/Emacs.ad.h @ 5327:d1b17a33450b
Move the heavy lifting from cl-seq.el to C.
src/ChangeLog addition:
2010-12-30 Aidan Kehoe <kehoea@parhasard.net>
Move the heavy lifting from cl-seq.el to C, finally making those
functions first-class XEmacs citizens, with circularity checking,
built-in support for tests other than #'eql, and as much
compatibility with current Common Lisp as Paul Dietz' tests require.
* fns.c (check_eq_nokey, check_eq_key, check_eql_nokey)
(check_eql_key, check_equal_nokey, check_equal_key)
(check_equalp_nokey, check_equalp_key, check_string_match_nokey)
(check_string_match_key, check_other_nokey, check_other_key)
(check_if_nokey, check_if_key, check_match_eq_key)
(check_match_eql_key, check_match_equal_key)
(check_match_equalp_key, check_match_other_key): New. These are
basically to provide function pointers to be used by Lisp
functions that take TEST, TEST-NOT and KEY arguments.
(get_check_match_function_1, get_check_test_function)
(get_check_match_function): These functions work out which of the
previous list of functions to use, given the keywords supplied by
the user.
(count_with_tail): New. This is the bones of #'count.
(list_count_from_end, string_count_from_end): Utility functions
for #'count.
(Fcount): New, moved from cl-seq.el.
(list_position_cons_before): New. The implementation of #'member*,
and important in implementing various other functions.
(FmemberX, Fadjoin, FassocX, FrassocX, Fposition, Ffind)
(FdeleteX, FremoveX, Fdelete_duplicates, Fremove_duplicates)
(Fnsubstitute, Fsubstitute, Fsublis, Fnsublis, Fsubst, Fnsubst)
(Ftree_equal, Fmismatch, Fsearch, Fintersection, Fnintersection)
(Fsubsetp, Fset_difference, Fnset_difference, Fnunion, Funion)
(Fset_exclusive_or, Fnset_exclusive_or): New, moved here from
cl-seq.el.
(position): New. The implementation of #'find and #'position.
(list_delete_duplicates_from_end, subst, sublis, nsublis)
(tree_equal, mismatch_from_end, mismatch_list_list)
(mismatch_list_string, mismatch_list_array)
(mismatch_string_array, mismatch_string_string)
(mismatch_array_array, get_mismatch_func): Helper C functions for
the Lisp-visible functions.
(venn, nvenn): New. The implementation of the main Lisp functions that
treat lists as sets.
lisp/ChangeLog addition:
2010-12-30 Aidan Kehoe <kehoea@parhasard.net>
* cl-seq.el:
Move the heavy lifting from this file to C. Dump the
cl-parsing-keywords macro, but don't use defun* for the functions
we define that do take keywords, dynamic scope lossage makes that
not practical.
* subr.el (sort, fillarray): Move these aliases here.
(map-plist): #'nsublis is now built-in, but at this point #'eql
isn't necessarily available as a test; use #'eq.
* obsolete.el (cl-delete-duplicates): Make this available for old
compiler macros and old code.
(memql): Document that this is equivalent to #'member*, and worse.
* cl.el (adjoin, subst): Removed. These are in C.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Thu, 30 Dec 2010 01:59:52 +0000 |
parents | 4be1180a9e89 |
children | e01bac102bc0 |
line wrap: on
line source
(String) "Emacs.modeline*attributeForeground: Black", (String) "Emacs.modeline*attributeBackground: Gray75", (String) "Emacs.text-cursor*attributeBackground: Red3", (String) "*menubar*Foreground: Gray30", (String) "*menubar*Background: Gray75", (String) "*menubar*buttonForeground: Blue", (String) "*XlwMenu*selectColor: ForestGreen", (String) "*XmToggleButton*selectColor: ForestGreen", (String) "*popup*Foreground: Black", (String) "*popup*Background: Gray75", (String) "*dialog*Foreground: Black", (String) "*dialog*Background: #A5C0C1", (String) "*dialog*XmTextField*Background: WhiteSmoke", (String) "*dialog*XmText*Background: WhiteSmoke", (String) "*dialog*XmList*Background: WhiteSmoke", (String) "*dialog*Command*Background: WhiteSmoke", (String) "*XlwScrollBar*Foreground: Gray30", (String) "*XlwScrollBar*Background: Gray75", (String) "*XmScrollBar*Foreground: Gray30", (String) "*XmScrollBar*Background: Gray75", (String) "*topToolBarShadowColor: Gray90", (String) "*bottomToolBarShadowColor: Gray40", (String) "*backgroundToolBarColor: Gray75", (String) "*toolBarShadowThickness: 2", (String) "*menubar*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*", (String) "*popup*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*", (String) "*XmDialogShell*FontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*", (String) "*XmTextField*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*", (String) "*XmText*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*", (String) "*XmList*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*", (String) "*Dialog*Font: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-*", (String) "*dialog*button1.accelerators:#override\ <KeyPress>Return: ArmAndActivate()\\n\ <KeyPress>KP_Enter: ArmAndActivate()\\n\ Ctrl<KeyPress>m: ArmAndActivate()\\n", (String) "*XmTextField*translations: #override\\n\ !<Key>osfBackSpace: delete-previous-character()\\n\ !<Key>osfDelete: delete-previous-character()\\n\ !Ctrl<Key>h: delete-previous-character()\\n\ !Ctrl<Key>d: delete-next-character()\\n\ !Meta<Key>osfDelete: delete-previous-word()\\n\ !Meta<Key>osfBackSpace: delete-previous-word()\\n\ !Meta<Key>d: delete-next-word()\\n\ !Ctrl<Key>k: delete-to-end-of-line()\\n\ !Ctrl<Key>g: process-cancel()\\n\ !Ctrl<Key>b: backward-character()\\n\ !<Key>osfLeft: backward-character()\\n\ !Ctrl<Key>f: forward-character()\\n\ !<Key>osfRight: forward-character()\\n\ !Meta<Key>b: backward-word()\\n\ !Meta<Key>osfLeft: backward-word()\\n\ !Meta<Key>f: forward-word()\\n\ !Meta<Key>osfRight: forward-word()\\n\ !Ctrl<Key>e: end-of-line()\\n\ !Ctrl<Key>a: beginning-of-line()\\n\ !Ctrl<Key>w: cut-clipboard()\\n\ !Meta<Key>w: copy-clipboard()\\n\ <Btn2Up>: copy-primary()\\n", (String) "*dialog*XmPushButton*translations:#override\\n\ <Btn1Down>: Arm()\\n\ <Btn1Down>,<Btn1Up>: Activate()\ Disarm()\\n\ <Btn1Down>(2+): MultiArm()\\n\ <Btn1Up>(2+): MultiActivate()\\n\ <Btn1Up>: Activate()\ Disarm()\\n\ <Key>osfSelect: ArmAndActivate()\\n\ <Key>osfActivate: ArmAndActivate()\\n\ <Key>osfHelp: Help()\\n\ ~Shift ~Meta ~Alt <Key>Return: ArmAndActivate()\\n\ <EnterWindow>: Enter()\\n\ <LeaveWindow>: Leave()\\n", (String) "*ximStyles: XIMPreeditPosition|XIMStatusArea\ XIMPreeditPosition|XIMStatusNothing\ XIMPreeditPosition|XIMStatusNone\ XIMPreeditNothing|XIMStatusArea\ XIMPreeditNothing|XIMStatusNothing\ XIMPreeditNothing|XIMStatusNone\ XIMPreeditNone|XIMStatusArea\ XIMPreeditNone|XIMStatusNothing\ XIMPreeditNone|XIMStatusNone", (String) "*EmacsFrame.ximForeground: black", (String) "*EmacsFrame.ximBackground: white",