changeset 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
files liboctave/ChangeLog liboctave/caseless-str.h src/ChangeLog src/graphics.h.in
diffstat 4 files changed, 80 insertions(+), 41 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/ChangeLog	Fri Oct 01 05:16:04 2010 -0400
+++ b/liboctave/ChangeLog	Fri Oct 01 14:18:37 2010 -0400
@@ -1,3 +1,7 @@
+2010-10-01  John W. Eaton  <jwe@octave.org>
+
+	* caseless-str.h: New file, extracted from src/graphics.h.in.
+
 2010-09-22  Jaroslav Hajek  <highegg@gmail.com>
 
 	* lo-utils.cc (xis_int_or_inf_or_nan): Fix typos.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/liboctave/caseless-str.h	Fri Oct 01 14:18:37 2010 -0400
@@ -0,0 +1,70 @@
+/*
+
+Copyright (C) 2007, 2008, 2009, 2010 Shai Ayal
+
+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
+<http://www.gnu.org/licenses/>.
+
+*/
+
+#if !defined (octave_caseless_str_h)
+#define octave_caseless_str_h 1
+
+#include <string>
+
+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;
+  }
+};
+
+#endif
--- a/src/ChangeLog	Fri Oct 01 05:16:04 2010 -0400
+++ b/src/ChangeLog	Fri Oct 01 14:18:37 2010 -0400
@@ -1,3 +1,8 @@
+2010-10-01  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (class caseless_str): Move to
+	liboctave/caseless-string.h.
+
 2010-10-01  John W. Eaton  <jwe@octave.org>
 
 	* graphics.cc (base_properties::get_dynamic): Create and return
--- 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