]> git.lyx.org Git - lyx.git/blobdiff - src/support/lstrings.h
split LyXText::rowlist_ into individual Paragraph::rows_ chunks
[lyx.git] / src / support / lstrings.h
index e20d0d80e588ec6bb1b9b4ebc07f8f9ae6f6d8e3..254337d37672a881a350770fec34fa963e2f9315 100644 (file)
@@ -1,30 +1,28 @@
 // -*- C++ -*-
-
-/** String helper functions.
-    \file lstrings.h
-    This is a collection of string helper functions that works
-    together with string (and later also with STL String. Some of these
-    would certainly benefit from a rewrite/optimization.
-    \author Lars Gullik Bjønnes
-    \author Jean-Marc Lasgouttes
-*/
+/**
+ * \file lstrings.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Lars Gullik Bjønnes
+ * \author Jean-Marc Lasgouttes
+ *
+ * Full author contact details are available in file CREDITS
+ *
+ * A collection of string helper functions that works with string.
+ * Some of these would certainly benefit from a rewrite/optimization.
+ */
 
 #ifndef LSTRINGS_H
 #define LSTRINGS_H
 
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-//#include <cstring>
-//#include <cctype>
-//#include <cctype>
 #include <vector>
 
-#include "Lsstream.h"
-
 #include "LString.h"
 
+namespace lyx {
+namespace support {
+
 ///
 int compare_no_case(string const & s, string const & s2);
 
@@ -89,66 +87,21 @@ string const lowercase(string const &);
 ///
 string const uppercase(string const &);
 
-/// convert \a T to string
-template<typename T>
-inline
-string const tostr(T const & t)
-{
-       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)
-}
-
-
-///
-template<>
-inline
-string const tostr(bool const & b)
-{
-       return (b ? "true" : "false");
-}
-
-///
-template<>
-inline
-string const tostr(string const & s)
-{
-       return s;
-}
-
-/// 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);
-
-///
-bool contains(string const & a, char const * b);
-
 ///
 bool contains(string const & a, string const & b);
 
 ///
 bool contains(string const & a, char b);
 
-///
-bool contains(char const * a, char const * b);
-
 /// This should probably we rewritten to be more general.
 class contains_functor {
 public:
@@ -162,18 +115,9 @@ public:
 };
 
 
-///
-bool containsOnly(string const &, char const *);
-
 ///
 bool containsOnly(string const &, string const &);
 
-///
-bool containsOnly(char const *, char const *);
-
-///
-bool containsOnly(char const *, string const &);
-
 /** Extracts a token from this string at the nth delim.
     Doesn't modify the original string. Similar to strtok.
     Example:
@@ -205,34 +149,30 @@ bool regexMatch(string const & a, string const & pattern);
 /// Substitute all \a oldchar with \a newchar
 string const subst(string const & a, char oldchar, char newchar);
 
-/// Substitutes all instances of \a oldstr with \a newstr
-string const subst(string const & a,
-            char const * oldstr, string const & newstr);
-
 /// substitutes all instances of \a oldstr with \a newstr
 string const subst(string const & a,
                   string const & oldstr, string const & newstr);
 
-/** Strips characters off the end of a string.
+/** Trims characters off the end and beginning of a string.
     \code
-    "abccc".strip('c') = "ab".
+    trim("ccabccc", "c") == "ab".
     \endcode
 */
-string const strip(string const & a, char c = ' ');
+string const trim(string const & a, char const * p = " ");
 
-/** Strips characters of the beginning of a string.
+/** Trims characters off the end of a string.
     \code
-    "cccba".frontstrip('c') = "ba"
+    rtrim("abccc", "c") == "ab".
     \endcode
 */
-string const frontStrip(string const & a, char c = ' ');
+string const rtrim(string const & a, char const * p = " ");
 
-/** Strips characters off the beginning of a string.
+/** Trims characters off the beginning of a string.
     \code
-    "ababcdef".frontstrip("ab") = "cdef"
+   ltrim("ababcdef", "ab") = "cdef"
     \endcode
 */
-string const frontStrip(string const & a, char const * p);
+string const ltrim(string const & a, char const * p = " ");
 
 /** Splits the string by the first delim.
     Splits the string by the first appearance of delim.
@@ -262,4 +202,18 @@ std::vector<string> const getVectorFromString(string const & str,
 string const getStringFromVector(std::vector<string> const & vec,
                                 string const & delim = ",");
 
+// wrapper around boost::format using one argument %1$s
+string bformat(string const & fmt, string const & arg1);
+// arguments %1$s and %2$s
+string bformat(string const & fmt, string const & arg1, string const & arg2);
+// arguments %1$s and %2$s and %3$s
+string bformat(string const & fmt, string const & arg1, string const & arg2,
+               string const & arg3);
+// arguments %1$s and %2$s and %3$s and %4$s
+string bformat(string const & fmt, string const & arg1, string const & arg2,
+               string const & arg3, string const & arg4);
+
+} // namespace support
+} // namespace lyx
+
 #endif