|
|
1.1 root 1: #include "srcdir.h"
2: #include "process.pri"
3: #include "symbol.h"
4: #include "srctext.pri"
5: #include "symtab.pub"
6: SRCFILE("srcdir.c")
7:
8: SrcDir::SrcDir(Process *p)
9: {
10: trace( "%d.SrcDir(%d)", this, p ); VOK;
11: process = p;
12: }
13:
14: void SrcDir::banner()
15: {
16: trace( "%d.banner()", this ); VOK;
17: if( pad ){
18: pad->name( "Src Files" );
19: pad->banner( "Source Files: %s", process->procpath );
20: }
21: }
22:
23: void SrcDir::hostclose()
24: {
25: trace( "%d.hostclose()", this ); VOK;
26: if( pad ) delete pad;
27: pad = 0;
28: }
29:
30: char *SrcDir::help()
31: {
32: trace( "%d.help()", this ); OK("SrcDir::help");
33: return "<path> {set source path prefix}";
34: }
35:
36: char *SrcDir::kbd(char *s)
37: {
38: trace( "%d.kbd(%s)", this, s ); OK("kbd");
39: process->_prefix = sf("%s",s);
40: pad->insert( 1, SELECTLINE|DONT_CUT, " prefix: %s", s );
41: return 0;
42: }
43:
44: void SrcDir::open()
45: {
46: Menu m;
47: long k = 2;
48: Source *r;
49:
50: trace( "%d.open()", this ); VOK;
51: if( !pad ){
52: r = process->symtab()->root();
53: if( !r ) return;
54: if( !(Symbol*)r->rsib ){
55: r->srctext->open();
56: return;
57: }
58: pad = new Pad( this );
59: banner();
60: pad->options(SORTED);
61: pad->makecurrent();
62: m.last( "open source file", (Action)&SrcText::open);
63: // wait for complaints...
64: // m.last( "file statics", (Action)&SrcText::promote);
65: for( ; r; r = (Source*)((Symbol*)r->rsib) )
66: pad->insert( k++, DONT_CUT, (PadRcv*)r->srctext, m, r->_text );
67: }
68: pad->makecurrent();
69: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.