[BACK]Return to d.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / k097

Diff for /OpenXM/src/k097/d.c between version 1.1 and 1.6

version 1.1, 1999/10/08 02:12:14 version 1.6, 2000/12/10 02:21:45
Line 1 
Line 1 
   /* $OpenXM: OpenXM/src/k097/d.c,v 1.5 2000/05/04 11:05:19 takayama Exp $ */
 /* simple.c,  1996, 1/1 --- 1/5 */  /* simple.c,  1996, 1/1 --- 1/5 */
 #include <stdio.h>  #include <stdio.h>
 #include <ctype.h>  #include <ctype.h>
Line 12  jmp_buf KCenvOfParser;
Line 13  jmp_buf KCenvOfParser;
 int DebugMode = 1;  int DebugMode = 1;
 extern int K00_verbose;  extern int K00_verbose;
   
 static FILE *outfile = stdout;  static FILE *outfile;
 int Linenumber = 0;  int Linenumber = 0;
 objectp Inop = (objectp) NULL;  /* Input stream */  objectp Inop = (objectp) NULL;  /* Input stream */
 int Saki = 0;   /* Look a head */  int Saki = 0;   /* Look a head */
Line 960  void parseAstring(char *s)
Line 961  void parseAstring(char *s)
   
 }  }
   
 void loadFile(objectp op)  objectp checkIfTheFileExists(objectp op) {
 {  
   FILE *fp;    FILE *fp;
   char fname[1024];    char fname[1024];
     char *s;
     objectp nullObj;
     nullObj = NULL;
   if (op->tag != Sstring) {    if (op->tag != Sstring) {
     fprintf(stderr,"File name must be given as an argment of load.\n");      fprintf(stderr,"File name must be given as an argment of load.\n");
     return;      return nullObj;
   }    }
   if (strlen(op->lc.str) > 1000) {    if (strlen(op->lc.str) > 800) {
     fprintf(stderr,"Too long file name.\n");      fprintf(stderr,"Too long file name.\n");
     return;      return nullObj;
   }    }
   fp = fopen(op->lc.str,"r");    strcpy(fname,op->lc.str);
     fp = fopen(fname,"r");
   if (fp == (FILE *)NULL) {    if (fp == (FILE *)NULL) {
     strcpy(fname,getLOAD_K_PATH());      strcpy(fname,getLOAD_K_PATH());
     strcat(fname,op->lc.str);      strcat(fname,op->lc.str);
Line 982  void loadFile(objectp op)
Line 986  void loadFile(objectp op)
       strcat(fname,op->lc.str);        strcat(fname,op->lc.str);
       fp = fopen(fname,"r");        fp = fopen(fname,"r");
       if (fp == (FILE *)NULL) {        if (fp == (FILE *)NULL) {
         fprintf(stderr,"Cannot open the file <<%s>> for loading in the current directory nor the library directories %s and %s.\n",op->lc.str,getLOAD_K_PATH(),LOAD_K_PATH);                  fprintf(stderr,"Cannot open the file <<%s>> for loading in the current directory nor the library directories %s and %s.\n",op->lc.str,getLOAD_K_PATH(),LOAD_K_PATH);
         return;                  return nullObj;
       }        }
     }      }
   }    }
     close(fp);
     op = newObject_d();
     op->tag = Sstring;
     s = (char *)GC_malloc(sizeof(char)*(strlen(fname)+1));
     if (s == NULL) fprintf(stderr,"No more memory.\n");
     strcpy(s,fname);
     op->lc.str = s;
     return(op);
   }
   
   void loadFile(objectp op)
   {
     FILE *fp;
     char fname[1024];
     if (op->tag != Sstring) {
       fprintf(stderr,"File name must be given as an argment of load.\n");
       return;
     }
     op = checkIfTheFileExists(op);
     if (op == NULL) return;
     if (strlen(op->lc.str) > 1000) {
       fprintf(stderr,"Too long file name.\n");
       return;
     }
     fp = fopen(op->lc.str,"r");
   if (K00_verbose) fprintf(stderr,"Reading the file <<%s>>...  ",op->lc.str);    if (K00_verbose) fprintf(stderr,"Reading the file <<%s>>...  ",op->lc.str);
   parseAfile(fp);    parseAfile(fp);
   if (K00_verbose) fprintf(stderr,"\nClosed the file <<%s>>.\n",op->lc.str);    if (K00_verbose) fprintf(stderr,"\nClosed the file <<%s>>.\n",op->lc.str);
Line 996  void loadFileWithCpp(objectp op)
Line 1025  void loadFileWithCpp(objectp op)
 {  {
   FILE *fp;    FILE *fp;
   char fname[1024];    char fname[1024];
     char tmpName[1024];
     int pid;
   objectp ob;    objectp ob;
   if (op->tag != Sstring) {    if (op->tag != Sstring) {
     fprintf(stderr,"File name must be given as an argment of load.\n");      fprintf(stderr,"File name must be given as an argment of load.\n");
     return;      return;
   }    }
     op = checkIfTheFileExists(op);
     if (op == NULL) return;
   if (strlen(op->lc.str) > 900) {    if (strlen(op->lc.str) > 900) {
     fprintf(stderr,"Too long file name.\n");      fprintf(stderr,"Too long file name.\n");
     return;      return;
   }    }
   system("/bin/rm -f k00.cppload.tmp");    system("/bin/rm -f k00.cppload.tmp");
     /* Use gcc -v to know what symbols are defined. */
   #if defined(linux) || defined(__linux__)
   strcpy(fname,"/lib/cpp -P -lang-c++ <");    strcpy(fname,"/lib/cpp -P -lang-c++ <");
   #else
     strcpy(fname,"cpp -P -lang-c++ <");
   #endif
   strcat(fname,op->lc.str);    strcat(fname,op->lc.str);
   strcat(fname,"  >k00.cppload.tmp");    strcat(fname,"  >k00.cppload.tmp");
   system(fname);    system(fname);
Line 1014  void loadFileWithCpp(objectp op)
Line 1052  void loadFileWithCpp(objectp op)
   ob->tag = Sstring;    ob->tag = Sstring;
   ob->lc.str = "k00.cppload.tmp";    ob->lc.str = "k00.cppload.tmp";
   loadFile(ob);    loadFile(ob);
     system("/bin/rm -f k00.cppload.tmp");
 }  }
   
 void showStringBuff(objectp op)  void showStringBuff(objectp op)

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.6

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