"Fossies" - the Fresh Open Source Software Archive

Member "dmd2/src/druntime/src/core/stdc/string.d" (20 Nov 2020, 2717 Bytes) of package /linux/misc/dmd.2.094.2.linux.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) D source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 /**
    2  * D header file for C99.
    3  *
    4  * $(C_HEADER_DESCRIPTION pubs.opengroup.org/onlinepubs/009695399/basedefs/_string.h.html, _string.h)
    5  *
    6  * Copyright: Copyright Sean Kelly 2005 - 2009.
    7  * License: Distributed under the
    8  *      $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0).
    9  *    (See accompanying file LICENSE)
   10  * Authors:   Sean Kelly
   11  * Source:    $(DRUNTIMESRC core/stdc/_string.d)
   12  * Standards: ISO/IEC 9899:1999 (E)
   13  */
   14 
   15 module core.stdc.string;
   16 
   17 version (OSX)
   18     version = Darwin;
   19 else version (iOS)
   20     version = Darwin;
   21 else version (TVOS)
   22     version = Darwin;
   23 else version (WatchOS)
   24     version = Darwin;
   25 
   26 // Those libs don't expose the mandated C interface
   27 version (CRuntime_Glibc)
   28     version = ReturnStrerrorR;
   29 else version (CRuntime_UClibc)
   30     version = ReturnStrerrorR;
   31 
   32 extern (C):
   33 @system:
   34 nothrow:
   35 @nogc:
   36 
   37 ///
   38 inout(void)* memchr(return inout void* s, int c, size_t n) pure;
   39 ///
   40 int   memcmp(scope const void* s1, scope const void* s2, size_t n) pure;
   41 ///
   42 void* memcpy(return void* s1, scope const void* s2, size_t n) pure;
   43 version (Windows)
   44 {
   45     ///
   46     int memicmp(scope const char* s1, scope const char* s2, size_t n);
   47 }
   48 ///
   49 void* memmove(return void* s1, scope const void* s2, size_t n) pure;
   50 ///
   51 void* memset(return void* s, int c, size_t n) pure;
   52 
   53 ///
   54 char*  strcat(return char* s1, scope const char* s2) pure;
   55 ///
   56 inout(char)*  strchr(return inout(char)* s, int c) pure;
   57 ///
   58 int    strcmp(scope const char* s1, scope const char* s2) pure;
   59 ///
   60 int    strcoll(scope const char* s1, scope const char* s2);
   61 ///
   62 char*  strcpy(return char* s1, scope const char* s2) pure;
   63 ///
   64 size_t strcspn(scope const char* s1, scope const char* s2) pure;
   65 ///
   66 char*  strdup(scope const char *s);
   67 ///
   68 char*  strerror(int errnum);
   69 // This `strerror_r` definition is not following the POSIX standard
   70 version (ReturnStrerrorR)
   71 {
   72     ///
   73     const(char)* strerror_r(int errnum, return char* buf, size_t buflen);
   74 }
   75 // This one is
   76 else
   77 {
   78     int strerror_r(int errnum, scope char* buf, size_t buflen);
   79 }
   80 ///
   81 size_t strlen(scope const char* s) pure;
   82 ///
   83 char*  strncat(return char* s1, scope const char* s2, size_t n) pure;
   84 ///
   85 int    strncmp(scope const char* s1, scope const char* s2, size_t n) pure;
   86 ///
   87 char*  strncpy(return char* s1, scope const char* s2, size_t n) pure;
   88 ///
   89 inout(char)*  strpbrk(return inout(char)* s1, scope const char* s2) pure;
   90 ///
   91 inout(char)*  strrchr(return inout(char)* s, int c) pure;
   92 ///
   93 size_t strspn(scope const char* s1, scope const char* s2) pure;
   94 ///
   95 inout(char)*  strstr(return inout(char)* s1, scope const char* s2) pure;
   96 ///
   97 char*  strtok(return char* s1, scope const char* s2);
   98 ///
   99 size_t strxfrm(scope char* s1, scope const char* s2, size_t n);