… | |
… | |
612 | memcpy (dst, src, ++len); |
612 | memcpy (dst, src, ++len); |
613 | |
613 | |
614 | return len; |
614 | return len; |
615 | } |
615 | } |
616 | |
616 | |
617 | const char * |
617 | char * |
|
|
618 | vformat (const char *format, va_list ap) |
|
|
619 | { |
|
|
620 | static dynbuf_text buf; buf.clear (); |
|
|
621 | buf.vprintf (format, ap); |
|
|
622 | return buf; |
|
|
623 | } |
|
|
624 | |
|
|
625 | char * |
618 | format (const char *format, ...) |
626 | format (const char *format, ...) |
619 | { |
627 | { |
620 | static dynbuf_text buf; |
|
|
621 | |
|
|
622 | buf.clear (); |
|
|
623 | |
|
|
624 | va_list ap; |
628 | va_list ap; |
625 | va_start (ap, format); |
629 | va_start (ap, format); |
626 | buf.vprintf (format, ap); |
630 | char *buf = vformat (format, ap); |
627 | va_end (ap); |
631 | va_end (ap); |
628 | |
632 | |
629 | return buf; |
633 | return buf; |
630 | } |
634 | } |
631 | |
635 | |