]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/console/console.cpp
Fix compilo
[wxWidgets.git] / samples / console / console.cpp
index 7921752aa4fbc6dd8e9a5b64156c329f5a23c4ad..27016fc935cf4dbc56dd451ce861eafecd8efc5d 100644 (file)
@@ -88,7 +88,7 @@
     #define TEST_WCHAR
     #define TEST_ZIP
 #else // #if TEST_ALL
-    #define TEST_CMDLINE
+    #define TEST_EXECUTE
 #endif
 
 // some tests are interactive, define this to run them
@@ -150,6 +150,7 @@ static void ShowCmdLine(const wxCmdLineParser& parser)
 
     wxString strVal;
     long lVal;
+    double dVal;
     wxDateTime dt;
     if ( parser.Found(_T("o"), &strVal) )
         s << _T("Output file:\t") << strVal << '\n';
@@ -157,6 +158,8 @@ static void ShowCmdLine(const wxCmdLineParser& parser)
         s << _T("Input dir:\t") << strVal << '\n';
     if ( parser.Found(_T("s"), &lVal) )
         s << _T("Size:\t") << lVal << '\n';
+    if ( parser.Found(_T("f"), &dVal) )
+        s << _T("Double:\t") << dVal << '\n';
     if ( parser.Found(_T("d"), &dt) )
         s << _T("Date:\t") << dt.FormatISODate() << '\n';
     if ( parser.Found(_T("project_name"), &strVal) )
@@ -533,11 +536,13 @@ static void TestExecute()
     wxPuts(_T("*** testing wxExecute ***"));
 
 #ifdef __UNIX__
-    #define COMMAND "cat -n ../../Makefile" // "echo hi"
+    #define COMMAND "echo hi"
+    #define ASYNC_COMMAND "xclock"
     #define SHELL_COMMAND "echo hi from shell"
-    #define REDIRECT_COMMAND COMMAND // "date"
+    #define REDIRECT_COMMAND "cat -n Makefile"
 #elif defined(__WXMSW__)
     #define COMMAND "command.com /c echo hi"
+    #define ASYNC_COMMAND "notepad"
     #define SHELL_COMMAND "echo hi"
     #define REDIRECT_COMMAND COMMAND
 #else
@@ -553,19 +558,22 @@ static void TestExecute()
 
     wxPrintf(_T("Testing wxExecute: "));
     fflush(stdout);
-    if ( wxExecute(_T(COMMAND), true /* sync */) == 0 )
+    if ( wxExecute(_T(COMMAND), wxEXEC_SYNC) == 0 )
         wxPuts(_T("Ok."));
     else
         wxPuts(_T("ERROR."));
 
-#if 0 // no, it doesn't work (yet?)
     wxPrintf(_T("Testing async wxExecute: "));
     fflush(stdout);
-    if ( wxExecute(COMMAND) != 0 )
+    int pid = wxExecute(ASYNC_COMMAND);
+    if ( pid != 0 )
+    {
         wxPuts(_T("Ok (command launched)."));
+        if ( wxKill(pid) == -1 )
+            wxPuts("ERROR: failed to kill child process.");
+    }
     else
         wxPuts(_T("ERROR."));
-#endif // 0
 
     wxPrintf(_T("Testing wxExecute with redirection:\n"));
     wxArrayString output;
@@ -575,10 +583,25 @@ static void TestExecute()
     }
     else
     {
-        size_t count = output.GetCount();
-        for ( size_t n = 0; n < count; n++ )
+        // don't show too much output, MAX_LINES is enough
+        static const unsigned MAX_LINES = 20;
+
+        const unsigned count = output.size();
+        for ( unsigned n = 0;
+              n < (count > MAX_LINES ? MAX_LINES/2 : count);
+              n++ )
         {
-            wxPrintf(_T("\t%s\n"), output[n].c_str());
+            wxPrintf("%04u:\t%s\n", n + 1, output[n]);
+        }
+
+        if ( count > MAX_LINES )
+        {
+            wxPrintf("... skipping %u lines...\n", count - MAX_LINES);
+
+            for ( unsigned n = count - MAX_LINES/2; n < count; n++ )
+            {
+                wxPrintf("%04u:\t%s\n", n + 1, output[n]);
+            }
         }
 
         wxPuts(_T("Ok."));
@@ -4194,7 +4217,6 @@ static void TestSemaphore()
     #include "wx/snglinst.h"
 #endif // TEST_SNGLINST
 
-#include "wx/filename.h"
 int main(int argc, char **argv)
 {
 #if wxUSE_UNICODE
@@ -4263,6 +4285,8 @@ int main(int argc, char **argv)
             wxCMD_LINE_VAL_NUMBER },
         { wxCMD_LINE_OPTION, "d", "date",    "output file date",
             wxCMD_LINE_VAL_DATE },
+        { wxCMD_LINE_OPTION, "f", "double",  "output double",
+            wxCMD_LINE_VAL_DOUBLE },
 
         { wxCMD_LINE_PARAM,  NULL, NULL, "input file",
             wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_MULTIPLE },