|
|
1.1 root 1: BEGIN {
2: if(texinp != "")
3: ninputs = split(texinp, texinputs, ":")
4: else {
5: ninputs = 1
6: texinputs[1] = "."
7: }
8: print "ninputs " ninputs|"cat 1>&2"
9: idef=0
10: }
11: /\\(input|include)[{ ]/ {
12: getfile("", "")
13: next
14: }
15: /.*/ {
16: print $0
17: }
18: function getfile(fname, oname, saveline, n, bname, tname, j, name, flag){
19: if(fname == ""){
20: saveline = $0
21: if($0 ~ /\\input/)n = index($0,"\\input")+7
22: else n=index($0,"\\include")+9
23: bname = substr($0,n)
24: gsub(/^[ {]*/,"",bname)
25: gsub(/[ }].*/,"",bname)
26: gsub(/[ }]$/,"",bname)
27: tname = bname ".tex"
28: }
29: else {
30: bname = fname
31: tname = fname
32: }
33: for(j=1; j<= ninputs; j++){
34: name = texinputs[j] "/" tname
35: if((getline <name) >=0)break
36: name = texinputs[j] "/" bname
37: if((getline <name) >=0)break
38: name = ""
39: }
40: if(name == ""){
41: print "cannot open file " bname " or " tname | "cat 1>&2"
42: return
43: }
44: if(name ~ /\/usr\/lib\/tex\/macros/|| name ~ /macros.tex/){
45: if(oname == "")print saveline
46: else print saveline >oname
47: return
48: }
49: flag=0
50: while(1){
51: if(flag)if((getline <name)<1)break
52: flag=1
53: print $0
54: }
55: close(name)
56: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.