X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Flisp.h;h=39ce75c574b31a0916d825eb2d9704d2222b5525;hb=c84f68d33788b5eb36adb7ae86027263fb06b179;hp=fcfddc96a91476632a5dc49fd071dbb93e7654c9;hpb=2fd9701a4f902054649dde9143a3f77809afee8f;p=chise%2Fxemacs-chise.git- diff --git a/src/lisp.h b/src/lisp.h index fcfddc9..39ce75c 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -63,6 +63,8 @@ void Dynarr_delete_many (void *d, int start, int len); void Dynarr_free (void *d); #define Dynarr_new(type) ((type##_dynarr *) Dynarr_newf (sizeof (type))) +#define Dynarr_new2(dynarr_type, type) \ + ((dynarr_type *) Dynarr_newf (sizeof (type))) #define Dynarr_at(d, pos) ((d)->base[pos]) #define Dynarr_atp(d, pos) (&Dynarr_at (d, pos)) #define Dynarr_length(d) ((d)->cur) @@ -165,13 +167,13 @@ void xfree (void *); #ifndef DOESNT_RETURN # if defined __GNUC__ # if ((__GNUC__ > 2) || (__GNUC__ == 2) && (__GNUC_MINOR__ >= 5)) -# define DOESNT_RETURN void volatile +# define DOESNT_RETURN void # define DECLARE_DOESNT_RETURN(decl) \ - extern void volatile decl __attribute__ ((noreturn)) + extern void decl __attribute__ ((noreturn)) # define DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS(decl,str,idx) \ /* Should be able to state multiple independent __attribute__s, but \ the losing syntax doesn't work that way, and screws losing cpp */ \ - extern void volatile decl \ + extern void decl \ __attribute__ ((noreturn, format (printf, str, idx))) # else # define DOESNT_RETURN void volatile @@ -968,6 +970,15 @@ void set_string_char (Lisp_String *s, Charcount i, Emchar c); #endif /* not MULE */ +/* Return the true size of a struct with a variable-length array field. */ +#define FLEXIBLE_ARRAY_STRUCT_SIZEOF(flexible_array_structtype, \ + flexible_array_field, \ + flexible_array_length) \ + (offsetof (flexible_array_structtype, flexible_array_field) + \ + (offsetof (flexible_array_structtype, flexible_array_field[1]) - \ + offsetof (flexible_array_structtype, flexible_array_field[0])) * \ + (flexible_array_length)) + /*********** vector ***********/ struct Lisp_Vector @@ -1534,6 +1545,12 @@ Lisp_Object,Lisp_Object,Lisp_Object extern int specpdl_depth_counter; #define specpdl_depth() specpdl_depth_counter + +#define CHECK_FUNCTION(fun) do { \ + while (NILP (Ffunctionp (fun))) \ + signal_invalid_function_error (fun); \ + } while (0) + /************************************************************************/ /* Checking for QUIT */ @@ -1971,6 +1988,9 @@ 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 UTF2000 +Lisp_Object make_older_vector (size_t, Lisp_Object); +#endif Lisp_Object vector1 (Lisp_Object); Lisp_Object vector2 (Lisp_Object, Lisp_Object); Lisp_Object vector3 (Lisp_Object, Lisp_Object, Lisp_Object); @@ -2040,6 +2060,9 @@ char *egetenv (const char *); /* Defined in console.c */ void stuff_buffered_input (Lisp_Object); +/* Defined in console-msw.c */ +EXFUN (Fmswindows_message_box, 3); + /* Defined in data.c */ DECLARE_DOESNT_RETURN (c_write_error (Lisp_Object)); DECLARE_DOESNT_RETURN (lisp_write_error (Lisp_Object)); @@ -2118,6 +2141,7 @@ Lisp_Object decode_env_path (const char *, const char *); Lisp_Object decode_path (const char *); /* Nonzero means don't do interactive redisplay and don't change tty modes */ extern int noninteractive, noninteractive1; +extern int fatal_error_in_progress; extern int preparing_for_armageddon; extern int emacs_priority; extern int running_asynch_code; @@ -2243,8 +2267,10 @@ void reset_this_command_keys (Lisp_Object, int); Lisp_Object enqueue_misc_user_event (Lisp_Object, Lisp_Object, Lisp_Object); Lisp_Object enqueue_misc_user_event_pos (Lisp_Object, Lisp_Object, Lisp_Object, int, int, int, int); +extern int modifier_keys_are_sticky; /* Defined in event-Xt.c */ +void enqueue_Xt_dispatch_event (Lisp_Object event); void signal_special_Xt_user_event (Lisp_Object, Lisp_Object, Lisp_Object); @@ -2632,6 +2658,7 @@ EXFUN (Fforward_char, 2); EXFUN (Fforward_line, 2); EXFUN (Ffset, 2); EXFUN (Ffuncall, MANY); +EXFUN (Ffunctionp, 1); EXFUN (Fgeq, MANY); EXFUN (Fget, 3); EXFUN (Fget_buffer_process, 1); @@ -2720,6 +2747,7 @@ EXFUN (Fread_key_sequence, 3); EXFUN (Freally_free, 1); EXFUN (Frem, 2); EXFUN (Fremassq, 2); +EXFUN (Freplace_list, 2); EXFUN (Fselected_frame, 1); EXFUN (Fset, 2); EXFUN (Fset_coding_category_system, 2); @@ -2769,7 +2797,8 @@ EXFUN (Fvertical_motion, 3); EXFUN (Fwiden, 1); -extern Lisp_Object Q_style, Qactually_requested, Qactivate_menubar_hook; +extern Lisp_Object Q_style, Qabort, Qactually_requested; +extern Lisp_Object Qactivate_menubar_hook; extern Lisp_Object Qafter, Qall, Qand; extern Lisp_Object Qarith_error, Qarrayp, Qassoc, Qat, Qautodetect, Qautoload; extern Lisp_Object Qbackground, Qbackground_pixmap, Qbad_variable, Qbefore; @@ -2777,7 +2806,7 @@ extern Lisp_Object Qbeginning_of_buffer, Qbig5, Qbinary; extern Lisp_Object Qbitmap, Qbitp, Qblinking; extern Lisp_Object Qboolean, Qbottom, Qbottom_margin, Qbuffer; extern Lisp_Object Qbuffer_glyph_p, Qbuffer_live_p, Qbuffer_read_only, Qbutton; -extern Lisp_Object Qbyte_code, Qcall_interactively, Qcategory; +extern Lisp_Object Qbyte_code, Qcall_interactively, Qcancel, Qcategory; extern Lisp_Object Qcategory_designator_p, Qcategory_table_value_p, Qccl, Qcdr; extern Lisp_Object Qchannel, Qchar, Qchar_or_string_p, Qcharacter, Qcharacterp; extern Lisp_Object Qchars, Qcharset_g0, Qcharset_g1, Qcharset_g2, Qcharset_g3; @@ -2789,6 +2818,7 @@ extern Lisp_Object Qconsole, Qconsole_live_p, Qconst_specifier, Qcr, Qcritical; extern Lisp_Object Qcrlf, Qctext, Qcurrent_menubar, Qctext, Qcursor; extern Lisp_Object Qcyclic_variable_indirection, Qdata, Qdead, Qdecode; extern Lisp_Object Qdefault, Qdefun, Qdelete, Qdelq, Qdevice, Qdevice_live_p; +extern Lisp_Object Qdialog; extern Lisp_Object Qdim, Qdimension, Qdisabled, Qdisplay, Qdisplay_table; extern Lisp_Object Qdoc_string, Qdomain_error, Qduplex, Qdynarr_overhead; extern Lisp_Object Qempty, Qencode, Qend_of_buffer, Qend_of_file, Qend_open; @@ -2799,29 +2829,33 @@ extern Lisp_Object Qexternal_debugging_output, Qface, Qfeaturep; extern Lisp_Object Qfile_name, Qfile_error; extern Lisp_Object Qfont, Qforce_g0_on_output, Qforce_g1_on_output; extern Lisp_Object Qforce_g2_on_output, Qforce_g3_on_output, Qforeground; -extern Lisp_Object Qformat, Qframe, Qframe_live_p, Qfunction, Qgap_overhead; -extern Lisp_Object Qgeneric, Qgeometry, Qglobal, Qheight; -extern Lisp_Object Qhighlight, Qhorizontal, Qicon; -extern Lisp_Object Qicon_glyph_p, Qid, Qidentity, Qimage, Qinfo, Qinherit; +extern Lisp_Object Qformat, Qframe, Qframe_live_p, Qfuncall, Qfunction; +extern Lisp_Object Qgap_overhead, Qgeneric, Qgeometry, Qglobal, Qheight; +extern Lisp_Object Qhelp, Qhighlight, Qhorizontal, Qicon; +extern Lisp_Object Qicon_glyph_p, Qid, Qidentity, Qignore, Qimage, Qinfo; +extern Lisp_Object Qinherit; extern Lisp_Object Qinhibit_quit, Qinhibit_read_only; extern Lisp_Object Qinput_charset_conversion, Qinteger; extern Lisp_Object Qinteger_char_or_marker_p, Qinteger_or_char_p; extern Lisp_Object Qinteger_or_marker_p, Qintegerp, Qinteractive, Qinternal; extern Lisp_Object Qinvalid_function, Qinvalid_read_syntax, Qio_error; extern Lisp_Object Qiso2022, Qkey, Qkey_assoc, Qkeyboard, Qkeymap; -extern Lisp_Object Qlambda, Qlayout, Qlandscape, Qleft, Qleft_margin, Qlf; +extern Lisp_Object Qlambda, Qlast_command, Qlayout, Qlandscape; +extern Lisp_Object Qleft, Qleft_margin, Qlet, Qlf; extern Lisp_Object Qlist, Qlistp, Qload, Qlock_shift, Qmacro, Qmagic; extern Lisp_Object Qmakunbound, Qmalformed_list, Qmalformed_property_list; extern Lisp_Object Qmalloc_overhead, Qmark, Qmarkers; +extern Lisp_Object Qmenubar; extern Lisp_Object Qmax, Qmemory, Qmessage, Qminus, Qmnemonic, Qmodifiers; extern Lisp_Object Qmono_pixmap_image_instance_p, Qmotion; extern Lisp_Object Qmouse_leave_buffer_hook, Qmsprinter, Qmswindows; -extern Lisp_Object Qname, Qnas, Qnatnump; -extern Lisp_Object Qno_ascii_cntl, Qno_ascii_eol, Qno_catch; +extern Lisp_Object Qname, Qnas, Qnatnump, Qnative_layout; +extern Lisp_Object Qno, Qno_ascii_cntl, Qno_ascii_eol, Qno_catch; extern Lisp_Object Qno_conversion, Qno_iso6429, Qnone, Qnot, Qnothing; extern Lisp_Object Qnothing_image_instance_p, Qnotice; extern Lisp_Object Qnumber_char_or_marker_p, Qnumberp; -extern Lisp_Object Qobject, Qold_assoc, Qold_delete, Qold_delq, Qold_rassoc; +extern Lisp_Object Qobject, Qok, Qold_assoc, Qold_delete, Qold_delq; +extern Lisp_Object Qold_rassoc; extern Lisp_Object Qold_rassq, Qonly, Qor, Qother; extern Lisp_Object Qorientation, Qoutput_charset_conversion; extern Lisp_Object Qoverflow_error, Qpoint, Qpointer, Qpointer_glyph_p; @@ -2831,7 +2865,7 @@ extern Lisp_Object Qprint_string_length, Qprocess, Qprogn, Qprovide, Qquit; extern Lisp_Object Qquote, Qrange_error, Qrassoc, Qrassq, Qread_char; extern Lisp_Object Qread_from_minibuffer, Qreally_early_error_handler; extern Lisp_Object Qregion_beginning, Qregion_end, Qrequire, Qresource; -extern Lisp_Object Qreturn, Qreverse, Qright, Qright_margin; +extern Lisp_Object Qretry, Qreturn, Qreverse, Qright, Qright_margin; extern Lisp_Object Qrun_hooks, Qsans_modifiers; extern Lisp_Object Qsave_buffers_kill_emacs, Qsearch, Qselected; extern Lisp_Object Qself_insert_command, Qself_insert_defer_undo; @@ -2841,8 +2875,8 @@ extern Lisp_Object Qsignal, Qsimple, Qsingularity_error, Qsize, Qspace; extern Lisp_Object Qspecifier, Qstandard_input, Qstandard_output, Qstart_open; extern Lisp_Object Qstream, Qstring, Qstring_lessp, Qsubwindow; extern Lisp_Object Qsubwindow_image_instance_p; -extern Lisp_Object Qsymbol, Qsyntax, Qt, Qterminal, Qtest; -extern Lisp_Object Qtext, Qtext_image_instance_p, Qtimeout, Qtimestamp; +extern Lisp_Object Qsymbol, Qsyntax, Qt, Qterminal, Qtest, Qtext; +extern Lisp_Object Qtext_image_instance_p, Qthis_command, Qtimeout, Qtimestamp; extern Lisp_Object Qtoolbar, Qtop, Qtop_margin, Qtop_level; extern Lisp_Object Qtrue_list_p, Qtty, Qtype; extern Lisp_Object Qunbound, Qundecided, Qundefined, Qunderflow_error; @@ -2852,11 +2886,14 @@ extern Lisp_Object Qvariable_documentation, Qvariable_domain, Qvertical; extern Lisp_Object Qvoid_function, Qvoid_variable, Qwarning; extern Lisp_Object Qwidth, Qwidget, Qwindow; extern Lisp_Object Qwindow_live_p, Qwindow_system, Qwrong_number_of_arguments; -extern Lisp_Object Qwrong_type_argument, Qx, Qy, Qyes_or_no_p; +extern Lisp_Object Qwrong_type_argument, Qx, Qy, Qyes, Qyes_or_no_p; 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 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;