]> cygwin.com Git - cygwin-apps/setup.git/blobdiff - String++.cc
2003-02-16 Pavel Tsekov <ptsekov@gmx.net>
[cygwin-apps/setup.git] / String++.cc
index e2e9cf5b00e49b1cc159f9ef1ddc702aa8469c77..4d089a86d706adc16c422d8022e31d3d647d0bc5 100644 (file)
 #include "String++.h"
 #include <string.h>
 #include <ctype.h>
-#include "concat.h"
 #include "io_stream.h"
 #include <iostream>
-#include <strstream>
+#include <sstream>
+#include <string>
+
+using namespace std;
 
 // _data
 
@@ -54,10 +56,15 @@ String::~String ()
 
 String::String (int const anInt)
 {
-  ostrstream os;
+  ostringstream os;
   os << anInt;
-  theData = new _data(os.pcount());
-  memcpy (theData->theString, os.str(), os.pcount());
+  theData = new _data(os.str().size());
+  memcpy (theData->theString, os.str().c_str(), os.str().size());
+}
+
+String::String (string const &aString) : theData (new _data (aString.c_str() ? strlen (aString.c_str()) : 0))
+{
+  memcpy (theData->theString, aString.c_str(), theData->length);
 }
 
 // able to cache the result if needed.
@@ -116,6 +123,13 @@ String::find(char aChar) const
   return 0;
 }
 
+String
+String::substr(size_t start, size_t len) const
+{
+  // Adapt the C++ string class
+  return string(cstr_oneuse()).substr(start, len);
+}
+
 int
 String::compare (String const &aString, size_t const count) const
 {
This page took 0.021989 seconds and 5 git commands to generate.