Branch: Tag:

2001-06-20

2001-06-20 01:13:00 by Per Hedbor <ph@opera.com>

String.Buffer()->add is now varargs

Rev: src/builtin.cmod:1.43

1:   /* -*- c -*- -  * $Id: builtin.cmod,v 1.42 2001/06/19 22:48:14 per Exp $ +  * $Id: builtin.cmod,v 1.43 2001/06/20 01:13:00 per Exp $    */      #include "global.h"
1101:    REF_RETURN fp->current_object;    }    -  PIKEFUN int add( string a ) - /*! @decl void add(string data) +  PIKEFUN int add( string ... arg1 ) + /*! @decl void add(string ... data)    *!    *! Adds @[data] to the buffer. Returns the size of the buffer.    *!
1110:    {    struct Buffer_struct *str = THIS;    size_t l; +  int j; +  struct pike_string *a;    -  +  for( j = 0; j<args; j++ ) +  { +  a = Pike_sp[-args+j].u.string; +  if( Pike_sp[-args+j].type != T_STRING ) +  Pike_error("Illegal argument %d, expected string\n", j );    if(!(l = (size_t)a->len) ) -  return; +  continue;    -  +     if( !str->size )    {    str->shift = a->size_shift;
1130:    f_Buffer_get( 0 );    stack_swap();    f_add( 2 ); -  f_Buffer_add( 1 ); +  f_Buffer_add( args-j );    return;    }   
1149:    }    }    - #ifdef PIKE_DEBUG -  if( str->shift < a->size_shift ) -  fatal("Impossible!\n"); - #endif -  +     if( a->size_shift == str->shift )    MEMCPY( (str->data+str->len), a->str, l );    else
1168:    convert_0_to_2((p_wchar2 *)(str->data+str->len),    (p_wchar0 *)a->str, a->len);    str->len += l; -  RETURN str->len; +     } -  +  RETURN str->len-sizeof( struct pike_string )+PIKE_STRING_STR_SIZE; +  }       PIKEFUN string get_copy()    /*! @decl string get_copy()