11573Srgrimes/*- 21573Srgrimes * Copyright (c) 1992, 1993 31573Srgrimes * The Regents of the University of California. All rights reserved. 41573Srgrimes * 51573Srgrimes * This code is derived from software contributed to Berkeley by 61573Srgrimes * Christos Zoulas of Cornell University. 71573Srgrimes * 81573Srgrimes * Redistribution and use in source and binary forms, with or without 91573Srgrimes * modification, are permitted provided that the following conditions 101573Srgrimes * are met: 111573Srgrimes * 1. Redistributions of source code must retain the above copyright 121573Srgrimes * notice, this list of conditions and the following disclaimer. 131573Srgrimes * 2. Redistributions in binary form must reproduce the above copyright 141573Srgrimes * notice, this list of conditions and the following disclaimer in the 151573Srgrimes * documentation and/or other materials provided with the distribution. 16148834Sstefanf * 3. Neither the name of the University nor the names of its contributors 171573Srgrimes * may be used to endorse or promote products derived from this software 181573Srgrimes * without specific prior written permission. 191573Srgrimes * 201573Srgrimes * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 211573Srgrimes * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 221573Srgrimes * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 231573Srgrimes * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 241573Srgrimes * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 251573Srgrimes * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 261573Srgrimes * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 271573Srgrimes * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 281573Srgrimes * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 291573Srgrimes * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 301573Srgrimes * SUCH DAMAGE. 311573Srgrimes * 321573Srgrimes * @(#)search.h 8.1 (Berkeley) 6/4/93 33148834Sstefanf * $NetBSD: search.h,v 1.8 2003/10/18 23:27:36 christos Exp $ 3484260Sobrien * $FreeBSD$ 351573Srgrimes */ 361573Srgrimes 371573Srgrimes/* 381573Srgrimes * el.search.h: Line and history searching utilities 391573Srgrimes */ 408870Srgrimes#ifndef _h_el_search 4184260Sobrien#define _h_el_search 421573Srgrimes 431573Srgrimes#include "histedit.h" 441573Srgrimes 451573Srgrimestypedef struct el_search_t { 4684260Sobrien char *patbuf; /* The pattern buffer */ 4784260Sobrien size_t patlen; /* Length of the pattern buffer */ 4884260Sobrien int patdir; /* Direction of the last search */ 4984260Sobrien int chadir; /* Character search direction */ 5084260Sobrien char chacha; /* Character we are looking for */ 51148834Sstefanf char chatflg; /* 0 if f, 1 if t */ 521573Srgrimes} el_search_t; 531573Srgrimes 541573Srgrimes 5584260Sobrienprotected int el_match(const char *, const char *); 5684260Sobrienprotected int search_init(EditLine *); 5784260Sobrienprotected void search_end(EditLine *); 5884260Sobrienprotected int c_hmatch(EditLine *, const char *); 5984260Sobrienprotected void c_setpat(EditLine *); 6084260Sobrienprotected el_action_t ce_inc_search(EditLine *, int); 6184260Sobrienprotected el_action_t cv_search(EditLine *, int); 62148834Sstefanfprotected el_action_t ce_search_line(EditLine *, int); 6384260Sobrienprotected el_action_t cv_repeat_srch(EditLine *, int); 64148834Sstefanfprotected el_action_t cv_csearch(EditLine *, int, int, int, int); 651573Srgrimes 661573Srgrimes#endif /* _h_el_search */ 67