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);
203 const unsigned char *
s =
digest;
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);
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 char *size_t nb
fgets(3) analogue that reads \ continuations.
struct rpmts_s * rpmts
The RPM Transaction Set.
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.
memset(_r, 0, sizeof(*_r))
static PyObject *static PyObject *static PyObject *static PyObject *static PyObject *static PyObject *static PyObject *static PyObject *static PyObject *static PyObject *static PyObject *static PyObject *size_t dlen
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)
fprintf(stderr,"--> %s(%p,%p,%p) sig %p sigp %p\n", __FUNCTION__, dig, t, rsactx, sig, sigp)
static VALUE rpmfi_BN_get(VALUE s)
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.
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 void
Print copy of spec file, filling in Group/Description/Summary from specspo.
static VALUE rpmfi_FX_set(VALUE s, VALUE v)
int
Save source and expand field into target.
struct rpmfi_s * rpmfi
File info tag sets from a header, so that a header can be discarded early.
static VALUE rpmfi_FColor_get(VALUE s)
static void rpmfi_free(rpmfi fi)
static void * _free(const void *p)
Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.
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.
const unsigned char * digest