X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/bf3160aa94f981374f0c6353344fd68a4e1daa12..8699f1cc:/uip/slocal.c?ds=inline diff --git a/uip/slocal.c b/uip/slocal.c index b249dc4b..df02d0d1 100644 --- a/uip/slocal.c +++ b/uip/slocal.c @@ -26,9 +26,10 @@ #include #include #include +#include "h/done.h" #include -#include "../sbr/lock_file.h" -#include "../sbr/m_mktemp.h" +#include "sbr/lock_file.h" +#include "sbr/m_mktemp.h" #include #include @@ -163,7 +164,7 @@ static int split (char *, char **); static int parse (int); static void expand (char *, char *, int); static void glob (int); -static struct pair *lookup (struct pair *, char *); +static struct pair *lookup (struct pair *, char *) PURE; static int logged_in (void); static int timely (char *, char *); static int usr_file (int, char *, int); @@ -172,9 +173,9 @@ static int usr_folder (int, char *); static void alrmser (int); static void get_sender (char *, char **); static int copy_message (int, char *, int); -static void verbose_printf (char *fmt, ...); -static void adorn (char *, char *, ...); -static void debug_printf (char *fmt, ...); +static void verbose_printf (char *fmt, ...) CHECK_PRINTF(1, 2); +static void adorn (char *, char *, ...) CHECK_PRINTF(2, 3); +static void debug_printf (char *fmt, ...) CHECK_PRINTF(1, 2); static int suppress_duplicates (int, char *); static char *trim (char *); @@ -636,7 +637,7 @@ usr_delivery (int fd, char *delivery, int su) } fclose (fp); - return (won ? 0 : -1); + return won ? 0 : -1; } @@ -802,12 +803,12 @@ parse (int fd) p->p_value = getcpy (q ? q->p_value : ""); p->p_flags &= ~P_CHK; if (debug) - debug_printf ("vars[%d]: name=\"%s\" value=\"%s\"\n", + debug_printf ("vars[%ld]: name=\"%s\" value=\"%s\"\n", p - vars, p->p_name, trim(p->p_value)); } if (debug) { for (p = hdrs; p->p_name; p++) - debug_printf ("hdrs[%d]: name=\"%s\" value=\"%s\"\n", + debug_printf ("hdrs[%ld]: name=\"%s\" value=\"%s\"\n", p - hdrs, p->p_name, p->p_value ? trim(p->p_value) : ""); } @@ -887,7 +888,7 @@ glob (int fd) if (debug) { for (p = vars; p->p_name; p++) - debug_printf ("vars[%d]: name=\"%s\" value=\"%s\"\n", + debug_printf ("vars[%ld]: name=\"%s\" value=\"%s\"\n", p - vars, p->p_name, trim(p->p_value)); } } @@ -931,13 +932,13 @@ logged_in (void) if (debug) continue; endutxent(); - return (utmped = DONE); + return utmped = DONE; } } endutxent(); #endif /* HAVE_GETUTXENT */ - return (utmped = NOTOK); + return utmped = NOTOK; } #define check(t,a,b) if (t < a || t > b) return -1 @@ -1046,7 +1047,7 @@ usr_pipe (int fd_arg, char *cmd, char *pgm, char **vec, int suppress) { volatile int fd = fd_arg; pid_t child_id; - int i, bytes, seconds, status; + int bytes, seconds, status; struct stat st; if (verbose && !suppress) @@ -1054,9 +1055,7 @@ usr_pipe (int fd_arg, char *cmd, char *pgm, char **vec, int suppress) lseek(fd, 0, SEEK_SET); - for (i = 0; (child_id = fork()) == -1 && i < 5; i++) - sleep (5); - + child_id = fork(); switch (child_id) { case -1: /* fork error */ @@ -1085,7 +1084,7 @@ usr_pipe (int fd_arg, char *cmd, char *pgm, char **vec, int suppress) } #endif /* TIOCNOTTY */ - setpgid ((pid_t) 0, getpid ()); /* put in own process group */ + setpgid(0, getpid()); /* put in own process group */ *environ = NULL; setenv("USER", pw->pw_name, 1); @@ -1093,7 +1092,7 @@ usr_pipe (int fd_arg, char *cmd, char *pgm, char **vec, int suppress) setenv("SHELL", pw->pw_shell, 1); execvp (pgm, vec); - _exit (-1); + _exit(1); default: /* parent process */ @@ -1123,7 +1122,7 @@ usr_pipe (int fd_arg, char *cmd, char *pgm, char **vec, int suppress) else pidstatus (status, stdout, ", failed"); } - return (status == 0 ? 0 : -1); + return status == 0 ? 0 : -1; } /* * Ruthlessly kill the child and anything @@ -1295,7 +1294,7 @@ fputs_error: static char * trim (char *cp) { - char buffer[BUFSIZ*4]; + static char buffer[BUFSIZ * 4]; char *bp, *sp; if (cp == NULL) @@ -1322,8 +1321,7 @@ trim (char *cp) if (isspace((unsigned char) *sp)) *sp = ' '; - /* now return a copy */ - return mh_xstrdup(bp); + return bp; } /*