=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/builtin/file.c,v retrieving revision 1.34 retrieving revision 1.36 diff -u -p -r1.34 -r1.36 --- OpenXM_contrib2/asir2000/builtin/file.c 2015/08/14 13:51:54 1.34 +++ OpenXM_contrib2/asir2000/builtin/file.c 2017/06/12 06:22:50 1.36 @@ -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/builtin/file.c,v 1.33 2015/08/06 10:01:51 fujimoto Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/builtin/file.c,v 1.35 2017/06/10 05:32:24 noro Exp $ */ #include "ca.h" #include "parse.h" @@ -171,7 +171,7 @@ void Popen_file(NODE arg,Q *rp) asir_assert(ARG1(arg),O_STR,"open_file"); fp = fopen(name,BDY((STRING)ARG1(arg))); } else - fp = fopen(name,"r"); + fp = fopen(name,"rb"); } if ( !fp ) { sprintf(errbuf,"open_file : cannot open \"%s\"",name); @@ -241,6 +241,12 @@ void Pget_line(NODE arg,STRING *rp) fsetpos(fp,&head); str = (char *)MALLOC_ATOMIC(j+1); fgets(str,j+1,fp); + for ( i = 0; i < j; i++ ) + if ( str[i] == '\r' ) { + str[i] = '\n'; + str[i+1] = 0; + break; + } MKSTR(*rp,str); } else error("get_line : invalid argument");