=================================================================== RCS file: /home/cvs/OpenXM/src/kxx/ox_texmacs.c,v retrieving revision 1.18 retrieving revision 1.21 diff -u -p -r1.18 -r1.21 --- OpenXM/src/kxx/ox_texmacs.c 2004/03/25 01:37:14 1.18 +++ OpenXM/src/kxx/ox_texmacs.c 2005/06/16 05:07:24 1.21 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/kxx/ox_texmacs.c,v 1.17 2004/03/11 03:32:46 takayama Exp $ */ +/* $OpenXM: OpenXM/src/kxx/ox_texmacs.c,v 1.20 2004/09/17 02:42:58 takayama Exp $ */ #include #include @@ -47,6 +47,8 @@ extern int Quiet; extern JMP_BUF EnvOfStackMachine; +extern int Calling_ctrlC_hook; +extern int RestrictedMode, RestrictedMode_saved; int Format=1; /* 1 : latex mode */ int OutputLimit_for_TeXmacs = (1024*10); @@ -81,7 +83,7 @@ main(int argc,char *argv[]) { char *s; char *r; char *sys; - struct object ob; + struct object ob = OINIT; int irt=0; int vmode=1; char *openxm_home; @@ -142,7 +144,12 @@ main(int argc,char *argv[]) { while(1) { /* printp(sys); no prompt */ if (SETJMP(EnvOfStackMachine)) { - KSexecuteString(" ctrlC-hook "); /* Execute User Defined functions. */ + if (!Calling_ctrlC_hook) { + Calling_ctrlC_hook = 1; RestrictedMode = 0; + KSexecuteString(" ctrlC-hook "); /* Execute User Defined functions. */ + RestrictedMode = RestrictedMode_saved; + } + Calling_ctrlC_hook = 0; if (signal(SIGINT,SIG_IGN) != SIG_IGN) { signal(SIGINT,ctrlC); } @@ -243,7 +250,7 @@ static char *readString(FILE *fp, char *prolog, char * int i; int m; int start; - struct object ob; + struct object ob = OINIT; if (limit == 0) { limit = 1024; s = (char *)sGC_malloc(limit); @@ -381,7 +388,7 @@ static void printCopyright(char *s) { } static int startEngine(int type,char *msg) { - struct object ob; + struct object ob = OINIT; printf("%s",DATA_BEGIN_V); if (type == SM1) { if (!TM_sm1Started) KSexecuteString(" sm1connectr ");