/////////////////////////////////////////////////////////////////////////////
-// Name: sckfile.cpp
+// Name: src/common/sckfile.cpp
// Purpose: File protocol
// Author: Guilhem Lavaux
// Modified by:
// Created: 20/07/97
// RCS-ID: $Id$
// Copyright: (c) 1997, 1998 Guilhem Lavaux
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
-#pragma implementation "sckfile.h"
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#include <wx/fstream.h>
-#include "wx/protocol/file.h"
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
#ifdef __BORLANDC__
-#pragma hdrstop
+ #pragma hdrstop
#endif
-#if !USE_SHARED_LIBRARY
-IMPLEMENT_DYNAMIC_CLASS(wxFileProto, wxProtocol)
-IMPLEMENT_PROTOCOL(wxFileProto, "file", NULL, FALSE)
+#if wxUSE_STREAMS && wxUSE_PROTOCOL_FILE
+
+#ifndef WX_PRECOMP
#endif
+#include "wx/uri.h"
+#include "wx/wfstream.h"
+#include "wx/protocol/file.h"
+
+
+// ----------------------------------------------------------------------------
+// wxFileProto
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxFileProto, wxProtocol)
+IMPLEMENT_PROTOCOL(wxFileProto, wxT("file"), NULL, false)
+
wxFileProto::wxFileProto()
- : wxProtocol()
+ : wxProtocol()
{
}
wxInputStream *wxFileProto::GetInputStream(const wxString& path)
{
- return new wxFileInputStream(path);
+ wxFileInputStream *retval = new wxFileInputStream(wxURI::Unescape(path));
+ if ( retval->IsOk() )
+ {
+ m_lastError = wxPROTO_NOERR;
+ return retval;
+ }
+
+ m_lastError = wxPROTO_NOFILE;
+ delete retval;
+
+ return NULL;
}
+
+#endif // wxUSE_STREAMS && wxUSE_PROTOCOL_FILE