Alexandre Julliard : sfnt2fnt: Clean output files when aborting on a signal .

Alexandre Julliard julliard at wine.codeweavers.com
Sat May 27 06:35:01 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 4ca7a064fabbc8ce4d5c8ddd72b54db3cbd9d7ed
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=4ca7a064fabbc8ce4d5c8ddd72b54db3cbd9d7ed

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Sat May 27 13:24:36 2006 +0200

sfnt2fnt: Clean output files when aborting on a signal.

---

 tools/sfnt2fnt.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/tools/sfnt2fnt.c b/tools/sfnt2fnt.c
index 755b3ff..955f61a 100644
--- a/tools/sfnt2fnt.c
+++ b/tools/sfnt2fnt.c
@@ -23,6 +23,7 @@ #include "wine/port.h"
 
 #include <assert.h>
 #include <ctype.h>
+#include <signal.h>
 #include <stdio.h>
 #include <stdlib.h>
 
@@ -113,6 +114,11 @@ static void cleanup(void)
     if (output_name) unlink( output_name );
 }
 
+static void exit_on_signal( int sig )
+{
+    exit(1);  /* this will call the atexit functions */
+}
+
 static void error(const char *s, ...) __attribute__((format (printf, 1, 2)));
 
 static void error(const char *s, ...)
@@ -479,6 +485,12 @@ int main(int argc, char **argv)
     sprintf(output, "%s-%d-%d-%d.fnt", name, enc, dpi, ppem);
 
     atexit( cleanup );
+    signal( SIGTERM, exit_on_signal );
+    signal( SIGINT, exit_on_signal );
+#ifdef SIGHUP
+    signal( SIGHUP, exit_on_signal );
+#endif
+
     fp = fopen(output, "w");
     output_name = output;
 




More information about the wine-cvs mailing list