=================================================================== RCS file: /home/cvs/OpenXM/rc/repl.c,v retrieving revision 1.12 retrieving revision 1.16 diff -u -p -r1.12 -r1.16 --- OpenXM/rc/repl.c 2003/01/17 00:53:09 1.12 +++ OpenXM/rc/repl.c 2004/06/14 11:10:40 1.16 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/rc/repl.c,v 1.11 2003/01/17 00:41:05 maekawa Exp $ */ +/* $OpenXM: OpenXM/rc/repl.c,v 1.15 2004/02/13 03:10:19 takayama Exp $ */ #include #include @@ -9,9 +9,11 @@ #include #define BUFSIZE 10000 +#define SSIZE 1024 -#define REPL_IMGFILE "/tmp/repl_test.img" -#define REPL_PSFILE "/tmp/repl_test.ps" +/* If you make the following two strings longer, increase the number SSIZE */ +#define REPL_IMGFILE "repl_test.img" +#define REPL_PSFILE "repl_test.ps" int main(int argc,char *argv[]) { @@ -21,6 +23,8 @@ main(int argc,char *argv[]) { char type = 'b'; FILE *fp; int fd; + char sss_png[SSIZE]; + char sss_gif[SSIZE]; if (argc >= 2) { if (strcmp(argv[1],"csh")==0) { @@ -49,27 +53,29 @@ main(int argc,char *argv[]) { /* Configuring environmental variables. */ /* Check if pstoimg (src/asir-contrib) supports png format. */ - if ((fd = open("/tmp/repl_test.ps", O_WRONLY|O_CREAT|O_EXCL|O_TRUNC, - S_IRUSR|S_IWUSR)) < 0) { - fprintf(stderr, "open: %s: %s\n", REPL_PSFILE, strerror(errno)); + if ((fp = fopen(REPL_PSFILE,"w")) == NULL) { + fprintf(stderr, "fopen: %s", strerror(errno)); exit(EXIT_FAILURE); } - if ((fp = fdopen(fd, "w")) == NULL) { - fprintf(stderr, "fdopen: %s", strerror(errno)); - exit(EXIT_FAILURE); - } fprintf(fp,"/Times-Roman findfont 10 scalefont setfont\n"); fprintf(fp," 390 290 moveto (F) show \n"); fprintf(fp,"showpage \n"); - fclose(fp); + while (fclose(fp) != 0) { + if (errno == EINTR) + continue; + break; + } - if (!system("pstoimg -type png /tmp/repl_test.ps -out /tmp/repl_test.img >/dev/null")) { + sprintf(sss_png,"pstoimg -type png %s -out %s >/dev/null",REPL_PSFILE,REPL_IMGFILE); + sprintf(sss_gif,"pstoimg -type gif %s -out %s >/dev/null",REPL_PSFILE,REPL_IMGFILE); + + if (!system(sss_png)) { if (type == 'b') { printf("export OpenXM_PSTOIMG_TYPE=png\n"); }else{ printf("setenv OpenXM_PSTOIMG_TYPE png\n"); } - }else if (!system("pstoimg -type gif /tmp/repl_test.ps -out /tmp/repl_test.img >/dev/null")) { + }else if (!system(sss_gif)) { if (type == 'b') { printf("OpenXM_PSTOIMG_TYPE=gif\n"); printf("export OpenXM_PSTOIMG_TYPE\n"); @@ -77,8 +83,12 @@ main(int argc,char *argv[]) { printf("setenv OpenXM_PSTOIMG_TYPE=gif\n"); } }else { - printf("OpenXM_PSTOIMG_TYPE=no\n"); - printf("export OpenXM_PSTOIMG_TYPE\n"); + if (type == 'b') { + printf("OpenXM_PSTOIMG_TYPE=no\n"); + printf("export OpenXM_PSTOIMG_TYPE\n"); + }else{ + printf("setenv OpenXM_PSTOIMG_TYPE no\n"); + } } while (unlink(REPL_IMGFILE) != 0) {