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