version 1.34, 2006/03/22 00:52:55 |
version 1.41, 2018/09/07 00:28:53 |
|
|
/* $OpenXM: OpenXM/src/kxx/ox_texmacs.c,v 1.33 2006/03/06 08:55:31 takayama Exp $ */ |
/* $OpenXM: OpenXM/src/kxx/ox_texmacs.c,v 1.40 2016/08/24 22:38:12 takayama Exp $ */ |
|
|
#include <stdio.h> |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdlib.h> |
|
|
#include "serversm.h" |
#include "serversm.h" |
#include "ox_pathfinder.h" |
#include "ox_pathfinder.h" |
|
|
#if defined(__CYGWIN__) |
#if defined(__CYGWIN__) || defined(__MSYS__) |
#define JMP_BUF sigjmp_buf |
#define JMP_BUF sigjmp_buf |
#define SETJMP(env) sigsetjmp(env,1) |
#define SETJMP(env) MYSIGSETJMP(env,1) |
#define LONGJMP(env,p) siglongjmp(env,p) |
#define LONGJMP(env,p) MYSIGLONGJMP(env,p) |
#else |
#else |
#define JMP_BUF jmp_buf |
#define JMP_BUF jmp_buf |
#define SETJMP(env) setjmp(env) |
#define SETJMP(env) MYSETJMP(env) |
#define LONGJMP(env,p) longjmp(env,p) |
#define LONGJMP(env,p) MYLONGJMP(env,p) |
#endif |
#endif |
|
|
/* |
/* |
|
|
#define GENERIC 0 /* DEBUG, xml */ |
#define GENERIC 0 /* DEBUG, xml */ |
#define V_TEXMACS 1 |
#define V_TEXMACS 1 |
#define V_CFEP 2 |
#define V_CFEP 2 |
|
#define V_QFEP 3 |
int View = V_TEXMACS ; |
int View = V_TEXMACS ; |
|
|
char *Data_begin_v[] = { |
char *Data_begin_v[] = { |
"<S type=verbatim>", |
"<S type=verbatim>", |
"\002verbatim:", |
"\002verbatim:", |
"\002", |
"\002", |
|
"" |
}; |
}; |
char *Data_begin_l[] = { |
char *Data_begin_l[] = { |
"<S type=latex>", |
"<S type=latex>", |
"\002latex:", |
"\002latex:", |
"\002latex:" |
"\002latex:", |
|
"" |
}; |
}; |
char *Data_begin_p[] = { |
char *Data_begin_p[] = { |
"<S type=prompt>", |
"<S type=prompt>", |
"\002prompt:", |
"\002prompt:", |
"\002prompt:" |
"\002prompt:", |
|
"" |
}; |
}; |
char *Data_begin_ps[] = { |
char *Data_begin_ps[] = { |
"<S type=postscript>", |
"<S type=postscript>", |
"\002ps:", |
"\002ps:", |
"\002ps:" |
"\002ps:", |
|
"" |
}; |
}; |
char *Data_end[] = { |
char *Data_end[] = { |
"</S>", |
"</S>", |
"\005", |
"\005", |
"\n\005" /* \n is not a part of the protocol. */ |
"\n\005", /* \n is not a part of the protocol. */ |
|
"" |
}; |
}; |
|
|
/* todo: start_of_input */ |
/* todo: start_of_input */ |
Line 61 char *Data_end[] = { |
|
Line 67 char *Data_end[] = { |
|
char End_of_input[] = { |
char End_of_input[] = { |
0x5, /* Use ^E and Return to end the input. */ |
0x5, /* Use ^E and Return to end the input. */ |
'\n', /* TEXMACS_END_OF_INPUT. 0xd should be used for multiple lines. */ |
'\n', /* TEXMACS_END_OF_INPUT. 0xd should be used for multiple lines. */ |
0x5 /* CFEP_END_OF_INPUT */ |
0x5, /* CFEP_END_OF_INPUT */ |
|
0x5 |
}; |
}; |
|
|
/* Table for the engine type. */ |
/* Table for the engine type. */ |
Line 91 int EngineLogToStdout = 0; /* Do not run the ox engi |
|
Line 98 int EngineLogToStdout = 0; /* Do not run the ox engi |
|
char *AsirInitFile = NULL; |
char *AsirInitFile = NULL; |
|
|
char *LanguageResource = NULL; |
char *LanguageResource = NULL; |
|
int TM_quiet = 0; |
|
|
void ctrlC(); |
void ctrlC(); |
struct object KpoString(char *s); |
struct object KpoString(char *s); |
Line 142 main(int argc,char *argv[]) { |
|
Line 150 main(int argc,char *argv[]) { |
|
#ifdef DEBUG2 |
#ifdef DEBUG2 |
Dfp = fopen("/tmp/debug-texmacs.txt","w"); |
Dfp = fopen("/tmp/debug-texmacs.txt","w"); |
#endif |
#endif |
|
|
|
TM_quiet=0; |
|
for (i=1; i<argc; i++) { |
|
if (strcmp(argv[i],"--quiet")==0) { |
|
TM_quiet=1; |
|
} |
|
} |
|
/* Initialize kanlib (gc is also initialized) */ |
|
if (TM_quiet) { |
|
KSstart_quiet(); |
|
}else{ |
|
KSstart(); |
|
} |
/* Set consts */ |
/* Set consts */ |
Quiet = 1; |
Quiet = 1; |
for (i=1; i<argc; i++) { |
for (i=1; i<argc; i++) { |
Line 152 main(int argc,char *argv[]) { |
|
Line 172 main(int argc,char *argv[]) { |
|
View = V_TEXMACS; |
View = V_TEXMACS; |
}else if (strcmp(argv[i],"cfep")==0) { |
}else if (strcmp(argv[i],"cfep")==0) { |
View = V_CFEP; setDefaultParameterForCfep(); |
View = V_CFEP; setDefaultParameterForCfep(); |
|
}else if (strcmp(argv[i],"qfep")==0) { |
|
View = V_QFEP; setDefaultParameterForCfep(); |
}else{ |
}else{ |
View = GENERIC; |
View = GENERIC; |
/* printv("Unknown view type.\n"); */ |
/* printv("Unknown view type.\n"); */ |
Line 182 main(int argc,char *argv[]) { |
|
Line 204 main(int argc,char *argv[]) { |
|
i++; |
i++; |
AsirInitFile = (char *)sGC_malloc(strlen(argv[i])+80); |
AsirInitFile = (char *)sGC_malloc(strlen(argv[i])+80); |
sprintf(AsirInitFile,"%s",argv[i]); |
sprintf(AsirInitFile,"%s",argv[i]); |
|
}else if (strcmp(argv[i],"--quiet") == 0) { |
|
/* it is already set. Ignore. */ |
}else{ |
}else{ |
/* printv("Unknown option\n"); */ |
/* printv("Unknown option\n"); */ |
} |
} |
Line 194 main(int argc,char *argv[]) { |
|
Line 218 main(int argc,char *argv[]) { |
|
exit(10); |
exit(10); |
} |
} |
|
|
/* Initialize kanlib (gc is also initialized) */ |
|
KSstart(); |
|
|
|
/* Main loop */ |
/* Main loop */ |
printf("%s",Data_begin_v[View]); |
printf("%s",Data_begin_v[View]); |
Line 215 main(int argc,char *argv[]) { |
|
Line 237 main(int argc,char *argv[]) { |
|
if (LanguageResource != NULL) KSexecuteString(LanguageResource); |
if (LanguageResource != NULL) KSexecuteString(LanguageResource); |
startEngine(TM_Engine," "); |
startEngine(TM_Engine," "); |
|
|
if (signal(SIGINT,SIG_IGN) != SIG_IGN) { |
if (mysignal(SIGINT,SIG_IGN) != SIG_IGN) { |
signal(SIGINT,ctrlC); |
mysignal(SIGINT,ctrlC); |
} |
} |
|
|
irt = 0; |
irt = 0; |
Line 229 main(int argc,char *argv[]) { |
|
Line 251 main(int argc,char *argv[]) { |
|
RestrictedMode = RestrictedMode_saved; |
RestrictedMode = RestrictedMode_saved; |
} |
} |
Calling_ctrlC_hook = 0; |
Calling_ctrlC_hook = 0; |
if (signal(SIGINT,SIG_IGN) != SIG_IGN) { |
if (mysignal(SIGINT,SIG_IGN) != SIG_IGN) { |
signal(SIGINT,ctrlC); |
mysignal(SIGINT,ctrlC); |
} |
} |
irt = 1; |
irt = 1; |
continue; |
continue; |
Line 612 static int startEngine(int type,char *msg) { |
|
Line 634 static int startEngine(int type,char *msg) { |
|
/* Initialize the setting of asir. */ |
/* Initialize the setting of asir. */ |
if (AsirInitFile) { /* cf. asir-contrib/packages/src/cfep-init.rr */ |
if (AsirInitFile) { /* cf. asir-contrib/packages/src/cfep-init.rr */ |
unsigned char *ss; |
unsigned char *ss; |
ss = (unsigned char *)GC_malloc(strlen(AsirInitFile)+256); |
ss = (unsigned char *)sGC_malloc(strlen(AsirInitFile)+256); |
sprintf((char *)ss," oxasir.ccc (load(\"%s\");) oxsubmit oxasir.ccc oxgeterrors length 0 gt { (Error in loading asirInitFile) message} { } ifelse ",AsirInitFile); |
sprintf((char *)ss," oxasir.ccc (load(\"%s\");) oxsubmit oxasir.ccc oxgeterrors length 0 gt { (Error in loading asirInitFile) message} { } ifelse ",AsirInitFile); |
/* printf("Loading --asirInitFile %s\n",AsirInitFile); */ |
/* printf("Loading --asirInitFile %s\n",AsirInitFile); */ |
KSexecuteString(ss); |
KSexecuteString(ss); |
} |
} |
KSexecuteString(" oxasir.ccc (if(1) { Xm_server_mode = 1; Xm_helpdir = \"help-eg\"; } else { ; } ;) oxsubmit oxasir.ccc oxpopcmo "); |
KSexecuteString(" oxasir.ccc (if(1) { Xm_server_mode = 1; Xm_helpdir = \"help-en\"; } else { ; } ;) oxsubmit oxasir.ccc oxpopcmo "); |
KSexecuteString(" oxasir.ccc (if(1) { ctrl(\"message\",0); } else { ; } ;) oxsubmit oxasir.ccc oxpopcmo "); |
KSexecuteString(" oxasir.ccc (if(1) { ctrl(\"message\",0); } else { ; } ;) oxsubmit oxasir.ccc oxpopcmo "); |
/* bug; if ctrl is written with Xm_helpdir = ... without oxpopcmo, then it does |
/* bug; if ctrl is written with Xm_helpdir = ... without oxpopcmo, then it does |
not work. */ |
not work. */ |