[BACK]Return to repl.c CVS log [TXT][DIR] Up to [local] / OpenXM / rc

Diff for /OpenXM/rc/repl.c between version 1.11 and 1.19

version 1.11, 2003/01/17 00:41:05 version 1.19, 2020/10/07 23:57:57
Line 1 
Line 1 
 /* $OpenXM: OpenXM/rc/repl.c,v 1.10 2003/01/16 08:27:23 maekawa Exp $ */  /* $OpenXM: OpenXM/rc/repl.c,v 1.18 2019/03/29 02:49:48 takayama Exp $ */
   
 #include <stdio.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
Line 9 
Line 9 
 #include <unistd.h>  #include <unistd.h>
   
 #define BUFSIZE 10000  #define BUFSIZE 10000
   #define SSIZE  1024
   
 #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  int
 main(int argc,char *argv[]) {  main(int argc,char *argv[]) {
Line 19  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 36  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 %s\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);
         }else if (strcmp(s,"setenv OpenXM_HOME $HOME/OpenXM\n") == 0) {          }else if (strcmp(s,"setenv OpenXM_HOME $HOME/OpenXM\n") == 0) {
           printf("setenv OpenXM_HOME %s\n",cwd);            printf("setenv OpenXM_HOME %s\n",cwd);
           }else if (strcmp(s,"OpenXM_HOME=$(HOME)/OpenXM\n") == 0) {
             printf("OpenXM_HOME=%s\n",cwd);
           }else if (strcmp(s,"setenv OpenXM_HOME \"$(HOME)\"/OpenXM\n") == 0) {
             printf("setenv OpenXM_HOME %s\n",cwd);
           }else if (strcmp(s,"OpenXM_HOME=\"${HOME}\"/OpenXM\n") == 0) {
             printf("OpenXM_HOME=%s\n",cwd);
         }else{          }else{
           printf("%s",s);            printf("%s",s);
         }          }
Line 48  main(int argc,char *argv[]) {
Line 72  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.png >/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.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 76  main(int argc,char *argv[]) {
Line 102  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(EXIT_SUCCESS);    exit(EXIT_SUCCESS);
 }  }

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.19

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>