#include <errno.h>
#include "err_util.h"
-void qword_add(char **bpp, int *lp, char *str)
+void qword_add(char **bpp, int *lp, const char *str)
{
char *bp = *bpp;
int len = *lp;
*lp -= len;
}
+void qword_adduint(char **bpp, int *lp, unsigned int n)
+{
+ int len;
+
+ len = snprintf(*bpp, *lp, "%u ", n);
+ if (len > *lp)
+ len = *lp;
+ *bpp += len;
+ *lp -= len;
+}
+
void qword_addeol(char **bpp, int *lp)
{
if (*lp <= 0)
static char qword_buf[8192];
static char tmp_buf[8192];
-void qword_print(FILE *f, char *str)
+int qword_print(FILE *f, const char *str)
{
char *bp = qword_buf;
int len = sizeof(qword_buf);
+ size_t sret;
+
qword_add(&bp, &len, str);
- fwrite(qword_buf, bp-qword_buf, 1, f);
+ sret = fwrite(qword_buf, bp-qword_buf, 1, f);
/* XXX: */
memcpy(tmp_buf, qword_buf, bp-qword_buf);
tmp_buf[bp-qword_buf] = '\0';
printerr(2, "%s", tmp_buf);
+
+ return sret != 1;
}
-void qword_printhex(FILE *f, char *str, int slen)
+int qword_printhex(FILE *f, char *str, int slen)
{
char *bp = qword_buf;
int len = sizeof(qword_buf);
+ size_t sret;
+
qword_addhex(&bp, &len, str, slen);
- fwrite(qword_buf, bp-qword_buf, 1, f);
+ sret = fwrite(qword_buf, bp-qword_buf, 1, f);
/* XXX: */
memcpy(tmp_buf, qword_buf, bp-qword_buf);
tmp_buf[bp-qword_buf] = '\0';
printerr(2, "%s", tmp_buf);
+
+ return sret != 1;
}
void qword_printint(FILE *f, int num)
printerr(2, "%d ", num);
}
-void qword_eol(FILE *f)
+int qword_eol(FILE *f)
{
+ int err;
fprintf(f,"\n");
- fflush(f);
+ err = fflush(f);
printerr(2, "\n");
+ return err;
}