Mercurial > hg > xemacs-beta
annotate src/s/mingw32.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 | e1d8b6b0c589 |
children | 308d34e9f07d |
rev | line source |
---|---|
428 | 1 /* system description file for mingw32. |
2 Copyright (C) 1993, 1994, 1995, 1999 Free Software Foundation, Inc. | |
1111 | 3 Copyright (C) 2001, 2002 Ben Wing. |
428 | 4 |
613 | 5 This file is part of XEmacs. |
428 | 6 |
613 | 7 XEmacs is free software; you can redistribute it and/or modify |
428 | 8 it under the terms of the GNU General Public License as published by |
9 the Free Software Foundation; either version 2, or (at your option) | |
10 any later version. | |
11 | |
613 | 12 XEmacs is distributed in the hope that it will be useful, |
428 | 13 but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 GNU General Public License for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
18 along with XEmacs; see the file COPYING. If not, write to | |
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
20 Boston, MA 02111-1307, USA. */ | |
21 | |
22 /* based on cygwin32.h by Andy Piper <andy@xemacs.org> */ | |
23 | |
2367 | 24 /* See win32.c for info about the different Windows files in XEmacs. */ |
1111 | 25 |
771 | 26 #include "win32-native.h" |
428 | 27 |
442 | 28 #define MINGW |
428 | 29 |
4858
e1d8b6b0c589
Define CYGWIN_HEADERS in s/cygwin32.h and s/mingw32.h instead of syswindows.h, so they're available everywhere
Ben Wing <ben@xemacs.org>
parents:
2367
diff
changeset
|
30 /* We are using Cygwin-style headers in /usr/include, also used by |
e1d8b6b0c589
Define CYGWIN_HEADERS in s/cygwin32.h and s/mingw32.h instead of syswindows.h, so they're available everywhere
Ben Wing <ben@xemacs.org>
parents:
2367
diff
changeset
|
31 Cygwin itself */ |
e1d8b6b0c589
Define CYGWIN_HEADERS in s/cygwin32.h and s/mingw32.h instead of syswindows.h, so they're available everywhere
Ben Wing <ben@xemacs.org>
parents:
2367
diff
changeset
|
32 #define CYGWIN_HEADERS |
e1d8b6b0c589
Define CYGWIN_HEADERS in s/cygwin32.h and s/mingw32.h instead of syswindows.h, so they're available everywhere
Ben Wing <ben@xemacs.org>
parents:
2367
diff
changeset
|
33 |
428 | 34 #ifndef ORDINARY_LINK |
35 #define ORDINARY_LINK | |
36 #endif | |
37 | |
771 | 38 #define C_SWITCH_SYSTEM "-mno-cygwin -fno-caller-saves -DWIN32_NATIVE -DMINGW" |
442 | 39 #define LIBS_SYSTEM "-mno-cygwin -mwindows -lwinmm -lwsock32" |
40 #define WIN32_LEAN_AND_MEAN | |
428 | 41 |
42 #define TEXT_START -1 | |
43 #define HEAP_IN_DATA | |
44 #define UNEXEC "unexcw.o" | |
45 | |
46 #define TIME_ONESHOT 0 | |
47 #define TIME_PERIODIC 1 | |
48 #define LOCALE_USE_CP_ACP 0x40000000 | |
49 #define NSIG 23 | |
50 | |
442 | 51 /* this is necessary to get the TCS_* definitions in <commctrl.h> */ |
52 #define _WIN32_IE 0x0400 | |
428 | 53 |
54 /* translate NT world unexec stuff to our a.out definitions */ | |
55 | |
56 #define strnicmp strncasecmp | |
57 /* #ifndef HAVE_SOCKETS */ | |
58 #define HAVE_SOCKETS | |
59 /* #endif */ | |
771 | 60 #define OBJECTS_SYSTEM nt.o ntheap.o ntproc.o dired-msw.o |
428 | 61 |
62 #undef MAIL_USE_SYSTEM_LOCK | |
63 #define HAVE_MSW_C_DIRED | |
64 | |
442 | 65 /* Do not define LOAD_AVE_TYPE or LOAD_AVE_CVT |
66 since there is no load average available. */ | |
428 | 67 |
68 /* define MAIL_USE_FLOCK if the mailer uses flock | |
69 to interlock access to /usr/spool/mail/$USER. | |
70 The alternative is that a lock file named | |
71 /usr/spool/mail/$USER.lock. */ | |
72 | |
73 #ifndef NOT_C_CODE | |
74 #include <stdlib.h> | |
546 | 75 #include <../mingw/process.h> |
428 | 76 #define mkdir __mkdir |
77 #include <dir.h> | |
78 #undef mkdir | |
771 | 79 #ifdef HAVE_CYGWIN_VERSION_H |
80 #include <cygwin/version.h> | |
428 | 81 #endif |
771 | 82 #endif /* NOT_C_CODE */ |
613 | 83 |
84 #define DONT_USE_LITOUT | |
85 | |
428 | 86 /* Stuff that gets set wrongly or otherwise */ |
87 #define HAVE_GETTIMEOFDAY | |
88 #define HAVE_SELECT | |
442 | 89 /* systime.h includes winsock.h which defines timeval */ |
90 #define HAVE_TIMEVAL | |
91 #define HAVE_GETPAGESIZE | |
92 #define getpagesize() 4096 | |
93 #ifndef HAVE_H_ERRNO | |
94 #define HAVE_H_ERRNO | |
95 #endif | |
96 #ifndef HAVE_TZNAME | |
97 #define HAVE_TZNAME | |
98 #endif | |
428 | 99 |
100 #undef GETTIMEOFDAY_ONE_ARGUMENT | |
101 #undef HAVE_SYS_WAIT_H | |
102 #undef HAVE_TERMIOS | |
103 #undef SYSV_SYSTEM_DIR | |
442 | 104 #undef CLASH_DETECTION |