#ifndef __TEXTLIST_H #define __TEXTLIST_H #pragma interface #include struct TextArray { virtual const char *operator[](int) = 0; virtual int add(const char *) { return 0; } TextArray &operator+(const char *s) { add(s); return *this; } virtual int swap(int,int) { return 0; } void print(); virtual ~TextArray() {}; virtual int size(); }; struct TextList: TextArray { TextList(): idx(-1) {} const char *operator[](int); virtual operator const char *() const = 0; virtual int first() = 0; virtual int next() = 0; virtual int update(const char *) { return 0; } virtual int del() { return 0; } virtual ~TextList() {} protected: int idx; }; struct StringArray: TextArray { StringArray(); void sort(); void clear(); const char *operator[](int); const char *copy(const char *); int add(const char *); // add ptr to copy of string void put(const char *); // add ptr to string void del(int i) { txt.del(i); } int size() { return txt.size(); } ~StringArray(); private: StringArray(const StringArray &); StringArray&operator=(const StringArray &); Array txt; class Obstack *h; }; #endif