X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Ffile-system.cpp;h=30a89ce5e4aaf368a7779b2e4d98a0534b06dc11;hb=357f279e004c6257a160205835c06c283d317ef7;hp=204e25dabad0985bcd17662b552f3695eb5894f2;hpb=41a6ad96e81a8d8153c54877c4c12f61100677a9;p=guile-irrlicht.git diff --git a/src/file-system.cpp b/src/file-system.cpp index 204e25d..30a89ce 100644 --- a/src/file-system.cpp +++ b/src/file-system.cpp @@ -24,6 +24,7 @@ #include "file-archive.h" #include "file-system.h" #include "gsubr.h" +#include "wrapped.h" using namespace irr; @@ -36,21 +37,27 @@ 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)); + + free (cfilename); + free (cpassword); + return scm_from_bool (result); } void