Fix white spaces.
[debian/pforth] / fth / utils / load_file.fth
1 \ Load a file into an allocated memory image.
2 \
3 \ Author: Phil Burk
4 \ Copyright 3DO 1995
5
6 anew task-load_file.fth
7
8 : $LOAD.FILE { $filename | fid numbytes numread err data -- data-addr 0 | 0 err }
9     0 -> data
10 \ open file
11     $filename count r/o open-file -> err -> fid
12     err
13     IF
14         ." $LOAD.FILE - Could not open input file!" cr
15     ELSE
16 \ determine size of file
17         fid file-size -> err -> numbytes
18         err
19         IF
20              ." $LOAD.FILE - File size failed!" cr
21         ELSE
22             ." File size = " numbytes . cr
23 \ allocate memory for sample, when done free memory using FREE
24             numbytes allocate -> err -> data
25             err
26             IF
27                 ." $LOAD.FILE - Memory allocation failed!" cr
28             ELSE
29 \ read data
30                 data numbytes fid read-file -> err
31                 ." Read " . ." bytes from file " $filename count type cr
32             THEN
33         THEN
34         fid close-file drop
35     THEN
36     data err
37 ;
38
39 \ Example:   c" myfile" $load.file   abort" Oops!"   free .