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

extern struct re_pattern_buffer searchbuf;

extern char search_fastmap[256];

extern int last_regexp;

extern struct re_registers search_regs;

extern int last_thing_searched;

extern int Qinvalid_regexp;

void matcher_overflow(void);

int compile_pattern(int pattern,
                    struct re_pattern_buffer * bufp,
                    struct re_registers * regp,
                    char * translate);

extern int Qsearch_failed;

int signal_failure(int arg);

extern struct Lisp_Subr Slooking_at;

int Flooking_at(int );

extern struct Lisp_Subr Sstring_match;

int Fstring_match(int , int , int );

int fast_string_match(int regexp,
                      int string);

int scan_buffer(register int target,
                int start,
                register int count,
                int * shortage,
                int allow_quit);

int find_next_newline(register int from,
                      register int cnt);

extern struct Lisp_Subr Sskip_chars_forward;

int Fskip_chars_forward(int , int );

extern struct Lisp_Subr Sskip_chars_backward;

int Fskip_chars_backward(int , int );

extern struct Lisp_Subr Sskip_syntax_forward;

int Fskip_syntax_forward(int , int );

extern struct Lisp_Subr Sskip_syntax_backward;

int Fskip_syntax_backward(int , int );

int skip_chars(int forwardp,
               int syntaxp,
               int string,
               int lim);

int search_command(int string,
                   int bound,
                   int noerror,
                   int count,
                   int direction,
                   int RE);

int search_buffer(int string,
                  int pos,
                  int lim,
                  int n,
                  int RE,
                  register unsigned char * trt,
                  register unsigned char * inverse_trt);

void set_search_regs(int beg,
                     int len);

int wordify(int string);

extern struct Lisp_Subr Ssearch_backward;

int Fsearch_backward(int , int , int , int );

extern struct Lisp_Subr Ssearch_forward;

int Fsearch_forward(int , int , int , int );

extern struct Lisp_Subr Sword_search_backward;

int Fword_search_backward(int , int , int , int );

extern struct Lisp_Subr Sword_search_forward;

int Fword_search_forward(int , int , int , int );

extern struct Lisp_Subr Sre_search_backward;

int Fre_search_backward(int , int , int , int );

extern struct Lisp_Subr Sre_search_forward;

int Fre_search_forward(int , int , int , int );

extern struct Lisp_Subr Sreplace_match;

int Freplace_match(int , int , int );

int match_limit(int num,
                int beginningp);

extern struct Lisp_Subr Smatch_beginning;

int Fmatch_beginning(int );

extern struct Lisp_Subr Smatch_end;

int Fmatch_end(int );

extern struct Lisp_Subr Smatch_data;

int Fmatch_data(void);

extern struct Lisp_Subr Sstore_match_data;

int Fstore_match_data(int );

extern struct Lisp_Subr Sregexp_quote;

int Fregexp_quote(int );

int syms_of_search(void);

