X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=kstring.h;h=221ade2472655ba842477b1249feb7ca7209631c;hb=78de989ec56e7c17e1fa854cb8c1c4f9ae08856c;hp=47d63f7690d7e146502856050b38a3699b810ba0;hpb=431e646d3b2019312626cf111460ea3df7029962;p=samtools.git diff --git a/kstring.h b/kstring.h index 47d63f7..221ade2 100644 --- a/kstring.h +++ b/kstring.h @@ -19,19 +19,24 @@ typedef struct __kstring_t { int ksprintf(kstring_t *s, const char *fmt, ...); int ksplit_core(char *s, int delimiter, int *_max, int **_offsets); -static inline int kputs(const char *p, kstring_t *s) +static inline int kputsn(const char *p, int l, kstring_t *s) { - int l = strlen(p); if (s->l + l + 1 >= s->m) { s->m = s->l + l + 2; kroundup32(s->m); s->s = (char*)realloc(s->s, s->m); } - strcpy(s->s + s->l, p); + strncpy(s->s + s->l, p, l); s->l += l; + s->s[s->l] = 0; return l; } +static inline int kputs(const char *p, kstring_t *s) +{ + return kputsn(p, strlen(p), s); +} + static inline int kputc(int c, kstring_t *s) { if (s->l + 1 >= s->m) {