aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--text.c26
-rw-r--r--text.h1
2 files changed, 13 insertions, 14 deletions
diff --git a/text.c b/text.c
index 0084ae3..f6e924b 100644
--- a/text.c
+++ b/text.c
@@ -637,6 +637,19 @@ bool text_insert(Text *txt, size_t pos, const char *data, size_t len) {
return true;
}
+static bool text_vprintf(Text *txt, size_t pos, const char *format, va_list ap) {
+ va_list ap_save;
+ va_copy(ap_save, ap);
+ int len = vsnprintf(NULL, 0, format, ap);
+ if (len == -1)
+ return false;
+ char *buf = malloc(len+1);
+ bool ret = buf && (vsnprintf(buf, len+1, format, ap_save) == len) && text_insert(txt, pos, buf, len);
+ free(buf);
+ va_end(ap_save);
+ return ret;
+}
+
bool text_appendf(Text *txt, const char *format, ...) {
va_list ap;
va_start(ap, format);
@@ -653,19 +666,6 @@ bool text_printf(Text *txt, size_t pos, const char *format, ...) {
return ret;
}
-bool text_vprintf(Text *txt, size_t pos, const char *format, va_list ap) {
- va_list ap_save;
- va_copy(ap_save, ap);
- int len = vsnprintf(NULL, 0, format, ap);
- if (len == -1)
- return false;
- char *buf = malloc(len+1);
- bool ret = buf && (vsnprintf(buf, len+1, format, ap_save) == len) && text_insert(txt, pos, buf, len);
- free(buf);
- va_end(ap_save);
- return ret;
-}
-
size_t text_insert_newline(Text *txt, size_t pos) {
const char *data = text_newline_char(txt);
size_t len = strlen(data);
diff --git a/text.h b/text.h
index b8ec0e1..8f41f08 100644
--- a/text.h
+++ b/text.h
@@ -42,7 +42,6 @@ Text *text_load(const char *filename);
struct stat text_stat(Text*);
bool text_appendf(Text*, const char *format, ...);
bool text_printf(Text*, size_t pos, const char *format, ...);
-bool text_vprintf(Text*, size_t pos, const char *format, va_list ap);
/* inserts a line ending character (depending on file type) */
size_t text_insert_newline(Text*, size_t pos);
/* insert `len' bytes starting from `data' at `pos' which has to be