Hex Artifact Content
Not logged in

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                                               .