ext/rblibarchive/libarchive_internal.h in libarchive-ruby-fs-0.2.1 vs ext/rblibarchive/libarchive_internal.h in libarchive-ruby-fs-0.2.2
- old
+ new
@@ -1,134 +1,135 @@
-#ifndef _LIBARCHIVE_INTERNAL_H_
-#define _LIBARCHIVE_INTERNAL_H_
-
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <errno.h>
-
-#include <archive.h>
-#include <archive_entry.h>
-
-#include <ruby.h>
-
-#include "archive_write_open_rb_str.h"
-#include "archive_read_support_compression.h"
-#include "archive_read_support_format.h"
-#include "archive_write_set_compression.h"
-
-#ifdef LIBARCHIVE_EXPORTS
-#define DLLEXPORT __declspec(dllexport)
-#else
-#define DLLEXPORT
-#endif
-
-#define BLOCK_SIZE 10240
-#define DATA_BUFFER_SIZE 65536
-
-#ifndef RSTRING_PTR
-#define RSTRING_PTR(s) (RSTRING(s)->ptr)
-#endif
-#ifndef RSTRING_LEN
-#define RSTRING_LEN(s) (RSTRING(s)->len)
-#endif
-
-#ifdef O_NONBLOCK
-#define LIBARCHIVE_O_NONBLOCK O_NONBLOCK
-#elif O_NDELAY
-#define LIBARCHIVE_O_NONBLOCK O_NDELAY
-#else
-#define LIBARCHIVE_O_NONBLOCK 0
-#endif
-
-#ifdef O_NOCTTY
-#define LIBARCHIVE_O_NOCTTY O_NOCTTY
-#else
-#define LIBARCHIVE_O_NOCTTY 0
-#endif
-
-#ifdef O_BINARY
-#define LIBARCHIVE_O_BINARY O_BINARY
-#else
-#define LIBARCHIVE_O_BINARY 0
-#endif
-
-#ifdef O_SYNC
-#define LIBARCHIVE_O_SYNC O_SYNC
-#else
-#define LIBARCHIVE_O_SYNC 0
-#endif
-
-#define O_FLAGS (O_RDONLY | O_WRONLY | O_RDWR | O_APPEND | O_CREAT | O_EXCL | O_TRUNC | \
- LIBARCHIVE_O_NONBLOCK | LIBARCHIVE_O_NOCTTY | LIBARCHIVE_O_BINARY | LIBARCHIVE_O_SYNC)
-
-#define EXTRACT_FLAGS_WITHOUT_ARCHIVE_EXTRACT_SPARSE \
- (ARCHIVE_EXTRACT_OWNER | ARCHIVE_EXTRACT_PERM | ARCHIVE_EXTRACT_TIME | \
- ARCHIVE_EXTRACT_NO_OVERWRITE | ARCHIVE_EXTRACT_UNLINK | ARCHIVE_EXTRACT_ACL | \
- ARCHIVE_EXTRACT_FFLAGS | ARCHIVE_EXTRACT_XATTR | ARCHIVE_EXTRACT_SECURE_SYMLINKS | \
- ARCHIVE_EXTRACT_SECURE_NODOTDOT | ARCHIVE_EXTRACT_NO_AUTODIR | \
- ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER)
-
-#ifdef ARCHIVE_EXTRACT_SPARSE
-#define EXTRACT_FLAGS (EXTRACT_FLAGS_WITHOUT_ARCHIVE_EXTRACT_SPARSE | ARCHIVE_EXTRACT_SPARSE)
-#else
-#define EXTRACT_FLAGS EXTRACT_FLAGS_WITHOUT_ARCHIVE_EXTRACT_SPARSE
-#endif
-
-struct rb_libarchive_archive_container {
- struct archive *ar;
- int eof;
- VALUE memory;
-};
-
-struct rb_libarchive_entry_container {
- struct archive_entry *ae;
- int must_close;
-};
-
-#define Check_Archive(p) do { \
- if ((p)->ar == NULL) { \
- rb_raise(rb_eArchiveError, "Invalid archive"); \
- } \
-} while(0)
-
-#define Check_Entry(p) do { \
- if ((p)->ae == NULL) { \
- rb_raise(rb_eArchiveError, "Invalid entry"); \
- } \
-} while(0)
-
-#define Check_Class(v, c) do { \
- if (!rb_obj_is_instance_of((v), (c))) { \
- rb_raise(rb_eTypeError, "wrong argument type %s (expected %s)", \
- rb_class2name(CLASS_OF(v)), rb_class2name(c)); \
- } \
-} while(0)
-
-#define Check_Class(v, c) do { \
- if (!rb_obj_is_instance_of((v), (c))) { \
- rb_raise(rb_eTypeError, "wrong argument type %s (expected %s)", \
- rb_class2name(CLASS_OF(v)), rb_class2name(c)); \
- } \
-} while(0)
-
-#define LONG2TIME(i) rb_funcall(rb_cTime, rb_intern("at"), 1, LONG2NUM(i))
-#define TIME2LONG(v) NUM2LONG(rb_funcall((v), rb_intern("tv_sec"), 0))
-
-#define archive_copy_error_string(a, b, n) do { \
- strncpy((b), archive_error_string(a), (n)); \
- (b)[((n) - 1)] = '\0'; \
-} while(0)
-
-VALUE rb_libarchive_archive_alloc(VALUE klass);
-VALUE rb_libarchive_entry_new(struct archive_entry *ae, int must_close);
-VALUE rb_libarchive_entry_close(VALUE self);
-
-void Init_libarchive_reader();
-void Init_libarchive_writer();
-void Init_libarchive_archive();
-void Init_libarchive_entry();
-
-#endif // _LIBARCHIVE_INTERNAL_H_
+#ifndef _LIBARCHIVE_INTERNAL_H_
+#define _LIBARCHIVE_INTERNAL_H_
+
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <errno.h>
+
+#include <archive.h>
+#include <archive_entry.h>
+
+#include <ruby.h>
+#include <ruby/thread.h>
+
+#include "archive_write_open_rb_str.h"
+#include "archive_read_support_compression.h"
+#include "archive_read_support_format.h"
+#include "archive_write_set_compression.h"
+
+#ifdef LIBARCHIVE_EXPORTS
+#define DLLEXPORT __declspec(dllexport)
+#else
+#define DLLEXPORT
+#endif
+
+#define BLOCK_SIZE 10240
+#define DATA_BUFFER_SIZE 65536
+
+#ifndef RSTRING_PTR
+#define RSTRING_PTR(s) (RSTRING(s)->ptr)
+#endif
+#ifndef RSTRING_LEN
+#define RSTRING_LEN(s) (RSTRING(s)->len)
+#endif
+
+#ifdef O_NONBLOCK
+#define LIBARCHIVE_O_NONBLOCK O_NONBLOCK
+#elif O_NDELAY
+#define LIBARCHIVE_O_NONBLOCK O_NDELAY
+#else
+#define LIBARCHIVE_O_NONBLOCK 0
+#endif
+
+#ifdef O_NOCTTY
+#define LIBARCHIVE_O_NOCTTY O_NOCTTY
+#else
+#define LIBARCHIVE_O_NOCTTY 0
+#endif
+
+#ifdef O_BINARY
+#define LIBARCHIVE_O_BINARY O_BINARY
+#else
+#define LIBARCHIVE_O_BINARY 0
+#endif
+
+#ifdef O_SYNC
+#define LIBARCHIVE_O_SYNC O_SYNC
+#else
+#define LIBARCHIVE_O_SYNC 0
+#endif
+
+#define O_FLAGS (O_RDONLY | O_WRONLY | O_RDWR | O_APPEND | O_CREAT | O_EXCL | O_TRUNC | \
+ LIBARCHIVE_O_NONBLOCK | LIBARCHIVE_O_NOCTTY | LIBARCHIVE_O_BINARY | LIBARCHIVE_O_SYNC)
+
+#define EXTRACT_FLAGS_WITHOUT_ARCHIVE_EXTRACT_SPARSE \
+ (ARCHIVE_EXTRACT_OWNER | ARCHIVE_EXTRACT_PERM | ARCHIVE_EXTRACT_TIME | \
+ ARCHIVE_EXTRACT_NO_OVERWRITE | ARCHIVE_EXTRACT_UNLINK | ARCHIVE_EXTRACT_ACL | \
+ ARCHIVE_EXTRACT_FFLAGS | ARCHIVE_EXTRACT_XATTR | ARCHIVE_EXTRACT_SECURE_SYMLINKS | \
+ ARCHIVE_EXTRACT_SECURE_NODOTDOT | ARCHIVE_EXTRACT_NO_AUTODIR | \
+ ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER)
+
+#ifdef ARCHIVE_EXTRACT_SPARSE
+#define EXTRACT_FLAGS (EXTRACT_FLAGS_WITHOUT_ARCHIVE_EXTRACT_SPARSE | ARCHIVE_EXTRACT_SPARSE)
+#else
+#define EXTRACT_FLAGS EXTRACT_FLAGS_WITHOUT_ARCHIVE_EXTRACT_SPARSE
+#endif
+
+struct rb_libarchive_archive_container {
+ struct archive *ar;
+ int eof;
+ VALUE memory;
+};
+
+struct rb_libarchive_entry_container {
+ struct archive_entry *ae;
+ int must_close;
+};
+
+#define Check_Archive(p) do { \
+ if ((p)->ar == NULL) { \
+ rb_raise(rb_eArchiveError, "Invalid archive"); \
+ } \
+} while(0)
+
+#define Check_Entry(p) do { \
+ if ((p)->ae == NULL) { \
+ rb_raise(rb_eArchiveError, "Invalid entry"); \
+ } \
+} while(0)
+
+#define Check_Class(v, c) do { \
+ if (!rb_obj_is_instance_of((v), (c))) { \
+ rb_raise(rb_eTypeError, "wrong argument type %s (expected %s)", \
+ rb_class2name(CLASS_OF(v)), rb_class2name(c)); \
+ } \
+} while(0)
+
+#define Check_Class(v, c) do { \
+ if (!rb_obj_is_instance_of((v), (c))) { \
+ rb_raise(rb_eTypeError, "wrong argument type %s (expected %s)", \
+ rb_class2name(CLASS_OF(v)), rb_class2name(c)); \
+ } \
+} while(0)
+
+#define LONG2TIME(i) rb_funcall(rb_cTime, rb_intern("at"), 1, LONG2NUM(i))
+#define TIME2LONG(v) NUM2LONG(rb_funcall((v), rb_intern("tv_sec"), 0))
+
+#define archive_copy_error_string(a, b, n) do { \
+ strncpy((b), archive_error_string(a), (n)); \
+ (b)[((n) - 1)] = '\0'; \
+} while(0)
+
+VALUE rb_libarchive_archive_alloc(VALUE klass);
+VALUE rb_libarchive_entry_new(struct archive_entry *ae, int must_close);
+VALUE rb_libarchive_entry_close(VALUE self);
+
+void Init_libarchive_reader();
+void Init_libarchive_writer();
+void Init_libarchive_archive();
+void Init_libarchive_entry();
+
+#endif // _LIBARCHIVE_INTERNAL_H_