# HG changeset patch # User John W. Eaton # Date 1323664321 18000 # Node ID a8952515415d03392d00be30600f6f1f23b615f0 # Parent 2ed17790425e98430574eac3319990338384f598# Parent 08569c50df6f08d8297d466d3eba76d613de2fa4 maint: periodic merge of stable to default diff -r 2ed17790425e -r a8952515415d liboctave/base-list.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/liboctave/base-list.h Sun Dec 11 23:32:01 2011 -0500 @@ -0,0 +1,114 @@ +/* + +Copyright (C) 2002-2011 John W. Eaton + +This file is part of Octave. + +Octave is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 3 of the License, or (at your +option) any later version. + +Octave is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with Octave; see the file COPYING. If not, see +. + +*/ + +#if !defined (octave_base_list_h) +#define octave_base_list_h 1 + +#include + +template +class +octave_base_list +{ +public: + + typedef typename std::list::iterator iterator; + typedef typename std::list::const_iterator const_iterator; + + bool empty (void) const { return lst.empty (); } + + size_t size (void) const { return lst.size (); } + size_t length (void) const { return size (); } + + iterator erase (iterator pos) { return lst.erase (pos); } + + template + void remove_if (P pred) + { + // We would like to simply call + // + // lst.remove_if (pred); + // + // but the Sun Studio compiler chokes on that. + // + // FIXME -- this kluge should be removed at some point. + + iterator b = lst.begin (); + iterator e = lst.end (); + while (b != e) + { + iterator n = b; + n++; + if (pred (*b)) + lst.erase (b); + b = n; + } + } + + void clear (void) { lst.clear (); } + + iterator begin (void) { return iterator (lst.begin ()); } + const_iterator begin (void) const { return const_iterator (lst.begin ()); } + + iterator end (void) { return iterator (lst.end ()); } + const_iterator end (void) const { return const_iterator (lst.end ()); } + + elt_type& front (void) { return lst.front (); } + elt_type& back (void) { return lst.back (); } + + const elt_type& front (void) const { return lst.front (); } + const elt_type& back (void) const { return lst.back (); } + + void push_front (const elt_type& s) { lst.push_front (s); } + void push_back (const elt_type& s) { lst.push_back (s); } + + void pop_front (void) { lst.pop_front (); } + void pop_back (void) { lst.pop_back (); } + + // For backward compatibility. + void append (const elt_type& s) { lst.push_back (s); } + +protected: + + octave_base_list (void) : lst () { } + + octave_base_list (const std::list& l) : lst (l) { } + + octave_base_list (const octave_base_list& bl) : lst (bl.lst) { } + + octave_base_list& operator = (const octave_base_list& bl) + { + if (this != &bl) + { + lst = bl.lst; + } + return *this; + } + + ~octave_base_list (void) { } + +private: + + std::list lst; +}; + +#endif diff -r 2ed17790425e -r a8952515415d scripts/plot/__gnuplot_drawnow__.m diff -r 2ed17790425e -r a8952515415d src/base-list.h --- a/src/base-list.h Sun Dec 11 23:20:07 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,114 +0,0 @@ -/* - -Copyright (C) 2002-2011 John W. Eaton - -This file is part of Octave. - -Octave is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 3 of the License, or (at your -option) any later version. - -Octave is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License -along with Octave; see the file COPYING. If not, see -. - -*/ - -#if !defined (octave_base_list_h) -#define octave_base_list_h 1 - -#include - -template -class -octave_base_list -{ -public: - - typedef typename std::list::iterator iterator; - typedef typename std::list::const_iterator const_iterator; - - bool empty (void) const { return lst.empty (); } - - size_t size (void) const { return lst.size (); } - size_t length (void) const { return size (); } - - iterator erase (iterator pos) { return lst.erase (pos); } - - template - void remove_if (P pred) - { - // We would like to simply call - // - // lst.remove_if (pred); - // - // but the Sun Studio compiler chokes on that. - // - // FIXME -- this kluge should be removed at some point. - - iterator b = lst.begin (); - iterator e = lst.end (); - while (b != e) - { - iterator n = b; - n++; - if (pred (*b)) - lst.erase (b); - b = n; - } - } - - void clear (void) { lst.clear (); } - - iterator begin (void) { return iterator (lst.begin ()); } - const_iterator begin (void) const { return const_iterator (lst.begin ()); } - - iterator end (void) { return iterator (lst.end ()); } - const_iterator end (void) const { return const_iterator (lst.end ()); } - - elt_type& front (void) { return lst.front (); } - elt_type& back (void) { return lst.back (); } - - const elt_type& front (void) const { return lst.front (); } - const elt_type& back (void) const { return lst.back (); } - - void push_front (const elt_type& s) { lst.push_front (s); } - void push_back (const elt_type& s) { lst.push_back (s); } - - void pop_front (void) { lst.pop_front (); } - void pop_back (void) { lst.pop_back (); } - - // For backward compatibility. - void append (const elt_type& s) { lst.push_back (s); } - -protected: - - octave_base_list (void) : lst () { } - - octave_base_list (const std::list& l) : lst (l) { } - - octave_base_list (const octave_base_list& bl) : lst (bl.lst) { } - - octave_base_list& operator = (const octave_base_list& bl) - { - if (this != &bl) - { - lst = bl.lst; - } - return *this; - } - - ~octave_base_list (void) { } - -private: - - std::list lst; -}; - -#endif