X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Ffile-system.cpp;h=30a89ce5e4aaf368a7779b2e4d98a0534b06dc11;hb=79e12d94cc21232477796a4e76fc2ddb5d88f9dc;hp=5b872a5d1fbb5ffc9085c1ede2d25911c6544920;hpb=98052b04792129db97286fdd77ef3b0de8912286;p=guile-irrlicht.git diff --git a/src/file-system.cpp b/src/file-system.cpp index 5b872a5..30a89ce 100644 --- a/src/file-system.cpp +++ b/src/file-system.cpp @@ -24,11 +24,10 @@ #include "file-archive.h" #include "file-system.h" #include "gsubr.h" - +#include "wrapped.h" using namespace irr; - SCM IFileSystem_addFileArchive (SCM file_system, SCM filename, @@ -38,30 +37,31 @@ IFileSystem_addFileArchive (SCM file_system, SCM password, SCM ret_archive) { - io::IFileArchive* retArchive = (io::IFileArchive*)scm_to_pointer (ret_archive); + io::IFileArchive* retArchive = (io::IFileArchive*)scm_to_irr_pointer (ret_archive); io::IFileArchive** retArchiveReference = 0; if (retArchive != NULL) { retArchiveReference = &retArchive; } - return scm_from_bool - (((io::IFileSystem*)scm_to_pointer (file_system))-> - addFileArchive (scm_to_utf8_stringn (filename, NULL), + char* cfilename = scm_to_utf8_string (filename); + char* cpassword = scm_to_utf8_string (password); + bool result = + (((io::IFileSystem*)scm_to_irr_pointer (file_system))-> + addFileArchive (cfilename, scm_to_bool (ignore_case), scm_to_bool (ignore_paths), scm_to_file_archive_type (archive_type), - scm_to_utf8_stringn (password, NULL), + cpassword, retArchiveReference)); -} - -extern "C" { - - void - init_file_system (void) - { - DEFINE_GSUBR ("IFileSystem_addFileArchive", 7, 0, 0, IFileSystem_addFileArchive); - } + free (cfilename); + free (cpassword); + return scm_from_bool (result); +} +void +init_file_system (void) +{ + DEFINE_GSUBR ("IFileSystem_addFileArchive", 7, 0, 0, IFileSystem_addFileArchive); }