#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);
}