1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
/**
* @namespace biew
* @file search.h
* @brief This file contains search function prototypes.
* @version -
* @remark this source file is part of Binary vIEW project (BIEW).
* The Binary vIEW (BIEW) is copyright (C) 1995 Nick Kurshev.
* All rights reserved. This software is redistributable under the
* licence given in the file "Licence.en" ("Licence.ru" in russian
* translation) distributed in the BIEW archive.
* @note Requires POSIX compatible development system
*
* @author Nick Kurshev
* @since 1995
* @note Development, fixes and improvements
**/
#ifndef __SEARCH__H
#define __SEARCH__H
#ifdef __cplusplus
extern "C" {
#endif
/** Main search routine
* @param is_continue indicates initialization of search
If set then search should be continued
search dialog will displayed otherwise
* @return new offset on successful search and
current offset otherwise
**/
extern unsigned long __FASTCALL__ Search( tBool is_continue );
#define SD_SIMPLE 0x0000 /**< indicates simple search dialog to be displayed */
#define SD_ALLFEATURES 0x0001 /**< indicates fully featured search dialog to be displayed */
#define SF_NONE 0x0000 /**< indicates no flags */
#define SF_CASESENS 0x0001 /**< indicates case sensitivity search engine */
#define SF_WORDONLY 0x0002 /**< indicates word only to be found */
#define SF_REVERSE 0x0004 /**< indicates reverse search */
#define SF_WILDCARDS 0x0008 /**< indicates wildcard can be used */
#define SF_PLUGINS 0x0010 /**< indicates using plugin's output */
#define SF_ASHEX 0x0020 /**< indicates hex mode of input sequence */
#define MAX_SEARCH_SIZE 76
extern tBool __FASTCALL__ SearchDialog(int dlg_flags,
char *searchbuff,
unsigned char *searchlen,
unsigned *search_flags);
/** Performs seacrh of given sequence in the string
* @param str indicates string where search must be performed
* @param str_len indicates length string where search must be performed
* @param sbuff indicates searching sequence
* @param sbuflen indicates length of sequence to be found
* @param cache indicates Boyer-Moore cache
* @param flags indicates SF_* flags
* @return address of first occurence of
of searching sequence in the
string or NULL if not found.
**/
extern char * __FASTCALL__ strFind(const char *str, unsigned str_len,
const void * sbuff, unsigned sbuflen,
const int *cache, unsigned flags);
/** Fills cache for Boyer-Moore search
* @param cache indicates cache to be filled
Should have size of 256 elements.
* @param pattern indicates search pattern
* @param pattern_len indicates length of search pattern
* @param case_sens indicates case sensitivity of search
* @return none
**/
void __FASTCALL__ fillBoyerMooreCache(int *cache,
const char *pattern,
unsigned pattern_len,
tBool case_sens);
extern unsigned char search_buff[MAX_SEARCH_SIZE];
extern unsigned char search_len;
extern unsigned biewSearchFlg;
extern unsigned long FoundTextSt; /**< Indicates start of found text */
extern unsigned long FoundTextEnd;/**< Indicates end of found text */
#ifdef __cplusplus
}
#endif
#endif
|