diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2008-01-17 13:11:19 -0330 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2008-01-17 13:11:19 -0330 |
commit | a2e4ce4b60e9fac86c2cf81e3f22845a699efaa6 (patch) | |
tree | bbb1b67428ee22ec495456dc1a6bdd46f8e45236 /cpp/src | |
parent | Bug 2261 - renaming Ice for C# to Ice for .NET (diff) | |
download | ice-a2e4ce4b60e9fac86c2cf81e3f22845a699efaa6.tar.bz2 ice-a2e4ce4b60e9fac86c2cf81e3f22845a699efaa6.tar.xz ice-a2e4ce4b60e9fac86c2cf81e3f22845a699efaa6.zip |
Bug 2540 - trap ctrl-C and unlink output files
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Slice/.depend | 23 | ||||
-rw-r--r-- | cpp/src/Slice/JavaUtil.cpp | 2 | ||||
-rw-r--r-- | cpp/src/Slice/Makefile | 3 | ||||
-rw-r--r-- | cpp/src/Slice/Makefile.mak | 3 | ||||
-rw-r--r-- | cpp/src/Slice/Preprocessor.cpp | 2 | ||||
-rw-r--r-- | cpp/src/Slice/SignalHandler.cpp | 53 | ||||
-rwxr-xr-x | cpp/src/slice2cpp/Gen.cpp | 5 | ||||
-rw-r--r-- | cpp/src/slice2cpp/Main.cpp | 3 | ||||
-rw-r--r-- | cpp/src/slice2cppe/Gen.cpp | 5 | ||||
-rw-r--r-- | cpp/src/slice2cppe/Main.cpp | 3 | ||||
-rwxr-xr-x | cpp/src/slice2cs/Gen.cpp | 3 | ||||
-rw-r--r-- | cpp/src/slice2cs/Main.cpp | 3 | ||||
-rw-r--r-- | cpp/src/slice2docbook/Main.cpp | 7 | ||||
-rw-r--r-- | cpp/src/slice2freeze/Main.cpp | 7 | ||||
-rw-r--r-- | cpp/src/slice2freezej/Main.cpp | 8 | ||||
-rw-r--r-- | cpp/src/slice2html/Gen.cpp | 3 | ||||
-rw-r--r-- | cpp/src/slice2html/Main.cpp | 3 | ||||
-rw-r--r-- | cpp/src/slice2java/Main.cpp | 3 | ||||
-rw-r--r-- | cpp/src/slice2javae/Main.cpp | 3 | ||||
-rw-r--r-- | cpp/src/slice2py/Main.cpp | 5 | ||||
-rw-r--r-- | cpp/src/slice2rb/Main.cpp | 5 | ||||
-rwxr-xr-x | cpp/src/slice2sl/Gen.cpp | 3 | ||||
-rw-r--r-- | cpp/src/slice2sl/Main.cpp | 3 |
23 files changed, 144 insertions, 14 deletions
diff --git a/cpp/src/Slice/.depend b/cpp/src/Slice/.depend index 8b30734dd24..89b328b78c2 100644 --- a/cpp/src/Slice/.depend +++ b/cpp/src/Slice/.depend @@ -1,14 +1,15 @@ -Scanner$(OBJEXT): Scanner.cpp ../../include/IceUtil/Config.h ../Slice/GrammarUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../Slice/Grammar.h -Grammar$(OBJEXT): Grammar.cpp ../Slice/GrammarUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/UUID.h -Parser$(OBJEXT): Parser.cpp ../../include/IceUtil/Functional.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/InputUtil.h ../Slice/GrammarUtil.h -CPlusPlusUtil$(OBJEXT): CPlusPlusUtil.cpp ../../include/Slice/CPlusPlusUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h -CsUtil$(OBJEXT): CsUtil.cpp ../../include/Slice/CsUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/Slice/DotNetNames.h ../../include/IceUtil/Functional.h -VbUtil$(OBJEXT): VbUtil.cpp ../../include/Slice/VbUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/Slice/DotNetNames.h ../../include/IceUtil/Functional.h -JavaUtil$(OBJEXT): JavaUtil.cpp ../../include/Slice/JavaUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/Functional.h -Preprocessor$(OBJEXT): Preprocessor.cpp ../../include/Slice/Preprocessor.h ../../include/IceUtil/Config.h ../../include/IceUtil/StringUtil.h -Checksum$(OBJEXT): Checksum.cpp ../../include/Slice/Checksum.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../Slice/MD5.h -PythonUtil$(OBJEXT): PythonUtil.cpp ../../include/Slice/PythonUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/Slice/Checksum.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Time.h ../../include/IceUtil/Cache.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/Cond.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/Functional.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/Timer.h ../../include/IceUtil/UUID.h ../../include/IceUtil/Unicode.h +Scanner$(OBJEXT): Scanner.cpp ../../include/IceUtil/Config.h ../Slice/GrammarUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../Slice/Grammar.h ../../include/IceUtil/InputUtil.h +Grammar$(OBJEXT): Grammar.cpp ../Slice/GrammarUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/UUID.h +Parser$(OBJEXT): Parser.cpp ../../include/IceUtil/Functional.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/Unicode.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../Slice/GrammarUtil.h ../Slice/Util.h +CPlusPlusUtil$(OBJEXT): CPlusPlusUtil.cpp ../../include/Slice/CPlusPlusUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/OutputUtil.h ../Slice/Util.h +CsUtil$(OBJEXT): CsUtil.cpp ../../include/Slice/CsUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/OutputUtil.h ../../include/Slice/DotNetNames.h ../../include/IceUtil/Functional.h +JavaUtil$(OBJEXT): JavaUtil.cpp ../../include/Slice/JavaUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/OutputUtil.h ../../include/Slice/SignalHandler.h ../../include/IceUtil/Functional.h +Preprocessor$(OBJEXT): Preprocessor.cpp ../../include/IceUtil/DisableWarnings.h ../../include/Slice/Preprocessor.h ../../include/IceUtil/Config.h ../Slice/Util.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/IceUtil/Unicode.h +Checksum$(OBJEXT): Checksum.cpp ../../include/Slice/Checksum.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../Slice/MD5.h +PythonUtil$(OBJEXT): PythonUtil.cpp ../../include/Slice/PythonUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/OutputUtil.h ../../include/Slice/Checksum.h ../Slice/Util.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Time.h ../../include/IceUtil/Cache.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/Cond.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/Functional.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/Timer.h ../../include/IceUtil/UUID.h ../../include/IceUtil/Unicode.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/InputUtil.h DotNetNames$(OBJEXT): DotNetNames.cpp ../../include/Slice/DotNetNames.h -RubyUtil$(OBJEXT): RubyUtil.cpp ../../include/Slice/RubyUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/Slice/Checksum.h ../../include/IceUtil/Functional.h +RubyUtil$(OBJEXT): RubyUtil.cpp ../../include/Slice/RubyUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/OutputUtil.h ../../include/Slice/Checksum.h ../Slice/Util.h ../../include/IceUtil/Functional.h ../../include/IceUtil/InputUtil.h +Util$(OBJEXT): Util.cpp ../Slice/Util.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Unicode.h MD5$(OBJEXT): MD5.cpp ../Slice/MD5.h ../../include/IceUtil/Config.h ../Slice/MD5I.h MD5I$(OBJEXT): MD5I.cpp ../Slice/MD5I.h +SignalHandler$(OBJEXT): SignalHandler.cpp ../../include/Slice/SignalHandler.h diff --git a/cpp/src/Slice/JavaUtil.cpp b/cpp/src/Slice/JavaUtil.cpp index 294f2eba704..cb4874a2df8 100644 --- a/cpp/src/Slice/JavaUtil.cpp +++ b/cpp/src/Slice/JavaUtil.cpp @@ -8,6 +8,7 @@ // ********************************************************************** #include <Slice/JavaUtil.h> +#include <Slice/SignalHandler.h> #include <IceUtil/Functional.h> #include <sys/types.h> @@ -109,6 +110,7 @@ Slice::JavaOutput::openClass(const string& cls, const string& prefix) path += "/"; } path += file; + SignalHandler::addFile(path); open(path.c_str()); if(isOpen()) diff --git a/cpp/src/Slice/Makefile b/cpp/src/Slice/Makefile index dc6784c8ad0..d3a53013e25 100644 --- a/cpp/src/Slice/Makefile +++ b/cpp/src/Slice/Makefile @@ -28,7 +28,8 @@ OBJS = Scanner.o \ RubyUtil.o \ Util.o \ MD5.o \ - MD5I.o + MD5I.o \ + SignalHandler.o SRCS = $(OBJS:.o=.cpp) diff --git a/cpp/src/Slice/Makefile.mak b/cpp/src/Slice/Makefile.mak index 660bb0ffdd2..3b9898ac7b1 100644 --- a/cpp/src/Slice/Makefile.mak +++ b/cpp/src/Slice/Makefile.mak @@ -27,7 +27,8 @@ OBJS = Scanner.obj \ RubyUtil.obj \ Util.obj \ MD5.obj \ - MD5I.obj + MD5I.obj \ + SignalHandler.obj SRCS = $(OBJS:.obj=.cpp) diff --git a/cpp/src/Slice/Preprocessor.cpp b/cpp/src/Slice/Preprocessor.cpp index 7a6ee02ada6..d91bb1f069e 100644 --- a/cpp/src/Slice/Preprocessor.cpp +++ b/cpp/src/Slice/Preprocessor.cpp @@ -10,6 +10,7 @@ #include <IceUtil/DisableWarnings.h> #include <Slice/Preprocessor.h> #include <Slice/Util.h> +#include <Slice/SignalHandler.h> #include <IceUtil/StringUtil.h> #include <IceUtil/UUID.h> #include <IceUtil/Unicode.h> @@ -148,6 +149,7 @@ Slice::Preprocessor::preprocess(bool keepComments) char* buf = mcpp_get_mem_buffer(Out); _cppFile = ".preprocess." + IceUtil::generateUUID(); + SignalHandler::addFile(_cppFile); #ifdef _WIN32 _cppHandle = ::_wfopen(IceUtil::stringToWstring(_cppFile).c_str(), IceUtil::stringToWstring("w+").c_str()); #else diff --git a/cpp/src/Slice/SignalHandler.cpp b/cpp/src/Slice/SignalHandler.cpp new file mode 100644 index 00000000000..69065fb6ed1 --- /dev/null +++ b/cpp/src/Slice/SignalHandler.cpp @@ -0,0 +1,53 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <Slice/SignalHandler.h> +#include <signal.h> +#include <vector> + +using namespace std; + +// +// Signal handler routine to unlink output files in case of translator +// being interrupted. +// +static vector<string> _fileList; + +static void +signalHandler(int signal) +{ + for(unsigned int i = 0; i < _fileList.size(); ++i) + { + unlink(_fileList[i].c_str()); + } + + exit(1); +} + +Slice::SignalHandler::SignalHandler() +{ + sigset(SIGHUP, signalHandler); + sigset(SIGINT, signalHandler); + sigset(SIGQUIT, signalHandler); +} + +Slice::SignalHandler::~SignalHandler() +{ + sigset(SIGHUP, SIG_DFL); + sigset(SIGINT, SIG_DFL); + sigset(SIGQUIT, SIG_DFL); + + _fileList.clear(); +} + +void +Slice::SignalHandler::addFile(const string& file) +{ + _fileList.push_back(file); +} diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp index d68c2f4d8c2..91473852683 100755 --- a/cpp/src/slice2cpp/Gen.cpp +++ b/cpp/src/slice2cpp/Gen.cpp @@ -12,6 +12,7 @@ #include <IceUtil/Functional.h> #include <IceUtil/Iterator.h> #include <Slice/Checksum.h> +#include <Slice/SignalHandler.h> #include <limits> #include <sys/stat.h> @@ -72,6 +73,8 @@ Slice::Gen::Gen(const string& name, const string& base, const string& headerExte fileImplH = dir + '/' + fileImplH; fileImplC = dir + '/' + fileImplC; } + SignalHandler::addFile(fileImplH); + SignalHandler::addFile(fileImplC); struct stat st; if(stat(fileImplH.c_str(), &st) == 0) @@ -117,6 +120,8 @@ Slice::Gen::Gen(const string& name, const string& base, const string& headerExte fileH = dir + '/' + fileH; fileC = dir + '/' + fileC; } + SignalHandler::addFile(fileH); + SignalHandler::addFile(fileC); H.open(fileH.c_str()); if(!H) diff --git a/cpp/src/slice2cpp/Main.cpp b/cpp/src/slice2cpp/Main.cpp index 0edf14755d7..dddb8f16593 100644 --- a/cpp/src/slice2cpp/Main.cpp +++ b/cpp/src/slice2cpp/Main.cpp @@ -9,6 +9,7 @@ #include <IceUtil/Options.h> #include <Slice/Preprocessor.h> +#include <Slice/SignalHandler.h> #include <Gen.h> using namespace std; @@ -150,6 +151,8 @@ main(int argc, char* argv[]) for(i = args.begin(); i != args.end(); ++i) { + SignalHandler sigHandler; + if(depend) { Preprocessor icecpp(argv[0], *i, cppArgs); diff --git a/cpp/src/slice2cppe/Gen.cpp b/cpp/src/slice2cppe/Gen.cpp index 9146edd8111..89fcbd1e155 100644 --- a/cpp/src/slice2cppe/Gen.cpp +++ b/cpp/src/slice2cppe/Gen.cpp @@ -9,6 +9,7 @@ #include <Gen.h> #include <Slice/CPlusPlusUtil.h> +#include <Slice/SignalHandler.h> #include <IceUtil/Functional.h> #include <IceUtil/Iterator.h> @@ -93,6 +94,8 @@ Slice::Gen::Gen(const string& name, const string& base, const string& headerExte fileImplH = dir + '/' + fileImplH; fileImplC = dir + '/' + fileImplC; } + SignalHandler::addFile(fileImplH); + SignalHandler::addFile(fileImplC); struct stat st; if(stat(fileImplH.c_str(), &st) == 0) @@ -138,6 +141,8 @@ Slice::Gen::Gen(const string& name, const string& base, const string& headerExte fileH = dir + '/' + fileH; fileC = dir + '/' + fileC; } + SignalHandler::addFile(fileH); + SignalHandler::addFile(fileC); H.open(fileH.c_str()); if(!H) diff --git a/cpp/src/slice2cppe/Main.cpp b/cpp/src/slice2cppe/Main.cpp index 12f630139ac..4b7ad83e54d 100644 --- a/cpp/src/slice2cppe/Main.cpp +++ b/cpp/src/slice2cppe/Main.cpp @@ -9,6 +9,7 @@ #include <IceUtil/Options.h> #include <Slice/Preprocessor.h> +#include <Slice/SignalHandler.h> #include <Gen.h> using namespace std; @@ -141,6 +142,8 @@ main(int argc, char* argv[]) for(i = args.begin(); i != args.end(); ++i) { + SignalHandler sigHandler; + if(depend) { Preprocessor icecpp(argv[0], *i, cppArgs); diff --git a/cpp/src/slice2cs/Gen.cpp b/cpp/src/slice2cs/Gen.cpp index 37c05e7454c..a68b54f7da5 100755 --- a/cpp/src/slice2cs/Gen.cpp +++ b/cpp/src/slice2cs/Gen.cpp @@ -21,6 +21,7 @@ #include <IceUtil/UUID.h> #include <Slice/Checksum.h> #include <Slice/DotNetNames.h> +#include <Slice/SignalHandler.h> using namespace std; using namespace Slice; @@ -1072,6 +1073,8 @@ Slice::Gen::Gen(const string& name, const string& base, const vector<string>& in file = dir + '/' + file; fileImpl = dir + '/' + fileImpl; } + SignalHandler::addFile(file); + SignalHandler::addFile(fileImpl); _out.open(file.c_str()); if(!_out) diff --git a/cpp/src/slice2cs/Main.cpp b/cpp/src/slice2cs/Main.cpp index ef7f8033012..58db087c5c3 100644 --- a/cpp/src/slice2cs/Main.cpp +++ b/cpp/src/slice2cs/Main.cpp @@ -9,6 +9,7 @@ #include <IceUtil/Options.h> #include <Slice/Preprocessor.h> +#include <Slice/SignalHandler.h> #include <Gen.h> using namespace std; @@ -145,6 +146,8 @@ main(int argc, char* argv[]) for(i = args.begin(); i != args.end(); ++i) { + SignalHandler sigHandler; + if(depend) { Preprocessor icecpp(argv[0], *i, cppArgs); diff --git a/cpp/src/slice2docbook/Main.cpp b/cpp/src/slice2docbook/Main.cpp index 29be2a76123..2c11c94eabf 100644 --- a/cpp/src/slice2docbook/Main.cpp +++ b/cpp/src/slice2docbook/Main.cpp @@ -9,6 +9,7 @@ #include <IceUtil/Options.h> #include <Slice/Preprocessor.h> +#include <Slice/SignalHandler.h> #include <Gen.h> using namespace std; @@ -149,6 +150,8 @@ main(int argc, char* argv[]) int status = EXIT_SUCCESS; + SignalHandler sigHandler; + for(vector<string>::size_type idx = 1; idx < args.size(); ++idx) { Preprocessor icecpp(argv[0], args[idx], cppArgs); @@ -185,6 +188,8 @@ main(int argc, char* argv[]) if(status == EXIT_SUCCESS && !preprocess) { + SignalHandler::addFile(docbook); + Gen gen(argv[0], docbook, standAlone, chapter, noIndex, sortFields); if(!gen) { @@ -193,7 +198,7 @@ main(int argc, char* argv[]) } gen.generate(p); } - + p->destroy(); return status; diff --git a/cpp/src/slice2freeze/Main.cpp b/cpp/src/slice2freeze/Main.cpp index 0b1d4420fa5..0790f7ff60e 100644 --- a/cpp/src/slice2freeze/Main.cpp +++ b/cpp/src/slice2freeze/Main.cpp @@ -12,6 +12,7 @@ #include <Slice/Preprocessor.h> #include <Slice/CPlusPlusUtil.h> #include <IceUtil/OutputUtil.h> +#include <Slice/SignalHandler.h> using namespace std; using namespace IceUtil; @@ -1685,6 +1686,8 @@ main(int argc, char* argv[]) int status = EXIT_SUCCESS; + SignalHandler sigHandler; + for(vector<string>::size_type idx = 1; idx < args.size(); ++idx) { Preprocessor icecpp(argv[0], args[idx], cppArgs); @@ -1729,6 +1732,9 @@ main(int argc, char* argv[]) if(status == EXIT_SUCCESS && !preprocess) { + SignalHandler::addFile(fileH); + SignalHandler::addFile(fileC); + u->mergeModules(); u->sort(); @@ -1874,6 +1880,7 @@ main(int argc, char* argv[]) H << "\n\n#endif\n"; C << '\n'; + } u->destroy(); diff --git a/cpp/src/slice2freezej/Main.cpp b/cpp/src/slice2freezej/Main.cpp index e430c562a9e..a7a9e9c3625 100644 --- a/cpp/src/slice2freezej/Main.cpp +++ b/cpp/src/slice2freezej/Main.cpp @@ -10,6 +10,7 @@ #include <IceUtil/Options.h> #include <Slice/Preprocessor.h> #include <Slice/JavaUtil.h> +#include <Slice/SignalHandler.h> #ifdef __BCPLUSPLUS__ # include <iterator> @@ -57,6 +58,7 @@ class FreezeGenerator : public JavaGenerator { public: FreezeGenerator(const string&, const string&); + virtual ~FreezeGenerator(); bool generate(UnitPtr&, const Dict&); @@ -75,6 +77,10 @@ FreezeGenerator::FreezeGenerator(const string& prog, const string& dir) { } +FreezeGenerator::~FreezeGenerator() +{ +} + string FreezeGenerator::varToObject(const TypePtr& type, const string& param) { @@ -1407,6 +1413,8 @@ main(int argc, char* argv[]) int status = EXIT_SUCCESS; + SignalHandler sigHandler; + for(vector<string>::size_type idx = 0; idx < args.size(); ++idx) { if(depend) diff --git a/cpp/src/slice2html/Gen.cpp b/cpp/src/slice2html/Gen.cpp index 467257c628c..e477449255d 100644 --- a/cpp/src/slice2html/Gen.cpp +++ b/cpp/src/slice2html/Gen.cpp @@ -9,6 +9,7 @@ #include <IceUtil/DisableWarnings.h> #include <IceUtil/Functional.h> +#include <Slice/SignalHandler.h> #include <Gen.h> #include <sys/types.h> @@ -1192,6 +1193,8 @@ Slice::GeneratorBase::getLogoURL() void Slice::GeneratorBase::openStream(const string& path) { + SignalHandler::addFile(path); + _out.open(path.c_str()); if(!_out.isOpen()) { diff --git a/cpp/src/slice2html/Main.cpp b/cpp/src/slice2html/Main.cpp index a74f7d92f90..6ca031ae35b 100644 --- a/cpp/src/slice2html/Main.cpp +++ b/cpp/src/slice2html/Main.cpp @@ -9,6 +9,7 @@ #include <IceUtil/Options.h> #include <Slice/Preprocessor.h> +#include <Slice/SignalHandler.h> #include <Gen.h> #include <stdlib.h> @@ -172,6 +173,8 @@ main(int argc, char* argv[]) int status = EXIT_SUCCESS; + SignalHandler sigHandler; + for(vector<string>::size_type idx = 0; idx < args.size(); ++idx) { Preprocessor icecpp(argv[0], args[idx], cppArgs); diff --git a/cpp/src/slice2java/Main.cpp b/cpp/src/slice2java/Main.cpp index 6f814593cb6..9fd9860a1aa 100644 --- a/cpp/src/slice2java/Main.cpp +++ b/cpp/src/slice2java/Main.cpp @@ -9,6 +9,7 @@ #include <IceUtil/Options.h> #include <Slice/Preprocessor.h> +#include <Slice/SignalHandler.h> #include <Gen.h> #ifdef __BCPLUSPLUS__ @@ -157,6 +158,8 @@ main(int argc, char* argv[]) for(i = args.begin(); i != args.end(); ++i) { + SignalHandler sigHandler; + if(depend) { Preprocessor icecpp(argv[0], *i, cppArgs); diff --git a/cpp/src/slice2javae/Main.cpp b/cpp/src/slice2javae/Main.cpp index ee32b1b5db3..8019d1d8034 100644 --- a/cpp/src/slice2javae/Main.cpp +++ b/cpp/src/slice2javae/Main.cpp @@ -9,6 +9,7 @@ #include <IceUtil/Options.h> #include <Slice/Preprocessor.h> +#include <Slice/SignalHandler.h> #include <Gen.h> using namespace std; @@ -137,6 +138,8 @@ main(int argc, char* argv[]) for(i = args.begin(); i != args.end(); ++i) { + SignalHandler sigHandler; + if(depend) { Preprocessor icecpp(argv[0], *i, cppArgs); diff --git a/cpp/src/slice2py/Main.cpp b/cpp/src/slice2py/Main.cpp index b18f391f309..521786ac6ce 100644 --- a/cpp/src/slice2py/Main.cpp +++ b/cpp/src/slice2py/Main.cpp @@ -13,6 +13,7 @@ #include <IceUtil/StringUtil.h> #include <Slice/Preprocessor.h> #include <Slice/PythonUtil.h> +#include <Slice/SignalHandler.h> #include <fstream> @@ -475,6 +476,8 @@ main(int argc, char* argv[]) for(i = args.begin(); i != args.end(); ++i) { + SignalHandler sigHandler; + Preprocessor icecpp(argv[0], *i, cppArgs); FILE* cppHandle = icecpp.preprocess(false); @@ -533,6 +536,7 @@ main(int argc, char* argv[]) { file = output + '/' + file; } + SignalHandler::addFile(file); IceUtilInternal::Output out; out.open(file.c_str()); @@ -559,6 +563,7 @@ main(int argc, char* argv[]) PackageVisitor visitor(argv[0], prefix + base + "_ice", output); u->visit(&visitor, false); } + } u->destroy(); diff --git a/cpp/src/slice2rb/Main.cpp b/cpp/src/slice2rb/Main.cpp index 67bae275a63..8250a4a49ca 100644 --- a/cpp/src/slice2rb/Main.cpp +++ b/cpp/src/slice2rb/Main.cpp @@ -11,6 +11,7 @@ #include <IceUtil/Options.h> #include <Slice/Preprocessor.h> #include <Slice/RubyUtil.h> +#include <Slice/SignalHandler.h> #include <fstream> @@ -137,6 +138,8 @@ main(int argc, char* argv[]) for(i = args.begin(); i != args.end(); ++i) { + SignalHandler sigHandler; + Preprocessor icecpp(argv[0], *i, cppArgs); FILE* cppHandle = icecpp.preprocess(false); @@ -189,6 +192,7 @@ main(int argc, char* argv[]) { file = output + '/' + file; } + SignalHandler::addFile(file); IceUtilInternal::Output out; out.open(file.c_str()); @@ -206,6 +210,7 @@ main(int argc, char* argv[]) // Generate the Ruby mapping. // generate(u, all, checksum, includePaths, out); + } u->destroy(); diff --git a/cpp/src/slice2sl/Gen.cpp b/cpp/src/slice2sl/Gen.cpp index 24b72e6230c..604c6e0e5d3 100755 --- a/cpp/src/slice2sl/Gen.cpp +++ b/cpp/src/slice2sl/Gen.cpp @@ -20,6 +20,7 @@ #include <IceUtil/Iterator.h> #include <IceUtil/UUID.h> #include <Slice/DotNetNames.h> +#include <Slice/SignalHandler.h> using namespace std; using namespace Slice; @@ -501,6 +502,8 @@ Slice::Gen::Gen(const string& name, const string& base, const vector<string>& in file = dir + '/' + file; fileImpl = dir + '/' + fileImpl; } + SignalHandler::addFile(file); + SignalHandler::addFile(fileImpl); _out.open(file.c_str()); if(!_out) diff --git a/cpp/src/slice2sl/Main.cpp b/cpp/src/slice2sl/Main.cpp index 010944528fa..9390a1c90f0 100644 --- a/cpp/src/slice2sl/Main.cpp +++ b/cpp/src/slice2sl/Main.cpp @@ -9,6 +9,7 @@ #include <IceUtil/Options.h> #include <Slice/Preprocessor.h> +#include <Slice/SignalHandler.h> #include <Gen.h> using namespace std; @@ -118,6 +119,8 @@ main(int argc, char* argv[]) for(i = args.begin(); i != args.end(); ++i) { + SignalHandler sigHandler; + if(depend) { Preprocessor icecpp(argv[0], *i, cppArgs); |