((section 2 "Outdated egg!" (p "This is an egg for CHICKEN 4, the unsupported old release.  You're almost certainly looking for " (int-link "/eggref/5/allegro" "the CHICKEN 5 version of this egg") ", if it exists.") (p "If it does not exist, there may be equivalent functionality provided by another egg; have a look at the " (link "https://wiki.call-cc.org/chicken-projects/egg-index-5.html" "egg index") ". Otherwise, please consider porting this egg to the current version of CHICKEN.") (tags "allegro" "game")) (section 2 "allegro" (p "This document pertains to file related methods found in the Allegro egg.") (p "Please see the main [allegro] wiki page for more information.") (toc)) (section 2 "Constants" (ul (li "eof"))) (section 2 "Enums" (section 3 "file-mode" (def (sig (procedure "(file-mode->int file-mode)" (id file-mode->int))) (p (tt "file-mode") " may be one of the following symbols:") (ul (li "read") (li "write") (li "execute") (li "hidden") (li "file") (li "directory"))) (def (sig (procedure "(int->file-mode integer)" (id int->file-mode))))) (section 3 "seek-flag" (def (sig (procedure "(seek-flag->int seek-flag)" (id seek-flag->int))) (p (tt "seek-flag") " may be one of the following symbols:") (ul (li "set") (li "current") (li "end"))) (def (sig (procedure "(int->seek-flag integer)" (id int->seek-flag)))))) (section 2 "Records" (section 3 "file" (def (sig (record "file" (id file))))) (section 3 "file-interface" (def (sig (record "file-interface" (id file-interface))))) (section 3 "fs-entry" (def (sig (record "fs-entry" (id fs-entry)) (procedure "(fs-entry-vtable fs-entry)" (id fs-entry-vtable))))) (section 3 "fs-interface" (def (sig (record "fs-interface" (id fs-interface)) (procedure "(free-fs-interface! fs-interface)" (id free-fs-interface!)) (procedure "(fs-interface-create-entry fs-interface)" (id fs-interface-create-entry)) (procedure "(fs-interface-entry-name fs-interface)" (id fs-interface-entry-name)) (procedure "(fs-interface-update-entry fs-interface)" (id fs-interface-update-entry)) (procedure "(fs-interface-entry-mode fs-interface)" (id fs-interface-entry-mode)) (procedure "(fs-interface-atime fs-interface)" (id fs-interface-atime)) (procedure "(fs-interface-mtime fs-interface)" (id fs-interface-mtime)) (procedure "(fs-interface-ctime fs-interface)" (id fs-interface-ctime)) (procedure "(fs-interface-entry-size fs-interface)" (id fs-interface-entry-size)) (procedure "(fs-interface-entry-exists? fs-interface)" (id fs-interface-entry-exists?)) (procedure "(fs-interface-remove-entry fs-interface)" (id fs-interface-remove-entry)) (procedure "(fs-interface-open-directory fs-interface)" (id fs-interface-open-directory)) (procedure "(fs-interface-read-directory fs-interface)" (id fs-interface-read-directory)) (procedure "(fs-interface-close-directory fs-interface)" (id fs-interface-close-directory)) (procedure "(fs-interface-current-directory fs-interface)" (id fs-interface-current-directory)) (procedure "(fs-interface-make-directory fs-interface)" (id fs-interface-make-directory)) (procedure "(fs-interface-filename-exists? fs-interface)" (id fs-interface-filename-exists?)) (procedure "(fs-interface-remove-filename fs-interface)" (id fs-interface-remove-filename)) (procedure "(fs-interface-open-file fs-interface)" (id fs-interface-open-file))))) (section 3 "path" (def (sig (record "path" (id path)))))) (section 2 "Functions" (section 3 "File Operations" (def (sig (procedure "(make-temp-file* (string template) ((c-pointer path) out_path))" (id make-temp-file*))) (p "Implements al_make_temp_file.")) (def (sig (procedure "(make-temp-file (string template) ((c-pointer path) out_path))" (id make-temp-file))) (p "Implements al_make_temp_file, with (free&close-file!) declared as a finalizer.")) (def (sig (procedure "(file-open* (string path) (string mode))" (id file-open*))) (p "Implements al_fopen.")) (def (sig (procedure "(file-open (string path) (string mode))" (id file-open))) (p "Implements al_fopen, with (free&close-file!) declared as a finalizer.")) (def (sig (procedure "(file-open-fd* (integer file-descriptor) (string mode))" (id file-open-fd*))) (p "Implements al_fopen_fd.")) (def (sig (procedure "(file-open-fd (integer file-descriptor) (string mode))" (id file-open-fd))) (p "Implements al_fopen_fd, with (free&close-file!) declared as a finalizer.")) (def (sig (procedure "(free&close-file! file)" (id free&close-file!))) (p "Closes a file with (file-close!), then uses (free!) to clear the file struct from memory.")) (def (sig (procedure "(file-close! file)" (id file-close!))) (p "Implements al_fclose.")) (def (sig (procedure "(file-read! file blob (integer size))" (id file-read!))) (p "Implements al_fread.")) (def (sig (procedure "(file-write! file blob (integer size))" (id file-write!))) (p "Implements al_fwrite.") (p "<procedure>(file-tell file)</procedure.") (p "Implements al_ftell.")) (def (sig (procedure "(file-seek! file (integer offset) (integer whence))" (id file-seek!))) (p "Implements al_fseek.")) (def (sig (procedure "(file-eof? file)" (id file-eof?))) (p "Implements al_feof.")) (def (sig (procedure "(file-error? file)" (id file-error?))) (p "Implements al_ferror.")) (def (sig (procedure "(file-clear-error! file)" (id file-clear-error!))) (p "Implements al_fclearerr.")) (def (sig (procedure "(file-unget-chars! file (integer count))" (id file-unget-chars!))) (p "Implements al_fungetc.")) (def (sig (procedure "(file-size file)" (id file-size))) (p "Implements al_fsize.")) (def (sig (procedure "(file-get-char! file)" (id file-get-char!))) (p "Implements al_fgetc.")) (def (sig (procedure "(file-put-char! file (integer character))" (id file-put-char!))) (p "Implements al_fputc.")) (def (sig (procedure "(file-read-16le! file)" (id file-read-16le!))) (p "Implements al_fread16le.")) (def (sig (procedure "(file-read-16be! file)" (id file-read-16be!))) (p "Implements al_fread16be.")) (def (sig (procedure "(file-write-16le! file integer)" (id file-write-16le!))) (p "Implements al_fwrite16le.")) (def (sig (procedure "(file-read-32le! file)" (id file-read-32le!))) (p "Implements al_fread32le.")) (def (sig (procedure "(file-read-32be! file)" (id file-read-32be!))) (p "Implements al_fread32be.")) (def (sig (procedure "(file-write-32le! file integer)" (id file-write-32le!))) (p "Implements al_fwrite32le.")) (def (sig (procedure "(file-write-32be! file integer)" (id file-write-32be!))) (p "Implements al_fwrite32be.")) (def (sig (procedure "(file-get-string! file blob (integer max))" (id file-get-string!))) (p "Implements al_fgets.")) (def (sig (procedure "(file-get-utf-string*! file)" (id file-get-utf-string*!))) (p "Implements al_get_ustr.")) (def (sig (procedure "(file-get-utf-string! file)" (id file-get-utf-string!))) (p "Implements al_get_ustr, with (free-utf-string!) declared as a finalizer.")) (def (sig (procedure "(file-put-string! file string)" (id file-put-string!))) (p "Implements al_fputs.")) (def (sig (procedure "(file-userdata file)" (id file-userdata))) (p "Implements al_get_file_userdata.")) (def (sig (procedure "(new-file-interface-set! file-interface)" (id new-file-interface-set!))) (p "Implements al_set_new_file_interface.")) (def (sig (procedure "(file-interface-open* file-interface (string path) (string mode))" (id file-interface-open*))) (p "Implements al_fopen_interface.")) (def (sig (procedure "(file-interface-open file-interface (string path) (string mode))" (id file-interface-open))) (p "Implements al_fopen_interface, with (free&close-file!) declared as a finalizer.")) (def (sig (procedure "(make-file-handle* file-interface (c-pointer userdata))" (id make-file-handle*))) (p "Implements al_create_file_handle.")) (def (sig (procedure "(make-file-handle file-interface (c-pointer userdata))" (id make-file-handle))) (p "Implements al_create_file_handle, with (free&close-file!) decalred as a finalizer."))) (section 3 "File System Hooks" (def (sig (procedure "(make-fs-entry* string)" (id make-fs-entry*))) (p "Implements al_create_fs_entry.")) (def (sig (procedure "(make-fs-entry string)" (id make-fs-entry))) (p "Implements al_create_fs_entry, with (free-fs-entry!) declared as a finalizer.")) (def (sig (procedure "(free-fs-entry! fs-entry)" (id free-fs-entry!))) (p "Implements al_destroy_fs_entry.")) (def (sig (procedure "(fs-entry-name fs-entry)" (id fs-entry-name))) (p "Implements al_get_fs_entry_name.")) (def (sig (procedure "(fs-entry-update! fs-entry)" (id fs-entry-update!))) (p "Implements al_update_fs_entry.")) (def (sig (procedure "(fs-entry-mode fs-entry)" (id fs-entry-mode))) (p "Implements al_get_fs_entry_mode.")) (def (sig (procedure "(fs-entry-atime fs-entry)" (id fs-entry-atime))) (p "Implements al_get_fs_entry_atime.")) (def (sig (procedure "(fs-entry-mtime fs-entry)" (id fs-entry-mtime))) (p "Implements al_get_fs_entry_mtime.")) (def (sig (procedure "(fs-entry-ctime fs-entry)" (id fs-entry-ctime))) (p "Implements al_get_fs_entry_ctime.")) (def (sig (procedure "(fs-entry-size fs-entry)" (id fs-entry-size))) (p "Implements al_get_fs_entry_size.")) (def (sig (procedure "(fs-entry-exists? fs-entry)" (id fs-entry-exists?))) (p "Implements al_fs_entry_exists.")) (def (sig (procedure "(fs-entry-remove! fs-entry)" (id fs-entry-remove!))) (p "Implements al_remove_fs_entry.")) (def (sig (procedure "(fs-entry-open fs-enty string)" (id fs-entry-open))) (p "Implements al_open_fs_entry.")) (def (sig (procedure "(fs-entry-directory-open! fs-entry)" (id fs-entry-directory-open!))) (p "Implements al_open_directory.") (p "<procedure>(fs-entry-directory-read fs-entry)<procedure>") (p "Implements al_read_directory.")) (def (sig (procedure "(fs-entry-directory-close! fs-entry)" (id fs-entry-directory-close!))) (p "Implements al_close_directory.")) (def (sig (procedure "(current-directory)" (id current-directory))) (p "Implements al_get_current_directory.")) (def (sig (procedure "(change-directory string)" (id change-directory))) (p "Implements al_change_directory.")) (def (sig (procedure "(make-directory string)" (id make-directory))) (p "Implements al_make_directory.")) (def (sig (procedure "(filename-exists? string)" (id filename-exists?))) (p "Implements al_filename_exists.")) (def (sig (procedure "(filename-remove! string)" (id filename-remove!))) (p "Implements al_remove_filename.")) (def (sig (procedure "(new-file-interface)" (id new-file-interface))) (p "Implements al_get_new_file_interface.")) (def (sig (procedure "(current-fs-interface)" (id current-fs-interface))) (p "Implements al_get_fs_interface.")) (def (sig (setter "(current-fs-interface-set!)" (id current-fs-interface-set!))) (p "Implements al_set_fs_interface.")) (def (sig (setter "(standard-fs-interface-set!)" (id standard-fs-interface-set!))) (p "Implements al_set_standard_fs_interface."))) (section 3 "Paths" (def (sig (procedure "(make-path* string)" (id make-path*))) (p "Implements al_create_path.") (p "<procedure>(make-path string)<procedure>") (p "Implements al_create_path, with (free-path!) declared as a finalizer.")) (def (sig (procedure "(make-path-for-directory* string)" (id make-path-for-directory*))) (p "Implements al_create_path_for_directory.")) (def (sig (procedure "(make-path-for-directory string)" (id make-path-for-directory))) (p "Implements al_create_path_for_directory, with (free-path!) declared as a finalizer.")) (def (sig (procedure "(free-path! path)" (id free-path!))) (p "Implements al_destroy_path.")) (def (sig (procedure "(path->string path (char separator))" (id path->string))) (p "Implements al_path_cstr.")) (def (sig (procedure "(path-component-count path)" (id path-component-count))) (p "Implements al_get_path_num_components.")) (def (sig (procedure "(path-component path integer)" (id path-component))) (p "Implements al_get_path_compoenent.")) (def (sig (setter "(path-component-set! path integer string)" (id path-component-set!))) (p "Implements al_replace_path_component.")) (def (sig (procedure "(path-component-remove! path integer)" (id path-component-remove!))) (p "Implements al_remove_path_component.")) (def (sig (procedure "(path-component-insert! path integer string)" (id path-component-insert!))) (p "Implements al_insert_path_component.")) (def (sig (procedure "(path-clone path)" (id path-clone))) (p "Implements al_clone_path.")) (def (sig (procedure "(path-tail path)" (id path-tail))) (p "Implements al_get_path_tail.")) (def (sig (procedure "(path-drop-tail! path)" (id path-drop-tail!))) (p "Implements al_drop_path_tail.")) (def (sig (procedure "(path-append! path string)" (id path-append!))) (p "Implements al_append_path_component.")) (def (sig (procedure "(path-join! path path)" (id path-join!))) (p "Implements al_join_paths.")) (def (sig (procedure "(path-rebase! path path)" (id path-rebase!))) (p "Implements al_rebase_path.")) (def (sig (procedure "(path-drive path)" (id path-drive))) (p "Implements al_get_path_drive.")) (def (sig (setter "(path-drive-set! path string)" (id path-drive-set!))) (p "Implements al_set_path_drive.")) (def (sig (procedure "(path-filename path)" (id path-filename))) (p "Implements al_get_path_filename.")) (def (sig (setter "(path-filename-set! path string)" (id path-filename-set!))) (p "Implements al_set_path_filename.")) (def (sig (procedure "(path-extension path)" (id path-extension))) (p "Implements al_get_path_extension.")) (def (sig (setter "(path-extension-set! path string)" (id path-extension-set!))) (p "Implements al_set_path_extension.")) (def (sig (procedure "(path-basename path)" (id path-basename))) (p "Implements al_get_path_basename.")) (def (sig (procedure "(path-make-canonical! path)" (id path-make-canonical!))) (p "Implements al_make_path_canonical."))) (section 3 "PhysicsFS" (p "See also: the " (int-link "physfs") " egg.") (def (sig (procedure "(enable-physfs-file-interface)" (id enable-physfs-file-interface))) (p "Implements al_set_physfs_file_interface.")) (def (sig (procedure "(physfs-addon-version)" (id physfs-addon-version))) (p "Implements al_get_allegro_physfs_version.")))))