add -keepconsole on Windows GUI, to help during debug 34/12334/2
Antoine ELIAS [Mon, 26 Aug 2013 09:03:27 +0000 (11:03 +0200)]
to test add for example some outputs in modules/console/src/java/org/scilab/modules/console/SciConsole.java

Change-Id: I986b7a36a51cf13e22f8f52d93946f049bcb3f59

scilab/CHANGES_5.5.X
scilab/modules/windows_tools/etc/windows_tools.start
scilab/modules/windows_tools/src/c/WinConsole.c
scilab/modules/windows_tools/src/c/scilab_windows/windows_main.c

index ae208fa..1c84166 100644 (file)
@@ -50,6 +50,9 @@ BDF methods with direct and preconditioned Krylov linear solvers, based on ODEPA
 
 * Windows Solution updated to Visual Studio 2012.
 
+* -keepconsole option added for Scilab Windows to facilitate debugging.
+  Calling Scilab with this optin will leave the console box window opened at startup.
+
 * License update: switch to the CeCILL 2.1.
 
 
index a30f4e5..5c71599 100644 (file)
@@ -19,7 +19,7 @@ function [windows_toolslib, WSCI] = startModule()
   WSCI = getlongpathname(pathconvert(SCI, %f, %f, "w"));
 
 // =============================================================================
-  if (getscilabmode() == 'STD') then 
+  if (getscilabmode() == 'STD' & find(sciargs() == "-keepconsole") == []) then
     consolebox('off');
   end
   
index ceb49b3..b425a1c 100644 (file)
@@ -30,6 +30,7 @@ void HideScilex(void)
     if (hScilex)
     {
         ShowWindow(hScilex, SW_HIDE);
+        SetConsoleState(0);
     }
 }
 /*--------------------------------------------------------------------------*/
@@ -41,6 +42,7 @@ void ShowScilex(void)
     if (hScilex)
     {
         ShowWindow(hScilex, SW_SHOWNOACTIVATE);
+        SetConsoleState(1);
     }
 }
 /*--------------------------------------------------------------------------*/
@@ -54,14 +56,12 @@ void SwitchConsole(void)
         case 0:
         {
             ShowScilex();
-            SetConsoleState(1);
         }
         break;
         /* La fenetre etait apparente , on la cache */
         case 1:
         {
             HideScilex();
-            SetConsoleState(0);
         }
         break;
     }
index aca32a4..73a2fd7 100644 (file)
@@ -60,6 +60,7 @@ int Windows_Main (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine,
     int  argcount = 0, lpath = 0;
     InitScriptType pathtype = SCILAB_SCRIPT;
     char *path = NULL;
+    BOOL bHideConsole = TRUE;
 
     forbiddenToUseScilab();
 
@@ -128,6 +129,7 @@ int Windows_Main (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine,
             strcat(Msg, "-nogui: start Scilab without GUI,tcl/tk and user interaction (batch mode).\n");
             strcat(Msg, "-texmacs: reserved for WinTeXMacs.\n");
             strcat(Msg, "-version: print product version and exit.\n");
+            strcat(Msg, "-keepconsole: keep native console box opened.\n");
 
             MessageBox(NULL, Msg, "Help", MB_ICONINFORMATION);
             exit(1);
@@ -235,6 +237,10 @@ int Windows_Main (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine,
                 char *language = my_argv[argcount + 1];
                 setLanguageFromCommandLine(language);
             }
+            else if ( _stricmp(ArgTmp, "-keepconsole") == 0)
+            {
+                bHideConsole = FALSE;
+            }
         }
 
 #ifndef _DEBUG
@@ -249,7 +255,15 @@ int Windows_Main (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine,
 
     CreateScilabHiddenWndThread();
     CreateScilabConsole(sci_show_banner);
-    HideScilex(); /* hide console window */
+
+    if (bHideConsole)
+    {
+        HideScilex(); /* hide console window */
+    }
+    else
+    {
+        ShowScilex();
+    }
 
     createInnosetupMutex();
     return sci_windows_main (&startupf, path, (InitScriptType)pathtype, &lpath, memory);