Module: wine Branch: refs/heads/master Commit: 4ca7a064fabbc8ce4d5c8ddd72b54db3cbd9d7ed URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=4ca7a064fabbc8ce4d5c8ddd...
Author: Alexandre Julliard julliard@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;