@@ -660,15 +660,11 @@ void cmd_floadln() {
660660 // type == 1, build string
661661 v_free (var_p );
662662 int len = dev_flength (handle );
663- if (len < 1 || prog_error ) {
664- err_throw (FSERR_NOT_FOUND );
665- } else {
666- v_init_str (var_p , len );
667- if (var_p -> v .p .length > 1 ) {
668- dev_fread (handle , (byte * )var_p -> v .p .ptr , var_p -> v .p .length - 1 );
669- var_p -> v .p .ptr [var_p -> v .p .length - 1 ] = '\0' ;
670- }
671- }
663+ v_init_str (var_p , len );
664+ if (var_p -> v .p .length > 1 ) {
665+ dev_fread (handle , (byte * )var_p -> v .p .ptr , var_p -> v .p .length - 1 );
666+ var_p -> v .p .ptr [var_p -> v .p .length - 1 ] = '\0' ;
667+ }
672668 }
673669 if (flags == DEV_FILE_INPUT ) {
674670 dev_fclose (handle );
@@ -722,10 +718,14 @@ void cmd_fsaveln() {
722718
723719 if (var_p -> type == V_ARRAY ) {
724720 // parameter is an array
725- for ( int i = 0 ; i < v_asize (array_p ); i ++ ) {
726- var_p = v_elem (array_p , i );
721+ if ( v_asize (array_p ) > 0 ) {
722+ var_p = v_elem (array_p , 0 );
727723 fprint_var (handle , var_p );
728- dev_fwrite (handle , (byte * )OS_LINESEPARATOR , OS_LINESEPARATOR_LEN );
724+ for (int i = 1 ; i < v_asize (array_p ); i ++ ) {
725+ var_p = v_elem (array_p , i );
726+ dev_fwrite (handle , (byte * )OS_LINESEPARATOR , OS_LINESEPARATOR_LEN );
727+ fprint_var (handle , var_p );
728+ }
729729 }
730730 } else {
731731 // parameter is an string
0 commit comments