crossroads

Git mirror of https://crossroads.e-tunity.com/
git clone git://git.finwo.net/app/crossroads
Log | Files | Refs | LICENSE

insertat.cc (571B)


      1 #include "netbuffer"
      2 
      3 bool Netbuffer::insertat(unsigned index, char const *s, unsigned len) {
      4     PROFILE("Netbuffer::insertat");
      5 
      6     if (!len)
      7 	len = strlen(s);
      8 
      9     if (config.debug()) {
     10 	string pr;
     11 	for (unsigned int i = 0; i < len; i++)
     12 	    pr += printable(s[i]);
     13 	debugmsg("Netbuffer: inserting " << pr << " at " << index << '\n');
     14     }
     15     
     16     if (index >= buf_sz)
     17 	return false;
     18     check_space(len);
     19     memmove (buf_data + index + len, buf_data + index, buf_sz - index);
     20     memcpy (buf_data + index, s, len);
     21     buf_sz += len;
     22     
     23     return true;
     24 }
     25