|
|
1.1 root 1: #include <String.h>
2: #include <list.h>
3:
4: extern "C" {
5: extern char *getenv(char *);
6: extern int mkdir (char*, int);
7: extern int rmdir (char*);
8: int sleep (int);
9: extern int getlogname (char*);
10: }
11:
12: int mkdir (const String&, int);
13: int rmdir (const String&);
14:
15:
16: // decl.c
17:
18: listdeclare (String)
19:
20: struct mel {
21: String p;
22: String_list q;
23: String s;
24: bit operator== (const mel& x) const
25: { return p == x.p && q == x.q && s == x.s; }
26: ostream& print (ostream&);
27: };
28:
29: listdeclare (mel)
30:
31: struct map {
32: mel_list l;
33: ostream& print (ostream&);
34: istream& read (istream&);
35: };
36:
37: inline ostream& operator<< (ostream& o, map& m) { return m.print (o); }
38: inline istream& operator>> (istream& i, map& m) { return m.read (i); }
39:
40: String logname();
41:
42: class charstr {
43: char* p;
44: public:
45: charstr (String s) {
46: p = new char[s.length() + 1];
47: s.dump (p);
48: }
49: ~charstr() { delete p; }
50: operator char*() { return p; };
51: private:
52: charstr(const charstr&);
53: void operator=(const charstr&);
54: };
55:
56: // path.c
57:
58: String pathnorm (String);
59:
60: class Path {
61: String s;
62: friend Path mkpath(String);
63: public:
64: Path() {}
65: Path(const Path& p): s (p.s) {}
66: Path(const String& st): s (pathnorm (st)) {}
67: Path(const char *cp): s (pathnorm (String (cp))) {}
68: Path& operator = (const Path& p) { s = p.s; return *this; }
69: Path operator + (const Path& p) const { return s + p.s; }
70: Path operator + (char *cp) const { return s + pathnorm (cp); }
71: friend Path operator + (char *p, const Path& q)
72: { return Path (p) + q; }
73: Path& operator += (const Path& p) { s += Path(p.s); return *this; }
74: Path operator & (const Path&) const;
75: Path operator & (const String& s) const { return *this & Path(s); }
76: Path operator & (const char *cp) const { return *this & Path (cp); }
77: friend Path operator & (const char *p, Path q)
78: { return Path (p) & q; }
79: friend Path operator & (const char *p, String q)
80: { return Path (p) & Path(q); }
81: friend Path operator & (const String& p, char* q)
82: { return Path(p) & q; }
83: Path& operator &= (const Path& p) { *this = *this & p; return *this; }
84: operator String () const { return s; }
85: Path first() const;
86: Path last() const;
87: Path rmfirst() const;
88: Path rmlast() const;
89: friend ostream& operator <<(ostream&, const Path&);
90: int operator < (const Path& t) const { return s < t.s; }
91: int operator > (const Path& t) const { return s > t.s; }
92: int operator <= (const Path& t) const { return s <= t.s; }
93: int operator >= (const Path& t) const { return s >= t.s; }
94: int operator == (const Path& t) const { return s == t.s; }
95: int operator != (const Path& t) const { return s != t.s; }
96: int operator < (char* t) const { return s < t; }
97: int operator > (char* t) const { return s > t; }
98: int operator <= (char* t) const { return s <= t; }
99: int operator >= (char* t) const { return s >= t; }
100: int operator == (char* t) const { return s == t; }
101: int operator != (char* t) const { return s != t; }
102: friend int operator < (char* p, const Path& q) { return p < q.s; }
103: friend int operator > (char* p, const Path& q) { return p > q.s; }
104: friend int operator <= (char* p, const Path& q) { return p <= q.s; }
105: friend int operator >= (char* p, const Path& q) { return p >= q.s; }
106: friend int operator == (char* p, const Path& q) { return p == q.s; }
107: friend int operator != (char* p, const Path& q) { return p != q.s; }
108: };
109:
110: Path homedir();
111:
112: listdeclare(Path)
113:
114: // lock.c
115:
116: void lock (Path&);
117: void unlock (Path&);
118:
119: // dir.c
120:
121: int isdir (Path&);
122: Path_list dircontents (Path&);
123:
124: // domach.c
125:
126: String domach (String, Path, String_list&);
127:
128: // checksum.c
129:
130: static const cksize = 37;
131:
132: class checksum {
133: char buf[cksize];
134: char *bufptr;
135: char *bufend;
136: public:
137: checksum();
138: void combine (char*, int);
139: int operator== (checksum&);
140: int operator!= (checksum& c) { return !(*this == c); }
141: friend int read (int fd, checksum& c)
142: { return ::read (fd, c.buf, cksize); }
143: friend int write (int fd, checksum& c)
144: { return ::write (fd, c.buf, cksize); }
145: };
146:
147: // param.c
148:
149: extern char* spooldir;
150: extern char* etcdir;
151: extern char* inspkg;
152: extern char* tmpdir;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.