-/* $NetBSD: ppt.c,v 1.11 2002/11/26 03:49:53 kim Exp $ */
+/* $NetBSD: ppt.c,v 1.19 2011/08/29 20:30:37 joerg Exp $ */
/*
* Copyright (c) 1988, 1993
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
#include <sys/cdefs.h>
#ifndef lint
-__COPYRIGHT("@(#) Copyright (c) 1988, 1993\n\
- The Regents of the University of California. All rights reserved.\n");
+__COPYRIGHT("@(#) Copyright (c) 1988, 1993\
+ The Regents of the University of California. All rights reserved.");
#endif /* not lint */
#ifndef lint
#if 0
static char sccsid[] = "@(#)ppt.c 8.1 (Berkeley) 5/31/93";
#else
-__RCSID("$NetBSD: ppt.c,v 1.11 2002/11/26 03:49:53 kim Exp $");
+__RCSID("$NetBSD: ppt.c,v 1.19 2011/08/29 20:30:37 joerg Exp $");
#endif
#endif /* not lint */
#define EDGE "___________"
- void usage __P((void));
- int main __P((int, char *[]));
-static void putppt __P((int));
- int getppt __P((const char *));
+static void putppt(int);
+static int getppt(const char *);
-void
+__dead static void
usage(void)
{
extern char *__progname;
}
int
-main(argc, argv)
- int argc;
- char **argv;
+main(int argc, char **argv)
{
char *p, buf[132];
- int c, start, dflag;
+ int c, start, neednl, dflag;
/* Revoke setgid privileges */
setgid(getgid());
+ dflag = 0;
while ((c = getopt(argc, argv, "dh")) != -1)
switch(c) {
case 'd':
dflag = 1;
break;
- case '?': case 'h':
+ case 'h':
+ case '?':
default:
usage();
}
usage();
start = 0;
+ neednl = 0;
while (fgets(buf, sizeof(buf), stdin) != NULL) {
c = getppt(buf);
if (c < 0) {
if (start) {
- /* lost sync */
- putchar('\n');
+ /* lost sync? */
+ if (neednl)
+ putchar('\n');
exit(0);
} else
continue;
}
start = 1;
putchar(c);
+ neednl = (c != '\n');
}
if (!feof(stdin))
err(1, "fgets");
- putchar('\n');
+ if (neednl)
+ putchar('\n');
} else {
(void) puts(EDGE);
- if (argc > 1)
- while ((p = *++argv)) {
+ if (argc > 0)
+ while ((p = *argv++)) {
for (; *p; ++p)
putppt((int)*p);
- if ((*(argv + 1)))
+ if ((*(argv)))
putppt((int)' ');
}
else while ((c = getchar()) != EOF)
}
static void
-putppt(c)
- int c;
+putppt(int c)
{
int i;
(void) putchar('\n');
}
-int
+static int
getppt(const char *buf)
{
const char *p = strchr(buf, '.');