|
|
1.1 root 1: /*
2: * ld/message.c
3: * Print messages of various origins.
4: */
5:
6: #include "data.h"
7:
8: void
9: message( args )
10: char * args;
11: {
12: printf( "ld: %r\n", &args );
13: }
14:
15: /*
16: * Fatal error; print message and exit
17: */
18: void
19: fatal( args )
20: char * args;
21: {
22: fprintf( stderr, "ld: %r\n", &args );
23: exit( 1 );
24: }
25:
26: /*
27: * message plus command prototype
28: */
29: void
30: usage( args )
31: char * args;
32: {
33: fatal( "%r\n\
34: Usage: ld [-d] [-e entry] [-k[sysnam]] [-i] [-l<name>] [-m] [-n] [-o file]\\\n\
35: \t[-C] [-r] [-s] [-u symbol] [-X|x] file ...",
36: &args );
37: }
38:
39: /*
40: * message with filename
41: */
42: void
43: filemsg( fname, args )
44: char *fname, *args;
45: {
46: message( "file %s: %r", fname, &args );
47: }
48:
49: /*
50: * Message with module and file name
51: */
52: void
53: modmsg( fname, mname, args )
54: char * fname;
55: char mname[DIRSIZ];
56: char * args;
57: {
58: if ( mname[0] == 0 )
59: filemsg( fname, "%r", &args );
60:
61: else
62: filemsg( fname, "module %.*s: %r",
63: DIRSIZ, mname, &args );
64: }
65:
66: /*
67: * Message for module passed by pointer
68: */
69: void
70: mpmsg( mp, args )
71: mod_t * mp;
72: char * args;
73: {
74: modmsg( mp->fname, mp->mname, "%r", &args );
75: }
76:
77: /*
78: * Message for symbol passed by pointer
79: */
80: void
81: spmsg( sp, args )
82: sym_t *sp;
83: char *args;
84: {
85: if ( sp->mod == NULL )
86: message( "symbol %.*s: %r", NCPLN, sp->s.ls_id, &args );
87:
88: else
89: mpmsg( sp->mod, "symbol %.*s: %r", NCPLN, sp->s.ls_id, &args );
90: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.