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

extern int current_global_map;

extern int global_map;

extern int meta_map;

extern int control_x_map;

extern int Vminibuffer_local_map;

extern int Vminibuffer_local_ns_map;

extern int Vminibuffer_local_completion_map;

extern int Vminibuffer_local_must_match_map;

extern int Vminor_mode_map_alist;

extern int Vfunction_key_map;

extern int Qkeymapp;

extern int Qkeymap;

extern int Qnon_ascii;

extern struct Lisp_Subr Smake_keymap;

int Fmake_keymap(int );

extern struct Lisp_Subr Smake_sparse_keymap;

int Fmake_sparse_keymap(int );

void initial_define_key(int keymap,
                        int key,
                        char * defname);

void initial_define_lispy_key(int keymap,
                              char * keyname,
                              char * defname);

extern struct Lisp_Subr Skeymapp;

int Fkeymapp(int );

int get_keymap_1(int , int , int);

int get_keymap(int object);

int access_keymap(int map,
                  int idx,
                  int t_ok,
                  int noinherit);

int get_keyelt(register int object,
               int autoload);

int store_in_keymap(int keymap,
                    register int idx,
                    register int def);

extern struct Lisp_Subr Scopy_keymap;

int Fcopy_keymap(int );

extern struct Lisp_Subr Sdefine_key;

int Fdefine_key(int , int , int );

extern struct Lisp_Subr Slookup_key;

int Flookup_key(int , int , int );

int define_as_prefix(int keymap,
                     int c);

int append_key(int key_sequence,
               int key);

extern int * cmm_modes;

extern int * cmm_maps;

extern int cmm_size;

int current_minor_maps(int ** modeptr,
                       int ** mapptr);

extern struct Lisp_Subr Skey_binding;

int Fkey_binding(int , int );

extern struct Lisp_Subr Slocal_key_binding;

int Flocal_key_binding(int , int );

extern struct Lisp_Subr Sglobal_key_binding;

int Fglobal_key_binding(int , int );

extern struct Lisp_Subr Sminor_mode_key_binding;

int Fminor_mode_key_binding(int , int );

extern struct Lisp_Subr Sglobal_set_key;

int Fglobal_set_key(int , int );

extern struct Lisp_Subr Slocal_set_key;

int Flocal_set_key(int , int );

extern struct Lisp_Subr Sglobal_unset_key;

int Fglobal_unset_key(int );

extern struct Lisp_Subr Slocal_unset_key;

int Flocal_unset_key(int );

extern struct Lisp_Subr Sdefine_prefix_command;

int Fdefine_prefix_command(int , int );

extern struct Lisp_Subr Suse_global_map;

int Fuse_global_map(int );

extern struct Lisp_Subr Suse_local_map;

int Fuse_local_map(int );

extern struct Lisp_Subr Scurrent_local_map;

int Fcurrent_local_map(void);

extern struct Lisp_Subr Scurrent_global_map;

int Fcurrent_global_map(void);

extern struct Lisp_Subr Scurrent_minor_mode_maps;

int Fcurrent_minor_mode_maps(void);

extern struct Lisp_Subr Saccessible_keymaps;

int Faccessible_keymaps(int , int );

extern int Qsingle_key_description;

extern int Qkey_description;

extern struct Lisp_Subr Skey_description;

int Fkey_description(int );

char * push_key_description(register unsigned int c,
                            register char * p);

extern struct Lisp_Subr Ssingle_key_description;

int Fsingle_key_description(int );

char * push_text_char_description(register unsigned int c,
                                  register char * p);

extern struct Lisp_Subr Stext_char_description;

int Ftext_char_description(int );

int ascii_sequence_p(int seq);

extern struct Lisp_Subr Swhere_is_internal;

int Fwhere_is_internal(int , int , int , int );

extern struct Lisp_Subr Sdescribe_bindings;

int Fdescribe_bindings(int );

int describe_buffer_bindings(int arg);

void describe_map_tree(int startmap,
                       int partial,
                       int shadow,
                       int prefix,
                       char * title,
                       int nomenu);

void describe_command(int definition);

int shadow_lookup(int shadow,
                  int key,
                  int flag);

void describe_map(register int map,
                  int keys,
                  int (* elt_describer)(),
                  int partial,
                  int shadow,
                  int * seen);

int describe_vector_princ(int elt);

extern struct Lisp_Subr Sdescribe_vector;

int Fdescribe_vector(int );

int describe_vector(register int vector,
                    int elt_prefix,
                    int (* elt_describer)(),
                    int partial,
                    int shadow);

extern int apropos_predicate;

extern int apropos_accumulate;

void apropos_accum(int symbol,
                   int string);

extern struct Lisp_Subr Sapropos_internal;

int Fapropos_internal(int , int );

int syms_of_keymap(void);

int keys_of_keymap(void);

