]> git.lyx.org Git - lyx.git/blobdiff - src/support/lyxstring.h
fix typo that put too many include paths for most people
[lyx.git] / src / support / lyxstring.h
index 1e2572f20361768ebbbe1737ed27a9fcef0ba2da..e6dbcdc8a3ab3b66efcd5c4af5d2b31a1f169971 100644 (file)
@@ -1,9 +1,9 @@
 // -*- C++ -*-
 /* This file is part of
  * ======================================================
- * 
+ *
  *           LyX, The Document Processor
- *      
+ *
  *         Copyright 1995 Matthias Ettrich
  *          Copyright 1995-2000 The LyX Team.
  *
 // right behavior.
 
 #ifndef LYXSTRING_H
-#define LYXSTRING_H 
+#define LYXSTRING_H
 
 #ifdef __GNUG__
 #pragma interface
 #endif
 
-#include "LOstream.h"
-#include "LIstream.h"
+#include <iosfwd>
 
 #if 0
 #include <iterator>
@@ -35,7 +34,7 @@
 #include <cstring> // for size_t
 
 /** A string class for LyX
-  
+
   This is a permanent String class. It is modeled closely after the C++ STL
   string class. In comparison with STL string lyxstring lack support for
   reverse iterators and allocators, also char_traits is not used. In most
   do things like #lyxstring a= "";#, especially not in constructors.
 
   If you want to use a default empty lyxstring as a parameter, use
-  
-       #void foo(lyxstring par = lyxstring()); // Correct#
-  
+
+       #void foo(lyxstring par = lyxstring()); // Correct#
+
   rather than
 
-       #void foo(lyxstring par = "");  // WRONG!#
-       #void foo(lyxstring par = 0);   // WRONG!#
+       #void foo(lyxstring par = "");  // WRONG!#
+       #void foo(lyxstring par = 0);   // WRONG!#
 
   (The last one is only wrong because some compilers can't handle it.)
 
   Correct: & #foo.substring(0, length()-1);# \\
   Wrong:   & #bar.substring(0, length());#
   \end{tabular}
-  
+
   It is important that you declare lyxstring as const if possible, because
   some methods are much more efficient in const versions.
-  
+
   If you want to check whether a string is empty, do
 
-       #if (foo.empty()) something right#
+       #if (foo.empty()) something right#
 
   rather than something along the lines of
 
-       #if (!foo) completely wrong#
+       #if (!foo) completely wrong#
 
 When you want to copy an lyxstring, just do
-  
+
        #lyxstring a, b = "String";#
        #a = b; // That's it!#
 
   not something like
-  
-       #lyxstring a, b = "String";#
-       #a = b.copy(); // This leaks. // and does not work either. #
-  
+
+       #lyxstring a, b = "String";#
+       #a = b.copy(); // This leaks. // and does not work either. #
+
   The class automatically handles deep copying when required.
 */
 class lyxstring {
 public:
-       /**@name Typedefs */
-       //@{
-       
+       /* Typedefs */
+
        ///
        typedef char value_type;
 
@@ -125,7 +123,6 @@ public:
                const_reference> const_reverse_iterator;
 
 #endif
-       //@}
 
        ///
        iterator begin();
@@ -145,27 +142,26 @@ public:
        ///
        const_reverse_iterator rend() const;
 #endif
-       /**@name Constructors and Deconstructors. lyxstring has the same
+       /* Constructors and Deconstructors. lyxstring has the same
          constructors as STL, except the one using iterators, one other
          difference is that lyxstring, do not allow the optional allocator
          parameter. */
-       //@{
-       
+
        /// "all characters" marker
        static const size_type npos;
 
-       /// #lyxstring x;# 
+       /// #lyxstring x;#
        lyxstring();
-       
-       /// #lyxstring x(lyxstring ...)# 
+
+       /// #lyxstring x(lyxstring ...)#
        lyxstring(lyxstring const &, size_type pos = 0, size_type n = npos);
-       
+
        /// #lyxstring x("abc", 2) -> "ab"#
        lyxstring(value_type const *, size_type n);
-       
-       /// #lyxstring x("abc")#
+
+       // #lyxstring x("abc")#
        lyxstring(value_type const *);
-       
+
        /// lyxstring(5, 'n') -> "nnnnn"
        lyxstring(size_type n, value_type c);
 
@@ -185,12 +181,6 @@ public:
        ///
        ~lyxstring();
 
-       //@}
-
-       
-       /**@name Size and Capacity */
-       //@{
-       
        /// number of characters
        size_type size() const;
 
@@ -214,33 +204,28 @@ public:
 
        ///
        void reserve(size_type res_arg = 0);
-       
-       //@}
-
-       /**@name Assignment */
-       //@{
 
        ///
        lyxstring & operator=(lyxstring const &);
-       
+
        ///
        lyxstring & operator=(value_type const *);
-       
+
        ///
        lyxstring & operator=(value_type);
 
        ///
        lyxstring & assign(lyxstring const &);
-       
+
        ///
        lyxstring & assign(lyxstring const &, size_type pos, size_type n);
-       
+
        ///
        lyxstring & assign(value_type const * p, size_type n);
-       
+
        ///
        lyxstring & assign(value_type const * p);
-       
+
        ///
        lyxstring & assign(size_type n, value_type c);
 
@@ -258,36 +243,27 @@ public:
                }
        }
 #endif
-       //@}
 
-       /**@name Element Access. Since lyxstring does not use exceptions,
-         an abort is called on out-of-range access to at(). */
-       
        /// unchecked access
        const_reference operator[](size_type) const;
-       
+
        /// unchecked access
        reference operator[](size_type);
-       
+
        /// checked access
        const_reference at(size_type) const;
-       
+
        /// checked access
        reference at(size_type);
 
-       //@}
-
-       /**@name Insert */
-       //@{
-       
        // add characters after (*this)[length()-1]:
-       
+
        ///
        lyxstring & operator+=(lyxstring const &);
-       
+
        ///
        lyxstring & operator+=(value_type const *);
-       
+
        ///
        lyxstring & operator+=(value_type);
 
@@ -327,11 +303,11 @@ public:
 
        ///
        lyxstring & insert(size_type pos, lyxstring const &);
-       
+
        ///
        lyxstring & insert(size_type pos, lyxstring const &,
                        size_type pos2, size_type n);
-       
+
        ///
        lyxstring & insert(size_type pos, value_type const * p,
                         size_type n);
@@ -364,98 +340,87 @@ public:
                }
        }
 #endif
-       
-       //@}
-
-       /**@name Find */
-       //@{
 
        ///
        size_type find(lyxstring const &, size_type i = 0) const;
-       
+
        ///
        size_type find(value_type const * p,
                         size_type i, size_type n) const;
-       
+
        ///
        size_type find(value_type const * p, size_type i = 0) const;
-       
+
        ///
        size_type find(value_type c, size_type i = 0) const;
 
        ///
        size_type rfind(lyxstring const &, size_type i = npos) const;
-       
+
        ///
        size_type rfind(value_type const * p, size_type i, size_type n) const;
-       
+
        ///
        size_type rfind(value_type const * p, size_type i = npos) const;
-       
+
        ///
        size_type rfind(value_type c, size_type i = npos) const;
 
        ///
        size_type find_first_of(lyxstring const &, size_type i = 0) const;
-       
+
        ///
        size_type find_first_of(value_type const * p, size_type i,
                                size_type n) const;
-       
+
        ///
        size_type find_first_of(value_type const * p, size_type i = 0) const;
-       
+
        ///
        size_type find_first_of(value_type c, size_type i = 0) const;
 
        ///
        size_type find_last_of(lyxstring const &, size_type i = npos) const;
-       
+
        ///
        size_type find_last_of(value_type const * p, size_type i,
                               size_type n) const;
-       
+
        ///
        size_type find_last_of(value_type const * p, size_type i = npos) const;
-       
+
        ///
        size_type find_last_of(value_type c, size_type i = npos) const;
 
        ///
        size_type find_first_not_of(lyxstring const &, size_type i = 0) const;
-       
+
        ///
        size_type find_first_not_of(value_type const * p, size_type i,
                                    size_type n) const;
-       
+
        ///
        size_type find_first_not_of(value_type const * p,
                                    size_type i = 0) const;
-       
+
        ///
        size_type find_first_not_of(value_type c, size_type i = 0) const;
 
        ///
        size_type find_last_not_of(lyxstring const &,
                                   size_type i = npos) const;
-       
+
        ///
        size_type find_last_not_of(value_type const * p, size_type i,
                                   size_type n) const;
-       
+
        ///
        size_type find_last_not_of(value_type const * p,
                                   size_type i = npos) const;
-       
+
        ///
        size_type find_last_not_of(value_type c, size_type i = npos) const;
 
-       //*}
-
-       
-       /**@name Replace */
-       //@{
-
        // replace [(*this)[i], (*this)[i+n]] with other characters:
 
        ///
@@ -476,6 +441,10 @@ public:
        lyxstring & replace(size_type i, size_type n,
                            size_type n2, value_type c);
 
+       /// FY! FY! FY! go away !
+       lyxstring & replace(size_type i, size_type n,
+                           value_type c);
+
        ///
        lyxstring & replace(iterator i, iterator i2, const lyxstring & str);
 
@@ -495,7 +464,7 @@ public:
 
        ///
        void swap(lyxstring & str);
-       
+
        /// Erase n chars from position i.
        lyxstring & erase(size_type i = 0, size_type n = npos);
 
@@ -510,33 +479,22 @@ public:
        ///
        iterator erase(iterator first, iterator last);
 
-       //@}
-
-       
-       /**@name Conversion to C-style Strings */
-       //@{
-       
-       /// 
+       ///
        value_type const * c_str() const;
 
-       /** Note that this is STL compilant, so you can not assume
+       /* Note that this is STL compilant, so you can not assume
          that the returned array has a trailing '\0'. */
        value_type const * data() const;
 
-       /** This one returns a verbatim copy. Not the trailing '\0'
+       /* This one returns a verbatim copy. Not the trailing '\0'
          The caller must provide a buffer with engough room.
          */
        size_type copy(value_type * buf, size_type len,
                       size_type pos = 0) const;
 
-       //@}
 
-       
-       /**@name Comparisons. Combined > and == */
-       //@{
-       
        ///
-       int compare(lyxstring const & str) const; 
+       int compare(lyxstring const & str) const;
 
        ///
        int compare(value_type const * p) const;
@@ -551,18 +509,10 @@ public:
        ///
        int compare(size_type pos, size_type n, value_type const * p,
                    size_type n2 = npos) const;
-       
-       //@}
 
-       
-       
-       /**@name Substrings */
-       //@{
 
        ///
        lyxstring substr(size_type i = 0, size_type n = npos) const;
-       
-       //@}
 
 private:
        // These three operators can be used to discover erronous use of
@@ -581,7 +531,7 @@ private:
        int internal_compare(size_type pos, size_type n,
                             value_type const * s,
                             size_type slen, size_type n2) const;
-               
+
        /// Forward declaration of the string representation
        struct Srep;
        // DEC cxx requires this.
@@ -590,7 +540,7 @@ private:
        /// A string is a pointer to it's representation
        Srep * rep;
 
-       /** Note: The empty_rep is a local static in each function that
+       /* Note: The empty_rep is a local static in each function that
            benefits from one. There is no "global" empty srep but lyxstring
            doesn't need one (no code actually relies upon a single
            empty srep).
@@ -648,8 +598,8 @@ lyxstring operator+(lyxstring const & a, lyxstring::value_type b);
 
 void swap(lyxstring & s1, lyxstring & s2);
 
-istream & operator>>(istream &, lyxstring &);
-ostream & operator<<(ostream &, lyxstring const &);
-istream & getline(istream &, lyxstring &, lyxstring::value_type delim = '\n');
+std::istream & operator>>(std::istream &, lyxstring &);
+std::ostream & operator<<(std::ostream &, lyxstring const &);
+std::istream & getline(std::istream &, lyxstring &, lyxstring::value_type delim = '\n');
 
 #endif