home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / uccs / root.14 / udk / usr / include / fnmatch.h < prev    next >
C/C++ Source or Header  |  1998-08-19  |  3KB  |  90 lines

  1. /*
  2.  * Copyright (c) 1998 The Santa Cruz Operation, Inc.. All Rights Reserved. 
  3.  *                                                                         
  4.  *        THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF THE               
  5.  *                   SANTA CRUZ OPERATION INC.                             
  6.  *                                                                         
  7.  *   The copyright notice above does not evidence any actual or intended   
  8.  *   publication of such source code.                                      
  9.  */
  10.  
  11. #ifndef _FNMATCH_H
  12. #define _FNMATCH_H
  13. #ident    "@(#)sgs-head:common/head/fnmatch.h    1.6"
  14.  
  15. #ifndef _SIZE_T
  16. #   define _SIZE_T
  17.     typedef unsigned int    size_t;
  18. #endif
  19.  
  20. #ifndef _SSIZE_T
  21. #   define _SSIZE_T
  22.     typedef int    ssize_t;
  23. #endif
  24.  
  25. #define FNM_PATHNAME    0x001
  26. #define FNM_PERIOD    0x002
  27. #define FNM_NOESCAPE    0x004
  28. #define FNM_BADRANGE    0x008    /* accept [m-a] ranges as [ma] */
  29. #define FNM_BKTESCAPE    0x010    /* allow \ in []s to quote next anything */
  30. #define FNM_EXTENDED    0x020    /* use full ksh-style patterns */
  31. #define FNM_RETMIN    0x040    /* return length of minimum match */
  32. #define FNM_RETMAX    0x080    /* return length of maximum match */
  33. #define FNM_REUSE    0x100    /* reusing this FNM */
  34. #define FNM_COMPONENT    0x200    /* only matching a component */
  35. #define FNM_SUBEXPR    0x400    /* fill fnm_nsub, fnm_so[], fnm_eo[] */
  36. #define FNM_UNANCHORED    0x800    /* match need not include string start */
  37.  
  38. #define FNM_NSUBEXPR    10    /* length of fnm_so[] and fnm_eo[] */
  39.  
  40. #define FNM_NOSYS    (-1)
  41. #define FNM_NOMATCH    (-2)
  42. #define FNM_BADPAT    (-3)
  43. #define FNM_ERROR    (-4) /* internal error; probably allocation failure */
  44.  
  45. #ifdef __cplusplus
  46. extern "C" {
  47. #endif
  48.  
  49. typedef struct /* compiled information */
  50. {
  51.     const unsigned char    *__fnmstr;
  52.     struct __fnm_collate    *__fnmcol;
  53.     struct __fnm_ptrn    *__fnmpatfree;
  54.     struct __fnm_ptrn    *__fnmbktfree;
  55.     struct __fnm_ptrn    *__fnmpat;
  56.     int            __fnmflags;
  57.     int            __fnmtoken;
  58. #ifdef fnm_nsub
  59.     size_t            __fnmnsub;
  60. #else
  61.     size_t            fnm_nsub; /* number of subexpressions */
  62. #endif
  63. #ifdef fnm_so
  64.     ssize_t            __fnmso[FNM_NSUBEXPR];
  65. #else
  66.     ssize_t            fnm_so[FNM_NSUBEXPR]; /* start offsets */
  67. #endif
  68. #ifdef fnm_eo
  69.     ssize_t            __fnmeo[FNM_NSUBEXPR];
  70. #else
  71.     ssize_t            fnm_eo[FNM_NSUBEXPR]; /* end offsets */
  72. #endif
  73. } fnm_t;
  74.  
  75. #ifdef __STDC__
  76. extern int    fnmatch(const char *, const char *, int);
  77. extern void    _fnmfree(fnm_t *);
  78. extern int    _fnmcomp(fnm_t *, const unsigned char *, int);
  79. extern int    _fnmexec(fnm_t *, const unsigned char *);
  80. #else
  81. extern int    fnmatch(), _fnmcomp(), _fnmexec();
  82. extern void    _fnmfree();
  83. #endif
  84.  
  85. #ifdef __cplusplus
  86. }
  87. #endif
  88.  
  89. #endif /*_FNMATCH_H*/
  90.