Dr Andrew Scott G7VAV

My photo
 
April 2024
Mo Tu We Th Fr Sa Su
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 1 2 3 4 5
6 7 8 9 10 11 12


strings.h
001: /* Copyright (C) 1991,1992,1996,1997,1999,2000,2001,2009,2010
002:    Free Software Foundation, Inc.
003:    This file is part of the GNU C Library.
004: 
005:    The GNU C Library is free software; you can redistribute it and/or
006:    modify it under the terms of the GNU Lesser General Public
007:    License as published by the Free Software Foundation; either
008:    version 2.1 of the License, or (at your option) any later version.
009: 
010:    The GNU C Library is distributed in the hope that it will be useful,
011:    but WITHOUT ANY WARRANTY; without even the implied warranty of
012:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
013:    Lesser General Public License for more details.
014: 
015:    You should have received a copy of the GNU Lesser General Public
016:    License along with the GNU C Library; if not, write to the Free
017:    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
018:    02111-1307 USA.  */
019: 
020: #ifndef _STRINGS_H
021: #define _STRINGS_H      1
022: 
023: /* We don't need and should not read this file if <string.h> was already
024:    read. The one exception being that if __USE_BSD isn't defined, then
025:    these aren't defined in string.h, so we need to define them here.  */
026: #if !defined _STRING_H || !defined __USE_BSD
027: 
028: # include <features.h>
029: # define __need_size_t
030: # include <stddef.h>
031: 
032: /* Tell the caller that we provide correct C++ prototypes.  */
033: # if defined __cplusplus && __GNUC_PREREQ (4, 4)
034: #  define __CORRECT_ISO_CPP_STRINGS_H_PROTO
035: # endif
036: 
037: __BEGIN_DECLS
038: 
039: # if defined __USE_MISC || !defined __USE_XOPEN2K8
040: /* Compare N bytes of S1 and S2 (same as memcmp).  */
041: extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
042:      __THROW __attribute_pure__;
043: 
044: /* Copy N bytes of SRC to DEST (like memmove, but args reversed).  */
045: extern void bcopy (__const void *__src, void *__dest, size_t __n) __THROW;
046: 
047: /* Set N bytes of S to 0.  */
048: extern void bzero (void *__s, size_t __n) __THROW;
049: 
050: /* Find the first occurrence of C in S (same as strchr).  */
051: #  ifdef __CORRECT_ISO_CPP_STRINGS_H_PROTO
052: extern "C++"
053: {
054: extern char *index (char *__s, int __c)
055:      __THROW __asm ("index") __attribute_pure__ __nonnull ((1));
056: extern __const char *index (__const char *__s, int __c)
057:      __THROW __asm ("index") __attribute_pure__ __nonnull ((1));
058: 
059: #   if defined __OPTIMIZE__ && !defined __CORRECT_ISO_CPP_STRING_H_PROTO
060: __extern_always_inline char *
061: index (char *__s, int __c) __THROW
062: {
063:   return __builtin_index (__s, __c);
064: }
065: 
066: __extern_always_inline __const char *
067: index (__const char *__s, int __c) __THROW
068: {
069:   return __builtin_index (__s, __c);
070: }
071: #   endif
072: }
073: #  else
074: extern char *index (__const char *__s, int __c)
075:      __THROW __attribute_pure__ __nonnull ((1));
076: #  endif
077: 
078: /* Find the last occurrence of C in S (same as strrchr).  */
079: #  ifdef __CORRECT_ISO_CPP_STRINGS_H_PROTO
080: extern "C++"
081: {
082: extern char *rindex (char *__s, int __c)
083:      __THROW __asm ("rindex") __attribute_pure__ __nonnull ((1));
084: extern __const char *rindex (__const char *__s, int __c)
085:      __THROW __asm ("rindex") __attribute_pure__ __nonnull ((1));
086: 
087: #   if defined __OPTIMIZE__ && !defined __CORRECT_ISO_CPP_STRING_H_PROTO
088: __extern_always_inline char *
089: rindex (char *__s, int __c) __THROW
090: {
091:   return __builtin_rindex (__s, __c);
092: }
093: 
094: __extern_always_inline __const char *
095: rindex (__const char *__s, int __c) __THROW
096: {
097:   return __builtin_rindex (__s, __c);
098: }
099: #   endif
100: }
101: #  else
102: extern char *rindex (__const char *__s, int __c)
103:      __THROW __attribute_pure__ __nonnull ((1));
104: #  endif
105: # endif
106: 
107: #if defined __USE_MISC || !defined __USE_XOPEN2K8 || defined __USE_XOPEN2K8XSI
108: /* Return the position of the first bit set in I, or 0 if none are set.
109:    The least-significant bit is position 1, the most-significant 32.  */
110: extern int ffs (int __i) __THROW __attribute__ ((const));
111: #endif
112: 
113: /* Compare S1 and S2, ignoring case.  */
114: extern int strcasecmp (__const char *__s1, __const char *__s2)
115:      __THROW __attribute_pure__;
116: 
117: /* Compare no more than N chars of S1 and S2, ignoring case.  */
118: extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
119:      __THROW __attribute_pure__;
120: 
121: #ifdef  __USE_XOPEN2K8
122: /* The following functions are equivalent to the both above but they
123:    take the locale they use for the collation as an extra argument.
124:    This is not standardsized but something like will come.  */
125: # include <xlocale.h>
126: 
127: /* Again versions of a few functions which use the given locale instead
128:    of the global one.  */
129: extern int strcasecmp_l (__const char *__s1, __const char *__s2,
130:                          __locale_t __loc)
131:      __THROW __attribute_pure__ __nonnull ((1, 2, 3));
132: 
133: extern int strncasecmp_l (__const char *__s1, __const char *__s2,
134:                           size_t __n, __locale_t __loc)
135:      __THROW __attribute_pure__ __nonnull ((1, 2, 4));
136: #endif
137: 
138: __END_DECLS
139: 
140: #endif  /* string.h  */
141: 
142: #endif  /* strings.h  */
143: 


for client 18.117.196.184
© Andrew Scott 2006 - 2024,
All Rights Reserved
http://www.andrew-scott.uk/
Andrew Scott
http://www.andrew-scott.co.uk/