]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/tarstrm.cpp
fix the run-time behaviour after the last compilation fixing patch
[wxWidgets.git] / src / common / tarstrm.cpp
index cf149f638a898045f04dbaeb0dccefd5420621ce..ea0c0d14a8af3b8e5d1cb6e64d3e6c2dfbf76be1 100644 (file)
@@ -247,7 +247,7 @@ bool wxTarHeaderBlock::Write(wxOutputStream& out)
     return ok;
 }
 
-bool wxTarHeaderBlock::WriteField(wxOutputStream& out, int id)
+inline bool wxTarHeaderBlock::WriteField(wxOutputStream& out, int id)
 {
     return out.Write(Get(id), Len(id)).LastWrite() == Len(id);
 }
@@ -289,7 +289,10 @@ bool wxTarHeaderBlock::SetPath(const wxString& name, wxMBConv& conv)
         size_t len = name.length();
         wxCharBuffer approx(len);
         for (size_t i = 0; i < len; i++)
-            approx.data()[i] = name[i] & ~0x7F ? '_' : name[i];
+        {
+            wxChar c = name[i];
+            approx.data()[i] = c & ~0x7F ? '_' : c;
+        }
         nameBuf = approx;
     }
 
@@ -824,7 +827,7 @@ wxTarNumber wxTarInputStream::GetHeaderNumber(int id) const
 {
     wxString value;
 
-    if ((value = GetExtendedHeader(wxTarHeaderBlock::Name(id))) != wxEmptyString) {
+    if ((value = GetExtendedHeader(m_hdr->Name(id))) != wxEmptyString) {
         wxTarNumber n = 0;
         const wxChar *p = value;
         while (*p == ' ')
@@ -841,7 +844,7 @@ wxString wxTarInputStream::GetHeaderString(int id) const
 {
     wxString value;
 
-    if ((value = GetExtendedHeader(wxTarHeaderBlock::Name(id))) != wxEmptyString)
+    if ((value = GetExtendedHeader(m_hdr->Name(id))) != wxEmptyString)
         return value;
 
     return wxString(m_hdr->Get(id), GetConv());
@@ -1265,7 +1268,7 @@ wxString wxTarOutputStream::PaxHeaderPath(const wxString& format,
         if (end == wxString::npos || end + 1 >= format.length())
             break;
         ret << format.substr(begin, end - begin);
-        switch (format[end + 1]) {
+        switch ( format[end + 1].GetValue() ) {
             case 'd': ret << d; break;
             case 'f': ret << f; break;
             case 'p': ret << wxGetProcessId(); break;
@@ -1291,7 +1294,7 @@ bool wxTarOutputStream::ModifyHeader()
         originalPos = m_parent_o_stream->TellO();
         if (originalPos != wxInvalidOffset)
             sizePos =
-                m_parent_o_stream->SeekO(m_headpos + wxTarHeaderBlock::Offset(TAR_SIZE));
+                m_parent_o_stream->SeekO(m_headpos + m_hdr->Offset(TAR_SIZE));
     }
 
     if (sizePos == wxInvalidOffset || !m_hdr->SetOctal(TAR_SIZE, m_pos)) {
@@ -1302,7 +1305,7 @@ bool wxTarOutputStream::ModifyHeader()
 
     m_chksum += m_hdr->SumField(TAR_SIZE);
     m_hdr->SetOctal(TAR_CHKSUM, m_chksum);
-    wxFileOffset sumPos = m_headpos + wxTarHeaderBlock::Offset(TAR_CHKSUM);
+    wxFileOffset sumPos = m_headpos + m_hdr->Offset(TAR_CHKSUM);
 
     return
         m_hdr->WriteField(*m_parent_o_stream, TAR_SIZE) &&
@@ -1322,16 +1325,16 @@ bool wxTarOutputStream::SetHeaderNumber(int id, wxTarNumber n)
     if (m_hdr->SetOctal(id, n)) {
         return true;
     } else {
-        SetExtendedHeader(wxTarHeaderBlock::Name(id), wxLongLong(n).ToString());
+        SetExtendedHeader(m_hdr->Name(id), wxLongLong(n).ToString());
         return false;
     }
 }
 
 void wxTarOutputStream::SetHeaderString(int id, const wxString& str)
 {
-    strncpy(m_hdr->Get(id), str.mb_str(GetConv()), wxTarHeaderBlock::Len(id));
-    if (str.length() > wxTarHeaderBlock::Len(id))
-        SetExtendedHeader(wxTarHeaderBlock::Name(id), str);
+    strncpy(m_hdr->Get(id), str.mb_str(GetConv()), m_hdr->Len(id));
+    if (str.length() > m_hdr->Len(id))
+        SetExtendedHeader(m_hdr->Name(id), str);
 }
 
 void wxTarOutputStream::SetHeaderDate(const wxString& key,