|
|
1.1 root 1: /*
2: * static char ID_sdp[] = "@(#) sdp.c: 1.1 1/8/82";
3: */
4:
5: #include <stdio.h>
6: #include <fatal.h>
7: #include <signal.h>
8:
9: /* define dummy variables used by ld (may be useful later) */
10: long SDP_read = 0;
11: long SDP_write= 0;
12: long LD_lock = 0;
13: long LD_unlock= 0;
14: int dflag = 0;
15:
16: extern char *sname();
17: #include "syms.h"
18: #include "tagitem.h"
19: #include "sdpsrc/hd/define2.h"
20: #include "sdpsrc/hd/define3.h"
21: #include "sdpsrc/hd/define4.h"
22: #include "sdpsrc/hd/struct.h"
23: #include "sdpsrc/hd/globals.h"
24:
25: #include "sdpsrc/lo/delist.c"
26: #include "sdpsrc/lo/enlist.c"
27: #include "sdpsrc/lo/fatal.c"
28: #include "sdpsrc/lo/getnxtpage.c"
29: #include "sdpsrc/lo/readpage.c"
30: #include "sdpsrc/lo/sojourn.c"
31: #include "sdpsrc/lo/repartition.c"
32: #include "sdpsrc/lo/writeframe.c"
33:
34: #include "sdpsrc/hi/allocate.c"
35: #include "sdpsrc/hi/flush.c"
36: #include "sdpsrc/hi/init.c"
37: #include "sdpsrc/hi/lock.c"
38: #include "sdpsrc/hi/unlock.c"
39: lderror(lvl, ln,fln,strng, a1,a2,a3,a4,a5,a6,a7,a8,a9,aa)
40: int lvl; /* error severity level */
41: int ln; /* line in ifile containing the error */
42: char *fln; /* name of the ifile containing the error */
43: char *strng; /* error message format */
44: int a1,a2,a3,a4,a5, /* error message format arguments */
45: a6,a7,a8,a9,aa;
46: {
47:
48: /*
49: * Prepend a filename and a line number to an error message.
50: * used for printing all parsing-related errors.
51: */
52:
53:
54: if (lvl != 2)
55: return;
56:
57: if (fln != NULL)
58: fprintf(stderr, " %s", sname(fln));
59: if ( ln > 0 )
60: fprintf(stderr, " %d", ln) ;
61:
62: switch(lvl) {
63: case 0:
64: fprintf(stderr, " warning: ");
65: break;
66: case 2:
67: fprintf(stderr, " fatal: ");
68: break;
69: default:
70: fprintf(stderr, ": ");
71: break;
72: }
73:
74: fprintf(stderr, strng, a1, a2, a3, a4, a5, a6, a7, a8, a9, aa);
75: fprintf(stderr, "\n");
76: fflush(stderr);
77:
78: if(lvl > 1)
79: exit();
80: }
81: char *
82: sname(s)
83: char *s;
84: {
85:
86: /*
87: * Returns pointer to "simple" name of path name; that is,
88: * pointer to first character after last '/'. If no slashes,
89: * returns pointer to first char of arg.
90: *
91: * If the string ends in a slash:
92: * 1. replace the terminating slash with '\0'
93: * 2. return a pointer to the first character after the last
94: * '/', or the first character in the string
95: */
96:
97: register char *p;
98:
99: p = s;
100: while( *p )
101: if(*p++ == '/')
102: if( *p == '\0' ) {
103: *(p-1) = '\0';
104: break;
105: }
106: else
107: s = p;
108:
109: return(s);
110: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.