File: [local] / OpenXM / src / kxx / sample_kanlib.c (download)
Revision 1.1, Sun Feb 29 03:00:37 2004 UTC (20 years, 4 months ago) by takayama
Branch: MAIN
CVS Tags: RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX
An universal interface to TeXmacs for ox engines
(experimental and primitive version).
* This program catches control-C of TeXmacs and makes an interruption
to engines by OX-RFC 100 and OX-RFC 103.
* Messages will be displayed on ox xterm window.
* This program uses kan/sm1 as an interpreter between ox engines and
TeXmacs.
|
/* $OpenXM: OpenXM/src/kxx/sample_kanlib.c,v 1.1 2004/02/29 03:00:37 takayama Exp $ */
/*
This is a sample program to use kanlib.a
gcc -g -O2 -g -D_BSD_SOURCE sample_kanlib.c -o sample_kanlib -ldl ../kan96xx/Kan/kanlib.a -L../../lib -lgmp -lgc
*/
#include <stdio.h>
#include <setjmp.h>
#include <signal.h>
#if defined(__CYGWIN__)
#define JMP_BUF sigjmp_buf
#define SETJMP(env) sigsetjmp(env,1)
#define LONGJMP(env,p) siglongjmp(env,p)
#else
#define JMP_BUF jmp_buf
#define SETJMP(env) setjmp(env)
#define LONGJMP(env,p) longjmp(env,p)
#endif
extern int Quiet;
extern JMP_BUF EnvOfStackMachine;
void ctrlC();
main() {
char s[1024];
Quiet = 0;
KSstart();
if (signal(SIGINT,SIG_IGN) != SIG_IGN) {
signal(SIGINT,ctrlC);
}
while( fgets(s,1023,stdin) != NULL) {
if (SETJMP(EnvOfStackMachine)) {
KSexecuteString(" ctrlC-hook "); /* Execute User Defined functions. */
KSexecuteString(" (Computation is interrupted.) ");
continue;
} else { }
KSexecuteString(s);
}
}