]> git.lyx.org Git - lyx.git/blobdiff - src/support/lstrings.h
small changes and two patches from Dekel
[lyx.git] / src / support / lstrings.h
index 1c90c07598a7fcab7d55af0299044376cf6be1d9..d718b57243511c8aa934268c7972201b077d2329 100644 (file)
 #include <cstring>
 #include <cctype>
 
-#ifdef HAVE_SSTREAM
-#include <sstream>
-#else
-#include <strstream>
-#endif
+#include "Lsstream.h"
 
 #include "LString.h"
 
@@ -74,28 +70,19 @@ template<typename T>
 inline
 string const tostr(T const & t) 
 {
-#ifdef HAVE_SSTREAM
        std::ostringstream ostr;
        ostr << t;
        return ostr.str().c_str();
        // We need to use the .c_str since we sometimes are using
        // our own string class and that is not compatible with
        // basic_string<char>. (of course we don't want this later)
-#else
-       // The buf is probably a bit large, but if we want to be safer
-       // we should leave it this big. As compiler/libs gets updated
-       // this part of the code will cease to be used and we loose
-       // nothing.
-       char buf[2048]; // a bit too large perhaps?
-       ostrstream ostr(buf, sizeof(buf));
-       ostr << t << '\0';
-       return buf;
-#endif
 }
 
+
 ///
+template<>
 inline
-string const tostr(bool b)
+string const tostr(bool const & b)
 {
        return (b ? "true" : "false");
 }
@@ -103,12 +90,18 @@ string const tostr(bool b)
 /// Does the string start with this prefix?
 bool prefixIs(string const &, char const *);
 
+/// Does the string start with this prefix?
+bool prefixIs(string const &, string const &);
+
 /// Does the string end with this char?
 bool suffixIs(string const &, char);
 
 /// Does the string end with this suffix?
 bool suffixIs(string const &, char const *);
 
+/// Does the string end with this suffix?
+bool suffixIs(string const &, string const &);
+
 ///
 bool contains(char const * a, string const & b);
 
@@ -167,6 +160,10 @@ string const subst(string const & a, char oldchar, char newchar);
 string const subst(string const & a,
             char const * oldstr, string const & newstr);
 
+/// substitutes all instances ofr oldstr with newstr
+string const subst(string const & a,
+                  string const & oldstr, string const & newstr);
+
 /** Strips characters off the end of a string.
   #"abccc".strip('c') = "ab".#
   */