Sha256: 60320a2d42a9368959a2c5a45b04063a55a497687b3f9086e26fe194f9006147

Contents?: true

Size: 735 Bytes

Versions: 8

Compression:

Stored size: 735 Bytes

Contents

#include <archive.h>
#include <ruby.h>

#ifdef _WIN32
typedef long ssize_t;
#endif

static int rb_str_write_open(struct archive *a, void *client_data) {
  if (archive_write_get_bytes_in_last_block(a) == -1) { 
    archive_write_set_bytes_in_last_block(a, 1);
  }

  return ARCHIVE_OK;
}

static int rb_str_write_close(struct archive *a, void *client_data) {
  return ARCHIVE_OK;
}


static ssize_t rb_str_write(struct archive *a, void *client_data, const void *buff, size_t length) {
  VALUE str = (VALUE) client_data;
  rb_str_cat(str, buff, length);
  return length;
}

int archive_write_open_rb_str(struct archive *a, VALUE str) {
  return archive_write_open(a, (void *) str, rb_str_write_open, rb_str_write, rb_str_write_close);
}

Version data entries

8 entries across 8 versions & 3 rubygems

Version Path
libarchive-static-1.0.6 ext/libarchive-0.1.1/ext/archive_write_open_rb_str.c
libarchive-static-1.0.5 ext/libarchive-0.1.1/ext/archive_write_open_rb_str.c
libarchive-static-1.0.4 ext/libarchive-0.1.1/ext/archive_write_open_rb_str.c
libarchive-static-1.0.3 ext/libarchive-0.1.1/ext/archive_write_open_rb_str.c
libarchive-static-1.0.0 ext/libarchive-0.1.1/ext/archive_write_open_rb_str.c
dguerri-libarchive-0.1.2 ext/archive_write_open_rb_str.c
libarchive-0.1.0 ext/archive_write_open_rb_str.c
libarchive-0.1.1 ext/archive_write_open_rb_str.c