X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fdp.c;h=b9158459be7ab6236bca8bd63fb457b63c569d58;hb=492101aee1185135f239b3aabd5b2494f748c931;hp=a9bc90f1023fae1be357f7249d409a2630263775;hpb=197f95940cc0860683e6988352f721e6603f9339;p=mmh diff --git a/uip/dp.c b/uip/dp.c index a9bc90f..b915845 100644 --- a/uip/dp.c +++ b/uip/dp.c @@ -2,12 +2,14 @@ /* * dp.c -- parse dates 822-style * - * $Id$ + * This code is Copyright (c) 2002, by the authors of nmh. See the + * COPYRIGHT file in the root directory of the nmh distribution for + * complete copyright information. */ #include #include -#include +#include #define NDATES 100 @@ -26,7 +28,7 @@ static struct swit switches[] = { #define VERSIONSW 3 { "version", 0 }, #define HELPSW 4 - { "help", 4 }, + { "help", 0 }, { NULL, 0 } }; @@ -35,11 +37,6 @@ static struct format *fmt; static int dat[5]; /* - * prototypes - */ -int sc_width (void); /* from termsbr.c */ - -/* * static prototypes */ static int process (char *, int); @@ -77,10 +74,10 @@ main (int argc, char **argv) snprintf (buf, sizeof(buf), "%s [switches] dates ...", invo_name); print_help (buf, switches, 1); - done (1); + done (0); case VERSIONSW: print_version(invo_name); - done (1); + done (0); case FORMSW: if (!(form = *argp++) || *form == '-') @@ -120,7 +117,7 @@ main (int argc, char **argv) } if (width > WBUFSIZ) width = WBUFSIZ; - fmt_compile (nfs, &fmt); + fmt_compile (nfs, &fmt, 1); dat[0] = 0; dat[1] = 0; @@ -132,7 +129,9 @@ main (int argc, char **argv) status += process (dates[datep], width); context_save (); /* save the context file */ - return done (status); + fmt_free (fmt, 1); + done (status); + return 1; } @@ -143,10 +142,13 @@ process (char *date, int length) char buffer[WBUFSIZ + 1]; register struct comp *cptr; - FINDCOMP (cptr, "text"); - if (cptr) - cptr->c_text = date; - fmt_scan (fmt, buffer, length, dat); + cptr = fmt_findcomp ("text"); + if (cptr) { + if (cptr->c_text) + free(cptr->c_text); + cptr->c_text = getcpy(date); + } + fmt_scan (fmt, buffer, sizeof buffer - 1, length, dat); fputs (buffer, stdout); return status;