diff src/graphics.h.in @ 11075:4e31d44a9763

extract caseless_str class to separate header file
author John W. Eaton <jwe@octave.org>
date Fri, 01 Oct 2010 14:18:37 -0400
parents 8a3b7e8fcbbc
children b748b86cb8c1
line wrap: on
line diff
--- a/src/graphics.h.in	Fri Oct 01 05:16:04 2010 -0400
+++ b/src/graphics.h.in	Fri Oct 01 14:18:37 2010 -0400
@@ -35,6 +35,7 @@
 #include <set>
 #include <string>
 
+#include "caseless-str.h"
 #include "lo-ieee.h"
 
 #include "gripes.h"
@@ -49,47 +50,6 @@
 #define OCTAVE_DEFAULT_FONTNAME "*"
 #endif
 
-class caseless_str : public std::string
-{
-public:
-  typedef std::string::iterator iterator;
-  typedef std::string::const_iterator const_iterator;
-
-  caseless_str (void) : std::string () { }
-  caseless_str (const std::string& s) : std::string (s) { }
-  caseless_str (const char *s) : std::string (s) { }
-
-  caseless_str (const caseless_str& name) : std::string (name) { }
-
-  caseless_str& operator = (const caseless_str& pname)
-  {
-    std::string::operator = (pname);
-    return *this;
-  }
-
-  operator std::string (void) const { return *this; }
-
-  // Case-insensitive comparison.
-  bool compare (const std::string& s, size_t limit = std::string::npos) const
-  {
-    const_iterator p1 = begin ();
-    const_iterator p2 = s.begin ();
-
-    size_t k = 0;
-
-    while (p1 != end () && p2 != s.end () && k++ < limit)
-      {
-        if (std::tolower (*p1) != std::tolower (*p2))
-          return false;
-
-        *p1++;
-        *p2++;
-      }
-
-    return (limit == std::string::npos) ? size () == s.size () : k == limit;
-  }
-};
-
 // ---------------------------------------------------------------------
 
 class graphics_handle