Annotation of researchv10dc/cmd/oasd++/decl.h, revision 1.1.1.1

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:        friend class map;
                     22:        String p;
                     23:        String_list q;
                     24:        String s;
                     25:        mel () {}
                     26:        mel (mel& x): p (x.p), q (x.q), s (x.s) {}
                     27:        mel& operator= (mel& x) { p = x.p; q = x.q; s = x.s; return *this; }
                     28:        bit operator== (mel& x) { return p == x.p && q == x.q && s == x.s; }
                     29:        ostream& print (ostream&);
                     30: };
                     31: 
                     32: listdeclare (mel)
                     33: 
                     34: struct map {
                     35:        mel_list l;
                     36:        map () {}
                     37:        map (map& x): l (x.l) {}
                     38:        map& operator= (map& x) { l = x.l; return *this; }
                     39:        ostream& print (ostream&);
                     40:        istream& read (istream&);
                     41: };
                     42: 
                     43: inline ostream& operator<< (ostream& o, map& m) { return m.print (o); }
                     44: inline istream& operator>> (istream& i, map& m) { return m.read (i); }
                     45: 
                     46: String logname();
                     47: 
                     48: class charstr {
                     49:        char* p;
                     50: public:
                     51:        charstr (String s) {
                     52:                p = new char[s.length() + 1];
                     53:                s.dump (p);
                     54:        }
                     55:        // !charstr(charstr&);
                     56:        // !operator=(charstr);
                     57:        ~charstr() { delete p; }
                     58:        operator char*() { return p; };
                     59: };
                     60: 
                     61: // path.c
                     62: 
                     63: String pathnorm (String);
                     64: 
                     65: class Path {
                     66:        String s;
                     67:        friend Path mkpath(String);
                     68: public:
                     69:        Path() {}
                     70:        Path(Path& p): s (p.s) {}
                     71:        Path(String& st): s (pathnorm (st)) {}
                     72:        Path(const char *cp): s (pathnorm (String (cp))) {}
                     73:        Path& operator = (Path& p) { s = p.s; return *this; }
                     74:        Path operator + (Path& p) { return s + p.s; }
                     75:        Path operator + (char *cp) { return s + pathnorm (cp); }
                     76:        friend Path operator + (char *p, Path q)
                     77:                { return Path (p) + q; }
                     78:        Path& operator += (Path& p) { s += Path(p.s); return *this; }
                     79:        Path operator & (Path&);
                     80:        Path operator & (String& s) { return *this & Path(s); }
                     81:        Path operator & (const char *cp) { return *this & Path (cp); }
                     82:        friend Path operator & (const char *p, Path q)
                     83:                { return Path (p) & q; }
                     84:        friend Path operator & (const char *p, String q)
                     85:                { return Path (p) & Path(q); }
                     86:        friend Path operator & (String& p, char* q)
                     87:                { return Path(p) & q; }
                     88:        Path& operator &= (Path& p) { *this = *this & p; return *this; }
                     89:        operator String () { return s; }
                     90:        Path first();
                     91:        Path last();
                     92:        Path rmfirst();
                     93:        Path rmlast();
                     94:        friend ostream& operator <<(ostream&, Path);
                     95:        int operator < (Path& t) { return s < t.s; }
                     96:        int operator > (Path& t) { return s > t.s; }
                     97:        int operator <= (Path& t) { return s <= t.s; }
                     98:        int operator >= (Path& t) { return s >= t.s; }
                     99:        int operator == (Path& t) { return s == t.s; }
                    100:        int operator != (Path& t) { return s != t.s; }
                    101:        int operator < (char* t) { return s < t; }
                    102:        int operator > (char* t) { return s > t; }
                    103:        int operator <= (char* t) { return s <= t; }
                    104:        int operator >= (char* t) { return s >= t; }
                    105:        int operator == (char* t) { return s == t; }
                    106:        int operator != (char* t) { return s != t; }
                    107:        friend int operator < (char* p, Path q) { return p < q.s; }
                    108:        friend int operator > (char* p, Path q) { return p > q.s; }
                    109:        friend int operator <= (char* p, Path q) { return p <= q.s; }
                    110:        friend int operator >= (char* p, Path q) { return p >= q.s; }
                    111:        friend int operator == (char* p, Path q) { return p == q.s; }
                    112:        friend int operator != (char* p, Path q) { return p != q.s; }
                    113: };
                    114: 
                    115: Path homedir();
                    116: 
                    117: listdeclare(Path)
                    118: 
                    119: // lock.c
                    120: 
                    121: void lock (Path&);
                    122: void unlock (Path&);
                    123: 
                    124: // dir.c
                    125: 
                    126: int isdir (Path&);
                    127: Path_list dircontents (Path&);
                    128: 
                    129: // domach.c
                    130: 
                    131: String domach (String, Path, String_list&);
                    132: 
                    133: // checksum.c
                    134: 
                    135: static const cksize = 37;
                    136: 
                    137: class checksum {
                    138:        char buf[cksize];
                    139:        char *bufptr;
                    140:        char *bufend;
                    141: public:
                    142:        checksum();
                    143:        void combine (char*, int);
                    144:        int operator== (checksum&);
                    145:        int operator!= (checksum& c) { return !(*this == c); }
                    146:        friend int read (int fd, checksum& c)
                    147:                { return ::read (fd, c.buf, cksize); }
                    148:        friend int write (int fd, checksum& c)
                    149:                { return ::write (fd, c.buf, cksize); }
                    150: };
                    151: 
                    152: // param.c
                    153: 
                    154: extern char* spooldir;
                    155: extern char* etcdir;
                    156: extern char* inspkg;
                    157: extern char* tmpdir;

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.