#ifndef _SUBTASK_H
#define _SUBTASK_H

#include "common/extern.h"

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

STRPTR
newstrcpy (APTR pool, STRPTR str)
{
  STRPTR tmp;

  if (str)
    {
      int size = strlen (str);

      if (size)
        if ((tmp = (STRPTR) AllocVecPooled (pool, ++size)))
          {
            strncpy (tmp, str, size);
            return (tmp);
          }
    }

  return (NULL);
};

inline int
s_strlen (char *str)
{
  if (str)
    return (strlen (str));
  else
    return (NULL);
};

int
strnicmp (const char *s, const char *d, size_t n)
{
  char c;

  if (n == 0)
    return (0);

  while (tolower (c = *s) == tolower (*(char *) d))
    {
      if (c == 0 || --n == 0)
        return (0);

      ++s;
      ++d;
    }

  if (tolower (c) < tolower (*(char *) d))
    return (-1);
  return (1);
};


char *
stristr (char *s1, char *s2)
{
  short len2 = strlen (s2);

  if (len2 == 0)
    return (s1);

  while (*s1)
    {
      if (tolower (*s1) == tolower (*s2))
        if (strnicmp (s1, s2, len2) == 0)
          return (s1);
      ++s1;
    }
  return (NULL);

};

#endif
