Mercurial > hg > xemacs-beta
comparison src/lisp.h @ 444:576fb035e263 r21-2-37
Import from CVS: tag r21-2-37
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:36:19 +0200 |
parents | abe6d1db359e |
children | 1ccc32a20af4 |
comparison
equal
deleted
inserted
replaced
443:a8296e22da4e | 444:576fb035e263 |
---|---|
302 /* Explicitly signed or unsigned versions: */ | 302 /* Explicitly signed or unsigned versions: */ |
303 typedef UChar UBufbyte; | 303 typedef UChar UBufbyte; |
304 typedef char SBufbyte; | 304 typedef char SBufbyte; |
305 | 305 |
306 /* The data representing a string in "external" format (binary or any | 306 /* The data representing a string in "external" format (binary or any |
307 external encoding) is logically a set of Extbytes, declared as follows. */ | 307 external encoding) is logically a set of Extbytes, declared as |
308 | 308 follows. Extbyte is guaranteed to be just a char, so for example |
309 typedef UChar Extbyte; /* #### I REALLY think this should be a char. This | 309 strlen (Extbyte *) is OK. Extbyte is only a documentation device |
310 is more logical and will fix enough char-UChar | 310 for referring to external text. */ |
311 inconsistencies that maybe we'll be able to stop | 311 |
312 turning off those warnings. --ben */ | 312 typedef char Extbyte; |
313 | |
314 /* Explicitly signed or unsigned versions: */ | |
315 typedef UChar UExtbyte; | |
316 typedef char SExtbyte; | |
317 | 313 |
318 /* A byte in a string in binary format: */ | 314 /* A byte in a string in binary format: */ |
319 | |
320 typedef char Char_Binary; | 315 typedef char Char_Binary; |
321 typedef UChar UChar_Binary; | 316 typedef UChar UChar_Binary; |
322 | 317 |
323 /* A byte in a string in entirely US-ASCII format: (Nothing outside | 318 /* A byte in a string in entirely US-ASCII format: (Nothing outside |
324 the range 00 - 7F) */ | 319 the range 00 - 7F) */ |
806 EMACS_INT len; \ | 801 EMACS_INT len; \ |
807 PRIVATE_EXTERNAL_LIST_LOOP_6 (elt, list, len, tail, \ | 802 PRIVATE_EXTERNAL_LIST_LOOP_6 (elt, list, len, tail, \ |
808 tortoise_##elt, CIRCULAR_LIST_SUSPICION_LENGTH) | 803 tortoise_##elt, CIRCULAR_LIST_SUSPICION_LENGTH) |
809 | 804 |
810 | 805 |
811 #define PRIVATE_EXTERNAL_LIST_LOOP_6(elt, list, len, hare, \ | 806 #define PRIVATE_EXTERNAL_LIST_LOOP_6(elt, list, len, hare, \ |
812 tortoise, suspicion_length) \ | 807 tortoise, suspicion_length) \ |
813 for (tortoise = hare = list, len = 0; \ | 808 for (tortoise = hare = list, len = 0; \ |
814 \ | 809 \ |
815 (CONSP (hare) ? ((elt = XCAR (hare)), 1) : \ | 810 (CONSP (hare) ? ((elt = XCAR (hare)), 1) : \ |
816 (NILP (hare) ? 0 : \ | 811 (NILP (hare) ? 0 : \ |
817 (signal_malformed_list_error (list), 0))); \ | 812 (signal_malformed_list_error (list), 0))); \ |
818 \ | 813 \ |
819 hare = XCDR (hare), \ | 814 hare = XCDR (hare), \ |
820 ((++len < suspicion_length) ? \ | 815 (void) \ |
821 ((void) 0) : \ | 816 ((++len > suspicion_length) \ |
822 (((len & 1) ? \ | 817 && \ |
823 ((void) (tortoise = XCDR (tortoise))) : \ | 818 ((((len & 1) != 0) && (tortoise = XCDR (tortoise), 0)), \ |
824 ((void) 0)) \ | 819 (EQ (hare, tortoise) && (signal_circular_list_error (list), 0))))) |
825 , \ | |
826 (EQ (hare, tortoise) ? \ | |
827 ((void) signal_circular_list_error (list)) : \ | |
828 ((void) 0))))) | |
829 | 820 |
830 /* GET_LIST_LENGTH and GET_EXTERNAL_LIST_LENGTH: | 821 /* GET_LIST_LENGTH and GET_EXTERNAL_LIST_LENGTH: |
831 | 822 |
832 These two macros return the length of LIST (either an internal or external | 823 These two macros return the length of LIST (either an internal or external |
833 list, according to which macro is used), stored into LEN (which must | 824 list, according to which macro is used), stored into LEN (which must |