diff options
author | Martin Mares <mj@ucw.cz> | 2000-02-27 23:00:19 +0100 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 2000-02-27 23:00:19 +0100 |
commit | e69e4ed9349ee28262fe74f70e7e52c181d5d098 (patch) | |
tree | 33dcb70e608d36460ff7ac0484cc438c7f9a7289 /client/util.c | |
parent | de30342f97490e3a3626c4a5fbf3352d1d0aa9c8 (diff) | |
download | bird-e69e4ed9349ee28262fe74f70e7e52c181d5d098.tar bird-e69e4ed9349ee28262fe74f70e7e52c181d5d098.zip |
Support expansion of command abbreviations.
Client considered finished (modulo bugs).
Diffstat (limited to 'client/util.c')
-rw-r--r-- | client/util.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/client/util.c b/client/util.c index 7699faf..9f1a16b 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); } |