version 1.34, 2015/08/14 13:51:54 |
version 1.36, 2017/06/12 06:22:50 |
|
|
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* 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 "ca.h" |
#include "parse.h" |
#include "parse.h" |
Line 171 void Popen_file(NODE arg,Q *rp) |
|
Line 171 void Popen_file(NODE arg,Q *rp) |
|
asir_assert(ARG1(arg),O_STR,"open_file"); |
asir_assert(ARG1(arg),O_STR,"open_file"); |
fp = fopen(name,BDY((STRING)ARG1(arg))); |
fp = fopen(name,BDY((STRING)ARG1(arg))); |
} else |
} else |
fp = fopen(name,"r"); |
fp = fopen(name,"rb"); |
} |
} |
if ( !fp ) { |
if ( !fp ) { |
sprintf(errbuf,"open_file : cannot open \"%s\"",name); |
sprintf(errbuf,"open_file : cannot open \"%s\"",name); |
Line 241 void Pget_line(NODE arg,STRING *rp) |
|
Line 241 void Pget_line(NODE arg,STRING *rp) |
|
fsetpos(fp,&head); |
fsetpos(fp,&head); |
str = (char *)MALLOC_ATOMIC(j+1); |
str = (char *)MALLOC_ATOMIC(j+1); |
fgets(str,j+1,fp); |
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); |
MKSTR(*rp,str); |
} else |
} else |
error("get_line : invalid argument"); |
error("get_line : invalid argument"); |