From 01eba8875e0265c49723c2a62cdbe0e9d51b2a4e Mon Sep 17 00:00:00 2001 From: fred Date: Thu, 19 Dec 1996 10:51:15 +0000 Subject: [PATCH] flower-1.0.15 --- flower/pcursor.hh | 44 +++++++++++++++++++------------------------- 1 file changed, 19 insertions(+), 25 deletions(-) diff --git a/flower/pcursor.hh b/flower/pcursor.hh index c9cc53411f..eeaa866ea8 100644 --- a/flower/pcursor.hh +++ b/flower/pcursor.hh @@ -11,21 +11,21 @@ /// cursor to go with PointerList template -struct PCursor : public Cursor { - - /// make cursor with #no# items back - PCursor operator -( int no) const { - return PCursor (Cursor::operator-(no)); - } - int operator -(PCursor op) const { - return Cursor::operator-(op); - } - /// make cursor with #no# items further - PCursor operator +( int no) const { - return PCursor (Cursor::operator+(no)); - } +struct PCursor : private Cursor { + friend class IPointerList; +public: + Cursor::ok; + Cursor::del; + Cursor::backspace; - PCursor(const PointerList & l) : Cursor (l) {} + PointerList &list() { return (PointerList&)Cursor::list(); } + PCursor operator++(int) { return Cursor::operator++(0);} + PCursor operator--(int) { return Cursor::operator--(0); } + PCursor operator+=(int i) { return Cursor::operator+=(i);} + PCursor operator-=(int i) { return Cursor::operator-=(i); } + PCursor operator -(int no) const { return Cursor::operator-(no);} + int operator -(PCursor op) const { return Cursor::operator-(op);} + PCursor operator +( int no) const {return Cursor::operator+(no);} PCursor(const PointerList & l) : Cursor (l) {} PCursor( const Cursor& cursor ) : Cursor(cursor) { } void* vptr() const { return * ((Cursor &) *this); } @@ -36,11 +36,10 @@ struct PCursor : public Cursor { operator T() { return ptr(); } T operator *() { return ptr(); } void add(const T& p ) { Cursor::add((void*) p); } - void insert(const T& p ) { Cursor::insert((void*) p);} - -private: -// Cursor::operator void*; - // sigh + void insert(const T& p ) { Cursor::insert((void*) p);} + static int compare(PCursor a,PCursorb) { + return Cursor::compare(a,b); + } }; /** don't create PointerList's. @@ -49,13 +48,8 @@ private: */ -template -inline int pcursor_compare(PCursor a,PCursorb) -{ - return cursor_compare(Cursor(a),Cursor (b)); -} #include "compare.hh" -template_instantiate_compare(PCursor, pcursor_compare, template); +template_instantiate_compare(PCursor, PCursor::compare, template); #endif -- 2.39.5