| version 1.12, 2003/01/17 00:53:09 |
version 1.17, 2004/06/20 04:55:32 |
|
|
| /* $OpenXM: OpenXM/rc/repl.c,v 1.11 2003/01/17 00:41:05 maekawa Exp $ */ |
/* $OpenXM: OpenXM/rc/repl.c,v 1.16 2004/06/14 11:10:40 takayama Exp $ */ |
| |
|
| #include <stdio.h> |
#include <stdio.h> |
| #include <stdlib.h> |
#include <stdlib.h> |
|
|
| #include <unistd.h> |
#include <unistd.h> |
| |
|
| #define BUFSIZE 10000 |
#define BUFSIZE 10000 |
| |
#define SSIZE 1024 |
| |
|
| #define REPL_IMGFILE "/tmp/repl_test.img" |
/* If you make the following two strings longer, increase the number SSIZE */ |
| #define REPL_PSFILE "/tmp/repl_test.ps" |
#define REPL_IMGFILE "repl_test.img" |
| |
#define REPL_PSFILE "repl_test.ps" |
| |
|
| int |
int |
| main(int argc,char *argv[]) { |
main(int argc,char *argv[]) { |
| Line 20 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; |
int fd,i; |
| |
char sss_png[SSIZE]; |
| |
char sss_gif[SSIZE]; |
| |
|
| if (argc >= 2) { |
|
| if (strcmp(argv[1],"csh")==0) { |
|
| type = 'c'; |
|
| } |
|
| } |
|
| |
|
| 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(EXIT_FAILURE); |
exit(EXIT_FAILURE); |
| Line 37 main(int argc,char *argv[]) { |
|
| Line 35 main(int argc,char *argv[]) { |
|
| exit(EXIT_FAILURE); |
exit(EXIT_FAILURE); |
| } |
} |
| *slash = 0; |
*slash = 0; |
| |
|
| |
for (i=1; i<argc; i++) { |
| |
if (strcmp(argv[i],"csh")==0) { |
| |
type = 'c'; |
| |
}else if (strcmp(argv[i],"bash")==0) { |
| |
type = 'b'; |
| |
}else if (strcmp(argv[i],"--prefix")==0) { |
| |
i++; |
| |
strcpy(cwd,argv[i]); |
| |
strcat(cwd,"/OpenXM"); |
| |
if (cwd[0] != '/') { |
| |
fprintf(stderr,"Warning: prefix must start with /\n"); |
| |
fprintf(stderr,"Your prefix is %d\n",cwd); |
| |
} |
| |
}else{ |
| |
fprintf(stderr,"Warning: Unknown option.\n"); |
| |
} |
| |
} |
| |
|
| while (fgets(s,BUFSIZE,stdin) != NULL) { |
while (fgets(s,BUFSIZE,stdin) != NULL) { |
| if (strcmp(s,"OpenXM_HOME=$HOME/OpenXM\n") == 0) { |
if (strcmp(s,"OpenXM_HOME=$HOME/OpenXM\n") == 0) { |
| printf("OpenXM_HOME=%s\n",cwd); |
printf("OpenXM_HOME=%s\n",cwd); |
| Line 49 main(int argc,char *argv[]) { |
|
| Line 66 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. */ |
| if ((fd = open("/tmp/repl_test.ps", O_WRONLY|O_CREAT|O_EXCL|O_TRUNC, |
if ((fp = fopen(REPL_PSFILE,"w")) == NULL) { |
| S_IRUSR|S_IWUSR)) < 0) { |
fprintf(stderr, "fopen: %s", strerror(errno)); |
| fprintf(stderr, "open: %s: %s\n", REPL_PSFILE, strerror(errno)); |
|
| exit(EXIT_FAILURE); |
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,"/Times-Roman findfont 10 scalefont setfont\n"); |
| fprintf(fp," 390 290 moveto (F) show \n"); |
fprintf(fp," 390 290 moveto (F) show \n"); |
| fprintf(fp,"showpage \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') { |
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.img >/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 77 main(int argc,char *argv[]) { |
|
| Line 96 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"); |
| |
} |
| } |
} |
| |
|
| while (unlink(REPL_IMGFILE) != 0) { |
while (unlink(REPL_IMGFILE) != 0) { |