/usr/lib/ats2-postiats-0.1.3/libc/SATS/fnmatch.sats is in ats2-lang 0.1.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | (***********************************************************************)
(* *)
(* Applied Type System *)
(* *)
(***********************************************************************)
(*
** ATS/Postiats - Unleashing the Potential of Types!
** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc.
** All rights reserved
**
** ATS is free software; you can redistribute it and/or modify it under
** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the
** Free Software Foundation; either version 3, or (at your option) any
** later version.
**
** ATS is distributed in the hope that it will be useful, but WITHOUT ANY
** WARRANTY; without even the implied warranty of MERCHANTABILITY or
** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
** for more details.
**
** You should have received a copy of the GNU General Public License
** along with ATS; see the file COPYING. If not, please write to the
** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
** 02110-1301, USA.
*)
(* ****** ****** *)
//
// Author: Hongwei Xi (gmhwxi AT gmail DOT com)
// Start Time: March, 2013
//
(* ****** ****** *)
%{#
#include "libc/CATS/fnmatch.cats"
%} // end of [%{#]
(* ****** ****** *)
#define ATS_PACKNAME "ATSLIB.libc"
#define ATS_EXTERN_PREFIX "atslib_" // prefix for external names
(* ****** ****** *)
#define RD(x) x // for commenting: read-only
#define NSH(x) x // for commenting: no sharing
#define SHR(x) x // for commenting: it is shared
(* ****** ****** *)
macdef
FNM_MATCH = 0 // HX: match is found
macdef
FNM_NOMATCH = $extval (int, "FNM_NOMATCH") // HX: no match is found
(* ****** ****** *)
typedef fnmflags = int
(* ****** ****** *)
(*
FNM_NOESCAPE
If this flag is set, treat backslash as an ordinary character, instead of
an escape character.
*)
macdef
FNM_NOESCAPE = $extval (fnmflags, "FNM_NOESCAPE")
(*
FNM_PATHNAME
If this flag is set, match a slash in string only with a slash in pattern
and not by an asterisk '*' or a question mark (?) metacharacter, nor by a
bracket expression ([]) containing a slash.
*)
macdef
FNM_PATHNAME = $extval (fnmflags, "FNM_PATHNAME")
(*
FNM_PERIOD
If this flag is set, a leading period in string has to be matched exactly
by a period in pattern. A period is considered to be leading if it is the
first character in string, or if both FNM_PATHNAME is set and the period
immediately follows a slash.
*)
macdef
FNM_PERIOD = $extval (fnmflags, "FNM_PERIOD")
(*
FNM_FILE_NAME
This is a GNU synonym for FNM_PATHNAME.
*)
macdef
FNM_FILE_NAME = $extval (fnmflags, "FNM_FILE_NAME")
(*
FNM_LEADING_DIR
If this flag (a GNU extension) is set, the pattern is considered to be
matched if it matches an initial segment of string which is followed by a
slash. This flag is mainly for the internal use of glibc and is only
implemented in certain cases.
*)
macdef
FNM_LEADING_DIR = $extval (fnmflags, "FNM_LEADING_DIR")
(*
FNM_CASEFOLD
If this flag (a GNU extension) is set, the pattern is matched
case-insensitively.
*)
macdef
FNM_CASEFOLD = $extval (fnmflags, "FNM_CASEFOLD")
(* ****** ****** *)
symintr fnmatch
fun fnmatch_null
(
pattern: NSH(string), fname: NSH(string)
) :<> int = "mac#%" // end of [fnmatch]
fun fnmatch_flags
(
pattern: NSH(string), fname: NSH(string), flags: fnmflags
) :<> int = "mac#%" // end of [fnmatch]
overload fnmatch with fnmatch_null
overload fnmatch with fnmatch_flags
(* ****** ****** *)
(* end of [fnmatch.sats] *)
|