ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/rt/duphead.c
Revision: 2.4
Committed: Tue Feb 25 02:47:22 2003 UTC (21 years, 2 months ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: rad3R5
Changes since 2.3: +1 -56 lines
Log Message:
Replaced inline copyright notice with #include "copyright.h"

File Contents

# Content
1 #ifndef lint
2 static const char RCSid[] = "$Id$";
3 #endif
4 /*
5 * Duplicate header on stdout.
6 *
7 * Externals declared in ray.h
8 */
9
10 #include "copyright.h"
11
12 #include "standard.h"
13 #include "paths.h"
14
15
16 int headismine = 1; /* true if header file belongs to me */
17
18 static char *headfname = NULL; /* temp file name */
19 static FILE *headfp = NULL; /* temp file pointer */
20
21
22 void
23 headclean() /* remove header temp file (if one) */
24 {
25 if (headfname == NULL)
26 return;
27 if (headfp != NULL)
28 fclose(headfp);
29 if (headismine)
30 unlink(headfname);
31 }
32
33
34 void
35 openheader() /* save standard output to header file */
36 {
37 static char template[] = TEMPLATE;
38
39 headfname = mktemp(template);
40 if (freopen(headfname, "w", stdout) == NULL) {
41 sprintf(errmsg, "cannot open header file \"%s\"", headfname);
42 error(SYSTEM, errmsg);
43 }
44 }
45
46
47 void
48 dupheader() /* repeat header on standard output */
49 {
50 register int c;
51
52 if (headfp == NULL) {
53 if ((headfp = fopen(headfname, "r")) == NULL)
54 error(SYSTEM, "error reopening header file");
55 #ifdef MSDOS
56 setmode(fileno(headfp), O_BINARY);
57 #endif
58 } else if (fseek(headfp, 0L, 0) < 0)
59 error(SYSTEM, "seek error on header file");
60 while ((c = getc(headfp)) != EOF)
61 putchar(c);
62 }