jt_strng* jt_strng_append(jt_strng* orig, jt_strng* append) { int newlength = orig->length + append->length - 1; int origlength = orig->length; jt_buffer_extend(orig, newlength); strcpy(&((char*)orig->buffer)[origlength-1], append->buffer); orig->length = newlength; return orig; }
jt_strng* jt_strng_append_c(jt_strng* orig, const char* append) { int applen = strlen(append)+1; int newlength = orig->length + applen - 1; int origlength = orig->length; jt_buffer_extend(orig, newlength); strcpy(&((char*)orig->buffer)[origlength-1], append); orig->length = newlength; return orig; }
uint5 loadsection(section* sec, FILE* f) { sec->content = jt_buffer_new(8); if (sec->header.sh_size > 0) { int expectedsize = pad(sec->header.sh_size); if (expectedsize > 300000000) { fprintf(stderr, "Very large section! %d bytes!\n", expectedsize); exit(1); } jt_buffer_extend(sec->content, expectedsize); return fread(sec->content->buffer, expectedsize, 1, f) * expectedsize; } return 0; }