0027772: Foundation Classes - define Standard_Boolean using C++ type "bool" instead...
[occt.git] / src / IFSelect / IFSelect_SessionPilot.cxx
old mode 100755 (executable)
new mode 100644 (file)
index 53be144..f0bbb20
@@ -1,26 +1,46 @@
-#include <Standard_Stream.hxx>
+// Copyright (c) 1999-2014 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
 
-#include <IFSelect_SessionPilot.ixx>
 #include <IFSelect_Activator.hxx>
 #include <IFSelect_Selection.hxx>
+#include <IFSelect_SessionPilot.hxx>
+#include <IFSelect_SignCounter.hxx>
+#include <IFSelect_WorkLibrary.hxx>
+#include <IFSelect_WorkSession.hxx>
 #include <Interface_EntityIterator.hxx>
 #include <Interface_InterfaceModel.hxx>
-#include <TColStd_HSequenceOfAsciiString.hxx>
-
 #include <Interface_Macros.hxx>
-#include <Message_Messenger.hxx>
 #include <Message.hxx>
+#include <Message_Messenger.hxx>
+#include <OSD_OpenFile.hxx>
+#include <Standard_Stream.hxx>
+#include <Standard_Transient.hxx>
+#include <Standard_Type.hxx>
+#include <TCollection_AsciiString.hxx>
+#include <TColStd_HSequenceOfAsciiString.hxx>
 
 #include <stdio.h>
+IMPLEMENT_STANDARD_RTTIEXT(IFSelect_SessionPilot,IFSelect_Activator)
 
 #define MAXWORDS 200
 #define MAXCARS 1000
 
 static int initactor = 0;
-static char* trace;
-
 static TCollection_AsciiString nulword;
 
+//#define DEBUG_TRACE
+
 // Nb Maxi de words : cf thewords et method SetCommandLine
 
     IFSelect_SessionPilot::IFSelect_SessionPilot (const Standard_CString prompt)
@@ -37,7 +57,6 @@ static TCollection_AsciiString nulword;
   Add (4,"xsource");
   Add (5,"xstep");
   Add (6,"xnew");
-  trace = getenv("DEBUGMODE");
 }
 
 
@@ -80,7 +99,9 @@ static TCollection_AsciiString nulword;
       if (thenbwords >= MAXWORDS) {  unarg[nc] = val;  nc ++;  continue;  }
       unarg[nc] = '\0';
       thewords(thenbwords).Clear();  thewords(thenbwords).AssignCat(unarg);
-      if (trace) cout<<"thewords("<<thenbwords<<") ="<<unarg<<endl;
+#ifdef DEBUG_TRACE
+      cout<<"thewords("<<thenbwords<<") ="<<unarg<<endl;
+#endif
       thenbwords ++; nc = 0;
       continue;
     }
@@ -91,7 +112,9 @@ static TCollection_AsciiString nulword;
   if (nc > 0) {
     unarg[nc] = '\0'; thewords(thenbwords).Clear();
     thewords(thenbwords).AssignCat(unarg);
-    if (trace) cout<<"thewords("<<thenbwords<<")="<<unarg<<endl<<" .. Fin avec thenbwords="<<thenbwords+1<<endl;
+#ifdef DEBUG_TRACE
+    cout<<"thewords("<<thenbwords<<")="<<unarg<<endl<<" .. Fin avec thenbwords="<<thenbwords+1<<endl;
+#endif
     thenbwords ++;
   }
 /*
@@ -212,7 +235,7 @@ static TCollection_AsciiString nulword;
 {
   FILE* fic; int lefic = 0;
   if (file != NULL && file[0] != '\0') {
-    fic = fopen (file,"r");
+    fic = OSD_OpenFile (file,"r");
     if (fic) lefic = 1;
     else { cout<<" ...   Script File "<<file<<" not found"<<endl; return IFSelect_RetFail; }
     cout << " ...   Reading Script File " << file << endl;
@@ -222,10 +245,13 @@ static TCollection_AsciiString nulword;
 
   for (;;) {
     char ligne[100];
-    if (!lefic) printf (theprompt.ToCString());
+    if (!lefic) std::cout << theprompt.ToCString();
     ligne[0] = '\0';
-    fgets(ligne,100,fic);
-    if (feof(fic)) break;
+    if (fgets(ligne,100,fic) == NULL
+     || feof(fic) != 0)
+    {
+      break;
+    }
     if (ligne[0] == '\0') continue;
 //    On interprete cette commande
     TCollection_AsciiString command(ligne);
@@ -262,8 +288,8 @@ static TCollection_AsciiString nulword;
 //  Ici, resultat non nomme;  Resultat nomme par commande x (plus loin)
     if (!theobjrec.IsNull()) {
       thesession->RemoveItem(theobjrec);  //// depannage ?
-      Standard_Boolean addws = thesession->AddItem(theobjrec);
-      if (!addws) { cout<<"Could not add item to session, sorry"<<endl; return IFSelect_RetFail; }
+      Standard_Integer addws = thesession->AddItem(theobjrec);
+      if (addws == 0) { cout<<"Could not add item to session, sorry"<<endl; return IFSelect_RetFail; }
     }
 
     if (stat == IFSelect_RetVoid || stat == IFSelect_RetDone) {
@@ -474,10 +500,10 @@ static TCollection_AsciiString nulword;
 //  Prise en compte des commandes a resultat
          if (!theobjrec.IsNull()) {
            thesession->RemoveItem(theobjrec);  //// depannage ?
-           Standard_Boolean addws =
+           Standard_Integer addws =
              thesession->AddNamedItem(name.ToCString(),theobjrec);
            theobjrec.Nullify();
-           if (!addws) { cout<<"Could not add named item:"<<name<<", sorry"<<endl; return IFSelect_RetFail; }
+           if (addws == 0) { cout<<"Could not add named item:"<<name<<", sorry"<<endl; return IFSelect_RetFail; }
          }
          else cout<<"Remark : xsnew with name:"<<name<<" and no result"<<endl;