]> diplodocus.org Git - nmh/blobdiff - uip/dp.c
Alter HasSuffixC()'s char * to be const.
[nmh] / uip / dp.c
index 2e07197303ad4ef3f30d1f35cf3a63c6cb502346..7e53a5c9fc7f7f90d28841e8264605043510eda6 100644 (file)
--- a/uip/dp.c
+++ b/uip/dp.c
@@ -8,6 +8,7 @@
  */
 
 #include <h/mh.h>
+#include <h/utils.h>
 #include <h/fmt_scan.h>
 #include <h/tws.h>
 
@@ -50,7 +51,7 @@ main (int argc, char **argv)
     char buf[BUFSIZ], **argp, **arguments;
     char *dates[NDATES];
 
-    if (nmh_init(argv[0], 1)) { return 1; }
+    if (nmh_init(argv[0], 2)) { return 1; }
 
     arguments = getarguments (invo_name, argc, argv, 1);
     argp = arguments;
@@ -108,11 +109,11 @@ main (int argc, char **argv)
        if ((width = sc_width ()) < WIDTH / 2) {
            /* Default:  width of the terminal, but at least WIDTH/2. */
            width = WIDTH / 2;
-       } else if (width == 0) {
-           /* Unlimited width. */
-           width = INT_MAX;
        }
        width -= 2;
+    } else if (width == 0) {
+       /* Unlimited width.  */
+       width = INT_MAX;
     }
     fmt_compile (nfs, &fmt, 1);
 
@@ -136,14 +137,14 @@ static int
 process (char *date, int length)
 {
     int status = 0;
-    charstring_t scanl = charstring_create (length);
-    register struct comp *cptr;
+    charstring_t scanl =
+       charstring_create (length < NMH_BUFSIZ ? length : NMH_BUFSIZ);
+    struct comp *cptr;
 
     cptr = fmt_findcomp ("text");
     if (cptr) {
-       if (cptr->c_text)
-           free(cptr->c_text);
-       cptr->c_text = getcpy(date);
+        mh_xfree(cptr->c_text);
+       cptr->c_text = mh_xstrdup(date);
     }
     fmt_scan (fmt, scanl, length, dat, NULL);
     fputs (charstring_buffer (scanl), stdout);