/usr/lib/ats-anairiats-0.2.5/libc/SATS/strings.sats is in ats-lang-anairiats 0.2.5-0ubuntu1.
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 | (***********************************************************************)
(* *)
(* Applied Type System *)
(* *)
(* Hongwei Xi *)
(* *)
(***********************************************************************)
(*
** ATS - Unleashing the Potential of Types!
**
** Copyright (C) 2002-2009 Hongwei Xi, Boston University
**
** All rights reserved
**
** ATS is free software; you can redistribute it and/or modify it under
** the terms of the GNU General Public License as published by the Free
** Software Foundation; either version 2.1, 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 (hwxi AT cs DOT bu DOT edu) *)
(* ****** ****** *)
%{#
#include "libc/CATS/strings.cats"
%} // end of [%{#]
(* ****** ****** *)
/*
// int bcmp(const void *, const void *, size_t); (LEGACY )
// void bcopy(const void *, void *, size_t); (LEGACY )
// void bzero(void *, size_t); (LEGACY )
// int ffs(int); // find first (least significant) bit set in a word // HX: handled
// char *index(const char *, int); (LEGACY )
// char *rindex(const char *, int); (LEGACY )
// int strcasecmp(const char *, const char *); // HX: handled
// int strncasecmp(const char *, const char *, size_t); // HX: handled
*/
(* ****** ****** *)
//
// HX:
// find the first (least significant) bit set in a word
// note that position starts from 1 until 32 or 64; 0 is returned
// if no bit is set
//
fun ffs (i: int): [n:int | n >= 0] int n = "mac#atslib_ffs"
(* ****** ****** *)
//
// HX: string comparison like [strcmp] but case is ignored
//
fun strcasecmp (
str1: !READ(string), str2: !READ(string)
) : int= "mac#atslib_strcasecmp" // end of [strcasecmp]
(* ****** ****** *)
//
// HX: string comparison like [strncmp] but case is ignored
//
fun strncasecmp {n:nat} (
str1: !READ(string), str2: !READ(string), n: size_t n
) : int = "mac#atslib_strncasecmp" // end of [strncasecmp]
(* ****** ****** *)
(* end of [strings.sats] *)
|