Mercurial > hg > xemacs-beta
diff src/emacsfns.h @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | 0293115a14e9 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/emacsfns.h Mon Aug 13 08:45:50 2007 +0200 @@ -0,0 +1,1799 @@ +/* Various function declarations for XEmacs. + Used to be part of lisp.h + Copyright (C) 1985-1987, 1992-1994 Free Software Foundation, Inc. + +This file is part of XEmacs. + +XEmacs is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2, or (at your option) any +later version. + +XEmacs is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with XEmacs; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +/* Synched up with: Mule 2.0. Divergent from FSF. */ + +#ifndef _EMACSFNS_H_ +#define _EMACSFNS_H_ + + +/* Defined in abbrev.c */ +extern Lisp_Object Vfundamental_mode_abbrev_table; +Lisp_Object Fexpand_abbrev (void); + + +/* Defined in alloc.c */ +void release_breathing_space (void); +Lisp_Object Fcons (Lisp_Object car, Lisp_Object cdr); +Lisp_Object noseeum_cons (Lisp_Object car, Lisp_Object cdr); +Lisp_Object Flist (int nargs, Lisp_Object *args); +Lisp_Object Fmake_list (Lisp_Object length, Lisp_Object init); +Lisp_Object Fmake_vector (Lisp_Object length, Lisp_Object init); +Lisp_Object make_vector (EMACS_INT length, Lisp_Object init); +Lisp_Object Fvector (int nargs, Lisp_Object *args); +Lisp_Object vector1 (Lisp_Object); +Lisp_Object vector2 (Lisp_Object, Lisp_Object); +Lisp_Object vector3 (Lisp_Object, Lisp_Object, Lisp_Object); +Lisp_Object vector4 (Lisp_Object, Lisp_Object, Lisp_Object, + Lisp_Object); +Lisp_Object vector5 (Lisp_Object, Lisp_Object, Lisp_Object, + Lisp_Object, Lisp_Object); +Lisp_Object vector6 (Lisp_Object, Lisp_Object, Lisp_Object, + Lisp_Object, Lisp_Object, Lisp_Object); +Lisp_Object vector7 (Lisp_Object, Lisp_Object, Lisp_Object, + Lisp_Object, Lisp_Object, Lisp_Object, + Lisp_Object); +Lisp_Object vector8 (Lisp_Object, Lisp_Object, Lisp_Object, + Lisp_Object, Lisp_Object, Lisp_Object, + Lisp_Object, Lisp_Object); +Lisp_Object make_bit_vector (EMACS_INT length, Lisp_Object init); +Lisp_Object make_bit_vector_from_byte_vector (unsigned char *bytevec, + EMACS_INT length); +Lisp_Object Fmake_bit_vector (Lisp_Object length, Lisp_Object init); +Lisp_Object Fmake_symbol (Lisp_Object name); +Lisp_Object Fmake_marker (void); +Lisp_Object noseeum_make_marker (void); +Lisp_Object Fmake_string (Lisp_Object length, Lisp_Object init); +void garbage_collect_1 (void); +Lisp_Object Fgarbage_collect (void); +Lisp_Object list1 (Lisp_Object); +Lisp_Object list2 (Lisp_Object, Lisp_Object); +Lisp_Object list3 (Lisp_Object, Lisp_Object, Lisp_Object); +Lisp_Object list4 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object); +Lisp_Object list5 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, + Lisp_Object); +Lisp_Object list6 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, + Lisp_Object, Lisp_Object); + +void malloc_warning (CONST char *); +DECLARE_DOESNT_RETURN (memory_full (void)); +void *xmalloc (int size); +void *xmalloc_and_zero (int size); +void *xrealloc (void *, int size); +#ifdef ERROR_CHECK_MALLOC +void xfree_1 (void *); +#else +void xfree (void *); +#endif +char *xstrdup (CONST char *); +void disksave_object_finalization (void); +extern int purify_flag; +extern int gc_currently_forbidden; +Lisp_Object restore_gc_inhibit (Lisp_Object); +extern EMACS_INT gc_generation_number[1]; +int purified (Lisp_Object); + +Lisp_Object build_string (CONST char *); +Lisp_Object build_ext_string (CONST char *str, + enum external_data_format fmt); +Lisp_Object build_translated_string (CONST char *); +Lisp_Object make_string (CONST Bufbyte *, Bytecount); +Lisp_Object make_ext_string (CONST Extbyte *contents, EMACS_INT length, + enum external_data_format fmt); +Lisp_Object make_uninit_string (Bytecount length); + +Lisp_Object make_float (double float_value); + +Lisp_Object Fmake_byte_code (int nargs, Lisp_Object *args); + +Lisp_Object Fpurecopy (Lisp_Object); +int purespace_usage (void); +void report_pure_usage (int report_impurities, + int die_if_pure_storage_exceeded); +Lisp_Object make_pure_string (CONST Bufbyte *, Bytecount len, + Lisp_Object plist, int nocopy); +Lisp_Object make_pure_pname (CONST Bufbyte *, Bytecount len, + int nocopy); +Lisp_Object pure_cons (Lisp_Object, Lisp_Object); +Lisp_Object pure_list (int nargs, Lisp_Object *args); +Lisp_Object make_pure_vector (EMACS_INT len, Lisp_Object init); + +void free_cons (struct Lisp_Cons *ptr); +void free_list (Lisp_Object list); +void free_alist (Lisp_Object alist); +void mark_conses_in_list (Lisp_Object obj); + +void free_marker (struct Lisp_Marker *ptr); + +#ifdef LISP_FLOAT_TYPE +Lisp_Object make_pure_float (double float_value); +/* void free_float (struct Lisp_Float *); */ +#endif + +int object_dead_p (Lisp_Object); + +#ifdef MEMORY_USAGE_STATS +int malloced_storage_size (void *ptr, int claimed_size, + struct overhead_stats *stats); +int fixed_type_block_overhead (int size); +#endif + + +/* Defined in buffer.c */ +Lisp_Object make_buffer (struct buffer *buf); +Lisp_Object Fset_buffer_left_margin_width (Lisp_Object width, + Lisp_Object buffer); +Lisp_Object Fset_buffer_right_margin_width (Lisp_Object width, + Lisp_Object buffer); +Lisp_Object Fbuffer_left_margin_width (Lisp_Object buffer); +Lisp_Object Fbuffer_right_margin_width (Lisp_Object buffer); +Lisp_Object Ferase_buffer (Lisp_Object buffer); +Lisp_Object Fbuffer_disable_undo (Lisp_Object buffer); +Lisp_Object Fkill_buffer (Lisp_Object buffer); +Lisp_Object Fbuffer_name (Lisp_Object buffer); +Lisp_Object Fget_buffer (Lisp_Object name); +Lisp_Object Fget_buffer_create (Lisp_Object name); +Lisp_Object Fget_file_buffer (Lisp_Object fn); +Lisp_Object get_truename_buffer (REGISTER Lisp_Object filename); +Lisp_Object Fset_buffer (Lisp_Object buffer); +Lisp_Object Fbarf_if_buffer_read_only (Lisp_Object buffer, + Lisp_Object s, Lisp_Object e); +Lisp_Object Fcurrent_buffer (void); +void switch_to_buffer (Lisp_Object buf, Lisp_Object norecord); +Lisp_Object Frecord_buffer (Lisp_Object); +Lisp_Object Fother_buffer (Lisp_Object buffer, Lisp_Object frame, + Lisp_Object visible_ok); +Lisp_Object Fbuffer_list (Lisp_Object frame); +Lisp_Object Fset_buffer_modified_p (Lisp_Object flag, + Lisp_Object buffer); +extern Lisp_Object QSscratch; /* "*scratch*" */ +extern Lisp_Object Qbuffer_file_name, Qbuffer_undo_list; +extern Lisp_Object Qdefault_directory; +extern int find_file_compare_truenames; +extern int find_file_use_truenames; +Lisp_Object Fbuffer_modified_p (Lisp_Object buffer); +Lisp_Object Fgenerate_new_buffer_name (Lisp_Object name, + Lisp_Object ignore); +Lisp_Object Frename_buffer (Lisp_Object name, Lisp_Object unique); + +/* Functions to call before and after each text change. */ +extern Lisp_Object Vbefore_change_functions; +extern Lisp_Object Qbefore_change_functions; +extern Lisp_Object Vafter_change_functions; +extern Lisp_Object Qafter_change_functions; + +/* #### Obsolete, for compatibility */ +extern Lisp_Object Vbefore_change_function; +extern Lisp_Object Qbefore_change_function; +extern Lisp_Object Vafter_change_function; +extern Lisp_Object Qafter_change_function; + +extern Lisp_Object Vfirst_change_hook; +extern Lisp_Object Qfirst_change_hook; +extern Lisp_Object Vinhibit_read_only; + +extern Lisp_Object Qpermanent_local, Qprotected_field; + + +/* Defined in bytecode.c */ +extern Lisp_Object Qbyte_code; +Lisp_Object Fbyte_code (Lisp_Object bytestr, + Lisp_Object constants_vector, + Lisp_Object maxdepth); + + +/* Defined in callint.c */ +extern Lisp_Object Vcommand_history; +extern Lisp_Object Qcall_interactively; +Lisp_Object Fcall_interactively (Lisp_Object fn, Lisp_Object record, + Lisp_Object keys); +Lisp_Object Fprefix_numeric_value (Lisp_Object prefix); +extern Lisp_Object Qread_from_minibuffer; +extern Lisp_Object Qenable_recursive_minibuffers; +extern Lisp_Object Qcompleting_read; +extern Lisp_Object Qread_file_name; +extern Lisp_Object Qread_directory_name; +extern Lisp_Object Qread_buffer; +extern Lisp_Object Qmouse_leave_buffer_hook; + + +/* Defined in callproc.c */ +extern Lisp_Object Vexec_path, Vexec_directory, Vdata_directory, + Vdoc_directory; + + +/* Defined in casefiddle.c */ +Lisp_Object Fupcase (Lisp_Object obj, Lisp_Object buffer); +Lisp_Object Fdowncase (Lisp_Object obj, Lisp_Object buffer); +Lisp_Object Fcapitalize (Lisp_Object obj, Lisp_Object buffer); +Lisp_Object Fupcase_initials (Lisp_Object obj, Lisp_Object buffer); +Lisp_Object Fupcase_region (Lisp_Object b, Lisp_Object e, + Lisp_Object buffer); +Lisp_Object Fdowncase_region (Lisp_Object b, Lisp_Object e, + Lisp_Object buffer); +Lisp_Object Fcapitalize_region (Lisp_Object b, Lisp_Object e, + Lisp_Object buffer); +Lisp_Object Fupcase_initials_region (Lisp_Object b, Lisp_Object e, + Lisp_Object buffer); +Lisp_Object Fupcase_word (Lisp_Object arg, Lisp_Object buffer); +Lisp_Object Fdowncase_word (Lisp_Object arg, Lisp_Object buffer); +Lisp_Object Fcapitalize_word (Lisp_Object arg, Lisp_Object buffer); + +extern Lisp_Object Vascii_downcase_table, Vascii_upcase_table; +extern Lisp_Object Vascii_canon_table, Vascii_eqv_table; + + +/* Defined in cmdloop.c */ +Lisp_Object Frecursive_edit (void); +extern Lisp_Object Qdisabled, Qtop_level; +extern Lisp_Object Vdisabled_command_hook; +Lisp_Object Fcommand_loop_1 (void); +extern Lisp_Object Qreally_early_error_handler; + + +/* Defined in cmds.c */ +Lisp_Object Fforward_char (Lisp_Object n, Lisp_Object buffer); +Lisp_Object Fforward_line (Lisp_Object n, Lisp_Object buffer); +Lisp_Object Fend_of_line (Lisp_Object n, Lisp_Object buffer); +Lisp_Object Fbeginning_of_line (Lisp_Object n, Lisp_Object buffer); +extern Lisp_Object Qself_insert_command; + + +/* Defined in console.c */ +Lisp_Object Fset_input_mode (Lisp_Object interrupt, + Lisp_Object flow, + Lisp_Object meta, + Lisp_Object quit, + Lisp_Object console); +Lisp_Object Fselect_console (Lisp_Object); +Lisp_Object Fselected_console (void); +Lisp_Object Fdelete_console (Lisp_Object console, Lisp_Object force); +Lisp_Object Fconsole_type (Lisp_Object); +Lisp_Object Fconsole_name (Lisp_Object); +Lisp_Object Fconsole_enable_input (Lisp_Object console); +Lisp_Object Fconsole_disable_input (Lisp_Object console); +void stuff_buffered_input (Lisp_Object stuffstring); +extern Lisp_Object Qx, Qns, Qtty, Qstream; +extern Lisp_Object Qcreate_console_hook, Qdelete_console_hook; + + +/* Defined in data.c */ +extern Lisp_Object Qnil, Qt, Qquote, Qlambda, Qunbound; +extern Lisp_Object Qerror_conditions, Qerror_message, Qtop_level, Qsignal; +extern Lisp_Object Qerror, Qquit, Qwrong_type_argument, Qargs_out_of_range; +extern Lisp_Object Qvoid_function, Qvoid_variable; +extern Lisp_Object Qcyclic_function_indirection, Qcyclic_variable_indirection; +extern Lisp_Object Qsetting_constant, Qinvalid_read_syntax; +extern Lisp_Object Qmalformed_list, Qmalformed_property_list; +extern Lisp_Object Qcircular_list, Qcircular_property_list; +extern Lisp_Object Qinvalid_function, Qwrong_number_of_arguments, Qno_catch; +extern Lisp_Object Qio_error; +extern Lisp_Object Qend_of_file, Qarith_error; +extern Lisp_Object Qrange_error, Qdomain_error, Qsingularity_error; +extern Lisp_Object Qsingularity_error, Qoverflow_error, Qunderflow_error; +extern Lisp_Object Qbeginning_of_buffer, Qend_of_buffer, Qbuffer_read_only; + +extern Lisp_Object Qintegerp, Qnatnump, Qsymbolp, Qlistp, Qconsp; +extern Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp, Qsubrp; +extern Lisp_Object Qcharacterp, Qchar_or_string_p, Qmarkerp, Qvectorp; +extern Lisp_Object Qbitp, Qbit_vectorp; +extern Lisp_Object Qinteger_or_char_p; +extern Lisp_Object Qinteger_or_marker_p, Qboundp, Qfboundp; +extern Lisp_Object Qcons; +extern Lisp_Object Qcdr, Qignore; + +extern Lisp_Object Qnumberp, Qnumber_or_marker_p; +extern Lisp_Object Qnumber_char_or_marker_p; + +extern Lisp_Object Qvalues; +extern Lisp_Object Qprogn; +extern Lisp_Object Qstring_or_buffer_p; + +extern Lisp_Object Qfloatp; +Lisp_Object Ftruncate (Lisp_Object n); + +Lisp_Object Flistp (Lisp_Object x); + +Lisp_Object Fcar (Lisp_Object cons), Fcar_safe (Lisp_Object cons); +Lisp_Object Fcdr (Lisp_Object cons), Fcdr_safe (Lisp_Object cons); +Lisp_Object Fsetcar (Lisp_Object cons, Lisp_Object val); +Lisp_Object Fsetcdr (Lisp_Object cons, Lisp_Object val); +Lisp_Object Faref (Lisp_Object array, Lisp_Object idx); +Lisp_Object Faset (Lisp_Object array, Lisp_Object idx, Lisp_Object x); +Lisp_Object Farray_length (Lisp_Object array); +Lisp_Object Felt (Lisp_Object seq, Lisp_Object idx); + +Lisp_Object Fzerop (Lisp_Object); +Lisp_Object Fnumber_to_string (Lisp_Object num); +Lisp_Object Fstring_to_number (Lisp_Object str); +Lisp_Object Fsubr_min_args (Lisp_Object subr); +Lisp_Object Fsubr_max_args (Lisp_Object subr); + +#ifndef make_int +Lisp_Object make_int (EMACS_INT); +#endif +Lisp_Object make_char (Emchar num); +DECLARE_DOESNT_RETURN (pure_write_error (void)); +DECLARE_DOESNT_RETURN (args_out_of_range (Lisp_Object, Lisp_Object)); +DECLARE_DOESNT_RETURN (args_out_of_range_3 (Lisp_Object, Lisp_Object, + Lisp_Object)); +Lisp_Object wrong_type_argument (Lisp_Object pred, Lisp_Object value); +DECLARE_DOESNT_RETURN (dead_wrong_type_argument (Lisp_Object predicate, + Lisp_Object value)); +void check_int_range (int val, int min, int max); + +Lisp_Object word_to_lisp (unsigned int); +unsigned int lisp_to_word (Lisp_Object); + +Lisp_Object Fcompiled_function_instructions (Lisp_Object function); +Lisp_Object Fcompiled_function_constants (Lisp_Object function); +Lisp_Object Fcompiled_function_stack_depth (Lisp_Object function); +Lisp_Object Fcompiled_function_arglist (Lisp_Object function); +Lisp_Object Fcompiled_function_interactive (Lisp_Object function); +Lisp_Object Fcompiled_function_domain (Lisp_Object function); +Lisp_Object Fcompiled_function_annotation (Lisp_Object function); + +Lisp_Object Fquo (int nargs, Lisp_Object *args); +Lisp_Object Fsub1 (Lisp_Object num); +Lisp_Object Fadd1 (Lisp_Object num); +Lisp_Object Fgtr (Lisp_Object num1, Lisp_Object num2); +Lisp_Object Flss (Lisp_Object num1, Lisp_Object num2); +Lisp_Object Fleq (Lisp_Object num1, Lisp_Object num2); +Lisp_Object Fgeq (Lisp_Object num1, Lisp_Object num2); +Lisp_Object Fminus (int nargs, Lisp_Object *args); +Lisp_Object Fplus (int nargs, Lisp_Object *args); +Lisp_Object Fmin (int nargs, Lisp_Object *args); +Lisp_Object Fmax (int nargs, Lisp_Object *args); +Lisp_Object Ftimes (int nargs, Lisp_Object *args); +Lisp_Object Frem (Lisp_Object num1, Lisp_Object num2); + + +/* Defined in device.c */ +Lisp_Object Fmake_device (Lisp_Object type, Lisp_Object connection, + Lisp_Object params); +Lisp_Object Fselect_device (Lisp_Object device); +Lisp_Object Fset_device_selected_frame (Lisp_Object device, Lisp_Object frame); +Lisp_Object Fselected_device (Lisp_Object); +Lisp_Object Fdelete_device (Lisp_Object device, Lisp_Object force); +Lisp_Object Fdevice_console (Lisp_Object); +Lisp_Object Fdevice_name (Lisp_Object); +extern Lisp_Object Qgrayscale, Qmono; +extern Lisp_Object Qcreate_device_hook, Qdelete_device_hook; + +/* Defined in device-tty.c */ +extern Lisp_Object Qinit_post_tty_win; + +/* Defined in dialog.c */ +Lisp_Object Fpopup_dialog_box (Lisp_Object dbox_desc); + + +/* Defined in dired.c */ +Lisp_Object make_directory_hash_table (char *path); +Lisp_Object wasteful_word_to_lisp (unsigned int item); + + +/* Defined in doc.c */ +extern Lisp_Object Vdoc_file_name; +Lisp_Object Fsubstitute_command_keys (Lisp_Object string); +Lisp_Object Fdocumentation (Lisp_Object fun, Lisp_Object raw); +Lisp_Object Fdocumentation_property (Lisp_Object sym, Lisp_Object prop, + Lisp_Object raw); +Lisp_Object unparesseuxify_doc_string (int fd, EMACS_INT position, + char *name_nonreloc, + Lisp_Object name_reloc); +Lisp_Object read_doc_string (Lisp_Object filepos); + + +/* Defined in doprnt.c */ +Bytecount emacs_doprnt_c (Lisp_Object stream, + CONST Bufbyte *format_nonreloc, + Lisp_Object format_reloc, + Bytecount format_length, + ...); +Bytecount emacs_doprnt_va (Lisp_Object stream, + CONST Bufbyte *format_nonreloc, + Lisp_Object format_reloc, + Bytecount format_length, + va_list vargs); +Bytecount emacs_doprnt_lisp (Lisp_Object stream, + CONST Bufbyte *format_nonreloc, + Lisp_Object format_reloc, + Bytecount format_length, + int nargs, CONST Lisp_Object *largs); +Bytecount emacs_doprnt_lisp_2 (Lisp_Object stream, + CONST Bufbyte *format_nonreloc, + Lisp_Object format_reloc, + Bytecount format_length, + int nargs, ...); +Lisp_Object emacs_doprnt_string_c (CONST Bufbyte *format_nonreloc, + Lisp_Object format_reloc, + Bytecount format_length, + ...); +Lisp_Object emacs_doprnt_string_va (CONST Bufbyte *format_nonreloc, + Lisp_Object format_reloc, + Bytecount format_length, + va_list vargs); +Lisp_Object emacs_doprnt_string_lisp (CONST Bufbyte *format_nonreloc, + Lisp_Object format_reloc, + Bytecount format_length, + int nargs, + CONST Lisp_Object *largs); +Lisp_Object emacs_doprnt_string_lisp_2 (CONST Bufbyte *format_nonreloc, + Lisp_Object format_reloc, + Bytecount format_length, + int nargs, ...); + + +/* Defined in editfns.c */ +Bufpos bufpos_clip_to_bounds (Bufpos lower, Bufpos num, Bufpos upper); +Bytind bytind_clip_to_bounds (Bytind lower, Bytind num, Bytind upper); +Lisp_Object time_to_lisp (time_t the_time); +int lisp_to_time (Lisp_Object specified_time, time_t *result); +Lisp_Object Fwiden (Lisp_Object buffer); +Lisp_Object Fnarrow_to_region (Lisp_Object b, Lisp_Object e, + Lisp_Object buffer); +extern Lisp_Object Vprefix_arg, Vcurrent_prefix_arg; +extern Lisp_Object Qcurrent_prefix_arg; +Lisp_Object Fgoto_char (Lisp_Object pos, Lisp_Object buffer); +Lisp_Object Fpoint_min_marker (Lisp_Object buffer); +Lisp_Object Fpoint_max_marker (Lisp_Object buffer); +Lisp_Object Fpoint_min (Lisp_Object buffer); +Lisp_Object Fpoint_max (Lisp_Object buffer); +Lisp_Object Fpoint (Lisp_Object buffer); +Lisp_Object Fpoint_marker (Lisp_Object dont_copy_p, Lisp_Object buffer); +Lisp_Object Fmark_marker (Lisp_Object inactive_p, Lisp_Object buffer); +Lisp_Object Ffollowing_char (Lisp_Object buffer); +Lisp_Object Fpreceding_char (Lisp_Object buffer); +Lisp_Object Fchar_after (Lisp_Object pos, Lisp_Object buffer); +Lisp_Object Finsert (int nargs, Lisp_Object *args); +Lisp_Object Finsert_string (Lisp_Object string, Lisp_Object buffer); +Lisp_Object Finsert_char (Lisp_Object ch, Lisp_Object count, + Lisp_Object ignored, Lisp_Object buffer); +void buffer_insert1 (struct buffer *buf, Lisp_Object arg); +Lisp_Object Finsert_before_markers (int nargs, Lisp_Object *args); +Lisp_Object Finsert_buffer_substring (Lisp_Object buffer, + Lisp_Object b, Lisp_Object e); +Lisp_Object Fdelete_region (Lisp_Object b, Lisp_Object e, + Lisp_Object buffer); +Lisp_Object Feolp (Lisp_Object buffer); +Lisp_Object Feobp (Lisp_Object buffer); +Lisp_Object Fbolp (Lisp_Object buffer); +Lisp_Object Fbobp (Lisp_Object buffer); +Lisp_Object Fformat (int nargs, Lisp_Object *args); +Lisp_Object Fbuffer_substring (Lisp_Object start, Lisp_Object end, + Lisp_Object buffer); +Lisp_Object make_string_from_buffer (struct buffer *buf, + int pos, int length); +Lisp_Object save_excursion_save (void), save_restriction_save (void); +Lisp_Object save_excursion_restore (Lisp_Object info); +Lisp_Object save_restriction_restore (Lisp_Object info); +Lisp_Object Fchar_to_string (Lisp_Object ch); +Lisp_Object Fcurrent_time_seconds (Lisp_Object cons); +Lisp_Object Fgetenv (Lisp_Object var, Lisp_Object interactivep); +extern Lisp_Object Qpoint, Qmark, Qregion_beginning, Qregion_end; +extern Lisp_Object Qformat; + + +/* Defined in elhash.c */ +Lisp_Object Fhashtablep (Lisp_Object obj); +Lisp_Object Fmake_hashtable (Lisp_Object size, Lisp_Object test_fun); +Lisp_Object Fcopy_hashtable (Lisp_Object old_table); +Lisp_Object Fgethash (Lisp_Object key, Lisp_Object table, + Lisp_Object def); +Lisp_Object Fremhash (Lisp_Object key, Lisp_Object table); +Lisp_Object Fputhash (Lisp_Object key, Lisp_Object val, + Lisp_Object table); +Lisp_Object Fclrhash (Lisp_Object table); +Lisp_Object Fhashtable_fullness (Lisp_Object table); +Lisp_Object Fmaphash (Lisp_Object function, Lisp_Object table); + +extern Lisp_Object Vcharacter_set_property; + + +/* Defined in emacs.c */ +DECLARE_DOESNT_RETURN_GCC__ATTRIBUTE__SYNTAX_SUCKS (fatal (CONST char *fmt, + ...), + 1, 2); +int stderr_out (CONST char *fmt, ...) PRINTF_ARGS (1, 2); +int stdout_out (CONST char *fmt, ...) PRINTF_ARGS (1, 2); +SIGTYPE fatal_error_signal (int sig); +Lisp_Object make_arg_list (int argc, char **argv); +void make_argc_argv (Lisp_Object argv_list, int *argc, char ***argv); +void free_argc_argv (char **argv); +Lisp_Object decode_env_path (CONST char *evarname, CONST char *def); +/* Nonzero means don't do interactive redisplay and don't change tty modes */ +extern int noninteractive; +Lisp_Object Fkill_emacs (Lisp_Object arg); +extern int preparing_for_armageddon; + +extern Lisp_Object Vcommand_line_args; +extern Lisp_Object Vinvocation_name; +extern Lisp_Object Vinvocation_directory; + +extern int emacs_priority; +extern int running_asynch_code; +extern int suppress_early_backtrace; + +extern Lisp_Object Qsave_buffers_kill_emacs; +extern Lisp_Object Qkill_emacs_hook; + + +/* Defined in eval.c */ +extern Lisp_Object Qautoload, Qexit, Qinteractive, Qcommandp, Qdefun, Qmacro; +extern Lisp_Object Vinhibit_quit, Vquit_flag, Qinhibit_quit, Qrun_hooks; +extern Lisp_Object Vautoload_queue; +Lisp_Object Fuser_variable_p (Lisp_Object); +Lisp_Object Finteractive_p (void); +Lisp_Object Fsignal (Lisp_Object signame, Lisp_Object data); +DECLARE_DOESNT_RETURN (signal_error (Lisp_Object sig, Lisp_Object data)); +void maybe_signal_error (Lisp_Object sig, Lisp_Object data, Lisp_Object class, + Error_behavior errb); +Lisp_Object maybe_signal_continuable_error (Lisp_Object sig, Lisp_Object data, + Lisp_Object class, + Error_behavior errb); +DECLARE_DOESNT_RETURN_GCC__ATTRIBUTE__SYNTAX_SUCKS (error (CONST char *fmt, + ...), + 1, 2); +void maybe_error (Lisp_Object class, Error_behavior errb, + CONST char *fmt, ...) PRINTF_ARGS (3, 4); +Lisp_Object continuable_error (CONST char *fmt, ...) PRINTF_ARGS (1, 2); +Lisp_Object maybe_continuable_error (Lisp_Object class, Error_behavior errb, + CONST char *fmt, ...) PRINTF_ARGS (3, 4); +DECLARE_DOESNT_RETURN (signal_simple_error (CONST char *, Lisp_Object)); +void maybe_signal_simple_error (CONST char *, Lisp_Object, + Lisp_Object class, Error_behavior errb); +Lisp_Object signal_simple_continuable_error (CONST char *, + Lisp_Object); +Lisp_Object maybe_signal_simple_continuable_error (CONST char *reason, + Lisp_Object frob, + Lisp_Object class, + Error_behavior errb); +DECLARE_DOESNT_RETURN_GCC__ATTRIBUTE__SYNTAX_SUCKS (error_with_frob + (Lisp_Object frob, + CONST char *fmt, ...), + 2, 3); +void maybe_error_with_frob (Lisp_Object frob, Lisp_Object class, + Error_behavior errb, + CONST char *fmt, ...) PRINTF_ARGS (4, 5); +Lisp_Object continuable_error_with_frob (Lisp_Object frob, CONST char *fmt, + ...) PRINTF_ARGS (2, 3); +Lisp_Object maybe_continuable_error_with_frob (Lisp_Object frob, + Lisp_Object class, + Error_behavior errb, + CONST char *fmt, + ...) PRINTF_ARGS (4, 5); +DECLARE_DOESNT_RETURN (signal_simple_error_2 (CONST char *, + Lisp_Object, Lisp_Object)); +void maybe_signal_simple_error_2 (CONST char *reason, Lisp_Object frob0, + Lisp_Object frob1, Lisp_Object class, + Error_behavior errb); +Lisp_Object signal_simple_continuable_error_2 (CONST char *, + Lisp_Object, + Lisp_Object); +Lisp_Object maybe_signal_simple_continuable_error_2 (CONST char *reason, + Lisp_Object frob0, + Lisp_Object frob1, + Lisp_Object class, + Error_behavior errb); +Lisp_Object Fprogn (Lisp_Object args); +Lisp_Object Fcommandp (Lisp_Object obj); +Lisp_Object Feval (Lisp_Object form); +Lisp_Object Fapply (int nargs, Lisp_Object *args); +Lisp_Object funcall_recording_as (Lisp_Object recorded_as, int nargs, + Lisp_Object *args); +Lisp_Object Ffuncall (int nargs, Lisp_Object *args); +Lisp_Object Fbacktrace (Lisp_Object stream, Lisp_Object detailed); +Lisp_Object run_hook_with_args_in_buffer (struct buffer *buf, int nargs, + Lisp_Object *args, + enum run_hooks_condition cond); +Lisp_Object run_hook_with_args (int nargs, Lisp_Object *args, + enum run_hooks_condition cond); +void va_run_hook_with_args (Lisp_Object hook_var, int nargs, ...); +void va_run_hook_with_args_in_buffer (struct buffer *buf, Lisp_Object hook_var, + int nargs, ...); +Lisp_Object run_hook (Lisp_Object hook); +Lisp_Object apply1 (Lisp_Object fn, Lisp_Object args); +Lisp_Object call0 (Lisp_Object fn); +Lisp_Object call1 (Lisp_Object fn, Lisp_Object a0); +Lisp_Object call2 (Lisp_Object fn, Lisp_Object a0, Lisp_Object a1); +Lisp_Object call3 (Lisp_Object fn, + Lisp_Object a0, Lisp_Object a1, Lisp_Object a2); +Lisp_Object call4 (Lisp_Object fn, + Lisp_Object a0, Lisp_Object a1, Lisp_Object a2, + Lisp_Object a3); +Lisp_Object call5 (Lisp_Object fn, + Lisp_Object a0, Lisp_Object a1, Lisp_Object a2, + Lisp_Object a3, Lisp_Object a4); +Lisp_Object call6 (Lisp_Object fn, + Lisp_Object a0, Lisp_Object a1, Lisp_Object a2, + Lisp_Object a3, Lisp_Object a4, Lisp_Object a5); +Lisp_Object call7 (Lisp_Object fn, + Lisp_Object a0, Lisp_Object a1, Lisp_Object a2, + Lisp_Object a3, Lisp_Object a4, Lisp_Object a5, + Lisp_Object a6); +Lisp_Object call8 (Lisp_Object fn, + Lisp_Object a0, Lisp_Object a1, Lisp_Object a2, + Lisp_Object a3, Lisp_Object a4, Lisp_Object a5, + Lisp_Object a6, Lisp_Object a7); +Lisp_Object call0_in_buffer (struct buffer *buf, Lisp_Object fn); +Lisp_Object call1_in_buffer (struct buffer *buf, Lisp_Object fn, + Lisp_Object a0); +Lisp_Object call2_in_buffer (struct buffer *buf, Lisp_Object fn, + Lisp_Object a0, Lisp_Object a1); +Lisp_Object call3_in_buffer (struct buffer *buf, Lisp_Object fn, + Lisp_Object a0, Lisp_Object a1, + Lisp_Object a2); +Lisp_Object call4_in_buffer (struct buffer *buf, Lisp_Object fn, + Lisp_Object a0, Lisp_Object a1, + Lisp_Object a2, Lisp_Object a3); +Lisp_Object call5_in_buffer (struct buffer *buf, Lisp_Object fn, + Lisp_Object a0, Lisp_Object a1, + Lisp_Object a2, Lisp_Object a3, + Lisp_Object a4); +Lisp_Object call6_in_buffer (struct buffer *buf, Lisp_Object fn, + Lisp_Object a0, Lisp_Object a1, + Lisp_Object a2, Lisp_Object a3, + Lisp_Object a4, Lisp_Object a5); +Lisp_Object eval_in_buffer (struct buffer *buf, Lisp_Object form); +Lisp_Object call0_with_handler (Lisp_Object handler, Lisp_Object fn); +Lisp_Object call1_with_handler (Lisp_Object handler, Lisp_Object fn, + Lisp_Object a0); +Lisp_Object eval_in_buffer_trapping_errors (CONST char *warning_string, + struct buffer *buf, + Lisp_Object form); +Lisp_Object run_hook_trapping_errors (CONST char *warning_string, + Lisp_Object hook_symbol); +Lisp_Object safe_run_hook_trapping_errors (CONST char *warning_string, + Lisp_Object hook_symbol, + int allow_quit); +Lisp_Object call0_trapping_errors (CONST char *warning_string, + Lisp_Object function); +Lisp_Object call1_trapping_errors (CONST char *warning_string, + Lisp_Object function, + Lisp_Object object); +Lisp_Object call2_trapping_errors (CONST char *warning_string, + Lisp_Object function, + Lisp_Object object1, + Lisp_Object object2); +Lisp_Object call_with_suspended_errors (Lisp_Object (*fun)(), + Lisp_Object retval, + Lisp_Object class, + Error_behavior errb, + int nargs, ...); +/* C Code should be using internal_catch, record_unwind_p, condition_case_1 */ +/* Lisp_Object Fcatch (Lisp_Object args); */ +/* Lisp_Object Funwind_protect (Lisp_Object args); */ +/* Lisp_Object Fcondition_case (Lisp_Object args); */ +Lisp_Object Fthrow (Lisp_Object tag, Lisp_Object val); +Lisp_Object internal_catch (Lisp_Object tag, + Lisp_Object (*func) (Lisp_Object arg), + Lisp_Object arg, + int *threw); +Lisp_Object condition_case_1 (Lisp_Object handlers, + Lisp_Object (*bfun) (Lisp_Object barg), + Lisp_Object barg, + Lisp_Object (*hfun) (Lisp_Object val, + Lisp_Object harg), + Lisp_Object harg); +Lisp_Object Fcondition_case_3 (Lisp_Object bodyform, + Lisp_Object var, + Lisp_Object handlers); +Lisp_Object unbind_to (int n, Lisp_Object val); +void specbind (Lisp_Object symbol, Lisp_Object value); +void record_unwind_protect (Lisp_Object (*function) (Lisp_Object arg), + Lisp_Object arg); +void do_autoload (Lisp_Object fundef, Lisp_Object funname); +Lisp_Object un_autoload (Lisp_Object oldqueue); +void warn_when_safe_lispobj (Lisp_Object class, Lisp_Object level, + Lisp_Object obj); +void warn_when_safe (Lisp_Object class, Lisp_Object level, + CONST char *fmt, ...) PRINTF_ARGS (3, 4); +Lisp_Object Fcommand_execute (Lisp_Object cmd, Lisp_Object record, + Lisp_Object keys); +Lisp_Object Ffetch_bytecode (Lisp_Object object); + + +/* Defined in event-stream.c */ +Lisp_Object Fread_key_sequence (Lisp_Object prompt, Lisp_Object continue_echo, + Lisp_Object dont_downcase_last); +Lisp_Object Fsit_for (Lisp_Object seconds, Lisp_Object nodisp); +Lisp_Object Fsleep_for (Lisp_Object seconds); +Lisp_Object Faccept_process_output (Lisp_Object process, + Lisp_Object timeout_secs, + Lisp_Object timeout_msecs); +Lisp_Object Fnext_event (Lisp_Object event, Lisp_Object prompt); +Lisp_Object Fnext_command_event (Lisp_Object event, Lisp_Object prompt); +Lisp_Object Fdispatch_event (Lisp_Object event); +void wait_delaying_user_input (int (*predicate) (void *arg), + void *predicate_arg); +int detect_input_pending (void); +void enqueue_command_event (Lisp_Object event); +Lisp_Object dequeue_command_event (void); +Lisp_Object Fadd_timeout (Lisp_Object secs, + Lisp_Object function, Lisp_Object object, + Lisp_Object resignal); +Lisp_Object Fdisable_timeout (Lisp_Object id); +void reset_this_command_keys (Lisp_Object console, int clear_echo_area_p); +Lisp_Object Fenqueue_eval_event (Lisp_Object function, + Lisp_Object object); +Lisp_Object enqueue_misc_user_event (Lisp_Object channel, + Lisp_Object function, + Lisp_Object object); +extern Lisp_Object Qpre_command_hook, Qpost_command_hook; +Lisp_Object Fdiscard_input (void), Finput_pending_p (void); + + +/* Defined in event-Xt.c */ +void signal_special_Xt_user_event (Lisp_Object channel, + Lisp_Object function, + Lisp_Object object); + + +/* Defined in events.c */ +void clear_event_resource (void); +Lisp_Object Fmake_event (void); +Lisp_Object Fdeallocate_event (Lisp_Object event); +Lisp_Object Fcopy_event (Lisp_Object from, Lisp_Object to); +Lisp_Object allocate_event (void); +int event_to_character (struct Lisp_Event *event, + int allow_extra_modifiers, + int allow_meta, + int allow_non_ascii); +Lisp_Object Fcharacter_to_event (Lisp_Object ch, Lisp_Object event, + Lisp_Object console, + Lisp_Object use_console_meta_flag); +Lisp_Object Fevent_to_character (Lisp_Object e, + Lisp_Object allow_extra_modifiers, + Lisp_Object allow_meta, + Lisp_Object allow_non_ascii); +Lisp_Object Fevent_over_text_area_p (Lisp_Object event); +Lisp_Object Fevent_over_modeline_p (Lisp_Object event); +Lisp_Object Fevent_over_border_p (Lisp_Object event); +Lisp_Object Fevent_over_toolbar_p (Lisp_Object event); +Lisp_Object Fevent_window (Lisp_Object event); +Lisp_Object Fevent_buffer (Lisp_Object event); +Lisp_Object Fevent_button (Lisp_Object event); +Lisp_Object Fevent_function (Lisp_Object event); +Lisp_Object Fevent_glyph_extent (Lisp_Object event); +Lisp_Object Fevent_modeline_position (Lisp_Object event); +Lisp_Object Fevent_key (Lisp_Object event); +Lisp_Object Fevent_modifiers (Lisp_Object event); +Lisp_Object Fevent_modifier_bits (Lisp_Object event); +Lisp_Object Fevent_object (Lisp_Object event); +Lisp_Object Fevent_point (Lisp_Object event); +Lisp_Object Fevent_process (Lisp_Object event); +Lisp_Object Fevent_timestamp (Lisp_Object event); +Lisp_Object Fevent_x (Lisp_Object event); +Lisp_Object Fevent_y (Lisp_Object event); +Lisp_Object Fevent_x_pixel (Lisp_Object event); +Lisp_Object Fevent_y_pixel (Lisp_Object event); + +extern Lisp_Object QKbackspace, QKtab, QKlinefeed, QKreturn; +extern Lisp_Object QKescape, QKspace, QKdelete, QKnosymbol; + + +/* Defined in extents.c */ +Lisp_Object Fextentp (Lisp_Object obj); +Lisp_Object Fextent_object (Lisp_Object ext); +Lisp_Object Fextent_start_position (Lisp_Object ext); +Lisp_Object Fextent_end_position (Lisp_Object ext); +Lisp_Object Fextent_length (Lisp_Object ext); +Lisp_Object Fmake_extent (Lisp_Object from, Lisp_Object to, + Lisp_Object buffer); +Lisp_Object Fset_extent_endpoints (Lisp_Object, Lisp_Object, + Lisp_Object, Lisp_Object); +Lisp_Object Fdelete_extent (Lisp_Object extent); +Lisp_Object Fdetach_extent (Lisp_Object); +Lisp_Object Fmap_extents (Lisp_Object function, + Lisp_Object buffer, + Lisp_Object from, Lisp_Object to, + Lisp_Object maparg, + Lisp_Object flags, + Lisp_Object property, + Lisp_Object value); +Lisp_Object Fextent_at (Lisp_Object pos, Lisp_Object buffer, + Lisp_Object flag, Lisp_Object before, + Lisp_Object at_flag); +Lisp_Object Fextent_face (Lisp_Object); +Lisp_Object Fset_extent_face (Lisp_Object, Lisp_Object); +Lisp_Object Fset_extent_begin_glyph (Lisp_Object extent, + Lisp_Object begin_glyph, + Lisp_Object layout); +Lisp_Object Fset_extent_end_glyph (Lisp_Object extent_obj, + Lisp_Object glyph, + Lisp_Object layout); +Lisp_Object Fset_extent_begin_glyph_layout (Lisp_Object extent, + Lisp_Object layout); +Lisp_Object Fset_extent_end_glyph_layout (Lisp_Object extent, + Lisp_Object layout); +Lisp_Object Fextent_begin_glyph_layout (Lisp_Object extent); +Lisp_Object Fextent_end_glyph_layout (Lisp_Object extent); +Lisp_Object Fset_extent_priority (Lisp_Object extent, Lisp_Object pri); +Lisp_Object Fset_extent_property (Lisp_Object,Lisp_Object,Lisp_Object); +Lisp_Object Fextent_property (Lisp_Object extent, Lisp_Object, + Lisp_Object defalt); +Lisp_Object Fextent_properties (Lisp_Object extent); +Lisp_Object Fforce_highlight_extent (Lisp_Object extent, + Lisp_Object flag); +Lisp_Object Fhighlight_extent (Lisp_Object extent, Lisp_Object flag); +Lisp_Object Fset_extent_parent (Lisp_Object, Lisp_Object); + +Lisp_Object Fnext_single_property_change (Lisp_Object pos, + Lisp_Object prop, + Lisp_Object buffer, + Lisp_Object limit); +Lisp_Object Fprevious_single_property_change (Lisp_Object pos, + Lisp_Object prop, + Lisp_Object buffer, + Lisp_Object limit); +Lisp_Object Fput_text_property (Lisp_Object start, + Lisp_Object end, + Lisp_Object prop, + Lisp_Object value, + Lisp_Object object); +extern Lisp_Object Qdetached, Qdestroyed, Qbegin_glyph, Qend_glyph; +extern Lisp_Object Qstart_open, Qend_open, Qread_only; +extern Lisp_Object Qunique, Qduplicable; +extern Lisp_Object Qoutside_margin, Qinside_margin, Qwhitespace; +extern Lisp_Object Qglyph_invisible; + + +/* Defined in faces.c */ +extern Lisp_Object Vbuilt_in_face_specifiers; +Lisp_Object Fface_name (Lisp_Object); + + +/* Defined in fileio.c */ +extern Lisp_Object Qfile_name_handler_alist; +extern Lisp_Object Qfile_error; +Lisp_Object Ffile_name_as_directory (Lisp_Object fn); +Lisp_Object Fexpand_file_name (Lisp_Object fn, Lisp_Object def); +Lisp_Object Ffile_name_nondirectory (Lisp_Object fn); +Lisp_Object Fsubstitute_in_file_name (Lisp_Object fn); +Lisp_Object Ffile_symlink_p (Lisp_Object fn); +Lisp_Object Ffile_truename (Lisp_Object name, Lisp_Object def); +Lisp_Object Ffile_name_nondirectory (Lisp_Object fn); +Lisp_Object Ffile_name_directory (Lisp_Object fn); +Lisp_Object Fdirectory_file_name (Lisp_Object fn); +Lisp_Object Ffile_directory_p (Lisp_Object fn); +Lisp_Object Ffile_readable_p (Lisp_Object fn); +Lisp_Object Ffile_name_absolute_p (Lisp_Object fn); +Lisp_Object Ffile_exists_p (Lisp_Object fn); +Lisp_Object Ffile_executable_p (Lisp_Object filename); +Lisp_Object Ffile_accessible_directory_p (Lisp_Object fn); +void record_auto_save (void); +void force_auto_save_soon (void); +Lisp_Object Ffind_file_name_handler (Lisp_Object filename, + Lisp_Object operation); +DECLARE_DOESNT_RETURN (report_file_error (CONST char *string, + Lisp_Object data)); +void maybe_report_file_error (CONST char *string, Lisp_Object data, + Lisp_Object class, Error_behavior errb); +DECLARE_DOESNT_RETURN (signal_file_error (CONST char *string, + Lisp_Object data)); +void maybe_signal_file_error (CONST char *string, Lisp_Object data, + Lisp_Object class, Error_behavior errb); +DECLARE_DOESNT_RETURN (signal_double_file_error (CONST char *string1, + CONST char *string2, + Lisp_Object data)); +void maybe_signal_double_file_error (CONST char *string1, CONST char *string2, + Lisp_Object data, Lisp_Object class, + Error_behavior errb); +DECLARE_DOESNT_RETURN (signal_double_file_error_2 (CONST char *string1, + CONST char *string2, + Lisp_Object data1, + Lisp_Object data2)); +void maybe_signal_double_file_error_2 (CONST char *string1, + CONST char *string2, Lisp_Object data1, + Lisp_Object data2, Lisp_Object class, + Error_behavior errb); +Lisp_Object expand_and_dir_to_file (Lisp_Object fn, Lisp_Object def); +Lisp_Object Finsert_file_contents_internal (Lisp_Object filename, + Lisp_Object visit, + Lisp_Object beg, + Lisp_Object end, + Lisp_Object replace); +Lisp_Object Fdo_auto_save (Lisp_Object nomsg, Lisp_Object current_only); +Lisp_Object Fverify_visited_file_modtime (Lisp_Object buffer); +Lisp_Object Funhandled_file_name_directory (Lisp_Object filename); +Lisp_Object Fset_buffer_modtime (Lisp_Object buf, Lisp_Object in_time); +int read_allowing_quit (int fildes, void *buf, unsigned int nbyte); +int write_allowing_quit (int fildes, CONST void *buf, + unsigned int nbyte); +int internal_delete_file (Lisp_Object filename); + + +/* Defined in filelock.c */ +void lock_file (Lisp_Object fn); +void unlock_file (Lisp_Object fn); +void unlock_all_files (void); +Lisp_Object Flock_buffer (Lisp_Object fn); +Lisp_Object Funlock_buffer (void); +void unlock_buffer (struct buffer *buffer); +Lisp_Object Ffile_locked_p (Lisp_Object fn); + + +/* Defined in filemode.c */ +void filemodestring (struct stat *statp, char *str); + + +/* Defined in floatfns.c */ +double extract_float (Lisp_Object); +Lisp_Object Ffloat (Lisp_Object n); + + +/* Defined in fns.c */ +Lisp_Object list_sort (Lisp_Object list, + Lisp_Object lisp_arg, + int (*pred_fn) (Lisp_Object first, + Lisp_Object second, + Lisp_Object lisp_arg)); +Lisp_Object Fsort (Lisp_Object list, + Lisp_Object pred); +Lisp_Object merge (Lisp_Object org_l1, Lisp_Object org_l2, + Lisp_Object pred); + +extern Lisp_Object Qstring_lessp, Qidentity, Qyes_or_no_p; +extern Lisp_Object Vfeatures; +Lisp_Object Fidentity (Lisp_Object x); +Lisp_Object Frandom (Lisp_Object arg); +Lisp_Object Flength (Lisp_Object seq); +Lisp_Object Fstring_equal (Lisp_Object s1, Lisp_Object s2); +Lisp_Object Fstring_lessp (Lisp_Object s1, Lisp_Object s2); +Lisp_Object string_getprop (struct Lisp_String *s, + Lisp_Object property, + Lisp_Object defalt); +void string_putprop (struct Lisp_String *s, Lisp_Object property, + Lisp_Object value); +void bump_string_modiff (Lisp_Object str); +Lisp_Object Fappend (int nargs, Lisp_Object *args); +Lisp_Object Fconcat (int nargs, Lisp_Object *args); +Lisp_Object Fvconcat (int nargs, Lisp_Object *args); +Lisp_Object Fcopy_sequence (Lisp_Object seq); +Lisp_Object Fsubstring (Lisp_Object str, Lisp_Object s, Lisp_Object e); +Lisp_Object Fnthcdr (Lisp_Object n, Lisp_Object list); +Lisp_Object Fnth (Lisp_Object n, Lisp_Object list); +Lisp_Object Fmember (Lisp_Object elt, Lisp_Object list); +Lisp_Object Fmemq (Lisp_Object elt, Lisp_Object list); +Lisp_Object memq_no_quit (Lisp_Object elt, Lisp_Object list); +Lisp_Object Fassoc (Lisp_Object elt, Lisp_Object list); +Lisp_Object assoc_no_quit (Lisp_Object key, Lisp_Object alist); +Lisp_Object Fassq (Lisp_Object key, Lisp_Object alist); +Lisp_Object assq_no_quit (Lisp_Object key, Lisp_Object alist); +Lisp_Object Frassoc (Lisp_Object key, Lisp_Object alist); +Lisp_Object Frassq (Lisp_Object key, Lisp_Object alist); +Lisp_Object rassq_no_quit (Lisp_Object key, Lisp_Object alist); +Lisp_Object Fdelete (Lisp_Object elt, Lisp_Object list); +Lisp_Object Fdelq (Lisp_Object elt, Lisp_Object list); +Lisp_Object delq_no_quit (Lisp_Object elt, Lisp_Object list); +Lisp_Object delq_no_quit_and_free_cons (Lisp_Object elt, Lisp_Object list); +Lisp_Object Fremassoc (Lisp_Object elt, Lisp_Object list); +Lisp_Object remassoc_no_quit (Lisp_Object key, Lisp_Object list); +Lisp_Object Fremassq (Lisp_Object key, Lisp_Object alist); +Lisp_Object remassq_no_quit (Lisp_Object key, Lisp_Object alist); +Lisp_Object Fremrassoc (Lisp_Object key, Lisp_Object alist); +Lisp_Object Fremrassq (Lisp_Object key, Lisp_Object alist); +Lisp_Object remrassq_no_quit (Lisp_Object key, Lisp_Object alist); +Lisp_Object Freverse (Lisp_Object list), Fnreverse (Lisp_Object list); +Lisp_Object Fget (Lisp_Object sym, Lisp_Object prop, Lisp_Object def); +Lisp_Object Fput (Lisp_Object sym, Lisp_Object prop, Lisp_Object val); + +void pure_put (Lisp_Object sym, Lisp_Object prop, Lisp_Object val); +Lisp_Object Fremprop (Lisp_Object sym, Lisp_Object prop); +int plists_differ (Lisp_Object a, Lisp_Object b, int nil_means_not_present, + int laxp, int depth); +Lisp_Object internal_plist_get (Lisp_Object plist, Lisp_Object property); +void internal_plist_put (Lisp_Object *plist, Lisp_Object property, + Lisp_Object value); +int internal_remprop (Lisp_Object *plist, Lisp_Object property); +Lisp_Object external_plist_get (Lisp_Object *plist, Lisp_Object property, + int laxp, Error_behavior errb); +void external_plist_put (Lisp_Object *plist, Lisp_Object property, + Lisp_Object value, int laxp, Error_behavior errb); +int external_remprop (Lisp_Object *plist, Lisp_Object property, + int laxp, Error_behavior errb); +Lisp_Object Fequal (Lisp_Object one, Lisp_Object two); +int internal_equal (Lisp_Object, Lisp_Object, int depth); +Lisp_Object Ffillarray (Lisp_Object array, Lisp_Object init); +Lisp_Object Fnconc (int nargs, Lisp_Object *args); +Lisp_Object Fmapcar (Lisp_Object fn, Lisp_Object seq); +Lisp_Object Ffeaturep (Lisp_Object name); +Lisp_Object Frequire (Lisp_Object name, Lisp_Object filename); +Lisp_Object Fprovide (Lisp_Object name); +Lisp_Object concat2 (Lisp_Object s1, Lisp_Object s2); +Lisp_Object concat3 (Lisp_Object s1, Lisp_Object s2, Lisp_Object s3); +Lisp_Object vconcat2 (Lisp_Object s1, Lisp_Object s2); +Lisp_Object vconcat3 (Lisp_Object s1, Lisp_Object s2, Lisp_Object s3); +Lisp_Object nconc2 (Lisp_Object l1, Lisp_Object l2); +Lisp_Object Fcopy_alist (Lisp_Object alist); +Lisp_Object Fcopy_tree (Lisp_Object arg, Lisp_Object vecp); +Lisp_Object Fplist_put (Lisp_Object plist, Lisp_Object prop, Lisp_Object val); +Lisp_Object Fplist_get (Lisp_Object plist, Lisp_Object prop, + Lisp_Object defalt); +Lisp_Object Fcanonicalize_plist (Lisp_Object plist, + Lisp_Object infected_with_hemorrhagic_fever); +Lisp_Object Flax_plist_put (Lisp_Object plist, Lisp_Object prop, + Lisp_Object val); +Lisp_Object Flax_plist_get (Lisp_Object plist, Lisp_Object prop, + Lisp_Object defalt); +Lisp_Object Flax_plist_remprop (Lisp_Object plist, Lisp_Object prop); +Lisp_Object Fcanonicalize_lax_plist (Lisp_Object plist, + Lisp_Object + infected_with_hemorrhagic_fever); +Lisp_Object Fdestructive_alist_to_plist (Lisp_Object alist); +Lisp_Object Fcheck_valid_plist (Lisp_Object); +Lisp_Object Fvalid_plist_p (Lisp_Object); +void check_losing_bytecode (CONST char *function, Lisp_Object seq); + + +/* Defined in font-lock.c */ +extern Lisp_Object Qcomment, Qblock_comment; +extern Lisp_Object Qbeginning_of_defun, Qend_of_defun; + + +/* Defined in frame.c */ +Lisp_Object Fframep (Lisp_Object obj); +Lisp_Object Fframe_live_p (Lisp_Object obj); +Lisp_Object Fselect_frame (Lisp_Object scr); +Lisp_Object Fselected_frame (Lisp_Object device); +Lisp_Object Fmake_frame (Lisp_Object props, Lisp_Object device); +Lisp_Object Fwindow_frame (Lisp_Object window); +Lisp_Object Fframe_root_window (Lisp_Object frame); +Lisp_Object Fframe_selected_window (Lisp_Object frame); +Lisp_Object Fframe_list (Lisp_Object device); +Lisp_Object Fframe_name (Lisp_Object frame); +Lisp_Object Fnext_frame (Lisp_Object frame, Lisp_Object miniframe, + Lisp_Object device); +Lisp_Object Fmouse_position (Lisp_Object device); +Lisp_Object Fmouse_pixel_position (Lisp_Object device); +Lisp_Object Fset_mouse_position (Lisp_Object window, + Lisp_Object x, Lisp_Object y); +Lisp_Object Fset_mouse_pixel_position (Lisp_Object window, + Lisp_Object x, Lisp_Object y); +Lisp_Object Fmake_frame_visible (Lisp_Object frame); +Lisp_Object Fmake_frame_invisible (Lisp_Object frame, + Lisp_Object ignored); +Lisp_Object Ficonify_frame (Lisp_Object frame); +Lisp_Object Fdeiconify_frame (Lisp_Object frame); +Lisp_Object Fframe_visible_p (Lisp_Object frame); +Lisp_Object Fframe_iconified_p (Lisp_Object frame); +Lisp_Object Fvisible_frame_list (Lisp_Object device); +Lisp_Object Fset_frame_height (Lisp_Object frame, + Lisp_Object rows, Lisp_Object pretend); +Lisp_Object Fset_frame_width (Lisp_Object frame, + Lisp_Object cols, Lisp_Object pretend); +Lisp_Object Fset_frame_size (Lisp_Object frame, + Lisp_Object cols, Lisp_Object rows, + Lisp_Object pretend); +Lisp_Object Fset_frame_position (Lisp_Object frame, + Lisp_Object xoffset, + Lisp_Object yoffset); +Lisp_Object Fdelete_frame (Lisp_Object frame, Lisp_Object force); +Lisp_Object Fset_frame_properties (Lisp_Object frame, Lisp_Object plist); +Lisp_Object Fframe_property (Lisp_Object frame, Lisp_Object property, + Lisp_Object defalt); +Lisp_Object Fset_frame_pointer (Lisp_Object frame, Lisp_Object pointer); + +extern Lisp_Object Vcreate_frame_hook, Qcreate_frame_hook; +extern Lisp_Object Vmouse_enter_frame_hook, Qmouse_enter_frame_hook; +extern Lisp_Object Vmouse_leave_frame_hook, Qmouse_leave_frame_hook; +extern Lisp_Object Vmap_frame_hook, Qmap_frame_hook; +extern Lisp_Object Vunmap_frame_hook, Qunmap_frame_hook; +extern Lisp_Object Vmouse_motion_handler; +extern Lisp_Object Vsynchronize_minibuffers; + +extern Lisp_Object Qdrag_and_drop_functions; + +extern Lisp_Object Qframep, Qframe_live_p, Qdelete_frame; +extern Lisp_Object Qselect_frame_hook, Qdeselect_frame_hook; +extern Lisp_Object Qsynchronize_minibuffers; +extern Lisp_Object Qbuffer_predicate; + +extern Lisp_Object Qminibuffer; +extern Lisp_Object Qunsplittable; +extern Lisp_Object Qinternal_border_width; +extern Lisp_Object Qtop_toolbar_shadow_color; +extern Lisp_Object Qbottom_toolbar_shadow_color; +extern Lisp_Object Qbackground_toolbar_color; +extern Lisp_Object Qtop_toolbar_shadow_pixmap; +extern Lisp_Object Qbottom_toolbar_shadow_pixmap; +extern Lisp_Object Qtoolbar_shadow_thickness; +extern Lisp_Object Qscrollbar_placement; +extern Lisp_Object Qinter_line_space; +extern Lisp_Object Qvisual_bell; +extern Lisp_Object Qbell_volume; +extern Lisp_Object Qpointer_background; +extern Lisp_Object Qpointer_color; +extern Lisp_Object Qtext_pointer; +extern Lisp_Object Qspace_pointer; +extern Lisp_Object Qmodeline_pointer; +extern Lisp_Object Qgc_pointer; +extern Lisp_Object Qinitially_unmapped; +extern Lisp_Object Quse_backing_store; +extern Lisp_Object Qborder_color; +extern Lisp_Object Qborder_width; + +extern Lisp_Object Qvisible, Qiconic, Qinvisible, Qvisible_iconic; +extern Lisp_Object Qinvisible_iconic; +extern Lisp_Object Qnomini, Qvisible_nomini, Qiconic_nomini, Qinvisible_nomini; +extern Lisp_Object Qvisible_iconic_nomini, Qinvisible_iconic_nomini; + + + +/* Defined in frame-x.c */ +Lisp_Object Fx_window_id (Lisp_Object frame); +extern Lisp_Object Qpopup; + + +/* Defined in general.c */ +extern Lisp_Object Qactually_requested; +extern Lisp_Object Qafter; +extern Lisp_Object Qall; +extern Lisp_Object Qassoc; +extern Lisp_Object Qat; +extern Lisp_Object Qautodetect; +extern Lisp_Object Qbad_variable; +extern Lisp_Object Qbefore; +extern Lisp_Object Qbinary; +extern Lisp_Object Qblack; +extern Lisp_Object Qboolean; +extern Lisp_Object Qbottom; +extern Lisp_Object Qbuffer; +extern Lisp_Object Qbutton; +extern Lisp_Object Qcategory; +extern Lisp_Object Qcase; +extern Lisp_Object Qchannel; +extern Lisp_Object Qchar; +extern Lisp_Object Qcharacter; +extern Lisp_Object Qchars; +extern Lisp_Object Qcolor; +extern Lisp_Object Qcolumns; +extern Lisp_Object Qcommand; +extern Lisp_Object Qconsole; +extern Lisp_Object Qcritical; +extern Lisp_Object Qdata; +extern Lisp_Object Qdead; +extern Lisp_Object Qdelete; +extern Lisp_Object Qdelq; +extern Lisp_Object Qdefault; +extern Lisp_Object Qdevice; +extern Lisp_Object Qdimension; +extern Lisp_Object Qdisplay; +extern Lisp_Object Qdoc_string; +extern Lisp_Object Qdynarr_overhead; +extern Lisp_Object Qeq; +extern Lisp_Object Qequal; +extern Lisp_Object Qeql; +extern Lisp_Object Qeval; +extern Lisp_Object Qextents; +extern Lisp_Object Qface; +extern Lisp_Object Qfont; +extern Lisp_Object Qframe; +extern Lisp_Object Qfunction; +extern Lisp_Object Qgap_overhead; +extern Lisp_Object Qgeneric; +extern Lisp_Object Qgeometry; +extern Lisp_Object Qglobal; +extern Lisp_Object Qheight; +extern Lisp_Object Qhighlight; +extern Lisp_Object Qid; +extern Lisp_Object Qimage; +extern Lisp_Object Qinfo; +extern Lisp_Object Qinherit; +extern Lisp_Object Qinteger; +extern Lisp_Object Qinternal; +extern Lisp_Object Qkey; +extern Lisp_Object Qkey_assoc; +extern Lisp_Object Qkeyboard; +extern Lisp_Object Qkeymap; +extern Lisp_Object Qleft; +extern Lisp_Object Qlist; +extern Lisp_Object Qmagic; +extern Lisp_Object Qmalloc_overhead; +extern Lisp_Object Qmarkers; +extern Lisp_Object Qmax; +extern Lisp_Object Qmemory; +extern Lisp_Object Qmenubar; +extern Lisp_Object Qmessage; +extern Lisp_Object Qminus; +extern Lisp_Object Qmodifiers; +extern Lisp_Object Qmotion; +extern Lisp_Object Qname; +extern Lisp_Object Qnone; +extern Lisp_Object Qnothing; +extern Lisp_Object Qnotice; +extern Lisp_Object Qobject; +extern Lisp_Object Qonly; +extern Lisp_Object Qother; +extern Lisp_Object Qpath; +extern Lisp_Object Qpointer; +extern Lisp_Object Qprint; +extern Lisp_Object Qprocess; +extern Lisp_Object Qprovide; +extern Lisp_Object Qrassoc; +extern Lisp_Object Qrassq; +extern Lisp_Object Qrequire; +extern Lisp_Object Qresource; +extern Lisp_Object Qreturn; +extern Lisp_Object Qreverse; +extern Lisp_Object Qright; +extern Lisp_Object Qsearch; +extern Lisp_Object Qsimple; +extern Lisp_Object Qspace; +extern Lisp_Object Qspecifier; +extern Lisp_Object Qstream; +extern Lisp_Object Qstring; +extern Lisp_Object Qsymbol; +extern Lisp_Object Qsyntax; +extern Lisp_Object Qtext; +extern Lisp_Object Qtimeout; +extern Lisp_Object Qtimestamp; +extern Lisp_Object Qtoolbar; +extern Lisp_Object Qtop; +extern Lisp_Object Qtty; +extern Lisp_Object Qtype; +extern Lisp_Object Qundefined; +extern Lisp_Object Qunimplemented; +extern Lisp_Object Qvalue_assoc; +extern Lisp_Object Qvector; +extern Lisp_Object Qwarning; +extern Lisp_Object Qwhite; +extern Lisp_Object Qwidth; +extern Lisp_Object Qwindow; +extern Lisp_Object Qwindow_system; +extern Lisp_Object Qx; +extern Lisp_Object Qy; + + +/* Defined in getloadavg.c */ +int getloadavg (double loadavg[], int nelem); + + +/* Defined in glyphs.c */ +Lisp_Object Fmake_glyph_internal (Lisp_Object type); +Lisp_Object Fmake_image_instance (Lisp_Object data, + Lisp_Object device, + Lisp_Object force_mono, + Lisp_Object no_error); +Lisp_Object Fimage_instance_p (Lisp_Object obj); +Lisp_Object Fimage_instance_type (Lisp_Object image_instance); +Lisp_Object Fglyph_type (Lisp_Object glyph); +extern Lisp_Object Qnothing, Qmono_pixmap, Qcolor_pixmap; +extern Lisp_Object Qsubwindow; +extern Lisp_Object Qformatted_string; +extern Lisp_Object Qicon; +extern Lisp_Object Qconst_glyph_variable; +Error_behavior decode_error_behavior_flag (Lisp_Object no_error); +Lisp_Object encode_error_behavior_flag (Error_behavior errb); + + +/* Defined in glyphs-x.c */ +Lisp_Object Fcolorize_image_instance (Lisp_Object, Lisp_Object, + Lisp_Object); + + +/* Defined in indent.c */ +Lisp_Object Fvertical_motion (Lisp_Object lines, Lisp_Object window); +Lisp_Object Findent_to (Lisp_Object col, Lisp_Object mincol, + Lisp_Object buffer); +Lisp_Object Fcurrent_column (Lisp_Object buffer); +int bi_spaces_at_point (struct buffer *b, Bytind pos); +int column_at_point (struct buffer *buf, Bufpos pos, int cur_col); +int current_column (struct buffer *buf); +void invalidate_current_column (void); +Bufpos vmotion (struct window *w, Bufpos orig, int vtarget, + int *ret_vpos); + + +/* Defined in intl.c */ +Lisp_Object Fignore_defer_gettext (Lisp_Object obj); +Lisp_Object Fgettext (Lisp_Object string); +Lisp_Object Fdgettext (Lisp_Object domain, Lisp_Object string); +extern Lisp_Object Qdefer_gettext; +#ifdef I18N3 +extern Lisp_Object Vfile_domain; +#endif + + +/* Defined in keymap.c */ +Lisp_Object Fcurrent_local_map (Lisp_Object buffer); +Lisp_Object Fkeymapp (Lisp_Object); +Lisp_Object Fmake_sparse_keymap (Lisp_Object); +Lisp_Object Fkeymap_fullness (Lisp_Object keymap); +Lisp_Object Fkey_description (Lisp_Object key); +Lisp_Object Fsingle_key_description (Lisp_Object key); +Lisp_Object Ftext_char_description (Lisp_Object c); +Lisp_Object Fdefine_key (Lisp_Object keymap, Lisp_Object key, + Lisp_Object definition); +extern Lisp_Object Qmodeline_map; +extern Lisp_Object Vsingle_space_string; +extern Lisp_Object Qcontrol, Qctrl, Qmeta, Qsuper, Qhyper, Qalt, Qshift; +extern Lisp_Object Qkeymap, Qkeymapp; +void where_is_to_char (Lisp_Object definition, char *buffer); + + +/* Defined in lread.c */ +extern Lisp_Object Qvariable_documentation, Qstandard_input, Qread_char; +extern Lisp_Object Qvariable_domain; /* I18N3 */ +extern Lisp_Object Qload; +extern Lisp_Object Vstandard_input; +extern Lisp_Object Vvalues; +extern Lisp_Object Vcurrent_compiled_function_annotation; +extern Lisp_Object Vload_file_name_internal; +extern Lisp_Object Vload_file_name_internal_the_purecopy; +Lisp_Object Fread (Lisp_Object readcharfun); +Lisp_Object Fread_from_string (Lisp_Object string, + Lisp_Object start, Lisp_Object end); +Lisp_Object Fload_internal (Lisp_Object filename, + Lisp_Object missing_ok, + Lisp_Object nomessage, + Lisp_Object nosuffix); +void close_load_descs (void); +int locate_file (Lisp_Object path, + Lisp_Object str, CONST char *suffix, + Lisp_Object *storeptr, int mode); +Lisp_Object Flocate_file_clear_hashing (Lisp_Object path); +int isfloat_string (CONST char *); + +/* Well, I've decided to enable this. -- ben */ +#define LOADHIST + +#ifdef LOADHIST /* this is just a stupid idea */ +#define LOADHIST_ATTACH(x) \ + do { if (initialized) Vcurrent_load_list = Fcons (x, Vcurrent_load_list); } \ + while (0) +extern Lisp_Object Vcurrent_load_list; +extern Lisp_Object Vload_history; +#else /*! LOADHIST */ +# define LOADHIST_ATTACH(x) +#endif /*! LOADHIST */ + + +/* Defined in macros.c */ +Lisp_Object Fexecute_kbd_macro (Lisp_Object macro, + Lisp_Object prefixarg); + + +/* Defined in marker.c */ +Bytind bi_marker_position (Lisp_Object marker); +Bufpos marker_position (Lisp_Object marker); +void set_bi_marker_position (Lisp_Object marker, Bytind pos); +void set_marker_position (Lisp_Object marker, Bufpos pos); +void unchain_marker (Lisp_Object marker); +Lisp_Object Fset_marker (Lisp_Object marker, + Lisp_Object pos, Lisp_Object buffer); +Lisp_Object Fmarker_position (Lisp_Object m); +Lisp_Object Fmarker_buffer (Lisp_Object m); +Lisp_Object Fcopy_marker (Lisp_Object m, Lisp_Object type); +Lisp_Object noseeum_copy_marker (Lisp_Object m, Lisp_Object type); +Lisp_Object set_marker_restricted (Lisp_Object marker, + Lisp_Object pos, Lisp_Object buf); +#ifdef MEMORY_USAGE_STATS +int compute_buffer_marker_usage (struct buffer *b, + struct overhead_stats *ovstats); +#endif + + +/* Defined in menubar.c */ +Lisp_Object Fpopup_menu (Lisp_Object menu_desc, Lisp_Object event); +extern Lisp_Object Qcurrent_menubar; +extern Lisp_Object Qactivate_menubar_hook; +extern Lisp_Object Qmenu_no_selection_hook; +extern Lisp_Object Vactivate_menubar_hook; +extern int popup_menu_up_p; +extern Lisp_Object Qmouse_event_p; /* events.c */ +extern Lisp_Object Q_active, Q_suffix, Q_keys, Q_style, Q_selected; +extern Lisp_Object Q_filter, Q_config, Q_included; +extern Lisp_Object Qtoggle, Qradio; +extern Lisp_Object Vmenubar_configuration; +extern int menubar_show_keybindings; +extern Lisp_Object Vblank_menubar; +extern int popup_menu_titles; + + +/* Defined in minibuf.c */ +extern int minibuf_level; +Charcount scmp_1 (CONST Bufbyte *s1, CONST Bufbyte *s2, Charcount len, + int ignore_case); +#define scmp(s1, s2, len) scmp_1 (s1, s2, len, completion_ignore_case) +Lisp_Object Fread_from_minibuffer (Lisp_Object prompt, + Lisp_Object init, + Lisp_Object keymap, + Lisp_Object read_crock, + Lisp_Object hist); +extern int completion_ignore_case; +extern Lisp_Object Qcompletion_ignore_case; +extern Lisp_Object Vcompletion_regexp_list; +int regexp_ignore_completion_p (CONST Bufbyte *nonreloc, + Lisp_Object reloc, Bytecount offset, + Bytecount length); + +extern Lisp_Object Vminibuffer_zero; + +extern Lisp_Object Vecho_area_buffer; +Lisp_Object clear_echo_area (struct frame *f, Lisp_Object label, + int no_restore); +Lisp_Object clear_echo_area_from_print (struct frame *f, + Lisp_Object label, + int no_restore); +void echo_area_append (struct frame *f, CONST Bufbyte *nonreloc, + Lisp_Object reloc, Bytecount offset, + Bytecount length, Lisp_Object type); +void echo_area_message (struct frame *f, CONST Bufbyte *nonreloc, + Lisp_Object reloc, Bytecount offset, + Bytecount length, Lisp_Object type); +Lisp_Object echo_area_status (struct frame *f); +int echo_area_active (struct frame *f); +Lisp_Object echo_area_contents (struct frame *f); +void message_internal (CONST Bufbyte *nonreloc, Lisp_Object reloc, + Bytecount offset, Bytecount length); +void message_append_internal (CONST Bufbyte *nonreloc, Lisp_Object reloc, + Bytecount offset, Bytecount length); +void message (CONST char *fmt, ...) PRINTF_ARGS (1, 2); +void message_append (CONST char *fmt, ...) PRINTF_ARGS (1, 2); +void message_no_translate (CONST char *fmt, ...) PRINTF_ARGS (1, 2); +void clear_message (void); + + +/* Defined in mocklisp.c */ +extern Lisp_Object Vmocklisp_arguments, Qmocklisp, Qmocklisp_arguments; +Lisp_Object ml_apply (Lisp_Object function, Lisp_Object args); + + + + +/* Defined in objects-tty.c */ +extern Lisp_Object Vtty_color_alist; +#if 0 +Lisp_Object Vtty_dynamic_color_fg; +Lisp_Object Vtty_dynamic_color_bg; +#endif + + +/* Defined in print.c */ +void write_string_to_stdio_stream (FILE *stream, struct console *con, + CONST Bufbyte *str, Bytecount offset, + Bytecount len, + enum external_data_format fmt); +extern Lisp_Object Vprin1_to_string_buffer; +Lisp_Object Fprin1 (Lisp_Object obj, Lisp_Object printcharfun); +Lisp_Object Fprinc (Lisp_Object obj, Lisp_Object printcharfun); +Lisp_Object Fprint (Lisp_Object obj, Lisp_Object printcharfun); +Lisp_Object Fprin1_to_string (Lisp_Object obj, Lisp_Object noescape); +Lisp_Object Fterpri (Lisp_Object printcharfun); +extern Lisp_Object Vstandard_output, Qstandard_output; +extern Lisp_Object Qexternal_debugging_output; +void debug_backtrace (void); +void debug_short_backtrace (int length); +void temp_output_buffer_setup (CONST char *bufname); +void temp_output_buffer_show (Lisp_Object buf, Lisp_Object same_scrn); +/* NOTE: Do not call this with the data of a Lisp_String. Use princ. + * Note: stream should be defaulted before calling + * (eg Qnil means stdout, not Vstandard_output, etc) */ +void write_c_string (CONST char *s, Lisp_Object printcharfun); +/* Same goes for this function. */ +void write_string_1 (CONST Bufbyte *s, Bytecount size, + Lisp_Object printcharfun); +void print_internal (Lisp_Object obj, + Lisp_Object printcharfun, + int escapeflag); +extern Lisp_Object Vprint_level; +extern Lisp_Object Vprint_length; +extern int print_escape_newlines; +extern int print_readably; +extern Lisp_Object Qprint_escape_newlines; +Lisp_Object internal_with_output_to_temp_buffer (CONST char *bufname, + Lisp_Object (*function) + (Lisp_Object args), + Lisp_Object args, + Lisp_Object same_frame); +void float_to_string (char *buf, double data); +void print_symbol (Lisp_Object, Lisp_Object stream, int escapeflag); +void print_compiled_function (Lisp_Object, Lisp_Object stream, int escapeflag); +void print_float (Lisp_Object, Lisp_Object stream, int escapeflag); +extern Lisp_Object Qprint_length, Qprint_string_length; +void internal_object_printer (Lisp_Object obj, Lisp_Object printcharfun, + int escapeflag); + +/* Defined in process.c */ +Lisp_Object Fprocess_send_eof (Lisp_Object process); + + +/* Defined in profile.c */ +void mark_profiling_info (void (*markfun) (Lisp_Object)); +extern int profiling_active; +extern int profiling_redisplay_flag; + + +/* Defined in rangetab.c */ +Lisp_Object Fmake_range_table (void); +Lisp_Object Fput_range_table (Lisp_Object start, Lisp_Object end, + Lisp_Object val, Lisp_Object table); +Lisp_Object Fget_range_table (Lisp_Object pos, Lisp_Object table, + Lisp_Object defalt); +Lisp_Object Fclear_range_table (Lisp_Object table); +void put_range_table (Lisp_Object table, EMACS_INT first, + EMACS_INT last, Lisp_Object val); +int unified_range_table_bytes_needed (Lisp_Object rangetab); +int unified_range_table_bytes_used (void *unrangetab); +void unified_range_table_copy_data (Lisp_Object rangetab, void *dest); +Lisp_Object unified_range_table_lookup (void *unrangetab, EMACS_INT pos, + Lisp_Object defalt); +int unified_range_table_nentries (void *unrangetab); +void unified_range_table_get_range (void *unrangetab, int offset, + EMACS_INT *min, EMACS_INT *max, + Lisp_Object *val); + + +/* Defined in redisplay.c */ +Lisp_Object Fredraw_frame (Lisp_Object frame, Lisp_Object no_preempt); +Lisp_Object Fmessage_displayed_p (Lisp_Object return_string); +extern Lisp_Object Voverlay_arrow_position, Voverlay_arrow_string; +extern Lisp_Object Vbar_cursor; +extern Lisp_Object Qbar_cursor; +extern Lisp_Object Vwindow_system; +extern Lisp_Object Qcursor_in_echo_area; + + +/* Defined in search.c */ +struct re_pattern_buffer; +struct re_registers; +Lisp_Object Fstring_match (Lisp_Object regexp, + Lisp_Object string, Lisp_Object start, + Lisp_Object buffer); +Lisp_Object Fmatch_beginning (Lisp_Object n); +Lisp_Object Fmatch_end (Lisp_Object n); +Lisp_Object Fskip_chars_forward (Lisp_Object string, Lisp_Object lim, + Lisp_Object buffer); +Lisp_Object Fskip_chars_backward (Lisp_Object string, Lisp_Object lim, + Lisp_Object buffer); +Bufpos scan_buffer (struct buffer *buf, Emchar target, Bufpos start, + Bufpos end, int cnt, int *shortage, + int allow_quit); +Bufpos find_next_newline (struct buffer *buf, Bufpos from, int cnt); +Bufpos find_next_newline_no_quit (struct buffer *buf, Bufpos from, int cnt); +Bytind bi_find_next_newline_no_quit (struct buffer *buf, Bytind from, int cnt); +Bufpos find_before_next_newline (struct buffer *buf, Bufpos from, + Bufpos to, int cnt); +struct re_pattern_buffer *compile_pattern (Lisp_Object pattern, + struct re_registers *regp, + char *translate, int posix, + Error_behavior errb); +Bytecount fast_string_match (Lisp_Object regexp, CONST Bufbyte *nonreloc, + Lisp_Object reloc, Bytecount offset, + Bytecount length, int case_fold_search, + Error_behavior errb, int no_quit); +Bytecount fast_lisp_string_match (Lisp_Object regex, Lisp_Object string); +Lisp_Object Fre_search_forward (Lisp_Object string, Lisp_Object bound, + Lisp_Object no_error, + Lisp_Object count, + Lisp_Object buffer); +void restore_match_data (void); + + +/* Defined in signal.c */ +void init_interrupts_late (void); +extern int dont_check_for_quit; +void begin_dont_check_for_quit (void); +void emacs_sleep (int secs); + + +/* Defined in sound.c */ +Lisp_Object Fplay_sound (Lisp_Object sound, Lisp_Object volume, + Lisp_Object device); +Lisp_Object Fding (Lisp_Object arg, Lisp_Object sound, + Lisp_Object device); +void init_device_sound (struct device *d); +extern Lisp_Object Qnas; + + +/* Defined in specifier.c */ +Lisp_Object Fspecifier_instance (Lisp_Object specifier, + Lisp_Object locale, + Lisp_Object defalt, + Lisp_Object no_fallback); +Lisp_Object Fspecifier_specs (Lisp_Object specifier, + Lisp_Object locale, + Lisp_Object tag_set, + Lisp_Object exact_p); +Lisp_Object Fspecifier_spec_list (Lisp_Object specifier, + Lisp_Object locale, + Lisp_Object tag_set, + Lisp_Object exact_p); +Lisp_Object Fmake_specifier (Lisp_Object type); +Lisp_Object Fadd_spec_to_specifier (Lisp_Object specifier, + Lisp_Object locale, + Lisp_Object instantiator, + Lisp_Object tag, + Lisp_Object how_to_add); +Lisp_Object Fvalid_specifier_locale_p (Lisp_Object locale); +Lisp_Object Fcopy_specifier (Lisp_Object specifier, + Lisp_Object dest, + Lisp_Object locale, + Lisp_Object tag_set, + Lisp_Object exact_p, + Lisp_Object how_to_add); +Lisp_Object Fremove_specifier (Lisp_Object specifier, + Lisp_Object locale, + Lisp_Object tag_set, + Lisp_Object exact_p); +Lisp_Object specifier_instance (Lisp_Object specifier, + Lisp_Object matchspec, + Lisp_Object domain, + Error_behavior errb, + int no_quit, + int no_fallback, + Lisp_Object depth); +Lisp_Object specifier_instance_no_quit (Lisp_Object specifier, + Lisp_Object matchspec, + Lisp_Object domain, + Error_behavior errb, + int no_fallback, + Lisp_Object depth); +Lisp_Object Fset_specifier_dirty_flag (Lisp_Object specifier); +extern Lisp_Object Qfallback; +extern Lisp_Object Qnatnum; + + +/* Defined in symbols.c */ +extern Lisp_Object Vobarray; +Lisp_Object Fintern (Lisp_Object str, Lisp_Object obarray); +Lisp_Object Fintern_soft (Lisp_Object str, Lisp_Object obarray); +int hash_string (CONST Bufbyte *, Bytecount len); +Lisp_Object intern (CONST char *); +Lisp_Object oblookup (Lisp_Object obarray, + CONST Bufbyte *, Bytecount len); +void map_obarray (Lisp_Object obarray, + void (*fn) (Lisp_Object sym, Lisp_Object arg), + Lisp_Object arg); +Lisp_Object Fboundp (Lisp_Object sym); +Lisp_Object Ffboundp (Lisp_Object); +Lisp_Object Ffset (Lisp_Object sym, Lisp_Object val); +Lisp_Object Fsymbol_plist (Lisp_Object sym); +Lisp_Object Fsetplist (Lisp_Object sym, Lisp_Object val); +Lisp_Object Fsymbol_function (Lisp_Object sym); +Lisp_Object Fsymbol_value (Lisp_Object sym); +Lisp_Object Fdefault_value (Lisp_Object sym); +Lisp_Object Fdefault_boundp (Lisp_Object sym); +Lisp_Object Fset (Lisp_Object sym, Lisp_Object val); +Lisp_Object Fset_default (Lisp_Object sym, Lisp_Object val); +Lisp_Object Fsymbol_name (Lisp_Object sym); +Lisp_Object Findirect_function (Lisp_Object object); +Lisp_Object indirect_function (Lisp_Object object, int errorp); +Lisp_Object symbol_value_in_buffer (Lisp_Object sym, Lisp_Object buf); +void kill_buffer_local_variables (struct buffer *buf); +Lisp_Object Fmake_local_variable (Lisp_Object object); +int symbol_value_buffer_local_info (Lisp_Object symbol, struct buffer *); +Lisp_Object find_symbol_value (Lisp_Object symbol); +Lisp_Object top_level_value (Lisp_Object symbol); +Lisp_Object Fkill_local_variable (Lisp_Object symbol); +Lisp_Object Fmake_variable_buffer_local (Lisp_Object variable); +Lisp_Object Fbuilt_in_variable_type (Lisp_Object sym); +extern Lisp_Object Qconst_specifier; + +/* Defined in syntax.c */ +int scan_words (struct buffer *buf, int from, int count); +Lisp_Object Fforward_word (Lisp_Object n, Lisp_Object buffer); + + +/* Defined in sysdep.c, also declared in sysdep.h. + (These may be called via the open, etc macros instead...) + */ +#ifdef ENCAPSULATE_OPEN +int sys_open (CONST char *path, int oflag, ...); +#endif +#ifdef ENCAPSULATE_CLOSE +int sys_close (int fd); +#endif +#ifdef ENCAPSULATE_READ +int sys_read (int fildes, void *buf, unsigned int nbyte); +#endif +#ifdef ENCAPSULATE_WRITE +int sys_write (int fildes, CONST void *buf, unsigned int nbyte); +#endif + +#ifdef ENCAPSULATE_FOPEN +FILE *sys_fopen (CONST char *path, CONST char *type); +#endif +#ifdef ENCAPSULATE_FCLOSE +int sys_fclose (FILE *stream); +#endif +#ifdef ENCAPSULATE_FREAD +size_t sys_fread (void *ptr, size_t size, size_t nitem, FILE *stream); +#endif +#ifdef ENCAPSULATE_FWRITE +size_t sys_fwrite (CONST void *ptr, size_t size, size_t nitem, + FILE *stream); +#endif + +unsigned int sys_getuid (void); + +char *egetenv (CONST char *); +/* extern char *getenv (CONST char *); */ + + +/* Defined in undo.c */ +Lisp_Object Fundo_boundary (void); +Lisp_Object truncate_undo_list (Lisp_Object list, int min, int max); +void record_extent (Lisp_Object extent, int attached); +void record_insert (struct buffer *b, Bufpos beg, Charcount length); +void record_delete (struct buffer *b, Bufpos beg, Charcount length); +void record_change (struct buffer *b, Bufpos beg, Charcount length); +extern Lisp_Object Qinhibit_read_only; + + +/* Defined in unex*.c */ +int unexec (char *new_name, char *a_name, + unsigned int data_start, + unsigned int bss_start, + unsigned int entry_address); +#ifdef RUN_TIME_REMAP +int run_time_remap (char *); +#endif + + +/* Defined in vm-limit.c */ +void memory_warnings (void *start, void (*warnfun) (CONST char *)); + + +/* Defined in window.c */ +extern Lisp_Object Qvisible; +extern Lisp_Object Qscroll_up, Qscroll_down; +Lisp_Object Fselected_window (Lisp_Object device); +Lisp_Object Fwindow_buffer (Lisp_Object window); +Lisp_Object Fwindow_lowest_p (Lisp_Object window); +Lisp_Object Fwindow_highest_p (Lisp_Object window); +Lisp_Object Fget_buffer_window (Lisp_Object buffer, + Lisp_Object frame, + Lisp_Object ignored); +Lisp_Object Fsave_window_excursion (Lisp_Object body); +Lisp_Object Fset_window_configuration (Lisp_Object config); +Lisp_Object save_window_excursion_unwind (Lisp_Object window_config); +Lisp_Object Fcurrent_window_configuration (Lisp_Object frame); +Lisp_Object display_buffer (Lisp_Object buffer, + Lisp_Object notthiswindow, + Lisp_Object overrideframe); +Lisp_Object Freplace_buffer_in_windows (Lisp_Object buffer); +Lisp_Object Fwindow_dedicated_p (Lisp_Object window); +Lisp_Object Fnext_window (Lisp_Object window, + Lisp_Object minibuf, + Lisp_Object all_frames, + Lisp_Object device); +Lisp_Object Fdelete_window (Lisp_Object window, Lisp_Object force); +Lisp_Object Fselect_window (Lisp_Object window); +Lisp_Object Fset_window_buffer (Lisp_Object window, + Lisp_Object buffer); +Lisp_Object Fsplit_window (Lisp_Object window, + Lisp_Object chsize, + Lisp_Object horflag); +Lisp_Object Frecenter (Lisp_Object arg, Lisp_Object window); +Lisp_Object Fmove_to_window_line (Lisp_Object arg, Lisp_Object window); +Lisp_Object Fbuffer_left_margin_pixwidth (Lisp_Object buffer); +Lisp_Object Fbuffer_right_margin_pixwidth (Lisp_Object buffer); +Lisp_Object Fset_window_hscroll (Lisp_Object window, Lisp_Object ncol); +Lisp_Object Fwindow_point (Lisp_Object window); +Lisp_Object Fset_window_point (Lisp_Object window, Lisp_Object pos); +Lisp_Object Fset_window_start (Lisp_Object window, Lisp_Object pos, + Lisp_Object noforce); +Lisp_Object Fwindow_start (Lisp_Object window); +Lisp_Object Fwindow_end (Lisp_Object window, Lisp_Object guarantee); + +#endif /* _EMACSFNS_H_ */