#include <setjmp.h>
#include <h/tws.h>
#include <h/mts.h>
+#include "h/done.h"
#include <h/utils.h>
-#include "../sbr/lock_file.h"
-#include "../sbr/m_mktemp.h"
+#include "sbr/lock_file.h"
+#include "sbr/m_mktemp.h"
#include <pwd.h>
#include <sys/ioctl.h>
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);
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 *);
}
fclose (fp);
- return (won ? 0 : -1);
+ return won ? 0 : -1;
}
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) : "");
}
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));
}
}
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
{
volatile int fd = fd_arg;
pid_t child_id;
- int i, bytes, seconds, status;
+ int bytes, seconds, status;
struct stat st;
if (verbose && !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 */
}
#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);
setenv("SHELL", pw->pw_shell, 1);
execvp (pgm, vec);
- _exit (-1);
+ _exit(1);
default:
/* parent process */
else
pidstatus (status, stdout, ", failed");
}
- return (status == 0 ? 0 : -1);
+ return status == 0 ? 0 : -1;
}
/*
* Ruthlessly kill the child and anything
static char *
trim (char *cp)
{
- char buffer[BUFSIZ*4];
+ static char buffer[BUFSIZ * 4];
char *bp, *sp;
if (cp == NULL)
if (isspace((unsigned char) *sp))
*sp = ' ';
- /* now return a copy */
- return mh_xstrdup(bp);
+ return bp;
}
/*