-// Copyright (c) 1999-2012 OPEN CASCADE SAS
+// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
+// This file is part of Open CASCADE Technology software library.
//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
+// 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.
//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
-#include <Standard_Stream.hxx>
-#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)
Add (4,"xsource");
Add (5,"xstep");
Add (6,"xnew");
- trace = getenv("DEBUGMODE");
}
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;
}
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 ++;
}
/*
{
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;
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);
// 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) {
// 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;