⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 search.h

📁 早期freebsd实现
💻 H
字号:
// -*- C++ -*-/* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.     Written by James Clark (jjc@jclark.com)This file is part of groff.groff is free software; you can redistribute it and/or modify it underthe terms of the GNU General Public License as published by the FreeSoftware Foundation; either version 2, or (at your option) any laterversion.groff is distributed in the hope that it will be useful, but WITHOUT ANYWARRANTY; without even the implied warranty of MERCHANTABILITY orFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public Licensefor more details.You should have received a copy of the GNU General Public License alongwith groff; see the file COPYING.  If not, write to the Free SoftwareFoundation, 675 Mass Ave, Cambridge, MA 02139, USA. */struct search_item;struct search_item_iterator;class search_list {public:  search_list();  ~search_list();  void add_file(const char *fn, int silent = 0);  int nfiles() const;private:  search_item *list;  int niterators;  int next_fid;  friend class search_list_iterator;};struct bmpattern;class linear_searcher {  const char *ignore_fields;  int truncate_len;  bmpattern **keys;  int nkeys;  const char *search_and_check(const bmpattern *key, const char *buf,			       const char *bufend, const char **start = 0)    const;  int check_match(const char *buf, const char *bufend, const char *match,		  int matchlen, const char **cont, const char **start)    const;public:  linear_searcher(const char *query, int query_len,		  const char *ign, int trunc);  ~linear_searcher();  int search(const char *buf, const char *bufend,	     const char **startp, int *lengthp) const;};class search_list_iterator {  search_list *list;  search_item *ptr;  search_item_iterator *iter;  char *query;  linear_searcher searcher;public:  search_list_iterator(search_list *, const char *query);  ~search_list_iterator();  int next(const char **, int *, reference_id * = 0);};class search_item {protected:  char *name;  int filename_id;public:  search_item *next;  search_item(const char *nm, int fid);  virtual search_item_iterator *make_search_item_iterator(const char *) = 0;  virtual ~search_item();  int is_named(const char *) const;  virtual int next_filename_id() const;};class search_item_iterator {  char shut_g_plus_plus_up;public:  virtual ~search_item_iterator();  virtual int next(const linear_searcher &, const char **ptr, int *lenp,		   reference_id *) = 0;};search_item *make_index_search_item(const char *filename, int fid);search_item *make_linear_search_item(int fd, const char *filename, int fid);extern int linear_truncate_len;extern const char *linear_ignore_fields;extern int verify_flag;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -