* Moved ReadLine()/WriteLine() to wxIn/OutputStream
authorGuilhem Lavaux <lavaux@easynet.fr>
Wed, 30 Jun 1999 17:15:32 +0000 (17:15 +0000)
committerGuilhem Lavaux <lavaux@easynet.fr>
Wed, 30 Jun 1999 17:15:32 +0000 (17:15 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/datstrm.h
include/wx/stream.h
src/common/datstrm.cpp
src/common/stream.cpp

index e0c4bfe7ffa8b5e96a2e3e22a5a1fb69a87865b9..40537e32912b014ef346f706bd912f0e4a53a042 100644 (file)
@@ -29,7 +29,6 @@ public:
   wxUint16 Read16();
   wxUint8 Read8();
   double ReadDouble();
-  wxString ReadLine();
   wxString ReadString();
 };
 
@@ -42,7 +41,6 @@ class WXDLLEXPORT wxDataOutputStream: public wxFilterOutputStream {
   void Write16(wxUint16 i);
   void Write8(wxUint8 i);
   void WriteDouble(double d);
-  void WriteLine(const wxString& line);
   void WriteString(const wxString& string);
 };
 
index b5920ea8ce10a4182504a677ece8a5843f70a337..508ca1a25801a093fdff136eab821fd5cdb6cc5d 100644 (file)
@@ -161,6 +161,7 @@ class WXDLLEXPORT wxInputStream: public wxStreamBase {
   char GetC();
   virtual wxInputStream& Read(void *buffer, size_t size);
   wxInputStream& Read(wxOutputStream& stream_out);
+  wxString ReadLine();
 
   // Position functions
   off_t SeekI(off_t pos, wxSeekMode mode = wxFromStart);
@@ -201,6 +202,7 @@ class WXDLLEXPORT wxOutputStream: public wxStreamBase {
 
   virtual wxOutputStream& Write(const void *buffer, size_t size);
   wxOutputStream& Write(wxInputStream& stream_in);
+  void WriteLine(const wxString& line);
 
   off_t SeekO(off_t pos, wxSeekMode mode = wxFromStart);
   off_t TellO() const;
index cab308f18ed0ec7abe1586bc2dcae268572a13fb..771d9c32d2cb0b637b93e83179ba3268ad745bd0 100644 (file)
@@ -82,37 +82,6 @@ double wxDataInputStream::ReadDouble()
 #endif
 }
 
-wxString wxDataInputStream::ReadLine()
-{
-  char c, last_endl = 0;
-  bool end_line = FALSE;
-  wxString line;
-
-  while (!end_line) {
-    c = GetC();
-    if (LastError() != wxStream_NOERROR)
-      break;
-
-    switch (c) {
-    case '\n':
-      end_line = TRUE;
-      break;
-    case '\r':
-      last_endl = '\r';
-      break;
-    default:
-      if (last_endl == '\r') {
-        end_line = TRUE;
-        InputStreamBuffer()->WriteBack(c);
-        break;
-      }
-      line += c;
-      break;
-    } 
-  }
-  return line;
-}
-
 wxString wxDataInputStream::ReadString()
 {
   wxString wx_string;
@@ -169,17 +138,6 @@ void wxDataOutputStream::Write8(wxUint8 i)
   Write(&i, 1);
 }
 
-void wxDataOutputStream::WriteLine(const wxString& line)
-{
-#ifdef __WXMSW__
-  wxString tmp_string = line + _T("\r\n");
-#else
-  wxString tmp_string = line + _T('\n');
-#endif
-
-  Write((const wxChar *) tmp_string, tmp_string.Length()*sizeof(wxChar));
-}
-
 void wxDataOutputStream::WriteString(const wxString& string)
 {
   Write32(string.Length());
index 9750fef812d9aebf254c8a85196076dcc8dcd90d..4d32e503ea6cf92b1a6c7c261b2ce9a7acc0b346 100644 (file)
@@ -549,6 +549,38 @@ char wxInputStream::GetC()
   return c;
 }
 
+
+wxString wxInputStream::ReadLine()
+{
+  char c, last_endl = 0;
+  bool end_line = FALSE;
+  wxString line;
+
+  while (!end_line) {
+    c = GetC();
+    if (LastError() != wxStream_NOERROR)
+      break;
+
+    switch (c) {
+    case '\n':
+      end_line = TRUE;
+      break;
+    case '\r':
+      last_endl = '\r';
+      break;
+    default:
+      if (last_endl == '\r') {
+        end_line = TRUE;
+        InputStreamBuffer()->WriteBack(c);
+        break;
+      }
+      line += c;
+      break;
+    } 
+  }
+  return line;
+}
+
 wxInputStream& wxInputStream::Read(void *buffer, size_t size)
 {
   m_i_streambuf->Read(buffer, size);
@@ -592,9 +624,7 @@ off_t wxInputStream::TellI() const
 
 wxInputStream& wxInputStream::operator>>(wxString& line)
 {
-  wxDataInputStream s(*this);
-
-  line = s.ReadLine();
+  line = ReadLine();
   return *this;
 }
 
@@ -802,6 +832,21 @@ void wxOutputStream::Sync()
   m_o_streambuf->FlushBuffer();
 }
 
+void wxOutputStream::WriteLine(const wxString& line)
+{
+#ifdef __WXMSW__
+  wxString tmp_string = line + _T("\r\n");
+#else
+#ifdef __WXMAC__
+  wxString tmp_string = line + _T('\r');
+#else
+  wxString tmp_string = line + _T('\n');
+#endif
+#endif
+
+  Write((const wxChar *) tmp_string, tmp_string.Length()*sizeof(wxChar));
+}
+
 wxOutputStream& wxOutputStream::operator<<(const char *string)
 {
   return Write(string, strlen(string));
@@ -922,9 +967,13 @@ wxOutputStream& wxEndL(wxOutputStream& stream)
 {
 #ifdef __MSW__
   return stream.Write("\r\n", 2);
+#else
+#ifdef __WXMAC__
+  return stream.Write("\r", 1);
 #else
   return stream.Write("\n", 1);
 #endif
+#endif
 }
 
 #endif