]> diplodocus.org Git - nmh/blobdiff - uip/msh.c
Started revising m_getfld() code to replace direct buffer
[nmh] / uip / msh.c
index f6d1a362b4cc9f2c59125e57957418b549136e4e..36286e0b1d2478aad8832dd29b3b017be741b8a2 100644 (file)
--- a/uip/msh.c
+++ b/uip/msh.c
@@ -25,7 +25,7 @@
 #include <termios.h>
 
 #include <pwd.h>
-#include <h/m_setjmp.h>
+#include <setjmp.h>
 #include <signal.h>
 #include <h/msh.h>
 #include <h/vmhsbr.h>
@@ -155,7 +155,6 @@ int told_to_quit;           /* SIGQUIT detected */
  */
 void fsetup (char *);
 void setup (char *);
-FILE *msh_ready (int, int);
 void readids (int);
 int readid (int);
 void display_info (int);
@@ -174,7 +173,6 @@ static int read_map (char *, long);
 static int read_file (long, int);
 
 static void m_gMsgs (int);
-FILE *msh_ready (int, int);
 static int check_folder (int);
 static void scanrange (int, int);
 static void scanstring (char *);
@@ -237,10 +235,10 @@ main (int argc, char **argv)
                case HELPSW: 
                    snprintf (buf, sizeof(buf), "%s [switches] file", invo_name);
                    print_help (buf, switches, 1);
-                   done (1);
+                   done (0);
                case VERSIONSW:
                    print_version(invo_name);
-                   done (1);
+                   done (0);
 
                case IDSW: 
                    if (!(cp = *argp++) || *cp == '-')
@@ -803,10 +801,10 @@ m_gMsgs (int n)
 FILE *
 msh_ready (int msgnum, int full)
 {
-    NMH_UNUSED (full);
     register int msgp;
     int fd;
     char *cp;
+    NMH_UNUSED (full);
 
     if (yp) {
        fclose (yp);
@@ -1007,15 +1005,17 @@ readid (int msgnum)
        return Msgs[msgnum].m_bboard_id;
 
     zp = msh_ready (msgnum, 0);
-    for (state = FLD;;)
-       switch (state = m_getfld (state, name, buf, sizeof(buf), zp)) {
+    for (state = FLD;;) {
+       int bufsz = sizeof buf;
+       switch (state = m_getfld (state, name, buf, &bufsz, zp)) {
            case FLD: 
            case FLDEOF: 
            case FLDPLUS: 
                if (!mh_strcasecmp (name, BBoard_ID)) {
                    bp = getcpy (buf);
                    while (state == FLDPLUS) {
-                       state = m_getfld (state, name, buf, sizeof(buf), zp);
+                       bufsz = sizeof buf;
+                       state = m_getfld (state, name, buf, &bufsz, zp);
                        bp = add (buf, bp);
                    }
                    i = atoi (bp);
@@ -1026,13 +1026,15 @@ readid (int msgnum)
                        continue;
                }
                while (state == FLDPLUS)
-                   state = m_getfld (state, name, buf, sizeof(buf), zp);
+                   bufsz = sizeof buf;
+                   state = m_getfld (state, name, buf, &bufsz, zp);
                if (state != FLDEOF)
                    continue;
 
            default: 
                return 0;
        }
+    }
 }
 
 
@@ -1917,7 +1919,7 @@ pFIN (void)
 {
     int status;
 
-    switch (m_setjmp (peerenv)) {
+    switch (setjmp (peerenv)) {
        case OK: 
            SIGNAL (SIGALRM, alrmser);
            alarm (ALARM);