File: Intro.f8c

package info (click to toggle)
lprng-doc 3.4.1-3
  • links: PTS
  • area: main
  • in suites: hamm
  • size: 6,508 kB
  • ctags: 8
  • sloc: makefile: 139; perl: 62
file content (84 lines) | stat: -rw-r--r-- 2,148 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
.if \nt>0 .Z
.F1
.DS
.ta 3n +3n +3n +3n +3n +3n +3n +3n +3n +3n +3n +3n
.sz -1
.\"LP = open( 'lp' );  // open device
.\"OF = IF = LP;		// set defaults
.\"if( 'of' ) OF = filter( 'of' ) -> LP;
.\"                   // make OF filter
.\"if( accounting at start 'as')
.\"	do accounting;
.\"if( leader on open 'ld' ) `ld` -> OF;
.\"                  // send leader
.\"if( FF on open 'fo' ) `fo` -> OF;
.\"                  // send FF
.\".sp 0.5
.\"// check to see if banner required
.\"do_banner = 
.\"	(always banner 'ab'
.\"		|| (!suppress banner 'sb'
.\"			&& control file 'L' ));
.\"if( ! header last 'hl' && do_banner ){
.\"	BP = OF; bnr = null;
.\"	if( banner start 'bs' ) bnr = 'bs'
.\"	else if( banner program 'bp' ) bnr = 'bp'
.\"	if( bnr ){
.\"		BP = filter( bnr ) -> OF;
.\"	}
.\"	short banner info -> BP;
.\"	if( BP != OF ) close( BP );
.\"}
.\"// suspend the OF filter
.\"if( OF != LP ) suspend OF filter;
.\".sp 0.5
.\"for each data file df in job do
.\"	// send FF between files of job
.\"	if( !first job && ! suppress FF 'sf' ){
.\"		if( OF != LP ) wake up OF filter;
.\"		'ff' -> OF;
.\"		if( OF != LP ) suspend OF filter;
.\"	}
.\"	// get filter for job
.\"	?F = LP; // default - no filter
.\"	format = jobformat;
.\"	if( jobformat == 'f' or
.\"		jobformat = 'l' ){
.\"			format = 'f';
.\"	}
.\"	filter = format filter from printcap;
.\"	if( filter ){
.\"		?F = filter( filter ) -> LP;
.\"	}
.\"	// send data file to printer
.\"	// through filter
.\"	data file -> ?F;
.\"	// kill filter
.\"	if( ?F != LP ) close( ?F )
.\"endfor
.\".sp 0.5
// finish printing
if( OF != LP ) wake up OF filter;
if( header last 'hl' && do_banner ){
	if( ! no FF separator 'sf' )
		'ff' -> OF;
	BP = OF; bnr = null;
	if( banner end program 'be' ) bnr = 'be'
	else if( banner program 'bp' ) bnr = 'bp'
	if( bnr ){
		BP = filter( bnr ) -> OF;
	}
	short banner info -> BP;
	if( BP != OF ) close( BP );
}
.sp 0.5
if( ff on close 'fq' ) 'ff' -> OF;
if( trailer on close 'tr' ) tr -> OF;
if( accounting at end 'ae') do accounting;
if( OF != LP ) close( OF );
close( LP );
.sz +1
.DE
.FG "Figure 8c" "Printing algorithm used by LPRng
.if \nt=0 .F2
.if \nt>0 .ZZ