17 #define _RPMTS_INTERNAL
39 Data_Get_Struct(s,
void, ptr);
49 VALUE NVRA = rb_ary_new();
63 for (i = 0; i < nkeys; i++)
64 rb_ary_push(NVRA, rb_str_new2(keys[i]));
67 fprintf(stderr,
"==> %s(0x%lx) ptr %p NVRA 0x%lx\n",
68 __FUNCTION__, s, ptr, NVRA);
85 rb_scan_args(argc, argv,
"02", &v_tag, &v_key);
88 _tag = FIX2INT(v_tag);
90 _key = StringValueCStr(v_key);
125 VALUE specfile_v, rootURL_v, recursing_v, passphrase_v, cookie_v,
126 anyarch_v, force_v, verify_v;
127 rb_scan_args(argc, argv,
"8", &specfile_v, &rootURL_v, &recursing_v,
128 &passphrase_v, &cookie_v, &anyarch_v, &force_v, &verify_v);
132 Check_Type(specfile_v, T_STRING);
133 char *specfile = RSTRING_PTR(specfile_v);
135 Check_Type(rootURL_v, T_STRING);
136 char *rootURL = RSTRING_PTR(rootURL_v);
139 switch(TYPE(cookie_v)) {
141 cookie = RSTRING_PTR(cookie_v);
147 rpm_rb_raise(1,
"cookie must be either NIL or a string");
151 Check_Type(passphrase_v, T_STRING);
152 char *passphrase = RSTRING_PTR(passphrase_v);
155 switch(TYPE(recursing_v)) {
164 "Parameter 'recursing' must be either true or false");
169 switch(TYPE(anyarch_v)) {
178 "Parameter 'anyarch' must be either true or false");
183 switch(TYPE(verify_v)) {
192 "Parameter 'verify' must be either true or false");
197 switch(TYPE(force_v)) {
206 "Parameter 'force' must be either true or false");
212 int error =
parseSpec(ts, specfile, rootURL,
213 recursing, passphrase, cookie, anyarch, force, verify);
222 rb_iv_set(spec_v,
"ts", obj);
231 rb_define_method(klass,
"mi", &
rpmts_mi, -1);
241 fprintf(stderr,
"==> %s(0x%lx)\n", __FUNCTION__, s);
249 fprintf(stderr,
"==> %s(0x%lx, 0x%lx)\n", __FUNCTION__, s, v);
250 return INT2FIX(
_debug = FIX2INT(v));
259 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, ptr);
269 fprintf(stderr,
"==> %s(0x%lx, 0x%lx) ptr %p\n", __FUNCTION__, s, v, ptr);
280 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__, s, ptr);
290 fprintf(stderr,
"==> %s(0x%lx, 0x%lx) ptr %p\n", __FUNCTION__, s, v, ptr);
319 fprintf(stderr,
"==> %s(%p)\n", __FUNCTION__, ts);
327 char * _rootdir =
"/";
330 rb_scan_args(argc, argv,
"01", &v_rootdir);
332 if (!NIL_P(v_rootdir))
333 _rootdir = StringValueCStr(v_rootdir);
339 fprintf(stderr,
"==> %s(%p[%d], 0x%lx) ts %p\n", __FUNCTION__, argv, argc, s, ts
341 return Data_Wrap_Struct(s, 0,
rpmts_free, ts);
353 fprintf(stderr,
"==> %s() rpmtsClass 0x%lx\n", __FUNCTION__,
rpmtsClass);
355 rb_include_module(
rpmtsClass, rb_mEnumerable);