15 #define _RPMFI_INTERNAL 38 Data_Get_Struct(s,
void, ptr);
54 fprintf(stderr,
"==> %s(0x%lx)\n", __FUNCTION__, s);
62 fprintf(stderr,
"==> %s(0x%lx, 0x%lx)\n", __FUNCTION__, s, v);
63 return INT2FIX(
_debug = FIX2INT(v));
71 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
80 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
90 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
104 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
113 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
123 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
138 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
139 return rb_str_new2(
rpmfiBN(fi));
147 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
148 return rb_str_new2(
rpmfiDN(fi));
156 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
157 return rb_str_new2(
rpmfiFN(fi));
165 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
174 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
183 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
192 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
202 const unsigned char * digest =
rpmfiDigest(fi, &dalgo, &dlen);
203 const unsigned char * s = digest;
204 size_t nb = 2 * dlen;
205 char * fdigest = memset(
alloca(nb+1), 0, nb+1);
210 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__,
self, fi);
211 for (i = 0, s = digest, t = fdigest; i < (int)dlen; i++, s++, t+= 2) {
212 static const char hex[] =
"0123456789abcdef";
213 t[0] = hex[(s[0] >> 4) & 0xf];
214 t[1] = hex[(s[0] ) & 0xf];
218 return rb_str_new2(fdigest);
226 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
235 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
244 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
253 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
262 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
271 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
280 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
292 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, fi);
293 if (FClass == NULL) FClass =
"";
296 if (!strncmp(t,
"symbolic link to `",
sizeof(
"symbolic link to `")-1))
297 t[
sizeof(
"symbolic link")-1] =
'\0';
298 v = rb_str_new2(FClass);
338 fprintf(stderr,
"==> %s(%p)\n", __FUNCTION__, fi);
345 VALUE v_ts, v_hdr, v_tag;
352 rb_scan_args(argc, argv,
"21", &v_ts, &v_hdr, &v_tag);
358 tag = FIX2INT(v_tag);
363 fprintf(stderr,
"==> %s(%p[%d], 0x%lx) mi %p\n", __FUNCTION__, argv, argc, s, fi);
364 return Data_Wrap_Struct(s, 0,
rpmfi_free, fi);
372 rpmfiClass = rb_define_class(
"Fi", rb_cObject);
374 fprintf(stderr,
"==> %s() rpmfiClass 0x%lx\n", __FUNCTION__,
rpmfiClass);
376 rb_include_module(
rpmfiClass, rb_mEnumerable);
rpmuint32_t rpmfiFFlags(rpmfi fi)
Return current file flags from file info set.
static VALUE rpmfi_DC_get(VALUE s)
static VALUE rpmfi_FUser_get(VALUE s)
int rpmfiDX(rpmfi fi)
Return current directory index from file info set.
rpmuint32_t rpmfiVFlags(rpmfi fi)
Return current file verify flags from file info set.
static VALUE rpmfi_debug_get(VALUE s)
char * xstrdup(const char *str)
VALUE rpmrb_NewFi(void *_fi)
Structure(s) used for file info tag sets.
static VALUE rpmfi_FMode_get(VALUE s)
int rpmfiSetFX(rpmfi fi, int fx)
Set current file index in file info set.
rpmuint16_t rpmfiFRdev(rpmfi fi)
Return current file rdev from file info set.
static VALUE rpmfi_FState_get(VALUE s)
static VALUE rpmfi_DX_get(VALUE s)
rpmfi rpmfiFree(rpmfi fi)
Destroy a file info set.
const char * rpmfiFN(rpmfi fi)
Return current file name from file info set.
static VALUE rpmfi_FDigest_get(VALUE self)
const char * rpmfiFUser(rpmfi fi)
Return current file owner from file info set.
const char * rpmfiFGroup(rpmfi fi)
Return current file group from file info set.
rpmfi rpmfiNew(const void *_ts, Header h, rpmTag tagN, int flags)
Create and load a file info set.
rpmuint32_t rpmfiFColor(rpmfi fi)
Return current file color bits from file info set.
const char * rpmfiBN(rpmfi fi)
Return current base name from file info set.
static VALUE rpmfi_FRdev_get(VALUE s)
static VALUE rpmfi_DX_set(VALUE s, VALUE v)
int rpmfiFC(rpmfi fi)
Return file count from file info set.
rpmuint32_t rpmfiFSize(rpmfi fi)
Return current file size from file info set.
static VALUE rpmfi_FX_get(VALUE s)
int rpmfiNextD(rpmfi fi)
Return next directory iterator index.
static VALUE rpmfi_DN_get(VALUE s)
const char * rpmfiDN(rpmfi fi)
Return current directory name from file info set.
static VALUE rpmfi_FFlags_get(VALUE s)
static VALUE rpmfi_BN_get(VALUE s)
struct rpmfi_s * rpmfi
File info tag sets from a header, so that a header can be discarded early.
rpmuint16_t rpmfiFMode(rpmfi fi)
Return current file mode from file info set.
static VALUE rpmfi_FLink_get(VALUE s)
static VALUE rpmfi_FClass_get(VALUE s)
rpmuint32_t rpmfiFMtime(rpmfi fi)
Return current file modify time from file info set.
static VALUE rpmfi_FSize_get(VALUE s)
int rpmfiNext(rpmfi fi)
Return next file iterator index.
RPM Ruby bindings "RPM" module.
static VALUE rpmfi_FGroup_get(VALUE s)
int rpmfiDC(rpmfi fi)
Return directory count from file info set.
const char * rpmfiFClass(rpmfi fi)
Return current file class from file info set.
static void initProperties(VALUE klass)
const char * rpmfiFLink(rpmfi fi)
Return current file linkto (i.e.
struct rpmts_s * rpmts
The RPM Transaction Set.
static void * _free(const void *p)
Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.
static VALUE rpmfi_new(int argc, VALUE *argv, VALUE s)
Structures and prototypes used for an "rpmts" transaction set.
rpmfileState rpmfiFState(rpmfi fi)
Return current file state from file info set.
const unsigned char * rpmfiDigest(rpmfi fi, int *algop, size_t *lenp)
Return current file (binary) digest from file info set.
static VALUE rpmfi_FC_get(VALUE s)
static void * rpmfi_ptr(VALUE s)
static VALUE rpmfi_FMtime_get(VALUE s)
static void initMethods(VALUE klass)
static VALUE rpmfi_FN_get(VALUE s)
static VALUE rpmfi_FX_set(VALUE s, VALUE v)
static VALUE rpmfi_FColor_get(VALUE s)
static void rpmfi_free(rpmfi fi)
static VALUE rpmfi_VFlags_get(VALUE s)
static VALUE rpmfi_debug_set(VALUE s, VALUE v)
int rpmfiFX(rpmfi fi)
Return current file index from file info set.
int rpmfiSetDX(rpmfi fi, int dx)
Set current directory index in file info set.