Discussion:
diff's to deal with troff/diftroff/text Comments inline
Chris Bennett
2016-01-29 22:04:40 UTC
Permalink
common.c-troff-diff
pathnames.h-troff-diff
printjob.c-troff-diff

I don't see any problems with this first one. I also moved "/usr/bin/pr"
over to line up with rest of items, since I was changing this one
anyway.

Index: pathnames.h
===================================================================
RCS file: /cvs/src/usr.sbin/lpr/common_source/pathnames.h,v
retrieving revision 1.6
diff -u -p -u -r1.6 pathnames.h
--- pathnames.h 28 Oct 2015 13:25:55 -0000 1.6
+++ pathnames.h 29 Jan 2016 18:08:29 -0000
@@ -37,11 +37,6 @@
#define _PATH_DEFDEVLP "/dev/lp"
#define _PATH_DEFSPOOL "/var/spool/output/lpd"
#define _PATH_HOSTSLPD "/etc/hosts.lpd"
-#define _PATH_PR "/usr/bin/pr"
+#define _PATH_PR "/usr/bin/pr"
#define _PATH_PRINTCAP "/etc/printcap"
#define _PATH_SOCKETNAME "/var/run/printer"
-#define _PATH_VFONT "/usr/libdata/vfont/"
-#define _PATH_VFONTB "/usr/libdata/vfont/B"
-#define _PATH_VFONTI "/usr/libdata/vfont/I"
-#define _PATH_VFONTR "/usr/libdata/vfont/R"
-#define _PATH_VFONTS "/usr/libdata/vfont/S"


Here I am getting rid of variables that deal with ditroff, troff and
tex.
These three items run together in printjob.c

Index: common.c
===================================================================
RCS file: /cvs/src/usr.sbin/lpr/common_source/common.c,v
retrieving revision 1.40
diff -u -p -u -r1.40 common.c
--- common.c 12 Jan 2016 23:35:13 -0000 1.40
+++ common.c 29 Jan 2016 18:07:32 -0000
@@ -64,7 +64,6 @@
char *AF; /* accounting file */
long BR; /* baud rate if lp is a tty */
char *CF; /* name of cifplot filter (per job) */
-char *DF; /* name of tex filter (per job) */
long DU; /* daemon user-id */
char *FF; /* form feed string */
char *GF; /* name of graph(1G) filter (per job) */
@@ -76,7 +75,6 @@ char *LP; /* line printer device name *
long MC; /* maximum number of copies allowed */
char *MS; /* stty flags to set if lp is a tty */
long MX; /* maximum number of blocks to copy */
-char *NF; /* name of ditroff filter (per job) */
char *OF; /* name of output filter (created once) */
long PL; /* page length */
long PW; /* page width */
@@ -94,7 +92,6 @@ char *SD; /* spool directory */
long SF; /* suppress FF on each print job */
long SH; /* suppress header page */
char *ST; /* status file name */
-char *TF; /* name of troff filter (per job) */
char *TR; /* trailer string to be output when Q empties */
char *VF; /* name of vplot filter (per job) */



Index: printjob.c
===================================================================
RCS file: /cvs/src/usr.sbin/lpr/lpd/printjob.c,v
retrieving revision 1.56
diff -u -p -u -r1.56 printjob.c
--- printjob.c 12 Jan 2016 23:35:13 -0000 1.56
+++ printjob.c 29 Jan 2016 18:06:06 -0000
@@ -317,16 +317,6 @@ again:
goto again;
}

-#define FONTLEN 50
-char fonts[4][FONTLEN]; /* fonts for troff */
-
-char ifonts[4][40] = {
- _PATH_VFONTR,
- _PATH_VFONTI,
- _PATH_VFONTB,
- _PATH_VFONTS,
-};
-

Above make sense since comes from removal of troff fonts.



/*
* The remaining part is the reading of the control file (cf)
* and performing the various actions.
@@ -348,14 +338,6 @@ printit(char *file)
(void)close(fd);
return(OK);
}
- /*
- * Reset troff fonts.
- */
- for (i = 0; i < 4; i++)
- strlcpy(fonts[i], ifonts[i], FONTLEN);
- (void)snprintf(&width[2], sizeof(width) - 2, "%ld", PW);
- indent[2] = '0';
- indent[3] = '\0';

Removal of for ... and next line seem proper.
Removal of next three lines also appear OK, but I would like some
feedback to be sure about them. (And they are in same section, so they
must be part of it :) Ha Ha.)



/*
* read the control file for work to do
@@ -367,28 +349,22 @@ printit(char *file)
* S -- "stat info" for symbolic link protection
* J -- "job name" on banner page
* C -- "class name" on banner page
- * L -- "literal" user's name to print on banner
+ * L -- "literal" user's name to print on banner
* T -- "title" for pr
* H -- "host name" of machine where lpr was done
- * P -- "person" user's login name
- * I -- "indent" amount to indent output
+ * P -- "person" user's login name
+ * I -- "indent" amount to indent output
* R -- laser dpi "resolution"
- * f -- "file name" name of text file to print
+ * f -- "file name" name of text file to print
* l -- "file name" text file with control chars
* p -- "file name" text file to print with pr(1)
- * t -- "file name" troff(1) file to print
- * n -- "file name" ditroff(1) file to print
* d -- "file name" dvi file to print
* g -- "file name" plot(1G) file to print
* v -- "file name" plain raster file to print
* c -- "file name" cifplot file to print
- * 1 -- "R font file" for troff
- * 2 -- "I font file" for troff
- * 3 -- "B font file" for troff
- * 4 -- "S font file" for troff
* N -- "name" of file (used by lpq)
- * U -- "unlink" name of file to remove
- * (after we print it. (Pass 2 only)).
+ * U -- "unlink" name of file to remove
+ * (after we print it. (Pass 2 only)).
* M -- "mail" to user when done printing
*
* get_line reads a line and expands tabs to blanks


Above I removed options for troff, ditroff and realigned to have options
line up in comments


@@ -453,14 +429,6 @@ printit(char *file)
banner(line+1, jobname);
continue;

- case '1': /* troff fonts */
- case '2':
- case '3':
- case '4':
- if (line[1] != '\0')
- strlcpy(fonts[line[0]-'1'], line+1, FONTLEN);
- continue;
-
case 'W': /* page width */
strlcpy(width+2, line+1, sizeof(width) - 2);
continue;
@@ -524,7 +492,7 @@ pass2:


I removed cases for troff fonts.


/*
* Print a file.
- * Set up the chain [ PR [ | {IF, OF} ] ] or {IF, RF, TF, NF, DF, CF, VF}.
+ * Set up the chain [ PR [ | {IF, OF} ] ] or {IF, RF, CF, VF}.
* Return -1 if a non-recoverable error occurred,
* 2 if the filter detected some errors (but printed the job anyway),
* 1 if we should try to reprint this job and
@@ -646,28 +614,6 @@ print(int format, char *file)
av[2] = length;
n = 3;
break;
- case 't': /* print troff output */
- case 'n': /* print ditroff output */
- case 'd': /* print tex output */
- (void)unlink(".railmag");
- if ((fo = open(".railmag", O_CREAT|O_WRONLY|O_EXCL, FILMOD)) < 0) {
- syslog(LOG_ERR, "%s: cannot create .railmag", printer);
- (void)unlink(".railmag");
- } else {
- for (n = 0; n < 4; n++) {
- if (fonts[n][0] != '/')
- (void)write(fo, _PATH_VFONT,
- sizeof(_PATH_VFONT) - 1);
- (void)write(fo, fonts[n], strlen(fonts[n]));
- (void)write(fo, "\n", 1);
- }
- (void)close(fo);
- }
- prog = (format == 't') ? TF : (format == 'n') ? NF : DF;
- av[1] = pxwidth;
- av[2] = pxlength;
- n = 3;
- break;
case 'c': /* print cifplot output */
prog = CF;
av[1] = pxwidth;

Above I removed cases for troff ditroff and tex files.


@@ -1327,9 +1273,6 @@ init(void)
cgetstr(bp, "of", &OF);
cgetstr(bp, "if", &IF);
cgetstr(bp, "rf", &RF);
- cgetstr(bp, "tf", &TF);
- cgetstr(bp, "nf", &NF);
- cgetstr(bp, "df", &DF);
cgetstr(bp, "gf", &GF);
cgetstr(bp, "vf", &VF);
cgetstr(bp, "cf", &CF);


Above I removed cgetstr for troff ditroff and tex files.


Compiles fine, but I don't have the printers and network to
serial/parallel boxes. Unless I threw them away, I have some really old
ones.

I think it might be best to have someone who uses really old stuff like
serial printers, etc. like in restaurants to test this first?

Chris
Chris Bennett
2016-01-29 22:42:19 UTC
Permalink
Sorry, whitespace is all messed up.
I use vim, mostly for Perl or PostgreSQL.

Perl is best with 4 spaces substituted for a tab.
I will see about fixing vim screwing things up and I should also read
style before messing around with that part of files.

Anyway, I will submit new diff's if all is OK.

Chris

Loading...