]> git.lyx.org Git - features.git/blobdiff - src/support/sstream.h
use size_t instead of int to avoid a singed/unsigned warning
[features.git] / src / support / sstream.h
index 2d11caad6949c8fbc7ffdba0627929d99e9c2772..ecc91bf712ab589175fdb20d6d3e646344744463 100644 (file)
@@ -29,15 +29,13 @@ the executable file might be covered by the GNU General Public License. */
    and with lyxstring. Dynamic casts have been replaced by static_casts.
    One fix to avoid unsigned/signed warnings.
 
-   Some further changes might be needed to avoid use of namespaces.
-
    Lars Gullik Bjønnes (larsbj@lyx.org)
 */
 
 #ifndef SSTREAM_H
 #define SSTREAM_H
 
-#include "LString.h"
+#include <string>
 #include <iostream>
 #include <streambuf.h>
 
@@ -55,8 +53,8 @@ namespace std
       streambuf(which), buf(), mode(static_cast<ios::open_mode>(which)),
       rpos(0), bufsize(1)
     { }
-       
-    explicit stringbuf(const string &s, int which=ios::in|ios::out) :
+
+    explicit stringbuf(const std::string &s, int which=ios::in|ios::out) :
       streambuf(which), buf(s), mode(static_cast<ios::open_mode>(which)),
       bufsize(1)
     {
@@ -70,14 +68,14 @@ namespace std
        }
       rpos = (mode & ios::ate ? s.size() : 0);
     }
-       
-    string str() const
+
+    std::string str() const
     {
       const_cast<stringbuf*>(this)->sync();  // Sigh, really ugly hack
       return buf;
     };
 
-    void str(const string& s)
+    void str(const std::string& s)
     {
       buf = s;
       if(mode & ios::in)
@@ -96,9 +94,9 @@ namespace std
     inline virtual int overflow(int = EOF);
     inline virtual int underflow();
   private:
-    string                     buf;
+    std::string                        buf;
     ios::open_mode             mode;
-    string::size_type  rpos;
+    std::string::size_type     rpos;
     streamsize                 bufsize;
     char                       defbuf;
   };
@@ -107,16 +105,16 @@ namespace std
   protected:
     stringbuf __my_sb;
   public:
-    string str() const
+    std::string str() const
     {
       return static_cast<stringbuf*>(_strbuf)->str();
     }
-    void str(const string& s)
+    void str(const std::string& s)
     {
       clear();
       static_cast<stringbuf*>(_strbuf)->str(s);
     }
-       
+
     stringbuf* rdbuf()
     {
       return &__my_sb;
@@ -127,47 +125,48 @@ namespace std
     {
       init (&__my_sb);
     }
-       
-    stringstreambase(const string& s, int which) :
+
+    stringstreambase(const std::string& s, int which) :
       __my_sb(s, which)
     {
       init (&__my_sb);
     }
   };
-    
+
   class istringstream : public stringstreambase, public istream {
   public:
     istringstream(int which=ios::in) :
       stringstreambase(which)
     { }
-       
-    istringstream(const string& s, int which=ios::in) :
+
+    istringstream(const std::string& s, int which=ios::in) :
       stringstreambase(s, which)
     { }
   };
-    
+
   class ostringstream : public stringstreambase, public ostream {
   public:
     ostringstream(int which=ios::out) :
       stringstreambase(which)
     { }
-       
-    ostringstream(const string& s, int which=ios::out) :
+
+    ostringstream(const std::string& s, int which=ios::out) :
       stringstreambase(s, which)
     { }
   };
-    
+
   class stringstream : public stringstreambase, public iostream {
   public:
     stringstream(int which=ios::in|ios::out) :
       stringstreambase(which)
     { }
-    
-    stringstream(const string &s, int which=ios::in|ios::out) :
+
+    stringstream(const std::string &s, int which=ios::in|ios::out) :
       stringstreambase(s, which)
     { }
   };
-}
+
+} // namespace std
 
 inline int stringbuf::sync()
 {
@@ -177,7 +176,7 @@ inline int stringbuf::sync()
   streamsize n = pptr() - pbase();
   if(n)
     {
-      buf.replace(rpos, string::npos, pbase(), n);
+      buf.replace(rpos, std::string::npos, pbase(), n);
       //if(buf.size() - rpos != n)
       if (buf.size() != n + rpos)
        return EOF;
@@ -200,9 +199,9 @@ inline int stringbuf::overflow(int ch)
 
   if(ch != EOF)
     {
-      string::size_type oldSize = buf.size();
-      
-      buf.replace(rpos, string::npos, 1, ch);
+      std::string::size_type oldSize = buf.size();
+
+      buf.replace(rpos, std::string::npos, 1, ch);
       if(buf.size() - oldSize != 1)
        return EOF;
       ++rpos;
@@ -221,9 +220,9 @@ inline int stringbuf::underflow()
     {
       return EOF;
     }
-  
-  string::size_type n = egptr() - eback();
-  string::size_type s;
+
+  std::string::size_type n = egptr() - eback();
+  std::string::size_type s;
 
   s = buf.copy(eback(), n, rpos);
   pbump(pbase() - pptr());