Date: Thu, 10 Sep 1998 22:05:02 +0200 (CEST) From: Stefan Eggers <seggers@semyam.dinoco.de> To: FreeBSD-gnats-submit@FreeBSD.ORG Cc: seggers@semyam.dinoco.de Subject: bin/7886: lpr code cleanup Message-ID: <199809102005.WAA28434@semyam.dinoco.de>
next in thread | raw e-mail | index | archive | help
>Number: 7886
>Category: bin
>Synopsis: lpr code cleanup
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Thu Sep 10 13:20:01 PDT 1998
>Last-Modified:
>Originator: Stefan Eggers
>Organization:
none
>Release: FreeBSD 3.0-CURRENT i386
>Environment:
-current from Thursday (September 8th, 1998). The system has
the standard system GCC and in addition to that egcs from July 15th,
1998 installed.
>Description:
The code didn't compile w/o warnings with egcs and as part of
the lpr code used "-Werror" these were fatal. This was caused by some
variable declarations of the form "register i;" which egcs warns about
and according to the GCC docs I read GCC 2.8 will do the same on this.
In addition to that I noticed some minor bugs (msearch some-
times returned int while was declared as returning void in another
source file) and declarations scattered among the source files where
they could have been in a common include file.
I also expanded the use of the CWARNFLAGS variable a bit and
made it more strict.
>How-To-Repeat:
Just read the source and have fun with it. :-(
>Fix:
The patch I append compiles cleanly with the above mentioned
compilers. Real world tests I didn't do, yet as I am waiting for
something to print in order not to waste ink and paper. I think it is
still worth a look or I wouldn't have committed it.
Index: Makefile.inc
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/usr.sbin/lpr/Makefile.inc,v
retrieving revision 1.3
diff -u -r1.3 Makefile.inc
--- Makefile.inc 1998/03/07 09:47:52 1.3
+++ Makefile.inc 1998/08/24 17:51:30
@@ -1,6 +1,6 @@
# $Id: Makefile.inc,v 1.3 1998/03/07 09:47:52 bde Exp $
-CWARNFLAGS= -Werror -Wall -Wnested-externs -Wmissing-prototypes -Wno-unused
+CWARNFLAGS= -Werror -Wall -Wnested-externs -Wmissing-prototypes -Wno-unused -Wredundant-decls -Wstrict-prototypes
.if exists(${.OBJDIR}/../common_source)
LIBLPR= ${.OBJDIR}/../common_source/liblpr.a
Index: chkprintcap/Makefile
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/usr.sbin/lpr/chkprintcap/Makefile,v
retrieving revision 1.5
diff -u -r1.5 Makefile
--- Makefile 1998/06/11 03:51:34 1.5
+++ Makefile 1998/08/24 16:44:56
@@ -2,7 +2,7 @@
PROG= chkprintcap
MAN8= chkprintcap.8
-CFLAGS+=-I${.CURDIR}/../common_source -Wall
+CFLAGS+=-I${.CURDIR}/../common_source ${CWARNFLAGS}
.PATH: ${.CURDIR}/../common_source
DPADD= ${LIBLPR}
LDADD= ${LIBLPR}
Index: common_source/Makefile
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/usr.sbin/lpr/common_source/Makefile,v
retrieving revision 1.3
diff -u -r1.3 Makefile
--- Makefile 1998/06/11 03:53:23 1.3
+++ Makefile 1998/08/24 17:58:28
@@ -11,8 +11,7 @@
NOMAN= noman
NOPROFILE= noprofile
NOPIC= nopic
-CFLAGS+= -Wall -Wnested-externs -Wmissing-prototypes \
- -Wstrict-prototypes -Wredundant-decls
+CFLAGS+= ${CWARNFLAGS}
install:
Index: common_source/common.c
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/usr.sbin/lpr/common_source/common.c,v
retrieving revision 1.10
diff -u -r1.10 common.c
--- common.c 1997/12/02 20:45:18 1.10
+++ common.c 1998/08/24 16:35:58
@@ -79,7 +79,7 @@
{
register int linel = 0;
register char *lp = line;
- register c;
+ register int c;
while ((c = getc(cfp)) != '\n' && linel+1 < sizeof(line)) {
if (c == EOF)
Index: lpc/cmds.c
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/usr.sbin/lpr/lpc/cmds.c,v
retrieving revision 1.11
diff -u -r1.11 cmds.c
--- cmds.c 1997/12/02 20:45:37 1.11
+++ cmds.c 1998/08/24 17:42:45
@@ -70,8 +70,6 @@
#include "extern.h"
#include "pathnames.h"
-extern uid_t uid, euid;
-
static void abortpr __P((struct printer *, int));
static int doarg __P((char *));
static int doselect __P((struct dirent *));
Index: lpc/extern.h
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/usr.sbin/lpr/lpc/extern.h,v
retrieving revision 1.2
diff -u -r1.2 extern.h
--- extern.h 1997/12/02 20:45:41 1.2
+++ extern.h 1998/08/24 17:54:23
@@ -35,6 +35,7 @@
*/
+#include <sys/types.h>
#include <sys/cdefs.h>
@@ -57,3 +58,4 @@
extern int NCMDS;
extern struct cmd cmdtab[];
+extern uid_t uid, euid;
Index: lpc/lpc.c
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/usr.sbin/lpr/lpc/lpc.c,v
retrieving revision 1.7
diff -u -r1.7 lpc.c
--- lpc.c 1998/03/22 20:19:27 1.7
+++ lpc.c 1998/09/10 19:43:52
@@ -74,16 +74,17 @@
#define MAX_CMDLINE 200
#define MAX_MARGV 20
-int fromatty;
+static int fromatty;
-char cmdline[MAX_CMDLINE];
-int margc;
-char *margv[MAX_MARGV];
-int top;
-uid_t uid, euid;
+static char cmdline[MAX_CMDLINE];
+static int margc;
+static char *margv[MAX_MARGV];
+static int top;
+uid_t uid, euid;
-jmp_buf toplevel;
+static jmp_buf toplevel;
+int main __P((int, char *[]));
static void cmdscanner __P((int));
static struct cmd *getcmd __P((char *));
static void intr __P((int));
Index: lpd/Makefile
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/usr.sbin/lpr/lpd/Makefile,v
retrieving revision 1.8
diff -u -r1.8 Makefile
--- Makefile 1998/06/11 03:52:41 1.8
+++ Makefile 1998/08/24 16:47:18
@@ -2,7 +2,7 @@
# $Id: Makefile,v 1.8 1998/06/11 03:52:41 jb Exp $
PROG= lpd
-CFLAGS+=-I${.CURDIR}/../common_source -Wall
+CFLAGS+=-I${.CURDIR}/../common_source ${CWARNFLAGS}
MAN8= lpd.8
SRCS= lpd.c printjob.c recvjob.c lpdchar.c modes.c
DPADD= ${LIBLPR}
Index: lpd/extern.h
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/usr.sbin/lpr/lpd/extern.h,v
retrieving revision 1.3
diff -u -r1.3 extern.h
--- extern.h 1997/12/02 20:45:53 1.3
+++ extern.h 1998/08/24 18:21:33
@@ -40,9 +40,11 @@
extern char fromb[];
struct printer;
+struct termios;
__BEGIN_DECLS
void printjob __P((struct printer *pp));
void startprinting __P((const char *printer));
void recvjob __P((const char *printer));
+int msearch __P((char *str, struct termios *ip));
__END_DECLS
Index: lpd/lpd.c
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/usr.sbin/lpr/lpd/lpd.c,v
retrieving revision 1.9
diff -u -r1.9 lpd.c
--- lpd.c 1997/12/02 20:45:54 1.9
+++ lpd.c 1998/09/10 19:45:56
@@ -106,6 +106,7 @@
int lflag; /* log requests flag */
int from_remote; /* from remote socket */
+int main __P((int, char **));
static void reapchild __P((int));
static void mcleanup __P((int));
static void doit __P((void));
Index: lpd/modes.c
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/usr.sbin/lpr/lpd/modes.c,v
retrieving revision 1.4
diff -u -r1.4 modes.c
--- modes.c 1997/12/02 20:45:56 1.4
+++ modes.c 1998/08/24 18:23:19
@@ -42,6 +42,8 @@
#include <stddef.h>
#include <string.h>
#include <termios.h>
+#include "lp.local.h"
+#include "extern.h"
struct modes {
char *name;
Index: lpd/printjob.c
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/usr.sbin/lpr/lpd/printjob.c,v
retrieving revision 1.19
diff -u -r1.19 printjob.c
--- printjob.c 1998/08/21 18:08:46 1.19
+++ printjob.c 1998/08/24 18:21:53
@@ -141,8 +141,6 @@
static void sendmail __P((struct printer *pp, char *user, int bombed));
static void setty __P((const struct printer *pp));
-void msearch __P((char *, struct termios *));
-
void
printjob(pp)
struct printer *pp;
@@ -1150,7 +1148,7 @@
register char *p;
int c;
{
- register scnwidth;
+ register int scnwidth;
for (scnwidth = WIDTH; --scnwidth;) {
key <<= 1;
@@ -1168,7 +1166,7 @@
char *scsp;
{
register char *strp;
- register nchrs, j;
+ register int nchrs, j;
char outbuf[LINELEN+1], *sp, c, cc;
int d, scnhgt;
@@ -1596,7 +1594,7 @@
char *s = strdup(pp->mode_set), *tmp;
while ((tmp = strsep(&s, ",")) != NULL) {
- msearch(tmp, &ttybuf);
+ (void) msearch(tmp, &ttybuf);
}
}
if (pp->mode_set != 0 || pp->baud_rate > 0) {
Index: lpq/lpq.c
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/usr.sbin/lpr/lpq/lpq.c,v
retrieving revision 1.5
diff -u -r1.5 lpq.c
--- lpq.c 1997/12/02 20:46:04 1.5
+++ lpq.c 1998/08/24 17:58:00
@@ -79,6 +79,7 @@
static int ckqueue __P((const struct printer *));
static void usage __P((void));
+int main __P((int, char **));
int
main(argc, argv)
Index: lpr/lpr.c
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/usr.sbin/lpr/lpr/lpr.c,v
retrieving revision 1.24
diff -u -r1.24 lpr.c
--- lpr.c 1998/04/17 17:25:49 1.24
+++ lpr.c 1998/09/10 19:49:17
@@ -550,7 +550,7 @@
cleanup(signo)
int signo;
{
- register i;
+ register int i;
signal(SIGHUP, SIG_IGN);
signal(SIGINT, SIG_IGN);
@@ -610,6 +610,9 @@
printf("%s: cannot open %s\n", name, file);
return(-1);
}
+ /*
+ * XXX Shall we add a similar test for ELF?
+ */
if (read(fd, &execb, sizeof(execb)) == sizeof(execb) &&
!N_BADMAG(execb)) {
printf("%s: %s is an executable program", name, file);
Index: lprm/lprm.c
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/usr.sbin/lpr/lprm/lprm.c,v
retrieving revision 1.4
diff -u -r1.4 lprm.c
--- lprm.c 1997/12/02 20:46:15 1.4
+++ lprm.c 1998/09/10 19:49:44
@@ -82,6 +82,7 @@
static char luser[16]; /* buffer for person */
+int main __P((int, char *[]));
static void usage __P((void));
int
Index: pac/Makefile
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/usr.sbin/lpr/pac/Makefile,v
retrieving revision 1.5
diff -u -r1.5 Makefile
--- Makefile 1998/03/07 09:48:14 1.5
+++ Makefile 1998/08/24 16:51:17
@@ -2,7 +2,7 @@
# $Id: Makefile,v 1.5 1998/03/07 09:48:14 bde Exp $
PROG= pac
-CFLAGS+=-I${.CURDIR}/../common_source
+CFLAGS+=-I${.CURDIR}/../common_source ${CWARNFLAGS}
MAN8= pac.8
.PATH: ${.CURDIR}/../common_source
DPADD= ${LIBLPR}
Index: pac/pac.c
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/usr.sbin/lpr/pac/pac.c,v
retrieving revision 1.8
diff -u -r1.8 pac.c
--- pac.c 1997/12/02 20:46:22 1.8
+++ pac.c 1998/09/10 19:51:14
@@ -56,9 +56,11 @@
#include <sys/param.h>
#include <dirent.h>
+#include <err.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <unistd.h>
#include "lp.h"
#include "lp.local.h"
@@ -94,6 +96,7 @@
static struct hent *hashtab[HSHSIZE]; /* Hash table proper */
+int main __P((int, char **));
static void account __P((FILE *));
static int any __P((int, char []));
static int chkprinter __P((char *));
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199809102005.WAA28434>
