]> diplodocus.org Git - nmh/blobdiff - uip/ap.c
Removed msh relics from scansbr.c, including a global.
[nmh] / uip / ap.c
index a8f9169f9a597494caaf1277453cea698bd134a7..1148871d72ddc472bb3b8606361fc757f0e5fb9f 100644 (file)
--- a/uip/ap.c
+++ b/uip/ap.c
@@ -53,11 +53,7 @@ main (int argc, char **argv)
     char buf[BUFSIZ], **argp;
     char **arguments, *addrs[NADDRS];
 
-    setlocale(LC_ALL, "");
-    invo_name = r1bindex (argv[0], '/');
-
-    /* read user profile/context */
-    context_read();
+    if (nmh_init(argv[0], 1)) { return 1; }
 
     mts_init (invo_name);
     arguments = getarguments (invo_name, argc, argv, 1);
@@ -148,7 +144,7 @@ process (char *arg, int length)
 {
     int        status = 0;
     register char *cp;
-    char buffer[WBUFSIZ + 1], error[BUFSIZ];
+    char error[BUFSIZ];
     register struct comp *cptr;
     register struct pqpair *p, *q;
     struct pqpair pq;
@@ -171,6 +167,8 @@ process (char *arg, int length)
     }
 
     for (p = pq.pq_next; p; p = q) {
+       charstring_t scanl = charstring_create (length);
+
        cptr = fmt_findcomp ("text");
        if (cptr) {
            if (cptr->c_text)
@@ -186,8 +184,9 @@ process (char *arg, int length)
            p->pq_error = NULL;
        }
 
-       fmt_scan (fmt, buffer, sizeof buffer - 1, length, dat, NULL);
-       fputs (buffer, stdout);
+       fmt_scan (fmt, scanl, length, dat, NULL);
+       fputs (charstring_buffer (scanl), stdout);
+       charstring_free (scanl);
 
        if (p->pq_text)
            free (p->pq_text);