#ifndef  STRING_STORMAMIGA_H
#define  STRING_STORMAMIGA_H

/*
**    $VER: string_stormamiga.h 1.7 (29.12.00)
**             Includes Release 45.00
**                 StormC Version
**
**     Copyright © 1996/2001 by CyberdyneSystems
**
**            written by Matthias Henze
**               All Rights Reserved
*/

#ifndef  STORMAMIGA_H
  #include <stormamiga.h>
#endif
#ifndef  _INCLUDE_STRING_H
  #include <string.h>
#endif

#ifdef __cplusplus
  extern "C" {
#endif

/*----- ANSI C-functions -----*/

size_t  strxfrm       (char *, cchar *, size_t);

#define strcoll       strcmp

/*----- UNIX-functions -----*/

void    *bzero        (void *, size_t);
int     ffs           (int);
int     strnicmp      (cchar *, cchar *, size_t);
int     stccpy        (char *, cchar *, int);
char    *strdup       (cchar *);
char    *strsep       (char **, cchar *);
char    *stpchr       (cchar *, int);
char    *stpcpy       (char *, cchar *);
void    *memccpy      (void *, cvoid *, int, size_t);
void    swab          (cvoid *, void *, size_t);

#define bcmp          memcmp
#define bcopy(a,b,c)  memmove(b,a,c)
#define cmpmem        memcmp
#define index         strchr
#define rindex        strrchr
#define movmem(a,b,c) memmove(b,a,c)
#define setmem(a,b,c) memset(a,c,b)
#define strcasecmp    stricmp
#define strncasecmp   strnicmp
#define strlower      strlwr
#define strupper      strupr

/*----- DICE-SAS/C-functions -----*/

void    strins        (char *, cchar *);
int     strbpl        (char **, int, cchar *);

#define clrmem  bzero

/*----- stormamiga-functions -----*/

#ifdef STORMAMIGA_DEUTSCH
  #define stricmp     stricmp_d
  #define strnicmp    strnicmp_d
  #define strcasecmp  stricmp_d
  #define strncasecmp strnicmp_d
  #define strlwr      strlwr_d
  #define strupr      strupr_d
  #define strlower    strlwr_d
  #define strupper    strupr_d
#endif

int   stricmp_d       (cchar *, cchar *);
char  *strncpyn       (char *, cchar *, size_t);
int   strnicmp_d      (cchar *, cchar *, size_t);
char  *strlwr_d       (char *);
char  *strupr_d       (char *);

#define strcasecmp_d  stricmp_d
#define strncasecmp_d strnicmp_d
#define strlower_d    strlwr_d
#define strupper_d    strupr_d

#ifdef __cplusplus
  }
#endif

#ifdef STORMAMIGA_INLINE

/*----- ANSI C-functions -----*/

__inline void *memchr    (cvoid *s, int c, size_t n)
{
  while (n)
  {
   if (*(((uchar *) s)++) == (uchar) c)
     return (uchar *) s - 1;
   n--;
  };
  return NULL;
}

#endif  /* STORMAMIGA_INLINE */

#endif  /* STRING_STORMAMIGA_H */
