Exemplo n.º 1
0
utString utString::substr(const size_type start,
                          size_type       len_orig) const
{
    utString  s;
    size_type len = strlen(p);

    if (len_orig == npos)
    {
        len_orig = len - start;
    }

    if (start > len)
    {
        abort();
    }

    if (len > len_orig)
    {
        len = len_orig;
    }

	lmSafeFree(NULL, s.p);
    s.p = malloc_never_null(len + 1);
    memcpy(s.p, p + start, len);
    s.p[len] = '\0';

    return s;
}
Exemplo n.º 2
0
static char *strdup_never_null(const char *s)
{
    const size_t len = strlen(s) + 1;
    char         *p  = malloc_never_null(len);

    memcpy(p, s, len);
    return p;
}
Exemplo n.º 3
0
static char *strdup_never_null(const char *s)
{
    const size_t len = (s == NULL ? 0 : strlen(s)) + 1;
    char         *p  = malloc_never_null(len);

    if (len > 1) memcpy(p, s, len);
    p[len-1] = 0;
    return p;
}
Exemplo n.º 4
0
 /**
  * Allocates memory for the copy the string at the same time sets "this->allocated".
  * @param s
  * @return
  */
 char*
 String::strdup_never_null(const char* s)
 {
     const size_t len = strlen(s)+1;
     char *p2 = malloc_never_null(len);
     memcpy(p2, s, len);
     allocated_=len;
     size_=len-1;
     return p2;
 }
Exemplo n.º 5
0
 String::String(const String& s)
   : p(0)
 {
   if( &s != NULL ){
       p = malloc_never_null( s.size_ + 1 );  // copy only used part
       allocated_ = s.size_ + 1;
       size_      = s.size_;
       memcpy(p, s.p, size_ + 1);
   }
   _return_value = '\0';
 }