summaryrefslogtreecommitdiff
path: root/client/util.c
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>2000-02-27 22:00:19 +0000
committerMartin Mares <mj@ucw.cz>2000-02-27 22:00:19 +0000
commite69e4ed9349ee28262fe74f70e7e52c181d5d098 (patch)
tree33dcb70e608d36460ff7ac0484cc438c7f9a7289 /client/util.c
parentde30342f97490e3a3626c4a5fbf3352d1d0aa9c8 (diff)
Support expansion of command abbreviations.
Client considered finished (modulo bugs).
Diffstat (limited to 'client/util.c')
-rw-r--r--client/util.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/client/util.c b/client/util.c
index 7699fafc..9f1a16b6 100644
--- a/client/util.c
+++ b/client/util.c
@@ -12,11 +12,21 @@
#include <stdarg.h>
#include "nest/bird.h"
+#include "lib/string.h"
#include "client/client.h"
/* Client versions of logging functions */
-/* FIXME: Use bsprintf, so that %m works */
+static void
+vlog(char *msg, va_list args)
+{
+ char buf[1024];
+
+ if (bvsnprintf(buf, sizeof(buf)-1, msg, args) < 0)
+ bsprintf(buf + sizeof(buf) - 100, " ... <too long>");
+ fputs(buf, stderr);
+ fputc('\n', stderr);
+}
void
bug(char *msg, ...)
@@ -26,8 +36,8 @@ bug(char *msg, ...)
va_start(args, msg);
cleanup();
fputs("Internal error: ", stderr);
+ vlog(msg, args);
vfprintf(stderr, msg, args);
- fputc('\n', stderr);
exit(1);
}
@@ -38,7 +48,6 @@ die(char *msg, ...)
va_start(args, msg);
cleanup();
- vfprintf(stderr, msg, args);
- fputc('\n', stderr);
+ vlog(msg, args);
exit(1);
}