Artifact
ad13ea731a615195339c63b0b59ec211dff754aa:
0000: 2f 2a 20 66 69 6e 64 5f 66 69 6c 65 2e 68 20 2d /* find_file.h -
0010: 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 72 functions for r
0020: 65 63 75 72 73 69 76 65 20 73 63 61 6e 20 6f 66 ecursive scan of
0030: 20 64 69 72 65 63 74 6f 72 69 65 73 2e 20 2a 2f directories. */
0040: 0a 23 69 66 6e 64 65 66 20 46 49 4e 44 5f 46 49 .#ifndef FIND_FI
0050: 4c 45 5f 48 0a 23 64 65 66 69 6e 65 20 46 49 4e LE_H.#define FIN
0060: 44 5f 46 49 4c 45 5f 48 0a 0a 23 69 6e 63 6c 75 D_FILE_H..#inclu
0070: 64 65 20 22 63 6f 6d 6d 6f 6e 5f 66 75 6e 63 2e de "common_func.
0080: 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 66 69 6c h".#include "fil
0090: 65 2e 68 22 0a 0a 23 69 66 64 65 66 20 5f 5f 63 e.h"..#ifdef __c
00a0: 70 6c 75 73 70 6c 75 73 0a 65 78 74 65 72 6e 20 plusplus.extern
00b0: 22 43 22 20 7b 0a 23 65 6e 64 69 66 0a 0a 2f 2a "C" {.#endif../*
00c0: 20 66 69 6e 64 5f 66 69 6c 65 20 6f 70 74 69 6f find_file optio
00d0: 6e 73 20 2a 2f 0a 23 64 65 66 69 6e 65 20 46 49 ns */.#define FI
00e0: 4e 44 5f 57 41 4c 4b 5f 44 45 50 54 48 5f 46 49 ND_WALK_DEPTH_FI
00f0: 52 53 54 20 31 0a 23 64 65 66 69 6e 65 20 46 49 RST 1.#define FI
0100: 4e 44 5f 46 4f 4c 4c 4f 57 5f 53 59 4d 4c 49 4e ND_FOLLOW_SYMLIN
0110: 4b 53 20 32 0a 23 64 65 66 69 6e 65 20 46 49 4e KS 2.#define FIN
0120: 44 5f 53 4b 49 50 5f 44 49 52 53 20 34 0a 23 64 D_SKIP_DIRS 4.#d
0130: 65 66 69 6e 65 20 46 49 4e 44 5f 4c 4f 47 5f 45 efine FIND_LOG_E
0140: 52 52 4f 52 53 20 38 0a 23 64 65 66 69 6e 65 20 RRORS 8.#define
0150: 46 49 4e 44 5f 43 41 4e 43 45 4c 20 31 36 0a 0a FIND_CANCEL 16..
0160: 2f 2a 2a 0a 20 2a 20 4f 70 74 69 6f 6e 73 20 66 /**. * Options f
0170: 6f 72 20 66 69 6c 65 20 73 65 61 72 63 68 2e 0a or file search..
0180: 20 2a 2f 0a 74 79 70 65 64 65 66 20 73 74 72 75 */.typedef stru
0190: 63 74 20 66 69 6c 65 5f 73 65 61 72 63 68 5f 64 ct file_search_d
01a0: 61 74 61 0a 7b 0a 09 69 6e 74 20 6f 70 74 69 6f ata.{..int optio
01b0: 6e 73 3b 0a 09 69 6e 74 20 6d 61 78 5f 64 65 70 ns;..int max_dep
01c0: 74 68 3b 0a 09 62 6c 6f 63 6b 73 5f 76 65 63 74 th;..blocks_vect
01d0: 6f 72 5f 74 20 72 6f 6f 74 5f 66 69 6c 65 73 3b or_t root_files;
01e0: 0a 09 69 6e 74 20 28 2a 63 61 6c 6c 5f 62 61 63 ..int (*call_bac
01f0: 6b 29 28 66 69 6c 65 5f 74 2a 20 66 69 6c 65 2c k)(file_t* file,
0200: 20 69 6e 74 20 64 61 74 61 29 3b 0a 09 69 6e 74 int data);..int
0210: 20 63 61 6c 6c 5f 62 61 63 6b 5f 64 61 74 61 3b call_back_data;
0220: 0a 09 69 6e 74 20 65 72 72 6f 72 73 5f 63 6f 75 ..int errors_cou
0230: 6e 74 3b 0a 7d 20 66 69 6c 65 5f 73 65 61 72 63 nt;.} file_searc
0240: 68 5f 64 61 74 61 3b 0a 0a 66 69 6c 65 5f 73 65 h_data;..file_se
0250: 61 72 63 68 5f 64 61 74 61 2a 20 66 69 6c 65 5f arch_data* file_
0260: 73 65 61 72 63 68 5f 64 61 74 61 5f 6e 65 77 28 search_data_new(
0270: 76 6f 69 64 29 3b 0a 76 6f 69 64 20 66 69 6c 65 void);.void file
0280: 5f 73 65 61 72 63 68 5f 61 64 64 5f 66 69 6c 65 _search_add_file
0290: 28 66 69 6c 65 5f 73 65 61 72 63 68 5f 64 61 74 (file_search_dat
02a0: 61 2a 20 64 61 74 61 2c 20 74 73 74 72 5f 74 20 a* data, tstr_t
02b0: 70 61 74 68 2c 20 69 6e 74 20 69 73 5f 66 69 6c path, int is_fil
02c0: 65 5f 6c 69 73 74 29 3b 0a 76 6f 69 64 20 66 69 e_list);.void fi
02d0: 6c 65 5f 73 65 61 72 63 68 5f 64 61 74 61 5f 66 le_search_data_f
02e0: 72 65 65 28 66 69 6c 65 5f 73 65 61 72 63 68 5f ree(file_search_
02f0: 64 61 74 61 2a 20 64 61 74 61 29 3b 0a 0a 76 6f data* data);..vo
0300: 69 64 20 73 63 61 6e 5f 66 69 6c 65 73 28 66 69 id scan_files(fi
0310: 6c 65 5f 73 65 61 72 63 68 5f 64 61 74 61 2a 20 le_search_data*
0320: 64 61 74 61 29 3b 0a 0a 23 69 66 64 65 66 20 5f data);..#ifdef _
0330: 5f 63 70 6c 75 73 70 6c 75 73 0a 7d 20 2f 2a 20 _cplusplus.} /*
0340: 65 78 74 65 72 6e 20 22 43 22 20 2a 2f 0a 23 65 extern "C" */.#e
0350: 6e 64 69 66 20 2f 2a 20 5f 5f 63 70 6c 75 73 70 ndif /* __cplusp
0360: 6c 75 73 20 2a 2f 0a 0a 23 65 6e 64 69 66 20 2f lus */..#endif /
0370: 2a 20 46 49 4e 44 5f 46 49 4c 45 5f 48 20 2a 2f * FIND_FILE_H */
0380: 0a .