comparison src/data.c @ 5374:d967d96ca043

Conditionalise the old-* functions and byte codes at compile time. src/ChangeLog addition: 2011-03-15 Aidan Kehoe <kehoea@parhasard.net> * config.h.in (SUPPORT_CONFOUNDING_FUNCTIONS): New #define, equivalent NEED_TO_HANDLE_21_4_CODE by default, describing whether this XEmacs should support the old-eq, old-equal and related functions and byte codes. * bytecode.c (UNUSED): Only interpret old-eq, old-equal, old-memq if SUPPORT_CONFOUNDING_FUNCTIONS is defined. * data.c: Move Fold_eq to fns.c with the rest of the Fold_* functions. * fns.c: * fns.c (Fmemq): * fns.c (memq_no_quit): * fns.c (assoc_no_quit): * fns.c (Frassq): * fns.c (Fequal): * fns.c (Fold_equal): * fns.c (syms_of_fns): Group old-eq, old-equal, old-memq etc together, surround them with #ifdef SUPPORT_CONFOUNDING_FUNCTIONS. lisp/ChangeLog addition: 2011-03-15 Aidan Kehoe <kehoea@parhasard.net> * bytecomp.el: Don't generate the old-eq, old-memq, old-equal bytecodes any more, but keep the information about them around for the sake of the disassembler. man/ChangeLog addition: 2011-03-15 Aidan Kehoe <kehoea@parhasard.net> * lispref/objects.texi (Character Type): * lispref/objects.texi (Equality Predicates): No longer document `old-eq', `old-equal', they haven't been used in years. tests/ChangeLog addition: 2011-03-17 Aidan Kehoe <kehoea@parhasard.net> * automated/lisp-tests.el: Only test the various old-* function if old-eq is bound and a subr.
author Aidan Kehoe <kehoea@parhasard.net>
date Thu, 17 Mar 2011 20:13:00 +0000
parents 47298dcf2e8f
children 4f39e57a82b4 ac37a5f7e5be
comparison
equal deleted inserted replaced
5372:6c3a695f54f5 5374:d967d96ca043
179 Return t if the two args are the same Lisp object. 179 Return t if the two args are the same Lisp object.
180 */ 180 */
181 (object1, object2)) 181 (object1, object2))
182 { 182 {
183 return EQ_WITH_EBOLA_NOTICE (object1, object2) ? Qt : Qnil; 183 return EQ_WITH_EBOLA_NOTICE (object1, object2) ? Qt : Qnil;
184 }
185
186 DEFUN ("old-eq", Fold_eq, 2, 2, 0, /*
187 Return t if the two args are (in most cases) the same Lisp object.
188
189 Special kludge: A character is considered `old-eq' to its equivalent integer
190 even though they are not the same object and are in fact of different
191 types. This is ABSOLUTELY AND UTTERLY HORRENDOUS but is necessary to
192 preserve byte-code compatibility with v19. This kludge is known as the
193 \"char-int confoundance disease\" and appears in a number of other
194 functions with `old-foo' equivalents.
195
196 Do not use this function!
197 */
198 (object1, object2))
199 {
200 /* #### blasphemy */
201 return HACKEQ_UNSAFE (object1, object2) ? Qt : Qnil;
202 } 184 }
203 185
204 DEFUN ("null", Fnull, 1, 1, 0, /* 186 DEFUN ("null", Fnull, 1, 1, 0, /*
205 Return t if OBJECT is nil. 187 Return t if OBJECT is nil.
206 */ 188 */
3566 3548
3567 #ifdef HAVE_RATIO 3549 #ifdef HAVE_RATIO
3568 DEFSUBR (Fdiv); 3550 DEFSUBR (Fdiv);
3569 #endif 3551 #endif
3570 DEFSUBR (Feq); 3552 DEFSUBR (Feq);
3571 DEFSUBR (Fold_eq);
3572 DEFSUBR (Fnull); 3553 DEFSUBR (Fnull);
3573 Ffset (intern ("not"), intern ("null")); 3554 Ffset (intern ("not"), intern ("null"));
3574 DEFSUBR (Flistp); 3555 DEFSUBR (Flistp);
3575 DEFSUBR (Fnlistp); 3556 DEFSUBR (Fnlistp);
3576 DEFSUBR (Ftrue_list_p); 3557 DEFSUBR (Ftrue_list_p);