=================================================================== RCS file: /home/cvs/OpenXM/src/k097/d.c,v retrieving revision 1.13 retrieving revision 1.20 diff -u -p -r1.13 -r1.20 --- OpenXM/src/k097/d.c 2003/07/22 07:39:57 1.13 +++ OpenXM/src/k097/d.c 2018/11/02 01:33:26 1.20 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/k097/d.c,v 1.12 2003/07/22 03:34:08 takayama Exp $ */ +/* $OpenXM: OpenXM/src/k097/d.c,v 1.19 2016/04/02 08:20:09 ohara Exp $ */ /* simple.c, 1996, 1/1 --- 1/5 */ #include #include @@ -181,7 +181,7 @@ objectp newObject_d() { fprintf(stderr,"Error: No more memory in newObject_d().\n"); exit(10); } - obj->tag = Snull; + obj->tag = Snull; obj->attr = NULL; return(obj); } @@ -605,7 +605,7 @@ KCerror(char *s) /* You need this function. Otherwis ungetc(MARK_CHAR,stdin); while (fsgetc(Inop) > MARK_CHAR) ; } - return ; + return 0; LONGJMP(KCenvOfParser,2); exit(1); } @@ -617,11 +617,11 @@ readcomment() { if (c == EOF) { fprintf(stderr,"%d: Unexpected end of file in a comment.\n",Linenumber); fsungetc(c,Inop); /* should change */ - return; + return 0; } if (c == '*') { c = fsgetc(Inop); - if (c == '/') return; + if (c == '/') return 0; } } } @@ -1089,12 +1089,19 @@ void loadFileWithCpp(objectp op) } /* printf("%s\n",outfile); */ if ((char *)strstr(cpp,"/asir/bin/cpp.exe") == NULL) { +#if defined(__clang__) || defined(__FreeBSD__) +/* cpp of the FreeBSD is the cpp of the clang, but gcc is selected by configure. + echo | gcc -dM -E - +*/ + sprintf(tmpName,"cpp -E -P %s | sed -e 's/^#.*//g' >%s",sfile,outfile); +#else argv[0] = cpp; argv[1] = "-P"; argv[2] = "-lang-c++"; argv[3] = sfile; argv[4] = outfile; argv[5] = NULL; +#endif }else{ argv[0] = cpp; argv[1] = "-P"; @@ -1102,7 +1109,11 @@ void loadFileWithCpp(objectp op) argv[3] = cygwinPathToWinPath(outfile); argv[4] = NULL; } +#if defined(__clang__) || defined(__FreeBSD__) + system(tmpName); +#else n=oxForkExecBlocked(argv); +#endif ob = newObject_d(); ob->tag = Sstring;