=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/parse/glob.c,v retrieving revision 1.76 retrieving revision 1.78 diff -u -p -r1.76 -r1.78 --- OpenXM_contrib2/asir2000/parse/glob.c 2009/03/18 05:13:47 1.76 +++ OpenXM_contrib2/asir2000/parse/glob.c 2010/08/01 08:44:15 1.78 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/parse/glob.c,v 1.75 2009/02/05 08:37:02 ohara Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/parse/glob.c,v 1.77 2010/05/26 06:32:49 noro Exp $ */ #include "ca.h" #include "al.h" @@ -318,7 +318,10 @@ static int which(char *prog, char *path, char *buf, si void cppname_init() { #if !defined(VISUAL) - if (access(cppname, X_OK&R_OK) != 0) { + char oxcpp[BUFSIZ]; + if(which("ox_cpp", getenv("PATH"), oxcpp, BUFSIZ) && access(oxcpp, X_OK&R_OK) == 0) { + strncpy(cppname,oxcpp,BUFSIZ-1); + }else if (access(cppname, X_OK&R_OK) != 0) { which("cpp", "/lib:/usr/ccs/lib:/usr/bin", cppname, BUFSIZ) || which("cpp", getenv("PATH"), cppname, BUFSIZ); } @@ -529,8 +532,12 @@ void int_handler(int sig) fprintf(stderr,"interrupt ?(q/t/c/d/u/w/?) "); fflush(stderr); buf[0] = '\n'; - while ( buf[0] == '\n' ) + while ( !feof(stdin) && buf[0] == '\n' ) fgets(buf,BUFSIZ,stdin); + if ( feof(stdin) ) { + clearerr(stdin); + continue; + } switch ( c = buf[0] ) { case 'q': while ( 1 ) {