]> git.donarmstrong.com Git - lilypond.git/blobdiff - flower/include/cursor.icc
release: 1.0.15
[lilypond.git] / flower / include / cursor.icc
index 416faa52e8494568b06f4ce267b629ae6493017e..ee1f23f2bb044272ae189eda8a21db9e1d070d0b 100644 (file)
@@ -4,6 +4,7 @@
   source file of the Flower Library
 
   (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 
 
 #include <assert.h>
 
-// untested
+/**
+   Initialisation of Cursor.. Set pointer and list fields.  
+ */
 template<class T>
 inline
-Cursor<T>::Cursor()
- :   list_(*(List<T> *)0)      // ugh
-{
-  pointer_ = 0;
-}
-
-
-template<class T>
-inline
-Cursor<T>::Cursor (const List<T>& list, Link<T>* pointer) : 
-  list_((List<T>&) list)
+Cursor<T>::Cursor (const List<T> & list, Link<T>* p )
 {
+  list_l_ =  (List<T> *) &list;        // damn const
   if (list.size())
-      pointer_ = pointer ? pointer : list.top_;
+      pointer_ = p ? p : list.top_;
   else
-      pointer_ = pointer;
+      pointer_ = p;
 }
 
+
+
 template<class T>
 inline
-Cursor<T>::Cursor (const Cursor<T>& cursor) :
-  list_(cursor.list_)
+Cursor<T>::Cursor (const Cursor<T>& cursor) 
 {
+  list_l_= cursor.list_l_;
   pointer_ = cursor.pointer_;
 }
 
@@ -55,7 +51,7 @@ template<class T>
 Cursor<T>
 Cursor<T>::operator =(const Cursor<T>& c)
 {   
-  assert (&list_ == &c.list_);
+  assert (list_l_ == c.list_l_);
   pointer_ = c.pointer_;
   return *this;
 }
@@ -64,21 +60,21 @@ template<class T>
 inline void
 Cursor<T>::add (const T& th)
 {
-  list_.add (th, *this);
+  list_l_->add (th, *this);
 }
 
 template<class T>
 inline void
 Cursor<T>::insert (const T& th)
 {
-  list_.insert (th, *this);
+  list_l_->insert (th, *this);
 }
 
 template<class T>
-inline  List<T>&
-Cursor<T>::list() const
+inline List<T> *
+Cursor<T>::list_l() const
 {
-  return list_;
+  return list_l_;              // ugh!
 }
 
 template<class T>