X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/eaff0f0d3f7828c2acd9ebde4979acc0b3fa43b5..40711af81b4a412892045837997211d597d98ff2:/samples/console/console.cpp diff --git a/samples/console/console.cpp b/samples/console/console.cpp index 1ad703cabd..51338a5690 100644 --- a/samples/console/console.cpp +++ b/samples/console/console.cpp @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// // Name: samples/console/console.cpp -// Purpose: a sample console (as opposed to GUI) progam using wxWidgets +// Purpose: A sample console (as opposed to GUI) program using wxWidgets // Author: Vadim Zeitlin // Modified by: // Created: 04.10.99 @@ -53,7 +53,7 @@ #define TEST_CMDLINE #define TEST_DATETIME #define TEST_DIR - #define TEST_DLLLOADER + #define TEST_DYNLIB #define TEST_ENVIRON #define TEST_EXECUTE #define TEST_FILE @@ -85,7 +85,7 @@ #define TEST_WCHAR #define TEST_ZIP #else // #if TEST_ALL - #define TEST_STACKWALKER + #define TEST_DIR #endif // some tests are interactive, define this to run them @@ -201,7 +201,7 @@ static void TestCmdLineConvert() #ifdef __UNIX__ static const wxChar *ROOTDIR = _T("/"); static const wxChar *TESTDIR = _T("/usr/local/share"); -#elif defined(__WXMSW__) +#elif defined(__WXMSW__) || defined(__DOS__) static const wxChar *ROOTDIR = _T("c:\\"); static const wxChar *TESTDIR = _T("d:\\"); #else @@ -372,7 +372,7 @@ static void TestDirExists() // wxDllLoader // ---------------------------------------------------------------------------- -#ifdef TEST_DLLLOADER +#ifdef TEST_DYNLIB #include "wx/dynlib.h" @@ -398,7 +398,7 @@ static void TestDllLoad() } else { - typedef int (*wxStrlenType)(const char *); + typedef int (wxSTDCALL *wxStrlenType)(const char *); wxStrlenType pfnStrlen = (wxStrlenType)lib.GetSymbol(FUNC_NAME); if ( !pfnStrlen ) { @@ -419,6 +419,26 @@ static void TestDllLoad() wxPuts(_T("... ok")); } } + +#ifdef __WXMSW__ + static const wxChar *FUNC_NAME_AW = _T("lstrlen"); + + typedef int (wxSTDCALL *wxStrlenTypeAorW)(const wxChar *); + wxStrlenTypeAorW + pfnStrlenAorW = (wxStrlenTypeAorW)lib.GetSymbolAorW(FUNC_NAME_AW); + if ( !pfnStrlenAorW ) + { + wxPrintf(_T("ERROR: function '%s' wasn't found in '%s'.\n"), + FUNC_NAME_AW, LIB_NAME); + } + else + { + if ( pfnStrlenAorW(_T("foobar")) != 6 ) + { + wxPrintf(_T("ERROR: loaded function is not wxStrlen()!\n")); + } + } +#endif // __WXMSW__ } } @@ -450,7 +470,7 @@ static void TestDllListLoaded() #endif -#endif // TEST_DLLLOADER +#endif // TEST_DYNLIB // ---------------------------------------------------------------------------- // wxGet/SetEnv @@ -841,70 +861,6 @@ static void TestFileNameTemp() } } -static void TestFileNameMakeRelative() -{ - wxPuts(_T("*** testing wxFileName::MakeRelativeTo() ***")); - - for ( size_t n = 0; n < WXSIZEOF(filenames); n++ ) - { - const FileNameInfo& fni = filenames[n]; - - wxFileName fn(fni.fullname, fni.format); - - // choose the base dir of the same format - wxString base; - switch ( fni.format ) - { - case wxPATH_UNIX: - base = _T("/usr/bin/"); - break; - - case wxPATH_DOS: - base = _T("c:\\"); - break; - - case wxPATH_MAC: - case wxPATH_VMS: - // TODO: I don't know how this is supposed to work there - continue; - - case wxPATH_NATIVE: // make gcc happy - default: - wxFAIL_MSG( _T("unexpected path format") ); - } - - wxPrintf(_T("'%s' relative to '%s': "), - fn.GetFullPath(fni.format).c_str(), base.c_str()); - - if ( !fn.MakeRelativeTo(base, fni.format) ) - { - wxPuts(_T("unchanged")); - } - else - { - wxPrintf(_T("'%s'\n"), fn.GetFullPath(fni.format).c_str()); - } - } -} - -static void TestFileNameMakeAbsolute() -{ - wxPuts(_T("*** testing wxFileName::MakeAbsolute() ***")); - - for ( size_t n = 0; n < WXSIZEOF(filenames); n++ ) - { - const FileNameInfo& fni = filenames[n]; - wxFileName fn(fni.fullname, fni.format); - - wxPrintf(_T("'%s' absolutized: "), - fn.GetFullPath(fni.format).c_str()); - fn.MakeAbsolute(); - wxPrintf(_T("'%s'\n"), fn.GetFullPath(fni.format).c_str()); - } - - wxPuts(wxEmptyString); -} - static void TestFileNameDirManip() { // TODO: test AppendDir(), RemoveDir(), ... @@ -2636,6 +2592,8 @@ static void TestFtpUpload() #ifdef TEST_STACKWALKER +#if wxUSE_STACKWALKER + #include "wx/stackwalk.h" class StackDump : public wxStackWalker @@ -2646,11 +2604,11 @@ public: { } - virtual void Walk() + virtual void Walk(size_t skip = 1) { wxPuts(_T("Stack dump:")); - wxStackWalker::Walk(); + wxStackWalker::Walk(skip); } protected: @@ -2693,6 +2651,8 @@ static void TestStackWalk(const char *argv0) dump.Walk(); } +#endif // wxUSE_STACKWALKER + #endif // TEST_STACKWALKER // ---------------------------------------------------------------------------- @@ -2709,7 +2669,7 @@ static void TestStandardPaths() wxTheApp->SetAppName(_T("console")); - wxStandardPaths& stdp = wxStandardPaths::Get(); + wxStandardPathsBase& stdp = wxStandardPaths::Get(); wxPrintf(_T("Config dir (sys):\t%s\n"), stdp.GetConfigDir().c_str()); wxPrintf(_T("Config dir (user):\t%s\n"), stdp.GetUserConfigDir().c_str()); wxPrintf(_T("Data dir (sys):\t\t%s\n"), stdp.GetDataDir().c_str()); @@ -2794,7 +2754,7 @@ static void TestMemoryStream() #ifdef TEST_TIMER -#include "wx/timer.h" +#include "wx/stopwatch.h" #include "wx/utils.h" static void TestStopWatch() @@ -3055,7 +3015,7 @@ static void TestVCardRead() wxPrintf(_T("Full name from wxVCard API: %s\n"), value.c_str()); - // now show how to deal with multiply occuring properties + // now show how to deal with multiply occurring properties DumpVCardAddresses(vcard); DumpVCardPhoneNumbers(vcard); @@ -4074,6 +4034,24 @@ static void TestSemaphore() int main(int argc, char **argv) { +#if wxUSE_UNICODE + wxChar **wxArgv = new wxChar *[argc + 1]; + + { + int n; + + for (n = 0; n < argc; n++ ) + { + wxMB2WXbuf warg = wxConvertMB2WX(argv[n]); + wxArgv[n] = wxStrdup(warg); + } + + wxArgv[n] = NULL; + } +#else // !wxUSE_UNICODE + #define wxArgv argv +#endif // wxUSE_UNICODE/!wxUSE_UNICODE + wxApp::CheckBuildOptions(WX_BUILD_OPTIONS_SIGNATURE, "program"); wxInitializer initializer; @@ -4129,34 +4107,7 @@ int main(int argc, char **argv) { wxCMD_LINE_NONE } }; -#if wxUSE_UNICODE - wxChar **wargv = new wxChar *[argc + 1]; - - { - int n; - - for (n = 0; n < argc; n++ ) - { - wxMB2WXbuf warg = wxConvertMB2WX(argv[n]); - wargv[n] = wxStrdup(warg); - } - - wargv[n] = NULL; - } - - #define argv wargv -#endif // wxUSE_UNICODE - - wxCmdLineParser parser(cmdLineDesc, argc, argv); - -#if wxUSE_UNICODE - { - for ( int n = 0; n < argc; n++ ) - free(wargv[n]); - - delete [] wargv; - } -#endif // wxUSE_UNICODE + wxCmdLineParser parser(cmdLineDesc, argc, wxArgv); parser.AddOption(_T("project_name"), _T(""), _T("full path to project file"), wxCMD_LINE_VAL_STRING, @@ -4188,10 +4139,10 @@ int main(int argc, char **argv) TestDirTraverse(); #endif // TEST_DIR -#ifdef TEST_DLLLOADER +#ifdef TEST_DYNLIB TestDllLoad(); TestDllListLoaded(); -#endif // TEST_DLLLOADER +#endif // TEST_DYNLIB #ifdef TEST_ENVIRON TestEnvironment(); @@ -4240,10 +4191,6 @@ int main(int argc, char **argv) #endif // TEST_FILE #ifdef TEST_FILENAME - TestFileNameConstruction(); - TestFileNameMakeRelative(); - TestFileNameMakeAbsolute(); - TestFileNameSplit(); TestFileNameTemp(); TestFileNameCwd(); TestFileNameDirManip(); @@ -4371,17 +4318,10 @@ int main(int argc, char **argv) #ifdef TEST_DATETIME #if TEST_ALL - TestTimeSet(); TestTimeStatic(); TestTimeRange(); TestTimeZones(); - TestTimeTicks(); - TestTimeJDN(); TestTimeDST(); - TestTimeWDays(); - TestTimeWNumber(); - TestTimeParse(); - TestTimeArithmetics(); TestTimeHolidays(); TestTimeSpanFormat(); TestTimeMS(); @@ -4399,7 +4339,9 @@ int main(int argc, char **argv) #endif #ifdef TEST_STACKWALKER +#if wxUSE_STACKWALKER TestStackWalk(argv[0]); +#endif #endif // TEST_STACKWALKER #ifdef TEST_STDPATHS @@ -4430,6 +4372,15 @@ int main(int argc, char **argv) TestZipFileSystem(); #endif // TEST_ZIP +#if wxUSE_UNICODE + { + for ( int n = 0; n < argc; n++ ) + free(wxArgv[n]); + + delete [] wxArgv; + } +#endif // wxUSE_UNICODE + wxUnusedVar(argc); wxUnusedVar(argv); return 0;