]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/stream.cpp
do nothing in ShowHidden() if the flag doesn't change (patch 1678963)
[wxWidgets.git] / src / common / stream.cpp
index 5407bd206237d9f115f73893a28a9551c37b123d..4765ea03f60351289947ce3699e34eda8ec7fb5a 100644 (file)
@@ -809,11 +809,11 @@ bool wxInputStream::Ungetch(char c)
     return Ungetch(&c, sizeof(c)) != 0;
 }
 
-char wxInputStream::GetC()
+int wxInputStream::GetC()
 {
-    char c;
+    unsigned char c;
     Read(&c, sizeof(c));
-    return c;
+    return LastRead() ? c : wxEOF;
 }
 
 wxInputStream& wxInputStream::Read(void *buf, size_t size)
@@ -869,6 +869,7 @@ char wxInputStream::Peek()
 
 wxInputStream& wxInputStream::Read(wxOutputStream& stream_out)
 {
+    size_t lastcount = 0;
     char buf[BUF_TEMP_SIZE];
 
     for ( ;; )
@@ -879,8 +880,12 @@ wxInputStream& wxInputStream::Read(wxOutputStream& stream_out)
 
         if ( stream_out.Write(buf, bytes_read).LastWrite() != bytes_read )
             break;
+
+        lastcount += bytes_read;
     }
 
+    m_lastcount = lastcount;
+
     return *this;
 }
 
@@ -1121,9 +1126,7 @@ wxString::size_type wxFilterClassFactoryBase::FindExtension(
 {
     size_t len = wxStrlen(location);
 
-    for (const wxChar *const *p = GetProtocols(wxSTREAM_FILEEXTENSION);
-         p && *p;
-         p++)
+    for (const wxChar *const *p = GetProtocols(wxSTREAM_FILEEXT); *p; p++)
     {
         size_t l = wxStrlen(*p);
 
@@ -1137,10 +1140,10 @@ wxString::size_type wxFilterClassFactoryBase::FindExtension(
 bool wxFilterClassFactoryBase::CanHandle(const wxChar *protocol,
                                          wxStreamProtocolType type) const
 {
-    if (type == wxSTREAM_FILEEXTENSION)
+    if (type == wxSTREAM_FILEEXT)
         return FindExtension(protocol) != wxString::npos;
     else
-        for (const wxChar *const *p = GetProtocols(type); p && *p; p++)
+        for (const wxChar *const *p = GetProtocols(type); *p; p++)
             if (wxStrcmp(*p, protocol) == 0)
                 return true;