]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/console/console.cpp
Updated html version of stc.h
[wxWidgets.git] / samples / console / console.cpp
index cc732582d4d8a18a7c1ababbb4de14aafa4b02c4..20ca4b3a5e6191cfaaccdb9bfe09eb8ef0770a0d 100644 (file)
@@ -82,6 +82,7 @@
     #define TEST_STRINGS
     #define TEST_THREADS
     #define TEST_TIMER
+    #define TEST_UNICODE
     // #define TEST_VCARD            -- don't enable this (VZ)
     #define TEST_VOLUME
     #define TEST_WCHAR
@@ -91,7 +92,7 @@
     #undef TEST_ALL
     static const bool TEST_ALL = TRUE;
 #else
-    #define TEST_ZLIB
+    #define TEST_UNICODE
 
     static const bool TEST_ALL = FALSE;
 #endif
@@ -307,7 +308,19 @@ static void TestDirEnum()
 {
     puts("*** Testing wxDir::GetFirst/GetNext ***");
 
-    wxDir dir(wxGetCwd());
+    wxString cwd = wxGetCwd();
+    if ( !wxDir::Exists(cwd) )
+    {
+        printf("ERROR: current directory '%s' doesn't exist?\n", cwd.c_str());
+        return;
+    }
+
+    wxDir dir("s:/tmp/foo");
+    if ( !dir.IsOpened() )
+    {
+        printf("ERROR: failed to open current directory '%s'.\n", cwd.c_str());
+        return;
+    }
 
     puts("Enumerating everything in current directory:");
     TestDirEnumHelper(dir);
@@ -395,6 +408,38 @@ static void TestDirTraverse()
     dir.Traverse(traverser, _T(""), wxDIR_DIRS | wxDIR_HIDDEN);
 }
 
+static void TestDirExists()
+{
+    wxPuts(_T("*** Testing wxDir::Exists() ***"));
+
+    static const char *dirnames[] =
+    {
+        _T("."),
+#if defined(__WXMSW__)
+        _T("c:"),
+        _T("c:\\"),
+        _T("\\\\share\\file"),
+        _T("c:\\dos"),
+        _T("c:\\dos\\"),
+        _T("c:\\dos\\\\"),
+        _T("c:\\autoexec.bat"),
+#elif defined(__UNIX__)
+        _T("/"),
+        _T("//"),
+        _T("/usr/bin"),
+        _T("/usr//bin"),
+        _T("/usr///bin"),
+#endif
+    };
+
+    for ( size_t n = 0; n < WXSIZEOF(dirnames); n++ )
+    {
+        printf(_T("%-40s: %s\n"),
+               dirnames[n],
+               wxDir::Exists(dirnames[n]) ? _T("exists") : _T("doesn't exist"));
+    }
+}
+
 #endif // TEST_DIR
 
 // ----------------------------------------------------------------------------
@@ -822,6 +867,7 @@ static struct FileNameInfo
     { _T("c:\\foo.bar"), _T("c"), _T("\\"), _T("foo"), _T("bar"), TRUE, wxPATH_DOS },
     { _T("c:\\Windows\\command.com"), _T("c"), _T("\\Windows"), _T("command"), _T("com"), TRUE, wxPATH_DOS },
     { _T("\\\\server\\foo.bar"), _T("server"), _T("\\"), _T("foo"), _T("bar"), TRUE, wxPATH_DOS },
+    { _T("\\\\server\\dir\\foo.bar"), _T("server"), _T("\\dir"), _T("foo"), _T("bar"), TRUE, wxPATH_DOS },
 
     // wxFileName support for Mac file names is broken currently
 #if 0
@@ -1695,6 +1741,7 @@ static void TestMimeFilename()
         _T("readme.txt"),
         _T("document.pdf"),
         _T("image.gif"),
+        _T("picture.jpeg"),
     };
 
     for ( size_t n = 0; n < WXSIZEOF(filenames); n++ )
@@ -3026,13 +3073,27 @@ static void TestFileStream()
 
 static void TestMemoryStream()
 {
-    puts("*** Testing wxMemoryInputStream ***");
+    wxPuts(_T("*** Testing wxMemoryOutputStream ***"));
+
+    wxMemoryOutputStream memOutStream;
+    wxPrintf(_T("Initially out stream offset: %lu\n"),
+             (unsigned long)memOutStream.TellO());
+
+    for ( const wxChar *p = _T("Hello, stream!"); *p; p++ )
+    {
+        memOutStream.PutC(*p);
+    }
+
+    wxPrintf(_T("Final out stream offset: %lu\n"),
+             (unsigned long)memOutStream.TellO());
+
+    wxPuts(_T("*** Testing wxMemoryInputStream ***"));
 
     wxChar buf[1024];
-    wxStrncpy(buf, _T("Hello, stream!"), WXSIZEOF(buf));
+    size_t len = memOutStream.CopyTo(buf, WXSIZEOF(buf));
 
-    wxMemoryInputStream memInpStream(buf, wxStrlen(buf));
-    printf(_T("Memory stream size: %u\n"), memInpStream.GetSize());
+    wxMemoryInputStream memInpStream(buf, len);
+    wxPrintf(_T("Memory stream size: %u\n"), memInpStream.GetSize());
     while ( !memInpStream.Eof() )
     {
         putchar(memInpStream.GetC());
@@ -3406,9 +3467,26 @@ static void TestFSVolume()
 #endif // TEST_VOLUME
 
 // ----------------------------------------------------------------------------
-// wide char (Unicode) support
+// wide char and Unicode support
 // ----------------------------------------------------------------------------
 
+#ifdef TEST_UNICODE
+
+static void TestUnicodeToFromAscii()
+{
+    wxPuts(_T("Testing wxString::To/FromAscii()\n"));
+
+    static const char *msg = "Hello, world!";
+    wxString s = wxString::FromAscii(msg);
+
+    wxPrintf(_T("Message in Unicode: %s\n"), s.c_str());
+    printf("Message in ASCII: %s\n", s.ToAscii());
+
+    wxPutchar(_T('\n'));
+}
+
+#endif // TEST_UNICODE
+
 #ifdef TEST_WCHAR
 
 #include "wx/strconv.h"
@@ -3692,6 +3770,10 @@ struct Date
 static const Date testDates[] =
 {
     {  1, wxDateTime::Jan,  1970, 00, 00, 00, 2440587.5, wxDateTime::Thu,         0,     -3600 },
+    {  7, wxDateTime::Feb,  2036, 00, 00, 00, 2464730.5, wxDateTime::Thu,        -1,        -1 },
+    {  8, wxDateTime::Feb,  2036, 00, 00, 00, 2464731.5, wxDateTime::Fri,        -1,        -1 },
+    {  1, wxDateTime::Jan,  2037, 00, 00, 00, 2465059.5, wxDateTime::Thu,        -1,        -1 },
+    {  1, wxDateTime::Jan,  2038, 00, 00, 00, 2465424.5, wxDateTime::Fri,        -1,        -1 },
     { 21, wxDateTime::Jan,  2222, 00, 00, 00, 2532648.5, wxDateTime::Mon,        -1,        -1 },
     { 29, wxDateTime::May,  1976, 12, 00, 00, 2442928.0, wxDateTime::Sat, 202219200, 202212000 },
     { 29, wxDateTime::Feb,  1976, 00, 00, 00, 2442837.5, wxDateTime::Sun, 194400000, 194396400 },
@@ -5039,18 +5121,18 @@ public:
 
     virtual ExitCode Entry()
     {
-        wxPrintf(_T("%s: Thread %d starting to wait for semaphore...\n"),
-                 wxDateTime::Now().FormatTime().c_str(), m_i);
+        wxPrintf(_T("%s: Thread #%d (%ld) starting to wait for semaphore...\n"),
+                 wxDateTime::Now().FormatTime().c_str(), m_i, (long)GetId());
 
         m_sem->Wait();
 
-        wxPrintf(_T("%s: Thread %d acquired the semaphore.\n"),
-                 wxDateTime::Now().FormatTime().c_str(), m_i);
+        wxPrintf(_T("%s: Thread #%d (%ld) acquired the semaphore.\n"),
+                 wxDateTime::Now().FormatTime().c_str(), m_i, (long)GetId());
 
         Sleep(1000);
 
-        wxPrintf(_T("%s: Thread %d releasing the semaphore.\n"),
-                 wxDateTime::Now().FormatTime().c_str(), m_i);
+        wxPrintf(_T("%s: Thread #%d (%ld) releasing the semaphore.\n"),
+                 wxDateTime::Now().FormatTime().c_str(), m_i, (long)GetId());
 
         m_sem->Post();
 
@@ -5793,9 +5875,10 @@ int main(int argc, char **argv)
 #ifdef TEST_DIR
     if ( TEST_ALL )
     {
-        TestDirEnum();
+        TestDirExists();
         TestDirTraverse();
     }
+    TestDirEnum();
 #endif // TEST_DIR
 
 #ifdef TEST_DLLLOADER
@@ -5851,7 +5934,7 @@ int main(int argc, char **argv)
 #endif // TEST_FILE
 
 #ifdef TEST_FILENAME
-    if ( 1 )
+    if ( 0 )
     {
         wxFileName fn;
         fn.Assign("c:\\foo", "bar.baz");
@@ -5860,6 +5943,7 @@ int main(int argc, char **argv)
         DumpFileName(fn);
     }
 
+    TestFileNameConstruction();
     if ( TEST_ALL )
     {
         TestFileNameConstruction();
@@ -5935,10 +6019,9 @@ int main(int argc, char **argv)
     {
         TestMimeEnum();
         TestMimeOverride();
-        TestMimeFilename();
+        TestMimeAssociate();
     }
-
-    TestMimeAssociate();
+    TestMimeFilename();
 #endif // TEST_MIME
 
 #ifdef TEST_INFO_FUNCTIONS
@@ -5989,8 +6072,11 @@ int main(int argc, char **argv)
 #endif // TEST_SOCKETS
 
 #ifdef TEST_STREAMS
-    TestFileStream();
-    TestMemoryStream();
+    if ( TEST_ALL )
+    {
+        TestFileStream();
+    }
+        TestMemoryStream();
 #endif // TEST_STREAMS
 
 #ifdef TEST_THREADS
@@ -6056,6 +6142,10 @@ int main(int argc, char **argv)
     TestFSVolume();
 #endif // TEST_VOLUME
 
+#ifdef TEST_UNICODE
+    TestUnicodeToFromAscii();
+#endif // TEST_UNICODE
+
 #ifdef TEST_WCHAR
     TestUtf8();
     TestEncodingConverter();