]> git.saurik.com Git - wxWidgets.git/commitdiff
Add wxGetFileType and IsSeekable
authorMichael Wetherell <mike.wetherell@ntlworld.com>
Fri, 11 Feb 2005 12:39:03 +0000 (12:39 +0000)
committerMichael Wetherell <mike.wetherell@ntlworld.com>
Fri, 11 Feb 2005 12:39:03 +0000 (12:39 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31924 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

21 files changed:
docs/latex/wx/ffile.tex
docs/latex/wx/file.tex
docs/latex/wx/function.tex
docs/latex/wx/strmbase.tex
include/wx/ffile.h
include/wx/file.h
include/wx/filefn.h
include/wx/mstream.h
include/wx/stream.h
include/wx/wfstream.h
src/common/filefn.cpp
src/common/zipstrm.cpp
tests/Makefile.in
tests/archive/archivetest.h
tests/filetype/filetype.cpp [new file with mode: 0644]
tests/makefile.bcc
tests/makefile.gcc
tests/makefile.vc
tests/makefile.wat
tests/test.bkl
tests/test_test.dsp

index 72a8fd768f0a5b1144c3d75c0b837c12077f47d7..5dd496b9be40b66f4938ae6559a1d70924e8fb46 100644 (file)
@@ -145,6 +145,24 @@ if the file is not opened.
 Flushes the file and returns \true on success.
 
 
+\membersection{wxFFile::GetFileType}\label{wxffilegetfiletype}
+
+\constfunc{wxFileTypeEnum}{GetFileType}{\void}
+
+Returns the type of the file. Possible return values are:
+
+\begin{verbatim}
+enum wxFileTypeEnum
+{
+  wxFILE_TYPE_UNKNOWN,
+  wxFILE_TYPE_DISK,     // a file supporting seeking to arbitrary offsets
+  wxFILE_TYPE_TERMINAL, // a tty
+  wxFILE_TYPE_PIPE      // a pipe
+};
+
+\end{verbatim}
+
+
 \membersection{wxFFile::IsOpened}\label{wxffileisopened}
 
 \constfunc{bool}{IsOpened}{\void}
index 0972789d647c135abd0396d4496df70e77a036de..f9bb2c69033bbf37188e695769e3eb4172b4ff21 100644 (file)
@@ -200,6 +200,23 @@ Note that wxFile::Flush is not implemented on some Windows compilers
 due to a missing fsync function, which reduces the usefulness of this function
 (it can still be called but it will do nothing on unsupported compilers).
 
+\membersection{wxFile::GetFileType}\label{wxfilegetfiletype}
+
+\constfunc{wxFileTypeEnum}{GetFileType}{\void}
+
+Returns the type of the file. Possible return values are:
+
+\begin{verbatim}
+enum wxFileTypeEnum
+{
+  wxFILE_TYPE_UNKNOWN,
+  wxFILE_TYPE_DISK,     // a file supporting seeking to arbitrary offsets
+  wxFILE_TYPE_TERMINAL, // a tty
+  wxFILE_TYPE_PIPE      // a pipe
+};
+
+\end{verbatim}
+
 \membersection{wxFile::IsOpened}\label{wxfileisopened}
 
 \constfunc{bool}{IsOpened}{\void}
index 14c16248ac0c1d6f644483251a796ad11a65f688..ad28eda84b015bf7ff6a5a33de081c068b0ea120 100644 (file)
@@ -108,6 +108,7 @@ the corresponding topic.
 \helpref{wxGetElapsedTime}{wxgetelapsedtime}\\
 \helpref{wxGetEmailAddress}{wxgetemailaddress}\\
 \helpref{wxGetEnv}{wxgetenv}\\
+\helpref{wxGetFileType}{wxgetfiletype}\\
 \helpref{wxGetFontFromUser}{wxgetfontfromuser}\\
 \helpref{wxGetFreeMemory}{wxgetfreememory}\\
 \helpref{wxGetFullHostName}{wxgetfullhostname}\\
@@ -1015,6 +1016,30 @@ Mac OS and generic Unix provided the system has {\tt statfs()} function.
 This function first appeared in wxWidgets 2.3.2.
 
 
+\membersection{::wxGetFileType}\label{wxgetfiletype}
+
+\func{wxFileTypeEnum}{wxGetFileType}{\param{int }{fd}}
+
+\func{wxFileTypeEnum}{wxGetFileType}{\param{FILE *}{fp}}
+
+Returns the type of an open file. Possible return values are:
+
+\begin{verbatim}
+enum wxFileTypeEnum
+{
+  wxFILE_TYPE_UNKNOWN,
+  wxFILE_TYPE_DISK,     // a file supporting seeking to arbitrary offsets
+  wxFILE_TYPE_TERMINAL, // a tty
+  wxFILE_TYPE_PIPE      // a pipe
+};
+
+\end{verbatim}
+
+\wxheading{Include files}
+
+<wx/filefn.h>
+
+
 \membersection{::wxGetOSDirectory}\label{wxgetosdirectory}
 
 \func{wxString}{wxGetOSDirectory}{\void}
index 4fe1264b2b412726e24908d6e6e32f856d535b02..70ba8506d77ee82fada0eba6b2cc63e273357546 100644 (file)
@@ -94,6 +94,13 @@ Returns true if no error occurred on the stream.
 \helpref{GetLastError}{wxstreambasegetlasterror}
 
 
+\membersection{wxStreamBase::IsSeekable}\label{wxstreambaseisok}
+
+\constfunc{bool}{IsSeekable}{\void}
+
+Returns true if the streams supports seeking to arbitrary offsets.
+
+
 \membersection{wxStreamBase::OnSysRead}\label{wxstreambaseonsysread}
 
 \func{size\_t}{OnSysRead}{\param{void*}{ buffer}, \param{size\_t}{ bufsize}}
index 0236e154bfc6d3aac06b3b5b3c3f87f6a57ac4ec..2e19a906ecaaab68a191e1904b12febe7522daac 100644 (file)
@@ -96,6 +96,8 @@ public:
   bool Error() const { return ferror(m_fp) != 0; }
     // get the file name
   const wxString& GetName() const { return m_name; }
+    // type such as disk or pipe
+  wxFileTypeEnum GetFileType() const { return wxGetFileType(m_fp); }
 
   // dtor closes the file if opened
   ~wxFFile() { Close(); }
index fde5099582ef8f7c22e99ced8befd40cf8129216..1656c175ade4b4f93e8dce3c8c9bf518f9d5467e 100644 (file)
@@ -125,6 +125,8 @@ public:
   bool Eof() const;
     // has an error occured?
   bool Error() const { return m_error; }
+    // type such as disk or pipe
+  wxFileTypeEnum GetFileType() const { return wxGetFileType(m_fd); }
 
   // dtor closes the file if opened
   ~wxFile() { Close(); }
index 5ca33390f936aa7ae5a055e8036f960c7fb3de29..80cc1db89c0fc04ca7774d1d9c8305bf5e2d7657 100644 (file)
@@ -122,6 +122,14 @@ enum wxSeekMode
   wxFromEnd
 };
 
+enum wxFileTypeEnum
+{
+  wxFILE_TYPE_UNKNOWN,
+  wxFILE_TYPE_DISK,     // a file supporting seeking to arbitrary offsets
+  wxFILE_TYPE_TERMINAL, // a tty
+  wxFILE_TYPE_PIPE      // a pipe
+};
+
 // ----------------------------------------------------------------------------
 // declare our versions of low level file functions: some compilers prepend
 // underscores to the usual names, some also have Unicode versions of them
@@ -140,6 +148,7 @@ enum wxSeekMode
     int wxWrite(int fd, const void *buf, unsigned int count);
     int wxEof(int fd);
     wxFileOffset wxSeek(int fd, wxFileOffset offset, int origin);
+    inline HANDLE wxGetOSFHandle(int fd) { return (HANDLE)fd; }
     #define wxLSeek wxSeek
     wxFileOffset wxTell(int fd);
     
@@ -343,6 +352,11 @@ enum wxSeekMode
     #endif
 #endif // platforms
 
+#if defined __WXMSW__ && !defined __WXWINCE__ 
+    // get the HANDLE associated with a file descriptor
+    inline HANDLE wxGetOSFHandle(int fd) { return (HANDLE)_get_osfhandle(fd); }
+#endif
+
 #if defined(__VISAGECPP__) && __IBMCPP__ >= 400
 //
 // VisualAge C++ V4.0 cannot have any external linkage const decs
@@ -449,6 +463,10 @@ WXDLLIMPEXP_BASE bool wxMkdir(const wxString& dir, int perm = 0777);
 // Remove directory. Flags reserved for future use.
 WXDLLIMPEXP_BASE bool wxRmdir(const wxString& dir, int flags = 0);
 
+// Return the type of an open file
+WXDLLIMPEXP_BASE wxFileTypeEnum wxGetFileType(int fd);
+inline wxFileTypeEnum wxGetFileType(FILE *fp) { return wxGetFileType(fileno(fp)); }
+
 // compatibility defines, don't use in new code
 #define wxDirExists wxPathExists
 
index 525c6d9cccc347da6f23cc6b4c842d25aecb3df6..2719d90474caf2bcb137c16b6bd3824e76046e59 100644 (file)
@@ -23,6 +23,7 @@ public:
     virtual ~wxMemoryInputStream();
     virtual wxFileOffset GetLength() const { return m_length; }
     virtual bool Eof() const;
+    virtual bool IsSeekable() const { return true; }
 
     char Peek();
 
@@ -51,6 +52,7 @@ public:
     wxMemoryOutputStream(void *data = NULL, size_t length = 0);
     virtual ~wxMemoryOutputStream();
     virtual wxFileOffset GetLength() const { return m_o_streambuf->GetLastAccess(); }
+    virtual bool IsSeekable() const { return true; }
 
     size_t CopyTo(void *buffer, size_t len) const;
 
index 41d8b5372fdf1e93bb8ec003007ce7707fa1fcc4..0a6f16e545bc7d19fcdd917adc4d721759aceb6a 100644 (file)
@@ -85,6 +85,9 @@ public:
     virtual size_t GetSize() const;
     virtual wxFileOffset GetLength() const { return wxInvalidOffset; }
 
+    // returns true if the streams supports seeking to arbitrary offsets
+    virtual bool IsSeekable() const { return false; }
+
 #if WXWIN_COMPATIBILITY_2_2
     // deprecated, for compatibility only
     wxDEPRECATED( wxStreamError LastError() const );
@@ -479,6 +482,7 @@ public:
     // Position functions
     wxFileOffset SeekI(wxFileOffset pos, wxSeekMode mode = wxFromStart);
     wxFileOffset TellI() const;
+    bool IsSeekable() const { return m_parent_i_stream->IsSeekable(); }
 
     // the buffer given to the stream will be deleted by it
     void SetInputStreamBuffer(wxStreamBuffer *buffer);
@@ -514,6 +518,7 @@ public:
     // Position functions
     wxFileOffset SeekO(wxFileOffset pos, wxSeekMode mode = wxFromStart);
     wxFileOffset TellO() const;
+    bool IsSeekable() const { return m_parent_o_stream->IsSeekable(); }
 
     void Sync();
     bool Close();
index 249453f183f0e31f59400dcf88a726c95f219649..0b4be35d9b0b6c75e9054e5ad99fcd11ba987a40 100644 (file)
@@ -41,6 +41,7 @@ public:
     wxFileOffset GetLength() const;
 
     bool Ok() const { return m_file->IsOpened(); }
+    bool IsSeekable() const { return m_file->GetFileType() == wxFILE_TYPE_DISK; }
 
 protected:
     wxFileInputStream();
@@ -69,6 +70,7 @@ public:
     wxFileOffset GetLength() const;
 
     bool Ok() const { return m_file->IsOpened(); }
+    bool IsSeekable() const { return m_file->GetFileType() == wxFILE_TYPE_DISK; }
 
 protected:
     wxFileOutputStream();
@@ -109,6 +111,7 @@ public:
     wxFileOffset GetLength() const;
 
     bool Ok() const { return m_file->IsOpened(); }
+    bool IsSeekable() const { return m_file->GetFileType() == wxFILE_TYPE_DISK; }
 
 protected:
     wxFFileInputStream();
@@ -137,6 +140,7 @@ public:
     wxFileOffset GetLength() const;
 
     bool Ok() const { return m_file->IsOpened(); }
+    bool IsSeekable() const { return m_file->GetFileType() == wxFILE_TYPE_DISK; }
 
 protected:
     wxFFileOutputStream();
index b7ce5c09ec5311cb028530af30751414a87d3f8d..b780caad9a53fc0cfa39595a6ad601eaed3c036e 100644 (file)
     #endif // __GNUWIN32__
 #endif // __WINDOWS__
 
+#if defined __VMS__
+    #include <fab.h>
+#endif
+
 // TODO: Borland probably has _wgetcwd as well?
 #ifdef _MSC_VER
     #define HAVE_WGETCWD
@@ -1852,6 +1856,47 @@ bool wxMatchWild( const wxString& pat, const wxString& text, bool dot_special )
         }
 }
 
+// Return the type of an open file
+//
+wxFileTypeEnum wxGetFileType(int fd)
+{
+    if (isatty(fd))
+        return wxFILE_TYPE_TERMINAL;
+
+#if defined __WXMSW__
+    switch (::GetFileType(wxGetOSFHandle(fd)) & ~FILE_TYPE_REMOTE)
+    {
+        case FILE_TYPE_DISK:
+            return wxFILE_TYPE_DISK;
+        case FILE_TYPE_PIPE:
+            return wxFILE_TYPE_PIPE;
+    }
+
+    return wxFILE_TYPE_UNKNOWN;
+
+#elif defined __UNIX__
+    struct stat st;
+    fstat(fd, &st);
+
+    if (S_ISFIFO(st.st_mode))
+        return wxFILE_TYPE_PIPE;
+    if (!S_ISREG(st.st_mode))
+        return wxFILE_TYPE_UNKNOWN;
+
+    #if defined __VMS__
+        if (st.st_fab_rfm != FAB$C_STMLF)
+            return wxFILE_TYPE_UNKNOWN;
+    #endif
+
+    return wxFILE_TYPE_DISK;
+
+#else
+    if (lseek(fd, 0, SEEK_CUR) != -1)
+        return wxFILE_TYPE_DISK;
+    else
+        return wxFILE_TYPE_UNKNOWN;
+#endif
+}
 
 #ifdef __VISUALC__
     #pragma warning(default:4706)   // assignment within conditional expression
index 4aa752940c1af76ded8cdb57e2096285c8202ccb..63b941e3a4d9a19c78960d5ae1aafa50a3e67117 100644 (file)
@@ -1351,6 +1351,9 @@ bool wxZipInputStream::LoadEndRecord()
 //
 bool wxZipInputStream::FindEndRecord()
 {
+    if (!m_parent_i_stream->IsSeekable())
+        return false;
+
     // usually it's 22 bytes in size and the last thing in the file
     { 
         wxLogNull nolog;
@@ -1917,7 +1920,7 @@ bool wxZipOutputStream::DoCreate(wxZipEntry *entry, bool raw /*=false*/)
     ds << LOCAL_MAGIC;
 
     // and if this is the first entry test for seekability
-    if (m_headerOffset == 0) {
+    if (m_headerOffset == 0 && m_parent_o_stream->IsSeekable()) {
         bool logging = wxLog::IsEnabled();
         wxLogNull nolog;
         wxFileOffset here = m_parent_o_stream->TellO();
index 039413b37aeffe7b75908efceda7b54bc529e82a..764a2da5c91b20c941d72a4a43bd7d4c87860b1f 100644 (file)
@@ -51,6 +51,7 @@ TEST_OBJECTS =  \
        test_fileconftest.o \
        test_filenametest.o \
        test_filesystest.o \
+       test_filetype.o \
        test_fontmaptest.o \
        test_formatconvertertest.o \
        test_hashes.o \
@@ -260,6 +261,9 @@ test_filenametest.o: $(srcdir)/filename/filenametest.cpp $(TEST_ODEP)
 test_filesystest.o: $(srcdir)/filesys/filesystest.cpp $(TEST_ODEP)
        $(CXXC) -c -o $@ $(TEST_CXXFLAGS) $(srcdir)/filesys/filesystest.cpp
 
+test_filetype.o: $(srcdir)/filetype/filetype.cpp $(TEST_ODEP)
+       $(CXXC) -c -o $@ $(TEST_CXXFLAGS) $(srcdir)/filetype/filetype.cpp
+
 test_fontmaptest.o: $(srcdir)/fontmap/fontmaptest.cpp $(TEST_ODEP)
        $(CXXC) -c -o $@ $(TEST_CXXFLAGS) $(srcdir)/fontmap/fontmaptest.cpp
 
index 3799e3cd598bd7c4cb055ea431ddd8c298207f2f..eef3d45fe117575e2519a3e50020960246279b78 100644 (file)
@@ -38,6 +38,7 @@ public:
 
     int GetOptions() const { return m_options; }
     wxFileOffset GetLength() const { return m_size; }
+    bool IsSeekable() const { return (m_options & PipeOut) == 0; }
 
     // gives away the data, this stream is then empty, and can be reused
     void GetData(char*& data, size_t& size);
@@ -67,6 +68,7 @@ public:
 
     void Rewind();
     wxFileOffset GetLength() const { return m_size; }
+    bool IsSeekable() const { return (m_options & PipeIn) == 0; }
     void SetData(TestOutputStream& out);
 
 private:
diff --git a/tests/filetype/filetype.cpp b/tests/filetype/filetype.cpp
new file mode 100644 (file)
index 0000000..5eb8216
--- /dev/null
@@ -0,0 +1,202 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name:        tests/filetype/filetype.cpp
+// Purpose:     Test wxGetFileType and wxStreamBase::IsSeekable
+// Author:      Mike Wetherell
+// RCS-ID:      $Id$
+// Copyright:   (c) 2005 Mike Wetherell
+// Licence:     wxWidgets licence
+///////////////////////////////////////////////////////////////////////////////
+
+#include "testprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+// for all others, include the necessary headers
+#ifndef WX_PRECOMP
+    #include "wx/wx.h"
+#endif
+
+#ifdef __UNIX__
+    #include <sys/socket.h>
+#endif
+
+#include "wx/file.h"
+#include "wx/ffile.h"
+#include "wx/wfstream.h"
+#include "wx/filename.h"
+#include "wx/socket.h"
+#include "wx/sckstrm.h"
+#include "wx/mstream.h"
+
+#if wxUSE_STREAMS
+
+///////////////////////////////////////////////////////////////////////////////
+// The test case
+
+class FileTypeTestCase : public CppUnit::TestCase
+{
+    CPPUNIT_TEST_SUITE(FileTypeTestCase);
+        CPPUNIT_TEST(File);
+#if defined __UNIX__ || defined _MSC_VER || defined __MINGW32__
+        CPPUNIT_TEST(Pipe);
+#endif
+#if defined __UNIX__
+        CPPUNIT_TEST(Socket);
+#endif
+        CPPUNIT_TEST(Stdin);
+        CPPUNIT_TEST(MemoryStream);
+        CPPUNIT_TEST(SocketStream);
+    CPPUNIT_TEST_SUITE_END();
+
+    void File();
+    void Pipe();
+    void Socket();
+    void Stdin();
+    void MemoryStream();
+    void SocketStream();
+
+    void TestFILE(wxFFile& file, bool expected);
+    void TestFd(wxFile& file, bool expected);
+};
+
+// test a wxFFile and wxFFileInput/OutputStreams of a known type
+// 
+void FileTypeTestCase::TestFILE(wxFFile& file, bool expected)
+{
+    CPPUNIT_ASSERT(file.IsOpened());
+    CPPUNIT_ASSERT((wxGetFileType(file.fp()) == wxFILE_TYPE_DISK) == expected);
+    CPPUNIT_ASSERT((file.GetFileType() == wxFILE_TYPE_DISK) == expected);
+
+    wxFFileInputStream inStream(file);
+    CPPUNIT_ASSERT(inStream.IsSeekable() == expected);
+
+    wxFFileOutputStream outStream(file);
+    CPPUNIT_ASSERT(outStream.IsSeekable() == expected);
+}
+
+// test a wxFile and wxFileInput/OutputStreams of a known type
+//
+void FileTypeTestCase::TestFd(wxFile& file, bool expected)
+{
+    CPPUNIT_ASSERT(file.IsOpened());
+    CPPUNIT_ASSERT((wxGetFileType(file.fd()) == wxFILE_TYPE_DISK) == expected);
+    CPPUNIT_ASSERT((file.GetFileType() == wxFILE_TYPE_DISK) == expected);
+
+    wxFileInputStream inStream(file);
+    CPPUNIT_ASSERT(inStream.IsSeekable() == expected);
+
+    wxFileOutputStream outStream(file);
+    CPPUNIT_ASSERT(outStream.IsSeekable() == expected);
+}
+
+struct TempFile
+{
+    ~TempFile() { if (!m_name.IsEmpty()) wxRemoveFile(m_name); }
+    wxString m_name;
+};
+
+// test with an ordinary file
+//
+void FileTypeTestCase::File()
+{
+    TempFile tmp; // put first
+    wxFile file;
+    tmp.m_name = wxFileName::CreateTempFileName(_T("wxft"), &file);
+    TestFd(file, true);
+    file.Close();
+
+    wxFFile ffile(tmp.m_name);
+    TestFILE(ffile, true);
+}
+
+// test with a pipe
+//
+#if defined __UNIX__ || defined _MSC_VER || defined __MINGW32__
+void FileTypeTestCase::Pipe()
+{
+    int afd[2];
+#ifdef __UNIX__
+    pipe(afd);
+#else
+    _pipe(afd, 256, O_BINARY);
+#endif
+
+    wxFile file0(afd[0]);
+    wxFile file1(afd[1]);
+    TestFd(file0, false);
+    file0.Detach();
+
+    wxFFile ffile(fdopen(afd[0], "r"));
+    TestFILE(ffile, false);
+}
+#endif
+
+// test with a socket
+//
+#if defined __UNIX__
+void FileTypeTestCase::Socket()
+{
+    int s = socket(PF_INET, SOCK_STREAM, 0);
+
+    wxFile file(s);
+    TestFd(file, false);
+    file.Detach();
+
+    wxFFile ffile(fdopen(s, "r"));
+    TestFILE(ffile, false);
+}
+#endif
+
+// Socket streams should be non-seekable
+//
+#if wxUSE_SOCKETS
+void FileTypeTestCase::SocketStream()
+{
+    wxSocketClient client;
+    wxSocketInputStream inStream(client);
+    CPPUNIT_ASSERT(!inStream.IsSeekable());
+    wxSocketOutputStream outStream(client);
+    CPPUNIT_ASSERT(!outStream.IsSeekable());
+
+    wxBufferedInputStream nonSeekableBufferedInput(inStream);
+    CPPUNIT_ASSERT(!nonSeekableBufferedInput.IsSeekable());
+    wxBufferedOutputStream nonSeekableBufferedOutput(outStream);
+    CPPUNIT_ASSERT(!nonSeekableBufferedOutput.IsSeekable());
+}
+#endif
+
+// Memory streams should be seekable
+//
+void FileTypeTestCase::MemoryStream()
+{
+    char buf[20];
+    wxMemoryInputStream inStream(buf, sizeof(buf));
+    CPPUNIT_ASSERT(inStream.IsSeekable());
+    wxMemoryOutputStream outStream(buf, sizeof(buf));
+    CPPUNIT_ASSERT(outStream.IsSeekable());
+
+    wxBufferedInputStream seekableBufferedInput(inStream);
+    CPPUNIT_ASSERT(seekableBufferedInput.IsSeekable());
+    wxBufferedOutputStream seekableBufferedOutput(outStream);
+    CPPUNIT_ASSERT(seekableBufferedOutput.IsSeekable());
+}
+
+// Stdin will usually be a terminal, if so then test it
+// 
+void FileTypeTestCase::Stdin()
+{
+    if (isatty(0))
+        CPPUNIT_ASSERT(wxGetFileType(0) == wxFILE_TYPE_TERMINAL);
+    if (isatty(fileno(stdin)))
+        CPPUNIT_ASSERT(wxGetFileType(stdin) == wxFILE_TYPE_TERMINAL);
+}
+
+// register in the unnamed registry so that these tests are run by default
+CPPUNIT_TEST_SUITE_REGISTRATION(FileTypeTestCase);
+
+// also include in it's own registry so that these tests can be run alone
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(FileTypeTestCase, "FileTypeTestCase");
+
+#endif // wxUSE_STREAMS
index 9ec85d79e773dfc0b2481597b23f5b1273112fe2..2f3720e4b9b8fedd5ff91206edfee3678ee4fdd6 100644 (file)
@@ -30,7 +30,8 @@ SETUPHDIR = \
 TEST_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \
        $(__OPTIMIZEFLAG) -tWM -D__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) \
        $(__UNICODE_DEFINE_p) -I.\..\include -I$(SETUPHDIR) -I. $(__DLLFLAG_p) \
-       $(CPPUNIT_CFLAGS) -Hu -H=$(OBJS)\testprec_test.csm $(CPPFLAGS) $(CXXFLAGS)
+       -DwxUSE_GUI=0 $(CPPUNIT_CFLAGS) -Hu -H=$(OBJS)\testprec_test.csm $(CPPFLAGS) \
+       $(CXXFLAGS)
 TEST_OBJECTS =  \
        $(OBJS)\test_dummy.obj \
        $(OBJS)\test_test.obj \
@@ -41,6 +42,7 @@ TEST_OBJECTS =  \
        $(OBJS)\test_fileconftest.obj \
        $(OBJS)\test_filenametest.obj \
        $(OBJS)\test_filesystest.obj \
+       $(OBJS)\test_filetype.obj \
        $(OBJS)\test_fontmaptest.obj \
        $(OBJS)\test_formatconvertertest.obj \
        $(OBJS)\test_hashes.obj \
@@ -271,6 +273,9 @@ $(OBJS)\test_filenametest.obj: .\filename\filenametest.cpp
 $(OBJS)\test_filesystest.obj: .\filesys\filesystest.cpp
        $(CXX) -q -c -P -o$@ $(TEST_CXXFLAGS) $**
 
+$(OBJS)\test_filetype.obj: .\filetype\filetype.cpp
+       $(CXX) -q -c -P -o$@ $(TEST_CXXFLAGS) $**
+
 $(OBJS)\test_fontmaptest.obj: .\fontmap\fontmaptest.cpp
        $(CXX) -q -c -P -o$@ $(TEST_CXXFLAGS) $**
 
index 959ccf292894a97a8cddbbfd61aec0ea7cb13d52..6ae8c2a5248f05376a17a70872d35f66c1be7772 100644 (file)
@@ -20,9 +20,9 @@ SETUPHDIR = \
        $(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)
 TEST_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(GCCFLAGS) -DHAVE_W32API_H \
        -D__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__UNICODE_DEFINE_p) \
-       -I.\..\include -I$(SETUPHDIR) -W -Wall -I. $(__DLLFLAG_p) $(CPPUNIT_CFLAGS) \
-       $(__EXCEPTIONSFLAG) $(__EXCEPTIONSFLAG_0) -Wno-ctor-dtor-privacy \
-       $(CPPFLAGS) $(CXXFLAGS)
+       -I.\..\include -I$(SETUPHDIR) -W -Wall -I. $(__DLLFLAG_p) -DwxUSE_GUI=0 \
+       $(CPPUNIT_CFLAGS) $(__EXCEPTIONSFLAG) $(__EXCEPTIONSFLAG_0) \
+       -Wno-ctor-dtor-privacy $(CPPFLAGS) $(CXXFLAGS)
 TEST_OBJECTS =  \
        $(OBJS)\test_dummy.o \
        $(OBJS)\test_test.o \
@@ -33,6 +33,7 @@ TEST_OBJECTS =  \
        $(OBJS)\test_fileconftest.o \
        $(OBJS)\test_filenametest.o \
        $(OBJS)\test_filesystest.o \
+       $(OBJS)\test_filetype.o \
        $(OBJS)\test_fontmaptest.o \
        $(OBJS)\test_formatconvertertest.o \
        $(OBJS)\test_hashes.o \
@@ -261,6 +262,9 @@ $(OBJS)\test_filenametest.o: ./filename/filenametest.cpp
 $(OBJS)\test_filesystest.o: ./filesys/filesystest.cpp
        $(CXX) -c -o $@ $(TEST_CXXFLAGS) $<
 
+$(OBJS)\test_filetype.o: ./filetype/filetype.cpp
+       $(CXX) -c -o $@ $(TEST_CXXFLAGS) $<
+
 $(OBJS)\test_fontmaptest.o: ./fontmap/fontmaptest.cpp
        $(CXX) -c -o $@ $(TEST_CXXFLAGS) $<
 
index be7bd499d489c018c72e53565f36717139a3668f..1c47dd54925bc3484c1f26f6c28783e585ce3bb3 100644 (file)
@@ -22,8 +22,9 @@ TEST_CXXFLAGS = /M$(__RUNTIME_LIBS)$(__DEBUGRUNTIME_3) /DWIN32 $(__DEBUGINFO) \
        /Fd$(OBJS)\test.pdb $(____DEBUGRUNTIME_2_p) $(__OPTIMIZEFLAG) \
        $(__NO_VC_CRTDBG_p) /D__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) \
        $(__UNICODE_DEFINE_p) /I.\..\include /I$(SETUPHDIR) /W4 /I. $(__DLLFLAG_p) \
-       /D_CONSOLE $(CPPUNIT_CFLAGS) $(__EXCEPTIONSFLAG) $(__EXCEPTIONSFLAG_0) \
-       /Yu"testprec.h" /Fp"$(OBJS)\testprec_test.pch" $(CPPFLAGS) $(CXXFLAGS)
+       /D_CONSOLE /DwxUSE_GUI=0 $(CPPUNIT_CFLAGS) $(__EXCEPTIONSFLAG) \
+       $(__EXCEPTIONSFLAG_0) /Yu"testprec.h" /Fp"$(OBJS)\testprec_test.pch" \
+       $(CPPFLAGS) $(CXXFLAGS)
 TEST_OBJECTS =  \
        $(OBJS)\test_dummy.obj \
        $(OBJS)\test_test.obj \
@@ -34,6 +35,7 @@ TEST_OBJECTS =  \
        $(OBJS)\test_fileconftest.obj \
        $(OBJS)\test_filenametest.obj \
        $(OBJS)\test_filesystest.obj \
+       $(OBJS)\test_filetype.obj \
        $(OBJS)\test_fontmaptest.obj \
        $(OBJS)\test_formatconvertertest.obj \
        $(OBJS)\test_hashes.obj \
@@ -372,6 +374,9 @@ $(OBJS)\test_filenametest.obj: .\filename\filenametest.cpp
 $(OBJS)\test_filesystest.obj: .\filesys\filesystest.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) $**
 
+$(OBJS)\test_filetype.obj: .\filetype\filetype.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) $**
+
 $(OBJS)\test_fontmaptest.obj: .\fontmap\fontmaptest.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) $**
 
index 2583d4eef78fd64b3bc6a210a281a60aeadd1de3..40cd9bed32f919d27d1ac23a2c21d17d4ec65e34 100644 (file)
@@ -200,8 +200,9 @@ SETUPHDIR = &
 TEST_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) -bm $(__RUNTIME_LIBS) &
        -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__UNICODE_DEFINE_p) &
        -i=.\..\include -i=$(SETUPHDIR) -wx -wcd=549 -wcd=656 -wcd=657 -wcd=667 -i=. &
-       $(__DLLFLAG_p) $(CPPUNIT_CFLAGS) /fh=$(OBJS)\testprec_test.pch &
-       $(__EXCEPTIONSFLAG) $(__EXCEPTIONSFLAG_0) $(CPPFLAGS) $(CXXFLAGS)
+       $(__DLLFLAG_p) -dwxUSE_GUI=0 $(CPPUNIT_CFLAGS) &
+       /fh=$(OBJS)\testprec_test.pch $(__EXCEPTIONSFLAG) $(__EXCEPTIONSFLAG_0) &
+       $(CPPFLAGS) $(CXXFLAGS)
 TEST_OBJECTS =  &
        $(OBJS)\test_dummy.obj &
        $(OBJS)\test_test.obj &
@@ -212,6 +213,7 @@ TEST_OBJECTS =  &
        $(OBJS)\test_fileconftest.obj &
        $(OBJS)\test_filenametest.obj &
        $(OBJS)\test_filesystest.obj &
+       $(OBJS)\test_filetype.obj &
        $(OBJS)\test_fontmaptest.obj &
        $(OBJS)\test_formatconvertertest.obj &
        $(OBJS)\test_hashes.obj &
@@ -320,6 +322,9 @@ $(OBJS)\test_filenametest.obj :  .AUTODEPEND .\filename\filenametest.cpp
 $(OBJS)\test_filesystest.obj :  .AUTODEPEND .\filesys\filesystest.cpp
        $(CXX) -zq -fo=$^@ $(TEST_CXXFLAGS) $<
 
+$(OBJS)\test_filetype.obj :  .AUTODEPEND .\filetype\filetype.cpp
+       $(CXX) -zq -fo=$^@ $(TEST_CXXFLAGS) $<
+
 $(OBJS)\test_fontmaptest.obj :  .AUTODEPEND .\fontmap\fontmaptest.cpp
        $(CXX) -zq -fo=$^@ $(TEST_CXXFLAGS) $<
 
index b6d9073fa8dc217490eaa37625933e4f37d44c14..81084fec2c8ace5349c594e8b066c9598cfee2d1 100644 (file)
@@ -31,6 +31,7 @@
             fileconf/fileconftest.cpp
             filename/filenametest.cpp
             filesys/filesystest.cpp
+            filetype/filetype.cpp
             fontmap/fontmaptest.cpp
             formatconverter/formatconvertertest.cpp
             hashes/hashes.cpp
index 55c8d7e370c7d1bbb0879e585743bca0ca6af012..f82da313ff8e0c00f9f0be85954bb3add5953ac4 100644 (file)
@@ -54,10 +54,10 @@ RSC=rc.exe
 # PROP Output_Dir "vc_mswunivudll"
 # PROP Intermediate_Dir "vc_mswunivudll\test"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MD /Fdvc_mswunivudll\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswunivu" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivudll\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /c
-# ADD CPP /nologo /FD /MD /Fdvc_mswunivudll\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswunivu" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivudll\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /c
-# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_dll\mswunivu" /i "." /d "WXUSINGDLL" /d _CONSOLE
-# ADD RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_dll\mswunivu" /i "." /d "WXUSINGDLL" /d _CONSOLE
+# ADD BASE CPP /nologo /FD /MD /Fdvc_mswunivudll\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswunivu" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivudll\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD CPP /nologo /FD /MD /Fdvc_mswunivudll\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswunivu" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivudll\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_dll\mswunivu" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
+# ADD RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_dll\mswunivu" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -77,10 +77,10 @@ LINK32=link.exe
 # PROP Output_Dir "vc_mswunivuddll"
 # PROP Intermediate_Dir "vc_mswunivuddll\test"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivuddll\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswunivud" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivuddll\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /c
-# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivuddll\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswunivud" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivuddll\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_dll\mswunivud" /i "." /d "WXUSINGDLL" /d _CONSOLE
-# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_dll\mswunivud" /i "." /d "WXUSINGDLL" /d _CONSOLE
+# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivuddll\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswunivud" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivuddll\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivuddll\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswunivud" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivuddll\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_dll\mswunivud" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
+# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_dll\mswunivud" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -100,10 +100,10 @@ LINK32=link.exe
 # PROP Output_Dir "vc_mswunivdll"
 # PROP Intermediate_Dir "vc_mswunivdll\test"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MD /Fdvc_mswunivdll\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswuniv" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivdll\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "WXUSINGDLL" /D "_CONSOLE" /c
-# ADD CPP /nologo /FD /MD /Fdvc_mswunivdll\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswuniv" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivdll\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "WXUSINGDLL" /D "_CONSOLE" /c
-# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /i ".\..\include" /i ".\..\lib\vc_dll\mswuniv" /i "." /d "WXUSINGDLL" /d _CONSOLE
-# ADD RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /i ".\..\include" /i ".\..\lib\vc_dll\mswuniv" /i "." /d "WXUSINGDLL" /d _CONSOLE
+# ADD BASE CPP /nologo /FD /MD /Fdvc_mswunivdll\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswuniv" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivdll\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD CPP /nologo /FD /MD /Fdvc_mswunivdll\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswuniv" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivdll\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /i ".\..\include" /i ".\..\lib\vc_dll\mswuniv" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
+# ADD RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /i ".\..\include" /i ".\..\lib\vc_dll\mswuniv" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -123,10 +123,10 @@ LINK32=link.exe
 # PROP Output_Dir "vc_mswunivddll"
 # PROP Intermediate_Dir "vc_mswunivddll\test"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivddll\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswunivd" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivddll\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "WXUSINGDLL" /D "_CONSOLE" /c
-# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivddll\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswunivd" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivddll\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "WXUSINGDLL" /D "_CONSOLE" /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /i ".\..\include" /i ".\..\lib\vc_dll\mswunivd" /i "." /d "WXUSINGDLL" /d _CONSOLE
-# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /i ".\..\include" /i ".\..\lib\vc_dll\mswunivd" /i "." /d "WXUSINGDLL" /d _CONSOLE
+# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivddll\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswunivd" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivddll\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivddll\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswunivd" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivddll\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /i ".\..\include" /i ".\..\lib\vc_dll\mswunivd" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
+# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /i ".\..\include" /i ".\..\lib\vc_dll\mswunivd" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -146,10 +146,10 @@ LINK32=link.exe
 # PROP Output_Dir "vc_mswudll"
 # PROP Intermediate_Dir "vc_mswudll\test"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MD /Fdvc_mswudll\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswu" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswudll\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /c
-# ADD CPP /nologo /FD /MD /Fdvc_mswudll\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswu" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswudll\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /c
-# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_dll\mswu" /i "." /d "WXUSINGDLL" /d _CONSOLE
-# ADD RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_dll\mswu" /i "." /d "WXUSINGDLL" /d _CONSOLE
+# ADD BASE CPP /nologo /FD /MD /Fdvc_mswudll\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswu" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswudll\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD CPP /nologo /FD /MD /Fdvc_mswudll\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswu" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswudll\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_dll\mswu" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
+# ADD RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_dll\mswu" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -169,10 +169,10 @@ LINK32=link.exe
 # PROP Output_Dir "vc_mswuddll"
 # PROP Intermediate_Dir "vc_mswuddll\test"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswuddll\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswud" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswuddll\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /c
-# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswuddll\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswud" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswuddll\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_dll\mswud" /i "." /d "WXUSINGDLL" /d _CONSOLE
-# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_dll\mswud" /i "." /d "WXUSINGDLL" /d _CONSOLE
+# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswuddll\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswud" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswuddll\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswuddll\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswud" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswuddll\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_dll\mswud" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
+# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_dll\mswud" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -192,10 +192,10 @@ LINK32=link.exe
 # PROP Output_Dir "vc_mswdll"
 # PROP Intermediate_Dir "vc_mswdll\test"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MD /Fdvc_mswdll\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\msw" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswdll\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "WXUSINGDLL" /D "_CONSOLE" /c
-# ADD CPP /nologo /FD /MD /Fdvc_mswdll\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\msw" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswdll\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "WXUSINGDLL" /D "_CONSOLE" /c
-# ADD BASE RSC /l 0x409 /d "__WXMSW__" /i ".\..\include" /i ".\..\lib\vc_dll\msw" /i "." /d "WXUSINGDLL" /d _CONSOLE
-# ADD RSC /l 0x409 /d "__WXMSW__" /i ".\..\include" /i ".\..\lib\vc_dll\msw" /i "." /d "WXUSINGDLL" /d _CONSOLE
+# ADD BASE CPP /nologo /FD /MD /Fdvc_mswdll\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\msw" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswdll\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD CPP /nologo /FD /MD /Fdvc_mswdll\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\msw" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswdll\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD BASE RSC /l 0x409 /d "__WXMSW__" /i ".\..\include" /i ".\..\lib\vc_dll\msw" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
+# ADD RSC /l 0x409 /d "__WXMSW__" /i ".\..\include" /i ".\..\lib\vc_dll\msw" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -215,10 +215,10 @@ LINK32=link.exe
 # PROP Output_Dir "vc_mswddll"
 # PROP Intermediate_Dir "vc_mswddll\test"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswddll\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswd" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswddll\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "WXUSINGDLL" /D "_CONSOLE" /c
-# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswddll\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswd" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswddll\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "WXUSINGDLL" /D "_CONSOLE" /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /i ".\..\include" /i ".\..\lib\vc_dll\mswd" /i "." /d "WXUSINGDLL" /d _CONSOLE
-# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /i ".\..\include" /i ".\..\lib\vc_dll\mswd" /i "." /d "WXUSINGDLL" /d _CONSOLE
+# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswddll\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswd" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswddll\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswddll\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_dll\mswd" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswddll\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /i ".\..\include" /i ".\..\lib\vc_dll\mswd" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
+# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /i ".\..\include" /i ".\..\lib\vc_dll\mswd" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -238,10 +238,10 @@ LINK32=link.exe
 # PROP Output_Dir "vc_mswunivu"
 # PROP Intermediate_Dir "vc_mswunivu\test"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MD /Fdvc_mswunivu\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswunivu" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivu\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "_CONSOLE" /c
-# ADD CPP /nologo /FD /MD /Fdvc_mswunivu\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswunivu" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivu\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "_CONSOLE" /c
-# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_lib\mswunivu" /i "." /d _CONSOLE
-# ADD RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_lib\mswunivu" /i "." /d _CONSOLE
+# ADD BASE CPP /nologo /FD /MD /Fdvc_mswunivu\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswunivu" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivu\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD CPP /nologo /FD /MD /Fdvc_mswunivu\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswunivu" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivu\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_lib\mswunivu" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
+# ADD RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_lib\mswunivu" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -261,10 +261,10 @@ LINK32=link.exe
 # PROP Output_Dir "vc_mswunivud"
 # PROP Intermediate_Dir "vc_mswunivud\test"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivud\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswunivud" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivud\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "_CONSOLE" /c
-# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivud\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswunivud" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivud\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "_CONSOLE" /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_lib\mswunivud" /i "." /d _CONSOLE
-# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_lib\mswunivud" /i "." /d _CONSOLE
+# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivud\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswunivud" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivud\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivud\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswunivud" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivud\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_lib\mswunivud" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
+# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_lib\mswunivud" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -284,10 +284,10 @@ LINK32=link.exe
 # PROP Output_Dir "vc_mswuniv"
 # PROP Intermediate_Dir "vc_mswuniv\test"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MD /Fdvc_mswuniv\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswuniv" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswuniv\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_CONSOLE" /c
-# ADD CPP /nologo /FD /MD /Fdvc_mswuniv\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswuniv" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswuniv\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_CONSOLE" /c
-# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /i ".\..\include" /i ".\..\lib\vc_lib\mswuniv" /i "." /d _CONSOLE
-# ADD RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /i ".\..\include" /i ".\..\lib\vc_lib\mswuniv" /i "." /d _CONSOLE
+# ADD BASE CPP /nologo /FD /MD /Fdvc_mswuniv\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswuniv" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswuniv\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD CPP /nologo /FD /MD /Fdvc_mswuniv\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswuniv" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswuniv\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /i ".\..\include" /i ".\..\lib\vc_lib\mswuniv" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
+# ADD RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /i ".\..\include" /i ".\..\lib\vc_lib\mswuniv" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -307,10 +307,10 @@ LINK32=link.exe
 # PROP Output_Dir "vc_mswunivd"
 # PROP Intermediate_Dir "vc_mswunivd\test"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivd\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswunivd" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivd\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_CONSOLE" /c
-# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivd\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswunivd" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivd\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_CONSOLE" /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /i ".\..\include" /i ".\..\lib\vc_lib\mswunivd" /i "." /d _CONSOLE
-# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /i ".\..\include" /i ".\..\lib\vc_lib\mswunivd" /i "." /d _CONSOLE
+# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivd\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswunivd" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivd\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivd\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswunivd" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswunivd\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /i ".\..\include" /i ".\..\lib\vc_lib\mswunivd" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
+# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /i ".\..\include" /i ".\..\lib\vc_lib\mswunivd" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -330,10 +330,10 @@ LINK32=link.exe
 # PROP Output_Dir "vc_mswu"
 # PROP Intermediate_Dir "vc_mswu\test"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MD /Fdvc_mswu\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswu" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswu\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "_CONSOLE" /c
-# ADD CPP /nologo /FD /MD /Fdvc_mswu\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswu" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswu\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "_CONSOLE" /c
-# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_lib\mswu" /i "." /d _CONSOLE
-# ADD RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_lib\mswu" /i "." /d _CONSOLE
+# ADD BASE CPP /nologo /FD /MD /Fdvc_mswu\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswu" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswu\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD CPP /nologo /FD /MD /Fdvc_mswu\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswu" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswu\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_lib\mswu" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
+# ADD RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_lib\mswu" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -353,10 +353,10 @@ LINK32=link.exe
 # PROP Output_Dir "vc_mswud"
 # PROP Intermediate_Dir "vc_mswud\test"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswud\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswud" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswud\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "_CONSOLE" /c
-# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswud\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswud" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswud\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "_CONSOLE" /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_lib\mswud" /i "." /d _CONSOLE
-# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_lib\mswud" /i "." /d _CONSOLE
+# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswud\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswud" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswud\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswud\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswud" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswud\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_lib\mswud" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
+# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\include" /i ".\..\lib\vc_lib\mswud" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -376,10 +376,10 @@ LINK32=link.exe
 # PROP Output_Dir "vc_msw"
 # PROP Intermediate_Dir "vc_msw\test"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MD /Fdvc_msw\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\msw" /W4 /I "." /Yu"testprec.h" /Fp"vc_msw\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "_CONSOLE" /c
-# ADD CPP /nologo /FD /MD /Fdvc_msw\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\msw" /W4 /I "." /Yu"testprec.h" /Fp"vc_msw\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "_CONSOLE" /c
-# ADD BASE RSC /l 0x409 /d "__WXMSW__" /i ".\..\include" /i ".\..\lib\vc_lib\msw" /i "." /d _CONSOLE
-# ADD RSC /l 0x409 /d "__WXMSW__" /i ".\..\include" /i ".\..\lib\vc_lib\msw" /i "." /d _CONSOLE
+# ADD BASE CPP /nologo /FD /MD /Fdvc_msw\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\msw" /W4 /I "." /Yu"testprec.h" /Fp"vc_msw\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD CPP /nologo /FD /MD /Fdvc_msw\test.pdb /O2 /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\msw" /W4 /I "." /Yu"testprec.h" /Fp"vc_msw\testprec_test.pch" /D "WIN32" /D "__WXMSW__" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD BASE RSC /l 0x409 /d "__WXMSW__" /i ".\..\include" /i ".\..\lib\vc_lib\msw" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
+# ADD RSC /l 0x409 /d "__WXMSW__" /i ".\..\include" /i ".\..\lib\vc_lib\msw" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -399,10 +399,10 @@ LINK32=link.exe
 # PROP Output_Dir "vc_mswd"
 # PROP Intermediate_Dir "vc_mswd\test"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswd\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswd" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswd\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_CONSOLE" /c
-# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswd\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswd" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswd\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_CONSOLE" /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /i ".\..\include" /i ".\..\lib\vc_lib\mswd" /i "." /d _CONSOLE
-# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /i ".\..\include" /i ".\..\lib\vc_lib\mswd" /i "." /d _CONSOLE
+# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswd\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswd" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswd\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswd\test.pdb /Od /GR /GX /I ".\..\include" /I ".\..\lib\vc_lib\mswd" /W4 /I "." /Yu"testprec.h" /Fp"vc_mswd\testprec_test.pch" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_CONSOLE" /D wxUSE_GUI=0 /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /i ".\..\include" /i ".\..\lib\vc_lib\mswd" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
+# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /i ".\..\include" /i ".\..\lib\vc_lib\mswd" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
@@ -485,6 +485,10 @@ SOURCE=.\filesys\filesystest.cpp
 # End Source File
 # Begin Source File
 
+SOURCE=.\filetype\filetype.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=.\fontmap\fontmaptest.cpp
 # End Source File
 # Begin Source File