/* -*-c-*-
*
- * $Id: base64.c,v 1.2 1999/05/18 21:45:27 mdw Exp $
+ * $Id: base64.c,v 1.3 1999/05/21 22:14:30 mdw Exp $
*
* Base64 encoding and decoding.
*
/*----- Revision history --------------------------------------------------*
*
* $Log: base64.c,v $
+ * Revision 1.3 1999/05/21 22:14:30 mdw
+ * Take advantage of the new dynamic string macros.
+ *
* Revision 1.2 1999/05/18 21:45:27 mdw
* Allow Base64 encode and decode of arbitrary rubbish.
*
int main(int argc, char *argv[])
{
unsigned char buf[BUFSIZ];
- dstr d;
+ dstr d = DSTR_INIT;
base64_ctx ctx;
void (*proc)(base64_ctx *, const unsigned char *, size_t, dstr *);
size_t sz;
- dstr_create(&d);
base64_init(&ctx);
if (argc > 1 && strcmp(argv[1], "-d") == 0)
/* -*-c-*-
*
- * $Id: dstr.c,v 1.6 1999/05/21 08:38:33 mdw Exp $
+ * $Id: dstr.c,v 1.7 1999/05/21 22:14:30 mdw Exp $
*
* Handle dynamically growing strings
*
/*----- Revision history --------------------------------------------------*
*
* $Log: dstr.c,v $
+ * Revision 1.7 1999/05/21 22:14:30 mdw
+ * Take advantage of the new dynamic string macros.
+ *
* Revision 1.6 1999/05/21 08:38:33 mdw
* Implement some more functions in terms of macros.
*
const char *q = p;
size_t n = d->len;
size_t sz;
+ dstr dd = DSTR_INIT;
while (*p) {
unsigned f;
int wd, prec;
- dstr dd;
enum {
f_short = 1,
/* --- Sort out the various silly flags and things --- */
- dstr_create(&dd);
DPUTC(&dd, '%');
f = 0;
sz = DSTR_PUTFSTEP;
}
formatted:
- dstr_destroy(&dd);
+ DRESET(&dd);
q = ++p;
}
DPUTM(d, q, p - q);
finished:
DPUTZ(d);
+ DDESTROY(&dd);
return (d->len - n);
}
/* -*-c-*-
*
- * $Id: testrig.c,v 1.4 1999/05/19 19:02:17 mdw Exp $
+ * $Id: testrig.c,v 1.5 1999/05/21 22:14:30 mdw Exp $
*
* Generic test driver
*
/*----- Revision history --------------------------------------------------*
*
* $Log: testrig.c,v $
+ * Revision 1.5 1999/05/21 22:14:30 mdw
+ * Take advantage of the new dynamic string macros.
+ *
* Revision 1.4 1999/05/19 19:02:17 mdw
* Aesthetic changes: fix spelling of `initialize'; use uppercase token
* constants; abandon old double-underscore convention for internal
/* --- Clear the token accumulator --- */
- dstr_reset(&tok);
+ DRESET(&tok);
/* --- Prime the lookahead character --- */
static void dump_string(dstr *d, FILE *fp)
{
- dstr_write(d, fp);
+ DWRITE(d, fp);
}
test_type type_string = { cvt_string, dump_string };
ego(argv[0]);
for (i = 0; i < TEST_FIELDMAX; i++)
- dstr_create(&dv[i]);
+ DCREATE(&dv[i]);
/* --- Parse command line arguments --- */
/* --- Otherwise I expect a list of words --- */
for (i = 0; cch->f[i]; i++) {
- dstr_reset(&dv[i]);
+ DRESET(&dv[i]);
if (t != TOK_WORD)
die(1, "expected <word>; found `%s'", decode(t));
cch->f[i]->cvt(tok.buf, &dv[i]);