version 1.10, 2003/01/16 08:27:23 |
version 1.16, 2004/06/14 11:10:40 |
|
|
/* $OpenXM: OpenXM/rc/repl.c,v 1.9 2003/01/16 07:57:42 maekawa Exp $ */ |
/* $OpenXM: OpenXM/rc/repl.c,v 1.15 2004/02/13 03:10:19 takayama Exp $ */ |
|
|
#include <stdio.h> |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdlib.h> |
|
|
#include <errno.h> |
#include <errno.h> |
|
#include <fcntl.h> |
#include <string.h> |
#include <string.h> |
#include <unistd.h> |
#include <unistd.h> |
|
|
#define BUFSIZE 10000 |
#define BUFSIZE 10000 |
|
#define SSIZE 1024 |
|
|
|
/* 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 |
int |
main(int argc,char *argv[]) { |
main(int argc,char *argv[]) { |
char s[BUFSIZE]; |
char s[BUFSIZE]; |
Line 16 main(int argc,char *argv[]) { |
|
Line 22 main(int argc,char *argv[]) { |
|
char *slash; |
char *slash; |
char type = 'b'; |
char type = 'b'; |
FILE *fp; |
FILE *fp; |
|
int fd; |
|
char sss_png[SSIZE]; |
|
char sss_gif[SSIZE]; |
|
|
if (argc >= 2) { |
if (argc >= 2) { |
if (strcmp(argv[1],"csh")==0) { |
if (strcmp(argv[1],"csh")==0) { |
Line 25 main(int argc,char *argv[]) { |
|
Line 34 main(int argc,char *argv[]) { |
|
|
|
if (getcwd(cwd, sizeof(cwd)) == NULL) { |
if (getcwd(cwd, sizeof(cwd)) == NULL) { |
fprintf(stderr, "getcwd: %s\n", strerror(errno)); |
fprintf(stderr, "getcwd: %s\n", strerror(errno)); |
exit(1); |
exit(EXIT_FAILURE); |
} |
} |
if ((slash = strrchr(cwd, '/')) == cwd) { |
if ((slash = strrchr(cwd, '/')) == cwd) { |
fprintf(stderr, "The current working directory is /.\n"); |
fprintf(stderr, "The current working directory is /.\n"); |
exit(1); |
exit(EXIT_FAILURE); |
} |
} |
*slash = 0; |
*slash = 0; |
while (fgets(s,BUFSIZE,stdin) != NULL) { |
while (fgets(s,BUFSIZE,stdin) != NULL) { |
Line 44 main(int argc,char *argv[]) { |
|
Line 53 main(int argc,char *argv[]) { |
|
|
|
/* Configuring environmental variables. */ |
/* Configuring environmental variables. */ |
/* Check if pstoimg (src/asir-contrib) supports png format. */ |
/* Check if pstoimg (src/asir-contrib) supports png format. */ |
fp = fopen("/tmp/repl_test.ps","w"); |
if ((fp = fopen(REPL_PSFILE,"w")) == NULL) { |
if (fp == NULL) { |
fprintf(stderr, "fopen: %s", strerror(errno)); |
fprintf(stderr,"Open error of /tmp/repl_test.ps. Use the existing file.\n"); |
exit(EXIT_FAILURE); |
}else{ |
|
fprintf(fp,"/Times-Roman findfont 10 scalefont setfont\n"); |
|
fprintf(fp," 390 290 moveto (F) show \n"); |
|
fprintf(fp,"showpage \n"); |
|
fclose(fp); |
|
} |
} |
if (!system("pstoimg -type png /tmp/repl_test.ps -out /tmp/repl_test.png >/dev/null")) { |
fprintf(fp,"/Times-Roman findfont 10 scalefont setfont\n"); |
|
fprintf(fp," 390 290 moveto (F) show \n"); |
|
fprintf(fp,"showpage \n"); |
|
while (fclose(fp) != 0) { |
|
if (errno == EINTR) |
|
continue; |
|
break; |
|
} |
|
|
|
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') { |
if (type == 'b') { |
printf("export OpenXM_PSTOIMG_TYPE=png\n"); |
printf("export OpenXM_PSTOIMG_TYPE=png\n"); |
}else{ |
}else{ |
printf("setenv OpenXM_PSTOIMG_TYPE png\n"); |
printf("setenv OpenXM_PSTOIMG_TYPE png\n"); |
} |
} |
}else if (!system("pstoimg -type gif /tmp/repl_test.ps -out /tmp/repl_test.gif >/dev/null")) { |
}else if (!system(sss_gif)) { |
if (type == 'b') { |
if (type == 'b') { |
printf("OpenXM_PSTOIMG_TYPE=gif\n"); |
printf("OpenXM_PSTOIMG_TYPE=gif\n"); |
printf("export OpenXM_PSTOIMG_TYPE\n"); |
printf("export OpenXM_PSTOIMG_TYPE\n"); |
Line 67 main(int argc,char *argv[]) { |
|
Line 83 main(int argc,char *argv[]) { |
|
printf("setenv OpenXM_PSTOIMG_TYPE=gif\n"); |
printf("setenv OpenXM_PSTOIMG_TYPE=gif\n"); |
} |
} |
}else { |
}else { |
printf("OpenXM_PSTOIMG_TYPE=no\n"); |
if (type == 'b') { |
printf("export OpenXM_PSTOIMG_TYPE\n"); |
printf("OpenXM_PSTOIMG_TYPE=no\n"); |
|
printf("export OpenXM_PSTOIMG_TYPE\n"); |
|
}else{ |
|
printf("setenv OpenXM_PSTOIMG_TYPE no\n"); |
|
} |
} |
} |
system("rm -f /tmp/repl_test.*"); |
|
|
|
|
while (unlink(REPL_IMGFILE) != 0) { |
|
if (errno == EINTR) |
|
continue; |
|
break; |
|
} |
|
while (unlink(REPL_PSFILE) != 0) { |
|
if (errno == EINTR) |
|
continue; |
|
break; |
|
} |
|
|
exit(0); |
exit(EXIT_SUCCESS); |
} |
} |