X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Flisp.h;h=1e51d03ffde57464d6eca3815476751755032528;hb=ca5b279364f7aa116a3cbba80d9d790600f8145f;hp=7d4b7fcb1c6c6d4e86980da34a3c6b77dc58eb22;hpb=59eec5f21669e81977b5b1fe9bf717cab49cf7fb;p=chise%2Fxemacs-chise.git- diff --git a/src/lisp.h b/src/lisp.h index 7d4b7fc..1e51d03 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -280,17 +280,16 @@ void assert_failed (const char *, int, const char *); /* basic char/int typedefs */ /* ------------------------------- */ -/* The definitions we put here use typedefs to convey additional meaning to - types that by themselves are pretty general. Stuff pointed to by a +/* The definitions we put here use typedefs to attribute specific meaning + to types that by themselves are pretty general. Stuff pointed to by a char * or unsigned char * will nearly always be one of four types: a) pointer to internally-formatted text; b) pointer to text in some external format, which can be defined as all formats other than the internal one; c) pure ASCII text; d) binary data that is not meant to be interpreted as text. [A fifth possible type "e) a general pointer - to memory" should be replaced with void *.] By using these more specific - types in lieu of the general ones, you clear up greatly the confusions - that inevitably will occur when it's not clearly known the semantics of - a char * argument being studied. */ + to memory" should be replaced with void *.] Using these more specific + types rather than the general ones helps avoid the confusions that + occur when the semantics of a char * argument being studied are unclear. */ typedef unsigned char UChar; @@ -304,19 +303,14 @@ typedef UChar UBufbyte; typedef char SBufbyte; /* The data representing a string in "external" format (binary or any - external encoding) is logically a set of Extbytes, declared as follows. */ + external encoding) is logically a set of Extbytes, declared as + follows. Extbyte is guaranteed to be just a char, so for example + strlen (Extbyte *) is OK. Extbyte is only a documentation device + for referring to external text. */ -typedef UChar Extbyte; /* #### I REALLY think this should be a char. This - is more logical and will fix enough char-UChar - inconsistencies that maybe we'll be able to stop - turning off those warnings. --ben */ - -/* Explicitly signed or unsigned versions: */ -typedef UChar UExtbyte; -typedef char SExtbyte; +typedef char Extbyte; /* A byte in a string in binary format: */ - typedef char Char_Binary; typedef UChar UChar_Binary; @@ -808,24 +802,20 @@ PRIVATE_EXTERNAL_LIST_LOOP_6 (elt, list, len, tail, \ tortoise_##elt, CIRCULAR_LIST_SUSPICION_LENGTH) -#define PRIVATE_EXTERNAL_LIST_LOOP_6(elt, list, len, hare, \ - tortoise, suspicion_length) \ - for (tortoise = hare = list, len = 0; \ - \ - (CONSP (hare) ? ((elt = XCAR (hare)), 1) : \ - (NILP (hare) ? 0 : \ - (signal_malformed_list_error (list), 0))); \ - \ - hare = XCDR (hare), \ - ((++len < suspicion_length) ? \ - ((void) 0) : \ - (((len & 1) ? \ - ((void) (tortoise = XCDR (tortoise))) : \ - ((void) 0)) \ - , \ - (EQ (hare, tortoise) ? \ - ((void) signal_circular_list_error (list)) : \ - ((void) 0))))) +#define PRIVATE_EXTERNAL_LIST_LOOP_6(elt, list, len, hare, \ + tortoise, suspicion_length) \ + for (tortoise = hare = list, len = 0; \ + \ + (CONSP (hare) ? ((elt = XCAR (hare)), 1) : \ + (NILP (hare) ? 0 : \ + (signal_malformed_list_error (list), 0))); \ + \ + hare = XCDR (hare), \ + (void) \ + ((++len > suspicion_length) \ + && \ + ((((len & 1) != 0) && (tortoise = XCDR (tortoise), 0)), \ + (EQ (hare, tortoise) && (signal_circular_list_error (list), 0))))) /* GET_LIST_LENGTH and GET_EXTERNAL_LIST_LENGTH: @@ -2221,6 +2211,10 @@ typedef unsigned long uintptr_t; void release_breathing_space (void); Lisp_Object noseeum_cons (Lisp_Object, Lisp_Object); Lisp_Object make_vector (size_t, Lisp_Object); +#ifdef HAVE_GGC +Lisp_Object make_older_vector (size_t, Lisp_Object); +void make_vector_newer (Lisp_Object); +#endif Lisp_Object vector1 (Lisp_Object); Lisp_Object vector2 (Lisp_Object, Lisp_Object); Lisp_Object vector3 (Lisp_Object, Lisp_Object, Lisp_Object); @@ -2739,7 +2733,7 @@ void write_string_1 (const Bufbyte *, Bytecount, Lisp_Object); void print_cons (Lisp_Object, Lisp_Object, int); void print_vector (Lisp_Object, Lisp_Object, int); void print_string (Lisp_Object, Lisp_Object, int); -void long_to_string (char *, long); +char *long_to_string (char *, long); void print_internal (Lisp_Object, Lisp_Object, int); void print_symbol (Lisp_Object, Lisp_Object, int); void print_float (Lisp_Object, Lisp_Object, int); @@ -2777,7 +2771,7 @@ Bytind bi_find_next_newline_no_quit (struct buffer *, Bytind, int); Bytind bi_find_next_emchar_in_string (Lisp_String*, Emchar, Bytind, EMACS_INT); Bufpos find_before_next_newline (struct buffer *, Bufpos, Bufpos, int); struct re_pattern_buffer *compile_pattern (Lisp_Object, struct re_registers *, - char *, int, Error_behavior); + Lisp_Object, int, Error_behavior); Bytecount fast_string_match (Lisp_Object, const Bufbyte *, Lisp_Object, Bytecount, Bytecount, int, Error_behavior, int); @@ -3191,10 +3185,12 @@ extern Lisp_Object Qwrong_type_argument, Qyes_or_no_p; /*--------------- prototypes for variables of type Lisp_Object ------------*/ -extern Lisp_Object Vactivate_menubar_hook, Vascii_canon_table; -extern Lisp_Object Vascii_downcase_table, Vascii_eqv_table; -extern Lisp_Object Vascii_upcase_table, Vautoload_queue, Vblank_menubar; +extern Lisp_Object Vactivate_menubar_hook; +extern Lisp_Object Vautoload_queue, Vblank_menubar; extern Lisp_Object Vcharset_ascii, Vcharset_composite, Vcharset_control_1; +extern Lisp_Object Vcharset_latin_iso8859_1, Vcharset_greek_iso8859_7; +extern Lisp_Object Vcharset_cyrillic_iso8859_5, Vcharset_hebrew_iso8859_8; +extern Lisp_Object Vcharset_thai_tis620, Vcharset_katakana_jisx0201; extern Lisp_Object Vcoding_system_for_read, Vcoding_system_for_write; extern Lisp_Object Vcoding_system_hash_table, Vcommand_history; extern Lisp_Object Vcommand_line_args, Vconfigure_info_directory; @@ -3215,8 +3211,6 @@ extern Lisp_Object Vload_file_name_internal; extern Lisp_Object Vload_file_name_internal_the_purecopy, Vload_history; extern Lisp_Object Vload_path, Vmark_even_if_inactive, Vmenubar_configuration; extern Lisp_Object Vminibuf_preprompt, Vminibuf_prompt, Vminibuffer_zero; -extern Lisp_Object Vmirror_ascii_canon_table, Vmirror_ascii_downcase_table; -extern Lisp_Object Vmirror_ascii_eqv_table, Vmirror_ascii_upcase_table; extern Lisp_Object Vmodule_directory, Vmswindows_downcase_file_names; extern Lisp_Object Vmswindows_get_true_file_attributes, Vobarray; extern Lisp_Object Vprint_length, Vprint_level, Vprocess_environment;