libarchive-ruby-swig 0.5.8 → 0.5.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,7 +11,8 @@
11
11
  require 'mkmf'
12
12
 
13
13
  unless have_header('archive.h') && \
14
- have_library('archive', 'archive_read_open_filename')
14
+ have_library('archive', 'archive_read_open_filename') &&
15
+ have_library('archive', 'archive_read_support_format_raw')
15
16
  $stderr.write "Libarchive development files not found.\n"
16
17
  exit 1
17
18
  end
@@ -47,7 +47,7 @@ void Reader::close()
47
47
  }
48
48
 
49
49
 
50
- Reader *Reader::read_open_filename(const char *filename, const char *cmd)
50
+ Reader *Reader::read_open_filename(const char *filename, const char *cmd, bool raw)
51
51
  {
52
52
  struct archive *ar = archive_read_new();
53
53
 
@@ -60,8 +60,13 @@ Reader *Reader::read_open_filename(const char *filename, const char *cmd)
60
60
  throw 0;
61
61
  }
62
62
 
63
- if(archive_read_support_format_all(ar) != ARCHIVE_OK)
64
- throw 0;
63
+ if(raw) {
64
+ if(archive_read_support_format_raw(ar) != ARCHIVE_OK)
65
+ throw 0;
66
+ } else {
67
+ if(archive_read_support_format_all(ar) != ARCHIVE_OK)
68
+ throw 0;
69
+ }
65
70
 
66
71
  if(archive_read_open_filename(ar, filename, 1024) != ARCHIVE_OK)
67
72
  throw 0;
@@ -77,7 +82,7 @@ Reader *Reader::read_open_filename(const char *filename, const char *cmd)
77
82
 
78
83
 
79
84
  Reader *Reader::read_open_memory(const char *string, int length,
80
- const char *cmd)
85
+ const char *cmd, bool raw)
81
86
  {
82
87
  struct archive *ar = archive_read_new();
83
88
  char *content = (char*) malloc(length);
@@ -92,8 +97,13 @@ Reader *Reader::read_open_memory(const char *string, int length,
92
97
  throw 0;
93
98
  }
94
99
 
95
- if(archive_read_support_format_all(ar) != ARCHIVE_OK)
96
- throw 0;
100
+ if(raw) {
101
+ if(archive_read_support_format_raw(ar) != ARCHIVE_OK)
102
+ throw 0;
103
+ } else {
104
+ if(archive_read_support_format_all(ar) != ARCHIVE_OK)
105
+ throw 0;
106
+ }
97
107
 
98
108
  if(archive_read_open_memory(ar, (void*) content, length) != ARCHIVE_OK)
99
109
  throw 0;
@@ -45,17 +45,17 @@ class Reader
45
45
 
46
46
  #ifdef SWIG
47
47
  %feature("autodoc", "Use <code>Archive::read_open_filename</code> instead") read_open_filename;
48
- %newobject read_open_filename(const char *filename, const char *cmd);
48
+ %newobject read_open_filename(const char *filename, const char *cmd = 0, bool raw = false);
49
49
  %feature("autodoc", "Use <code>Archive::read_open_memory</code> instead") read_open_memory;
50
- %newobject read_open_memory(const char *string, int length, const char *cmd);
50
+ %newobject read_open_memory(const char *string, int length, const char *cmd = 0, bool raw = false);
51
51
  %feature("autodoc", "Returns the next Entry meta data object in the Archive") next_header;
52
52
  %newobject next_header();
53
53
  #endif
54
54
 
55
55
  static Reader *read_open_filename(const char *filename,
56
- const char *cmd = 0);
56
+ const char *cmd = 0, bool raw = false);
57
57
  static Reader *read_open_memory(const char *string, int length,
58
- const char *cmd = 0);
58
+ const char *cmd = 0, bool raw = false);
59
59
 
60
60
  Entry *next_header();
61
61
  VALUE read_data_helper(int len);
data/lib/libarchive_rs.rb CHANGED
@@ -161,12 +161,12 @@ module Archive
161
161
  #
162
162
  # Returns a Reader instance.
163
163
  #
164
- def self.read_open_filename(filename, cmd = nil)
164
+ def self.read_open_filename(filename, cmd = nil, raw = false)
165
165
  unless cmd.nil?
166
166
  cmd = locate_cmd(cmd)
167
167
  end
168
168
 
169
- ar = Reader.read_open_filename(filename, cmd)
169
+ ar = Reader.read_open_filename(filename, cmd, raw)
170
170
 
171
171
  if block_given?
172
172
  yield ar
@@ -184,12 +184,12 @@ module Archive
184
184
  #
185
185
  # Returns a Reader instance.
186
186
  #
187
- def self.read_open_memory(string, cmd = nil)
187
+ def self.read_open_memory(string, cmd = nil, raw = false)
188
188
  unless cmd.nil?
189
189
  cmd = locate_cmd(cmd)
190
190
  end
191
191
 
192
- ar = Reader.read_open_memory(string, cmd)
192
+ ar = Reader.read_open_memory(string, cmd, raw)
193
193
 
194
194
  if block_given?
195
195
  yield ar
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libarchive-ruby-swig
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 8
10
- version: 0.5.8
9
+ - 9
10
+ version: 0.5.9
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tobias Koch
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-05-09 00:00:00 +03:00
18
+ date: 2012-06-09 00:00:00 +03:00
19
19
  default_executable:
20
20
  dependencies: []
21
21