Mercurial > hg > xemacs-beta
annotate src/s/usg5-4.h @ 4792:95b04754ea8c
Make #'equalp more compatible with CL; add a compiler macro, test & doc it.
lisp/ChangeLog addition:
2009-11-08 Aidan Kehoe <kehoea@parhasard.net>
* cl-extra.el (cl-string-vector-equalp)
(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.
(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.
man/ChangeLog addition:
2009-11-08 Aidan Kehoe <kehoea@parhasard.net>
* lispref/objects.texi (Equality Predicates):
Document #'equalp here, as well as #'equal and #'eq.
tests/ChangeLog addition:
2009-12-31 Aidan Kehoe <kehoea@parhasard.net>
* automated/lisp-tests.el:
Test much of the functionality of equalp; add a pointer to Paul
Dietz' ANSI test suite for this function, converted to Emacs
Lisp. Not including the tests themselves in XEmacs because who
owns the copyright on the files is unclear and the GCL people
didn't respond to my queries.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Thu, 31 Dec 2009 15:09:41 +0000 |
parents | aa5ed11f473b |
children | 906ccc7dcd70 308d34e9f07d 861f2601a38b |
rev | line source |
---|---|
613 | 1 /* Definitions file for XEmacs running on AT&T's System V Release 4 |
428 | 2 Copyright (C) 1987, 1990 Free Software Foundation, Inc. |
3 | |
613 | 4 This file is part of XEmacs. |
428 | 5 |
613 | 6 XEmacs is free software; you can redistribute it and/or modify |
428 | 7 it under the terms of the GNU General Public License as published by |
8 the Free Software Foundation; either version 2, or (at your option) | |
9 any later version. | |
10 | |
613 | 11 XEmacs is distributed in the hope that it will be useful, |
428 | 12 but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 GNU General Public License for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
17 along with XEmacs; see the file COPYING. If not, write to | |
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
19 Boston, MA 02111-1307, USA. */ | |
20 | |
21 /* Synched up with: FSF 19.31. */ | |
22 | |
23 /* This file written by James Van Artsdalen of Dell Computer Corporation. | |
24 * james@bigtex.cactus.org. Subsequently improved for Dell 2.2 by Eric | |
25 * S. Raymond <esr@snark.thyrsus.com>. | |
26 */ | |
27 | |
4759
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
28 #define USG /* System III, System V, etc */ |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
29 #define USG5 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
30 #define USG5_4 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
31 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
32 /* SYSTEM_TYPE should indicate the kind of system you are using. |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
33 * It sets the Lisp variable system-type. */ |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
34 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
35 #define SYSTEM_TYPE "usg-unix-v" |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
36 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
37 /* Letter to use in finding device name of first pty, |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
38 * if system supports pty's. 'p' means it is /dev/ptyp0 */ |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
39 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
40 #define FIRST_PTY_LETTER 'z' |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
41 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
42 /* define MAIL_USE_FLOCK if the mailer uses flock |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
43 * to interlock access to /usr/spool/mail/$USER. |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
44 * The alternative is that a lock file named |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
45 * /usr/spool/mail/$USER.lock. */ |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
46 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
47 /* #define MAIL_USE_FLOCK */ |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
48 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
49 /* The file containing the kernel's symbol table is called /unix. */ |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
50 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
51 #define KERNEL_FILE "/unix" |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
52 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
53 /* The symbol in the kernel where the load average is found |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
54 * is named avenrun. */ |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
55 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
56 #define LDAV_SYMBOL "avenrun" |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
57 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
58 /* Special hacks needed to make Emacs run on this system. */ |
428 | 59 |
4759
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
60 /* On USG systems the system calls are interruptible by signals |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
61 * that the user program has elected to catch. Thus the system call |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
62 * must be retried in these cases. To handle this without massive |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
63 * changes in the source code, we remap the standard system call names |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
64 * to names for our own functions in sysdep.c that do the system call |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
65 * with retries. */ |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
66 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
67 #define INTERRUPTIBLE_OPEN |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
68 #define INTERRUPTIBLE_IO |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
69 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
70 /* Compiler bug bites on many systems when default ADDR_CORRECT is used. */ |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
71 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
72 #define ADDR_CORRECT(x) (x) |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
73 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
74 /* Prevent -lg from being used for debugging. Not implemented? */ |
428 | 75 |
4759
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
76 #define LIBS_DEBUG |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
77 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
78 /* Use terminfo instead of termcap. */ |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
79 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
80 #define TERMINFO |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
81 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
82 /* 5.3 apparently makes close() interruptible */ |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
83 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
84 #define INTERRUPTIBLE_CLOSE |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
85 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
86 /* Apparently -lg is provided in 5.3 */ |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
87 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
88 #undef LIBS_DEBUG |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
89 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
90 /* Enable support for shared libraries in unexec. */ |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
91 |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
978
diff
changeset
|
92 #define USG_SHARED_LIBRARIES |
428 | 93 |
94 #define LIBS_SYSTEM "-lsocket -lnsl -lelf" | |
95 #define ORDINARY_LINK | |
96 #define LIB_STANDARD | |
97 | |
98 /* there are no -lg libraries on this system, and no libPW */ | |
99 | |
100 #define LIBS_DEBUG | |
101 | |
102 /* No <sioctl.h> */ | |
103 | |
104 #define NO_SIOCTL_H | |
105 | |
106 #define UNEXEC "unexelf.o" | |
107 | |
108 /* Get <sys/ttold.h> to get struct | |
109 * tchars. But get <termio.h> first to make sure ttold.h doesn't | |
110 * interfere. | |
111 */ | |
112 | |
113 #ifndef NOT_C_CODE | |
114 #include <sys/wait.h> | |
115 #endif | |
116 | |
117 #ifdef emacs | |
118 #include <sys/filio.h> | |
119 #include <termio.h> | |
120 #include <sys/ttold.h> | |
121 #include <sys/stream.h> | |
122 #include <sys/termios.h> | |
123 #endif | |
124 | |
125 /* This sets the name of the master side of the PTY. */ | |
126 | |
127 #define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptmx"); | |
128 | |
129 /* This sets the name of the slave side of the PTY. On SysVr4, | |
130 grantpt(3) forks a subprocess, so keep sigchld_handler() from | |
131 intercepting that death. If any child but grantpt's should die | |
132 within, it should be caught after EMACS_UNBLOCK_SIGNAL. */ | |
133 | |
134 /* XEmacs change */ | |
135 #ifndef NOT_C_CODE | |
136 # if !__STDC__ && !defined(STDC_HEADERS) | |
137 char *ptsname (); | |
138 # endif | |
139 #endif | |
140 | |
141 #define PTY_TTY_NAME_SPRINTF \ | |
142 { \ | |
143 char *ptyname; \ | |
144 \ | |
145 EMACS_BLOCK_SIGCHLD; \ | |
146 if (grantpt (fd) == -1) \ | |
147 { close (fd); return -1; } \ | |
148 EMACS_UNBLOCK_SIGCHLD; \ | |
149 if (unlockpt (fd) == -1) \ | |
150 { close (fd); return -1; } \ | |
151 if (!(ptyname = ptsname (fd))) \ | |
152 { close (fd); return -1; } \ | |
153 strncpy (pty_name, ptyname, sizeof (pty_name)); \ | |
154 pty_name[sizeof (pty_name) - 1] = 0; \ | |
155 } | |
156 | |
157 /* Push various streams modules onto a PTY channel. */ | |
158 | |
159 #define SETUP_SLAVE_PTY \ | |
160 if (ioctl (xforkin, I_PUSH, "ptem") == -1) \ | |
161 fatal ("ioctl I_PUSH ptem: errno %d\n", errno); \ | |
162 if (ioctl (xforkin, I_PUSH, "ldterm") == -1) \ | |
163 fatal ("ioctl I_PUSH ldterm: errno %d\n", errno); \ | |
164 if (ioctl (xforkin, I_PUSH, "ttcompat") == -1) \ | |
165 fatal ("ioctl I_PUSH ttcompat: errno %d\n", errno); | |
166 | |
167 /* Tell x11term.c and keyboard.c we have the system V streams feature. */ | |
168 #define SYSV_STREAMS | |
169 /* On Some SysV System , w3 freeze. If freeze your xemacs , Add below definition */ | |
170 /* This definition added by Shogo Fujii(shogo@bsd1.kbnes.nec.co.jp) */ | |
171 #define PROCESS_IO_BLOCKING |