libarchive-ruby-swig 0.5.8 → 0.5.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -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