X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Ffile-system.cpp;h=30a89ce5e4aaf368a7779b2e4d98a0534b06dc11;hb=357f279e004c6257a160205835c06c283d317ef7;hp=76892ef7a74ac78a86113ff06659b36b5b996b2d;hpb=12c23d8b50e25efce7891cc81427c5774340bd18;p=guile-irrlicht.git diff --git a/src/file-system.cpp b/src/file-system.cpp index 76892ef..30a89ce 100644 --- a/src/file-system.cpp +++ b/src/file-system.cpp @@ -24,44 +24,44 @@ #include "file-archive.h" #include "file-system.h" #include "gsubr.h" - +#include "wrapped.h" using namespace irr; - SCM -io_IFileSystem_addFileArchive (SCM file_system, - SCM filename, - SCM ignore_case, - SCM ignore_paths, - SCM archive_type, - SCM password, - SCM ret_archive) +IFileSystem_addFileArchive (SCM file_system, + SCM filename, + SCM ignore_case, + SCM ignore_paths, + SCM archive_type, + 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 ("io_IFileSystem_addFileArchive", 7, 0, 0, io_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); }