+
+ // parse arguments
+ for (Standard_Integer anArgIter = 1; anArgIter < theArgNb; ++anArgIter)
+ {
+ TCollection_AsciiString anArg(theArgVec[anArgIter]);
+ anArg.LowerCase();
+ if (anArg == "asis")
+ {
+ aMode = OSD_SignalMode_AsIs;
+ }
+ else if (anArg == "set")
+ {
+ aMode = OSD_SignalMode_Set;
+ }
+ else if (anArg == "unhandled")
+ {
+ aMode = OSD_SignalMode_SetUnhandled;
+ }
+ else if (anArg == "unset")
+ {
+ aMode = OSD_SignalMode_Unset;
+ }
+ else if (anArg == "1" || anArg == "on")
+ {
+ aSetFPE = Standard_True;
+ }
+ else if (anArg == "0" || anArg == "off")
+ {
+ aSetFPE = Standard_False;
+ }
+ else if (anArg == "default")
+ {
+ }
+ else
+ {
+ std::cout << "Syntax error: unknown argument '" << anArg << "'\n";
+ return 1;
+ }
+ }
+
+ OSD::SetSignal(aMode, aSetFPE);
+
+ // report actual status in the end
+ const char* aModeStr = 0;
+ switch (OSD::SignalMode())