Mercurial > hg > xemacs-beta
comparison src/lisp.h @ 996:25e260cb7994
[xemacs-hg @ 2002-09-10 15:27:02 by james]
Enable unloading of dynamic modules. Create the first two internal XEmacs
modules: LDAP and postgreSQL. Update the sample directory to contain a
sample internal XEmacs module and a sample external XEmacs module. Improve
support for autoloading modules. Make internal module code compile into the
XEmacs binary if XEmacs is configured without module support. Make the
internal module directories self-contained so that they can be distributed
separately from XEmacs.
author | james |
---|---|
date | Tue, 10 Sep 2002 15:27:39 +0000 |
parents | 2ec85ed291da |
children | 8b464283e891 |
comparison
equal
deleted
inserted
replaced
995:4575a219af58 | 996:25e260cb7994 |
---|---|
1203 (assert ((d)->cur > 0), (d)->cur--, Dynarr_at (d, (d)->cur)) | 1203 (assert ((d)->cur > 0), (d)->cur--, Dynarr_at (d, (d)->cur)) |
1204 #define Dynarr_delete(d, i) Dynarr_delete_many (d, i, len) | 1204 #define Dynarr_delete(d, i) Dynarr_delete_many (d, i, len) |
1205 #define Dynarr_delete_by_pointer(d, p) \ | 1205 #define Dynarr_delete_by_pointer(d, p) \ |
1206 Dynarr_delete_many (d, (p) - ((d)->base), 1) | 1206 Dynarr_delete_many (d, (p) - ((d)->base), 1) |
1207 | 1207 |
1208 #define Dynarr_delete_object(d, el) \ | |
1209 do { \ | |
1210 if (d != NULL) { \ | |
1211 REGISTER int i; \ | |
1212 for (i = Dynarr_length (d) - 1; i >= 0; i--) { \ | |
1213 if (el == Dynarr_at (d, i)) { \ | |
1214 Dynarr_delete_many (d, i, 1); \ | |
1215 } \ | |
1216 } \ | |
1217 } \ | |
1218 } while (0) | |
1219 | |
1208 #ifdef MEMORY_USAGE_STATS | 1220 #ifdef MEMORY_USAGE_STATS |
1209 struct overhead_stats; | 1221 struct overhead_stats; |
1210 Bytecount Dynarr_memory_usage (void *d, struct overhead_stats *stats); | 1222 Bytecount Dynarr_memory_usage (void *d, struct overhead_stats *stats); |
1211 #endif | 1223 #endif |
1212 | 1224 |
3230 void staticpro_1 (Lisp_Object *, char *); | 3242 void staticpro_1 (Lisp_Object *, char *); |
3231 void staticpro_nodump_1 (Lisp_Object *, char *); | 3243 void staticpro_nodump_1 (Lisp_Object *, char *); |
3232 #define staticpro(ptr) staticpro_1 (ptr, #ptr) | 3244 #define staticpro(ptr) staticpro_1 (ptr, #ptr) |
3233 #define staticpro_nodump(ptr) staticpro_nodump_1 (ptr, #ptr) | 3245 #define staticpro_nodump(ptr) staticpro_nodump_1 (ptr, #ptr) |
3234 | 3246 |
3247 #ifdef HAVE_SHLIB | |
3248 void unstaticpro_nodump_1 (Lisp_Object *, char *); | |
3249 #define unstaticpro_nodump(ptr) unstaticpro_nodump_1 (ptr, #ptr) | |
3250 #endif | |
3251 | |
3235 #else | 3252 #else |
3236 | 3253 |
3237 /* Call staticpro (&var) to protect static variable `var'. */ | 3254 /* Call staticpro (&var) to protect static variable `var'. */ |
3238 void staticpro (Lisp_Object *); | 3255 void staticpro (Lisp_Object *); |
3239 | 3256 |
3240 /* Call staticpro_nodump (&var) to protect static variable `var'. */ | 3257 /* Call staticpro_nodump (&var) to protect static variable `var'. */ |
3241 /* var will not be saved at dump time */ | 3258 /* var will not be saved at dump time */ |
3242 void staticpro_nodump (Lisp_Object *); | 3259 void staticpro_nodump (Lisp_Object *); |
3260 | |
3261 #ifdef HAVE_SHLIB | |
3262 /* Call unstaticpro_nodump (&var) to stop protecting static variable `var'. */ | |
3263 void unstaticpro_nodump (Lisp_Object *); | |
3264 #endif | |
3243 | 3265 |
3244 #endif | 3266 #endif |
3245 | 3267 |
3246 void register_post_gc_action (void (*fun) (void *), void *arg); | 3268 void register_post_gc_action (void (*fun) (void *), void *arg); |
3247 int begin_gc_forbidden (void); | 3269 int begin_gc_forbidden (void); |
3676 int debug_can_access_memory (void *ptr, Bytecount len); | 3698 int debug_can_access_memory (void *ptr, Bytecount len); |
3677 void really_abort (void); | 3699 void really_abort (void); |
3678 void zero_out_command_line_status_vars (void); | 3700 void zero_out_command_line_status_vars (void); |
3679 | 3701 |
3680 /* Defined in emodules.c */ | 3702 /* Defined in emodules.c */ |
3703 #ifdef HAVE_SHLIB | |
3681 EXFUN (Flist_modules, 0); | 3704 EXFUN (Flist_modules, 0); |
3682 EXFUN (Fload_module, 3); | 3705 EXFUN (Fload_module, 3); |
3683 | 3706 extern int unloading_module; |
3707 #endif | |
3684 | 3708 |
3685 /* Defined in eval.c */ | 3709 /* Defined in eval.c */ |
3686 EXFUN (Fapply, MANY); | 3710 EXFUN (Fapply, MANY); |
3687 EXFUN (Fbacktrace, 2); | 3711 EXFUN (Fbacktrace, 2); |
3688 EXFUN (Fcommand_execute, 3); | 3712 EXFUN (Fcommand_execute, 3); |
4982 extern Lisp_Object Qdirection, Qdisabled, Qdisabled_command_hook; | 5006 extern Lisp_Object Qdirection, Qdisabled, Qdisabled_command_hook; |
4983 extern Lisp_Object Qdisplay_table, Qdll_error, Qdomain_error, Qediting_error; | 5007 extern Lisp_Object Qdisplay_table, Qdll_error, Qdomain_error, Qediting_error; |
4984 extern Lisp_Object Qend_of_buffer, Qend_of_file, Qend_open, Qerror; | 5008 extern Lisp_Object Qend_of_buffer, Qend_of_file, Qend_open, Qerror; |
4985 extern Lisp_Object Qerror_conditions, Qerror_lacks_explanatory_string; | 5009 extern Lisp_Object Qerror_conditions, Qerror_lacks_explanatory_string; |
4986 extern Lisp_Object Qerror_message, Qevent_live_p, Qexit, Qextent_live_p; | 5010 extern Lisp_Object Qerror_message, Qevent_live_p, Qexit, Qextent_live_p; |
4987 extern Lisp_Object Qexternal_debugging_output, Qfeaturep, Qfile_error, Qfinal; | 5011 extern Lisp_Object Qexternal_debugging_output, Qfeaturep, Qfile_error; |
5012 extern Lisp_Object Qfile_name_sans_extension, Qfinal; | |
4988 extern Lisp_Object Qforeground, Qformat, Qframe_live_p, Qgraphic, Qgtk; | 5013 extern Lisp_Object Qforeground, Qformat, Qframe_live_p, Qgraphic, Qgtk; |
4989 extern Lisp_Object Qgui_error, Qicon_glyph_p, Qidentity, Qinhibit_quit; | 5014 extern Lisp_Object Qgui_error, Qicon_glyph_p, Qidentity, Qinhibit_quit; |
4990 extern Lisp_Object Qinhibit_read_only, Qinteger_char_or_marker_p; | 5015 extern Lisp_Object Qinhibit_read_only, Qinteger_char_or_marker_p; |
4991 extern Lisp_Object Qinteger_or_char_p, Qinteger_or_marker_p, Qintegerp; | 5016 extern Lisp_Object Qinteger_or_char_p, Qinteger_or_marker_p, Qintegerp; |
4992 extern Lisp_Object Qinteractive, Qinternal_error, Qinvalid_argument; | 5017 extern Lisp_Object Qinteractive, Qinternal_error, Qinvalid_argument; |
4993 extern Lisp_Object Qinvalid_byte_code, Qinvalid_change, Qinvalid_constant; | 5018 extern Lisp_Object Qinvalid_byte_code, Qinvalid_change, Qinvalid_constant; |
4994 extern Lisp_Object Qinvalid_function, Qinvalid_operation; | 5019 extern Lisp_Object Qinvalid_function, Qinvalid_operation; |
4995 extern Lisp_Object Qinvalid_read_syntax, Qinvalid_state, Qio_error, Qlambda; | 5020 extern Lisp_Object Qinvalid_read_syntax, Qinvalid_state, Qio_error, Qlambda; |
4996 extern Lisp_Object Qlayout, Qlist_formation_error, Qlistp, Qload, Qlock_shift; | 5021 extern Lisp_Object Qlayout, Qlist_formation_error, Qlistp, Qload, Qlock_shift; |
4997 extern Lisp_Object Qlong_name, Qmacro, Qmakunbound, Qmalformed_list; | 5022 extern Lisp_Object Qlong_name, Qmacro, Qmakunbound, Qmalformed_list; |
4998 extern Lisp_Object Qmalformed_property_list, Qmark; | 5023 extern Lisp_Object Qmalformed_property_list, Qmark, Qmodule; |
4999 extern Lisp_Object Qmono_pixmap_image_instance_p, Qmouse_leave_buffer_hook; | 5024 extern Lisp_Object Qmono_pixmap_image_instance_p, Qmouse_leave_buffer_hook; |
5000 extern Lisp_Object Qnative_layout, Qnatnump, Qnetwork_error, Qno_catch; | 5025 extern Lisp_Object Qnative_layout, Qnatnump, Qnetwork_error, Qno_catch; |
5001 extern Lisp_Object Qnothing_image_instance_p, Qnumber_char_or_marker_p; | 5026 extern Lisp_Object Qnothing_image_instance_p, Qnumber_char_or_marker_p; |
5002 extern Lisp_Object Qnumberp, Qout_of_memory, Qoutput_charset_conversion; | 5027 extern Lisp_Object Qnumberp, Qout_of_memory, Qoutput_charset_conversion; |
5003 extern Lisp_Object Qoverflow_error, Qpoint, Qpointer_glyph_p; | 5028 extern Lisp_Object Qoverflow_error, Qpoint, Qpointer_glyph_p; |