OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [newlib-1.17.0/] [newlib/] [libc/] [string/] [strndup_r.c] - Diff between revs 158 and 816

Only display areas with differences | Details | Blame | View Log

Rev 158 Rev 816
#include <reent.h>
#include <reent.h>
#include <stdlib.h>
#include <stdlib.h>
#include <string.h>
#include <string.h>
 
 
char *
char *
_DEFUN (_strndup_r, (reent_ptr, str, n),
_DEFUN (_strndup_r, (reent_ptr, str, n),
        struct _reent *reent_ptr  _AND
        struct _reent *reent_ptr  _AND
        _CONST char   *str _AND
        _CONST char   *str _AND
        size_t n)
        size_t n)
{
{
  _CONST char *ptr = str;
  _CONST char *ptr = str;
  size_t len;
  size_t len;
  char *copy;
  char *copy;
 
 
  while (n-- > 0 && *ptr)
  while (n-- > 0 && *ptr)
    ptr++;
    ptr++;
 
 
  len = ptr - str;
  len = ptr - str;
 
 
  copy = _malloc_r (reent_ptr, len + 1);
  copy = _malloc_r (reent_ptr, len + 1);
  if (copy)
  if (copy)
    {
    {
      memcpy (copy, str, len);
      memcpy (copy, str, len);
      copy[len] = '\0';
      copy[len] = '\0';
    }
    }
  return copy;
  return copy;
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.