(root)/
grep-3.11/
src/
kwset.h
       1  /* kwset.h - header declaring the keyword set library.
       2     Copyright (C) 1989, 1998, 2005, 2007, 2009-2023 Free Software Foundation,
       3     Inc.
       4  
       5     This program is free software; you can redistribute it and/or modify
       6     it under the terms of the GNU General Public License as published by
       7     the Free Software Foundation; either version 3, or (at your option)
       8     any later version.
       9  
      10     This program is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13     GNU General Public License for more details.
      14  
      15     You should have received a copy of the GNU General Public License
      16     along with this program; if not, write to the Free Software
      17     Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
      18     02110-1301, USA.  */
      19  
      20  /* Written August 1989 by Mike Haertel.  */
      21  
      22  #include <stddef.h>
      23  
      24  #include <idx.h>
      25  
      26  struct kwsmatch
      27  {
      28    idx_t index;	/* Index number of matching keyword.  */
      29    idx_t offset;	/* Offset of match.  */
      30    idx_t size;	/* Length of match.  */
      31  };
      32  
      33  #include <arg-nonnull.h>
      34  #include <idx.h>
      35  
      36  struct kwset;
      37  typedef struct kwset *kwset_t;
      38  
      39  extern kwset_t kwsalloc (char const *);
      40  extern void kwsincr (kwset_t, char const *, idx_t);
      41  extern idx_t kwswords (kwset_t) _GL_ATTRIBUTE_PURE;
      42  extern void kwsprep (kwset_t);
      43  extern ptrdiff_t kwsexec (kwset_t, char const *, idx_t,
      44                            struct kwsmatch *, bool)
      45    _GL_ARG_NONNULL ((4));
      46  extern void kwsfree (kwset_t);