tarruby 0.1.2-mswin32 → 0.1.3-mswin32
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.
- data/ext/tarruby.c +20 -4
- data/lib/i386-mswin32/tarruby.so +0 -0
- metadata +2 -2
data/ext/tarruby.c
CHANGED
@@ -8,6 +8,7 @@
|
|
8
8
|
#endif
|
9
9
|
#include "libtar.h"
|
10
10
|
#include "ruby.h"
|
11
|
+
#include "rubysig.h"
|
11
12
|
|
12
13
|
#ifndef RSTRING_PTR
|
13
14
|
#define RSTRING_PTR(s) (RSTRING(s)->ptr)
|
@@ -32,7 +33,7 @@
|
|
32
33
|
|
33
34
|
#define INT2TIME(i) rb_funcall(rb_cTime, rb_intern("at"), 1, INT2NUM(i))
|
34
35
|
|
35
|
-
#define VERSION "0.1.
|
36
|
+
#define VERSION "0.1.3"
|
36
37
|
|
37
38
|
static VALUE Tar;
|
38
39
|
static VALUE Error;
|
@@ -275,6 +276,7 @@ static VALUE tarruby_append_tree(int argc, VALUE *argv, VALUE self) {
|
|
275
276
|
VALUE realdir, savedir;
|
276
277
|
struct tarruby_tar *p_tar;
|
277
278
|
char *s_realdir, *s_savedir = NULL;
|
279
|
+
int result = -1;
|
278
280
|
|
279
281
|
rb_scan_args(argc, argv, "11", &realdir, &savedir);
|
280
282
|
Check_Type(realdir, T_STRING);
|
@@ -289,7 +291,11 @@ static VALUE tarruby_append_tree(int argc, VALUE *argv, VALUE self) {
|
|
289
291
|
|
290
292
|
Data_Get_Struct(self, struct tarruby_tar, p_tar);
|
291
293
|
|
292
|
-
|
294
|
+
TRAP_BEG;
|
295
|
+
result = tar_append_tree(p_tar->tar, s_realdir, s_savedir);
|
296
|
+
TRAP_END;
|
297
|
+
|
298
|
+
if (result != 0) {
|
293
299
|
rb_raise(Error, "Append tree failed: %s", strerror(errno));
|
294
300
|
}
|
295
301
|
|
@@ -343,6 +349,7 @@ static VALUE tarruby_extract_glob(int argc, VALUE *argv, VALUE self) {
|
|
343
349
|
VALUE globname, prefix;
|
344
350
|
struct tarruby_tar *p_tar;
|
345
351
|
char *s_globname, *s_prefix = NULL;
|
352
|
+
int result = -1;
|
346
353
|
|
347
354
|
rb_scan_args(argc, argv, "11", &globname, &prefix);
|
348
355
|
Check_Type(globname, T_STRING);
|
@@ -355,7 +362,11 @@ static VALUE tarruby_extract_glob(int argc, VALUE *argv, VALUE self) {
|
|
355
362
|
|
356
363
|
Data_Get_Struct(self, struct tarruby_tar, p_tar);
|
357
364
|
|
358
|
-
|
365
|
+
TRAP_BEG;
|
366
|
+
result = tar_extract_glob(p_tar->tar, s_globname, s_prefix);
|
367
|
+
TRAP_END;
|
368
|
+
|
369
|
+
if (result != 0) {
|
359
370
|
rb_raise(Error, "Extract archive failed: %s", strerror(errno));
|
360
371
|
}
|
361
372
|
|
@@ -369,6 +380,7 @@ static VALUE tarruby_extract_all(int argc, VALUE *argv, VALUE self) {
|
|
369
380
|
VALUE prefix;
|
370
381
|
struct tarruby_tar *p_tar;
|
371
382
|
char *s_prefix = NULL;
|
383
|
+
int result = -1;
|
372
384
|
|
373
385
|
rb_scan_args(argc, argv, "01", &prefix);
|
374
386
|
|
@@ -379,7 +391,11 @@ static VALUE tarruby_extract_all(int argc, VALUE *argv, VALUE self) {
|
|
379
391
|
|
380
392
|
Data_Get_Struct(self, struct tarruby_tar, p_tar);
|
381
393
|
|
382
|
-
|
394
|
+
TRAP_BEG;
|
395
|
+
result = tar_extract_all(p_tar->tar, s_prefix);
|
396
|
+
TRAP_END;
|
397
|
+
|
398
|
+
if (result != 0) {
|
383
399
|
rb_raise(Error, "Extract archive failed: %s", strerror(errno));
|
384
400
|
}
|
385
401
|
|
data/lib/i386-mswin32/tarruby.so
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tarruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: mswin32
|
6
6
|
authors:
|
7
7
|
- winebarrel
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-09-
|
12
|
+
date: 2008-09-14 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|