/* Prototypes for functions defined in
buffer.c
 */

extern struct buffer * current_buffer;

extern struct buffer * all_buffers;

extern struct buffer buffer_defaults;

extern int Vbuffer_defaults;

extern struct buffer buffer_local_flags;

extern struct buffer buffer_local_symbols;

extern int Vbuffer_local_symbols;

extern struct buffer buffer_local_types;

extern int Vbuffer_alist;

extern int Vbefore_change_function;

extern int Vafter_change_function;

extern int Vbefore_change_functions;

extern int Vafter_change_functions;

extern int Vtransient_mark_mode;

extern int Vinhibit_read_only;

extern int Vkill_buffer_query_functions;

extern int Vfirst_change_hook;

extern int Qfirst_change_hook;

extern int Qfundamental_mode;

extern int Qmode_class;

extern int Qpermanent_local;

extern int Qprotected_field;

extern int QSFundamental;

extern int Qkill_buffer_hook;

extern int Qget_file_buffer;

extern int Qoverlayp;

extern int Qpriority;

extern int Qwindow;

extern int Qmodification_hooks;

extern int Qinsert_in_front_hooks;

extern int Qinsert_behind_hooks;

int nsberror(int spec);

extern struct Lisp_Subr Sbuffer_list;

int Fbuffer_list(void);

extern struct Lisp_Subr Sget_buffer;

int Fget_buffer(int );

extern struct Lisp_Subr Sget_file_buffer;

int Fget_file_buffer(int );

extern int buffer_count;

extern struct Lisp_Subr Sget_buffer_create;

int Fget_buffer_create(int );

void reset_buffer(register struct buffer * b);

int reset_buffer_local_variables(register struct buffer * b);

extern struct Lisp_Subr Sgenerate_new_buffer_name;

int Fgenerate_new_buffer_name(int , int );

extern struct Lisp_Subr Sbuffer_name;

int Fbuffer_name(int );

extern struct Lisp_Subr Sbuffer_file_name;

int Fbuffer_file_name(int );

extern struct Lisp_Subr Sbuffer_local_variables;

int Fbuffer_local_variables(int );

extern struct Lisp_Subr Sbuffer_modified_p;

int Fbuffer_modified_p(int );

extern struct Lisp_Subr Sset_buffer_modified_p;

int Fset_buffer_modified_p(int );

extern struct Lisp_Subr Sbuffer_modified_tick;

int Fbuffer_modified_tick(int );

extern struct Lisp_Subr Srename_buffer;

int Frename_buffer(int , int );

extern struct Lisp_Subr Sother_buffer;

int Fother_buffer(int , int );

extern struct Lisp_Subr Sbuffer_disable_undo;

int Fbuffer_disable_undo(int );

extern struct Lisp_Subr Sbuffer_enable_undo;

int Fbuffer_enable_undo(int );

extern struct Lisp_Subr Skill_buffer;

int Fkill_buffer(int );

int record_buffer(int buf);

extern struct Lisp_Subr Sswitch_to_buffer;

int Fswitch_to_buffer(int , int );

extern struct Lisp_Subr Spop_to_buffer;

int Fpop_to_buffer(int , int );

extern struct Lisp_Subr Scurrent_buffer;

int Fcurrent_buffer(void);

void set_buffer_internal(register struct buffer * b);

extern struct Lisp_Subr Sset_buffer;

int Fset_buffer(int );

extern struct Lisp_Subr Sbarf_if_buffer_read_only;

int Fbarf_if_buffer_read_only(void);

extern struct Lisp_Subr Sbury_buffer;

int Fbury_buffer(int );

extern struct Lisp_Subr Serase_buffer;

int Ferase_buffer(void);

int validate_region(register int * b,
                    register int * e);

int list_buffers_1(int files);

extern struct Lisp_Subr Slist_buffers;

int Flist_buffers(int );

extern struct Lisp_Subr Skill_all_local_variables;

int Fkill_all_local_variables(void);

int overlays_at(int pos,
                int extend,
                int ** vec_ptr,
                int * len_ptr,
                int * next_ptr);

int compare_overlays(struct sortvec * s1,
                     struct sortvec * s2);

int sort_overlays(int * overlay_vec,
                  int noverlays,
                  struct window * w);

void recenter_overlay_lists(struct buffer * buf,
                            int pos);

void fix_overlays_in_range(register int start,
                           register int end);

extern struct Lisp_Subr Soverlayp;

int Foverlayp(int );

extern struct Lisp_Subr Smake_overlay;

int Fmake_overlay(int , int , int );

extern struct Lisp_Subr Smove_overlay;

int Fmove_overlay(int , int , int , int );

extern struct Lisp_Subr Sdelete_overlay;

int Fdelete_overlay(int );

extern struct Lisp_Subr Soverlay_start;

int Foverlay_start(int );

extern struct Lisp_Subr Soverlay_end;

int Foverlay_end(int );

extern struct Lisp_Subr Soverlay_buffer;

int Foverlay_buffer(int );

extern struct Lisp_Subr Soverlay_properties;

int Foverlay_properties(int );

extern struct Lisp_Subr Soverlays_at;

int Foverlays_at(int );

extern struct Lisp_Subr Snext_overlay_change;

int Fnext_overlay_change(int );

extern struct Lisp_Subr Soverlay_lists;

int Foverlay_lists(void);

extern struct Lisp_Subr Soverlay_recenter;

int Foverlay_recenter(int );

extern struct Lisp_Subr Soverlay_get;

int Foverlay_get(int , int );

extern struct Lisp_Subr Soverlay_put;

int Foverlay_put(int , int , int );

void verify_overlay_modification(int start,
                                 int end);

void call_overlay_mod_hooks(int list,
                            int overlay,
                            int start,
                            int end);

void buffer_slot_type_mismatch(int valcontents,
                               int newval);

int init_buffer_once(void);

int init_buffer(void);

int syms_of_buffer(void);

int keys_of_buffer(void);

