zipruby 0.2.4 → 0.2.5
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.
Potentially problematic release.
This version of zipruby might be problematic. Click here for more details.
- data/ext/zipruby.h +1 -1
 - data/ext/zipruby_archive.c +28 -8
 - data/zipruby.c +28 -8
 - metadata +2 -2
 
    
        data/ext/zipruby.h
    CHANGED
    
    
    
        data/ext/zipruby_archive.c
    CHANGED
    
    | 
         @@ -323,14 +323,24 @@ static VALUE zipruby_archive_add_buffer(VALUE self, VALUE name, VALUE source) { 
     | 
|
| 
       323 
323 
     | 
    
         
             
            static VALUE zipruby_archive_replace_buffer(VALUE self, VALUE index, VALUE source) {
         
     | 
| 
       324 
324 
     | 
    
         
             
              struct zipruby_archive *p_archive;
         
     | 
| 
       325 
325 
     | 
    
         
             
              struct zip_source *zsource;
         
     | 
| 
      
 326 
     | 
    
         
            +
              int i_index;
         
     | 
| 
       326 
327 
     | 
    
         
             
              char *data;
         
     | 
| 
       327 
328 
     | 
    
         
             
              off_t len;
         
     | 
| 
       328 
329 
     | 
    
         | 
| 
       329 
     | 
    
         
            -
               
     | 
| 
      
 330 
     | 
    
         
            +
              if (!rb_obj_is_instance_of(index, rb_cString) && !rb_obj_is_instance_of(index, rb_cFixnum)) {
         
     | 
| 
      
 331 
     | 
    
         
            +
                rb_raise(rb_eTypeError, "wrong argument type %s (expected Fixnum or String)", rb_class2name(CLASS_OF(index)));
         
     | 
| 
      
 332 
     | 
    
         
            +
              }
         
     | 
| 
      
 333 
     | 
    
         
            +
             
     | 
| 
       330 
334 
     | 
    
         
             
              Check_Type(source, T_STRING);
         
     | 
| 
       331 
335 
     | 
    
         
             
              Data_Get_Struct(self, struct zipruby_archive, p_archive);
         
     | 
| 
       332 
336 
     | 
    
         
             
              Check_Archive(p_archive);
         
     | 
| 
       333 
337 
     | 
    
         | 
| 
      
 338 
     | 
    
         
            +
              if (rb_obj_is_instance_of(index, rb_cFixnum)) {
         
     | 
| 
      
 339 
     | 
    
         
            +
                i_index = NUM2INT(index);
         
     | 
| 
      
 340 
     | 
    
         
            +
              } else if ((i_index = zip_name_locate(p_archive->archive, StringValuePtr(index), ZIP_FL_NOCASE)) == -1) {
         
     | 
| 
      
 341 
     | 
    
         
            +
                rb_raise(Error, "Replace file failed - %s: Archive does not contain a file", StringValuePtr(index));
         
     | 
| 
      
 342 
     | 
    
         
            +
              }
         
     | 
| 
      
 343 
     | 
    
         
            +
             
     | 
| 
       334 
344 
     | 
    
         
             
              len = RSTRING(source)->len;
         
     | 
| 
       335 
345 
     | 
    
         | 
| 
       336 
346 
     | 
    
         
             
              if ((data = malloc(len)) == NULL) {
         
     | 
| 
         @@ -341,14 +351,14 @@ static VALUE zipruby_archive_replace_buffer(VALUE self, VALUE index, VALUE sourc 
     | 
|
| 
       341 
351 
     | 
    
         | 
| 
       342 
352 
     | 
    
         
             
              if ((zsource = zip_source_buffer(p_archive->archive, data, len, 1)) == NULL) {
         
     | 
| 
       343 
353 
     | 
    
         
             
                free(data);
         
     | 
| 
       344 
     | 
    
         
            -
                rb_raise(Error, "Replace file failed at %d: %s",  
     | 
| 
      
 354 
     | 
    
         
            +
                rb_raise(Error, "Replace file failed at %d: %s", i_index, zip_strerror(p_archive->archive));
         
     | 
| 
       345 
355 
     | 
    
         
             
              }
         
     | 
| 
       346 
356 
     | 
    
         | 
| 
       347 
     | 
    
         
            -
              if (zip_replace(p_archive->archive,  
     | 
| 
      
 357 
     | 
    
         
            +
              if (zip_replace(p_archive->archive, i_index, zsource) == -1) {
         
     | 
| 
       348 
358 
     | 
    
         
             
                zip_source_free(zsource);
         
     | 
| 
       349 
359 
     | 
    
         
             
                zip_unchange_all(p_archive->archive);
         
     | 
| 
       350 
360 
     | 
    
         
             
                zip_unchange_archive(p_archive->archive);
         
     | 
| 
       351 
     | 
    
         
            -
                rb_raise(Error, "Replace file failed at %d: %s",  
     | 
| 
      
 361 
     | 
    
         
            +
                rb_raise(Error, "Replace file failed at %d: %s", i_index, zip_strerror(p_archive->archive));
         
     | 
| 
       352 
362 
     | 
    
         
             
              }
         
     | 
| 
       353 
363 
     | 
    
         | 
| 
       354 
364 
     | 
    
         
             
              return Qnil;
         
     | 
| 
         @@ -413,21 +423,31 @@ static VALUE zipruby_archive_add_file(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       413 
423 
     | 
    
         
             
            static VALUE zipruby_archive_replace_file(VALUE self, VALUE index, VALUE fname) {
         
     | 
| 
       414 
424 
     | 
    
         
             
              struct zipruby_archive *p_archive;
         
     | 
| 
       415 
425 
     | 
    
         
             
              struct zip_source *zsource;
         
     | 
| 
      
 426 
     | 
    
         
            +
              int i_index;
         
     | 
| 
      
 427 
     | 
    
         
            +
             
     | 
| 
      
 428 
     | 
    
         
            +
              if (!rb_obj_is_instance_of(index, rb_cString) && !rb_obj_is_instance_of(index, rb_cFixnum)) {
         
     | 
| 
      
 429 
     | 
    
         
            +
                rb_raise(rb_eTypeError, "wrong argument type %s (expected Fixnum or String)", rb_class2name(CLASS_OF(index)));
         
     | 
| 
      
 430 
     | 
    
         
            +
              }
         
     | 
| 
       416 
431 
     | 
    
         | 
| 
       417 
     | 
    
         
            -
              Check_Type(index, T_FIXNUM);
         
     | 
| 
       418 
432 
     | 
    
         
             
              Check_Type(fname, T_STRING);
         
     | 
| 
       419 
433 
     | 
    
         
             
              Data_Get_Struct(self, struct zipruby_archive, p_archive);
         
     | 
| 
       420 
434 
     | 
    
         
             
              Check_Archive(p_archive);
         
     | 
| 
       421 
435 
     | 
    
         | 
| 
      
 436 
     | 
    
         
            +
              if (rb_obj_is_instance_of(index, rb_cFixnum)) {
         
     | 
| 
      
 437 
     | 
    
         
            +
                i_index = NUM2INT(index);
         
     | 
| 
      
 438 
     | 
    
         
            +
              } else if ((i_index = zip_name_locate(p_archive->archive, StringValuePtr(index), ZIP_FL_NOCASE)) == -1) {
         
     | 
| 
      
 439 
     | 
    
         
            +
                rb_raise(Error, "Replace file failed - %s: Archive does not contain a file", StringValuePtr(index));
         
     | 
| 
      
 440 
     | 
    
         
            +
              }
         
     | 
| 
      
 441 
     | 
    
         
            +
             
     | 
| 
       422 
442 
     | 
    
         
             
              if ((zsource = zip_source_file(p_archive->archive, StringValuePtr(fname), 0, -1)) == NULL) {
         
     | 
| 
       423 
     | 
    
         
            -
                rb_raise(Error, "Replace file failed at %d: %s",  
     | 
| 
      
 443 
     | 
    
         
            +
                rb_raise(Error, "Replace file failed at %d: %s", i_index, zip_strerror(p_archive->archive));
         
     | 
| 
       424 
444 
     | 
    
         
             
              }
         
     | 
| 
       425 
445 
     | 
    
         | 
| 
       426 
     | 
    
         
            -
              if (zip_replace(p_archive->archive,  
     | 
| 
      
 446 
     | 
    
         
            +
              if (zip_replace(p_archive->archive, i_index, zsource) == -1) {
         
     | 
| 
       427 
447 
     | 
    
         
             
                zip_source_free(zsource);
         
     | 
| 
       428 
448 
     | 
    
         
             
                zip_unchange_all(p_archive->archive);
         
     | 
| 
       429 
449 
     | 
    
         
             
                zip_unchange_archive(p_archive->archive);
         
     | 
| 
       430 
     | 
    
         
            -
                rb_raise(Error, "Replace file failed at %d: %s",  
     | 
| 
      
 450 
     | 
    
         
            +
                rb_raise(Error, "Replace file failed at %d: %s", i_index, zip_strerror(p_archive->archive));
         
     | 
| 
       431 
451 
     | 
    
         
             
              }
         
     | 
| 
       432 
452 
     | 
    
         | 
| 
       433 
453 
     | 
    
         
             
              return Qnil;
         
     | 
    
        data/zipruby.c
    CHANGED
    
    | 
         @@ -342,14 +342,24 @@ static VALUE zipruby_archive_add_buffer(VALUE self, VALUE name, VALUE source) { 
     | 
|
| 
       342 
342 
     | 
    
         
             
            static VALUE zipruby_archive_replace_buffer(VALUE self, VALUE index, VALUE source) {
         
     | 
| 
       343 
343 
     | 
    
         
             
              struct zipruby_archive *p_archive;
         
     | 
| 
       344 
344 
     | 
    
         
             
              struct zip_source *zsource;
         
     | 
| 
      
 345 
     | 
    
         
            +
              int i_index;
         
     | 
| 
       345 
346 
     | 
    
         
             
              char *data;
         
     | 
| 
       346 
347 
     | 
    
         
             
              off_t len;
         
     | 
| 
       347 
348 
     | 
    
         | 
| 
       348 
     | 
    
         
            -
               
     | 
| 
      
 349 
     | 
    
         
            +
              if (!rb_obj_is_instance_of(index, rb_cString) && !rb_obj_is_instance_of(index, rb_cFixnum)) {
         
     | 
| 
      
 350 
     | 
    
         
            +
                rb_raise(rb_eTypeError, "wrong argument type %s (expected Fixnum or String)", rb_class2name(CLASS_OF(index)));
         
     | 
| 
      
 351 
     | 
    
         
            +
              }
         
     | 
| 
      
 352 
     | 
    
         
            +
             
     | 
| 
       349 
353 
     | 
    
         
             
              Check_Type(source, T_STRING);
         
     | 
| 
       350 
354 
     | 
    
         
             
              Data_Get_Struct(self, struct zipruby_archive, p_archive);
         
     | 
| 
       351 
355 
     | 
    
         
             
              Check_Archive(p_archive);
         
     | 
| 
       352 
356 
     | 
    
         | 
| 
      
 357 
     | 
    
         
            +
              if (rb_obj_is_instance_of(index, rb_cFixnum)) {
         
     | 
| 
      
 358 
     | 
    
         
            +
                i_index = NUM2INT(index);
         
     | 
| 
      
 359 
     | 
    
         
            +
              } else if ((i_index = zip_name_locate(p_archive->archive, StringValuePtr(index), ZIP_FL_NOCASE)) == -1) {
         
     | 
| 
      
 360 
     | 
    
         
            +
                rb_raise(Error, "Replace file failed - %s: Archive does not contain a file", StringValuePtr(index));
         
     | 
| 
      
 361 
     | 
    
         
            +
              }
         
     | 
| 
      
 362 
     | 
    
         
            +
             
     | 
| 
       353 
363 
     | 
    
         
             
              len = RSTRING(source)->len;
         
     | 
| 
       354 
364 
     | 
    
         | 
| 
       355 
365 
     | 
    
         
             
              if ((data = malloc(len)) == NULL) {
         
     | 
| 
         @@ -360,14 +370,14 @@ static VALUE zipruby_archive_replace_buffer(VALUE self, VALUE index, VALUE sourc 
     | 
|
| 
       360 
370 
     | 
    
         | 
| 
       361 
371 
     | 
    
         
             
              if ((zsource = zip_source_buffer(p_archive->archive, data, len, 1)) == NULL) {
         
     | 
| 
       362 
372 
     | 
    
         
             
                free(data);
         
     | 
| 
       363 
     | 
    
         
            -
                rb_raise(Error, "Replace file failed at %d: %s",  
     | 
| 
      
 373 
     | 
    
         
            +
                rb_raise(Error, "Replace file failed at %d: %s", i_index, zip_strerror(p_archive->archive));
         
     | 
| 
       364 
374 
     | 
    
         
             
              }
         
     | 
| 
       365 
375 
     | 
    
         | 
| 
       366 
     | 
    
         
            -
              if (zip_replace(p_archive->archive,  
     | 
| 
      
 376 
     | 
    
         
            +
              if (zip_replace(p_archive->archive, i_index, zsource) == -1) {
         
     | 
| 
       367 
377 
     | 
    
         
             
                zip_source_free(zsource);
         
     | 
| 
       368 
378 
     | 
    
         
             
                zip_unchange_all(p_archive->archive);
         
     | 
| 
       369 
379 
     | 
    
         
             
                zip_unchange_archive(p_archive->archive);
         
     | 
| 
       370 
     | 
    
         
            -
                rb_raise(Error, "Replace file failed at %d: %s",  
     | 
| 
      
 380 
     | 
    
         
            +
                rb_raise(Error, "Replace file failed at %d: %s", i_index, zip_strerror(p_archive->archive));
         
     | 
| 
       371 
381 
     | 
    
         
             
              }
         
     | 
| 
       372 
382 
     | 
    
         | 
| 
       373 
383 
     | 
    
         
             
              return Qnil;
         
     | 
| 
         @@ -432,21 +442,31 @@ static VALUE zipruby_archive_add_file(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       432 
442 
     | 
    
         
             
            static VALUE zipruby_archive_replace_file(VALUE self, VALUE index, VALUE fname) {
         
     | 
| 
       433 
443 
     | 
    
         
             
              struct zipruby_archive *p_archive;
         
     | 
| 
       434 
444 
     | 
    
         
             
              struct zip_source *zsource;
         
     | 
| 
      
 445 
     | 
    
         
            +
              int i_index;
         
     | 
| 
      
 446 
     | 
    
         
            +
             
     | 
| 
      
 447 
     | 
    
         
            +
              if (!rb_obj_is_instance_of(index, rb_cString) && !rb_obj_is_instance_of(index, rb_cFixnum)) {
         
     | 
| 
      
 448 
     | 
    
         
            +
                rb_raise(rb_eTypeError, "wrong argument type %s (expected Fixnum or String)", rb_class2name(CLASS_OF(index)));
         
     | 
| 
      
 449 
     | 
    
         
            +
              }
         
     | 
| 
       435 
450 
     | 
    
         | 
| 
       436 
     | 
    
         
            -
              Check_Type(index, T_FIXNUM);
         
     | 
| 
       437 
451 
     | 
    
         
             
              Check_Type(fname, T_STRING);
         
     | 
| 
       438 
452 
     | 
    
         
             
              Data_Get_Struct(self, struct zipruby_archive, p_archive);
         
     | 
| 
       439 
453 
     | 
    
         
             
              Check_Archive(p_archive);
         
     | 
| 
       440 
454 
     | 
    
         | 
| 
      
 455 
     | 
    
         
            +
              if (rb_obj_is_instance_of(index, rb_cFixnum)) {
         
     | 
| 
      
 456 
     | 
    
         
            +
                i_index = NUM2INT(index);
         
     | 
| 
      
 457 
     | 
    
         
            +
              } else if ((i_index = zip_name_locate(p_archive->archive, StringValuePtr(index), ZIP_FL_NOCASE)) == -1) {
         
     | 
| 
      
 458 
     | 
    
         
            +
                rb_raise(Error, "Replace file failed - %s: Archive does not contain a file", StringValuePtr(index));
         
     | 
| 
      
 459 
     | 
    
         
            +
              }
         
     | 
| 
      
 460 
     | 
    
         
            +
             
     | 
| 
       441 
461 
     | 
    
         
             
              if ((zsource = zip_source_file(p_archive->archive, StringValuePtr(fname), 0, -1)) == NULL) {
         
     | 
| 
       442 
     | 
    
         
            -
                rb_raise(Error, "Replace file failed at %d: %s",  
     | 
| 
      
 462 
     | 
    
         
            +
                rb_raise(Error, "Replace file failed at %d: %s", i_index, zip_strerror(p_archive->archive));
         
     | 
| 
       443 
463 
     | 
    
         
             
              }
         
     | 
| 
       444 
464 
     | 
    
         | 
| 
       445 
     | 
    
         
            -
              if (zip_replace(p_archive->archive,  
     | 
| 
      
 465 
     | 
    
         
            +
              if (zip_replace(p_archive->archive, i_index, zsource) == -1) {
         
     | 
| 
       446 
466 
     | 
    
         
             
                zip_source_free(zsource);
         
     | 
| 
       447 
467 
     | 
    
         
             
                zip_unchange_all(p_archive->archive);
         
     | 
| 
       448 
468 
     | 
    
         
             
                zip_unchange_archive(p_archive->archive);
         
     | 
| 
       449 
     | 
    
         
            -
                rb_raise(Error, "Replace file failed at %d: %s",  
     | 
| 
      
 469 
     | 
    
         
            +
                rb_raise(Error, "Replace file failed at %d: %s", i_index, zip_strerror(p_archive->archive));
         
     | 
| 
       450 
470 
     | 
    
         
             
              }
         
     | 
| 
       451 
471 
     | 
    
         | 
| 
       452 
472 
     | 
    
         
             
              return Qnil;
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: zipruby
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.2.5
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors: 
         
     | 
| 
       7 
7 
     | 
    
         
             
            - winebarrel
         
     | 
| 
         @@ -9,7 +9,7 @@ autorequire: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
            date: 2008-05- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2008-05-05 00:00:00 +09:00
         
     | 
| 
       13 
13 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       15 
15 
     | 
    
         |