9 #define _MACRO_INTERNAL
31 Data_Get_Struct(
self,
struct MacroContext_s, mc);
50 Check_Type(macro, T_STRING);
56 fprintf(stderr,
"==> %s(0x%lx, 0x%lx) ptr %p\n",
57 __FUNCTION__,
self, macro, mc);
79 Check_Type(macro, T_STRING);
84 fprintf(stderr,
"==> %s(0x%lx, 0x%lx) ptr %p\n",
85 __FUNCTION__,
self, macro, mc);
110 VALUE v = rb_ary_new();
112 const char ** av = NULL;
116 fprintf(stderr,
"==> %s(0x%lx) ptr %p\n", __FUNCTION__,
self, mc);
118 if (ac > 0 && av != NULL && av[0] != NULL) {
120 for (i = 0; i < ac; i++) {
123 char *
name = (
char *)av[i];
124 char *body = strchr(name,
'\t');
125 assert(body != NULL);
126 char *opts = ((body > name && body[-1] ==
')') ?
127 strchr(name,
'(') : NULL);
129 if (*name ==
'%') name++;
130 if (opts != NULL && *opts ==
'(') {
140 VALUE nob_ary = rb_ary_new3(3, rb_str_new2(name),
141 rb_str_new2(opts), rb_str_new2(body));
142 rb_ary_push(v, nob_ary);
164 char *vstr = StringValueCStr(macro);
167 fprintf(stderr,
"==> %s(0x%lx, 0x%lx) ptr %p \"%s\"\n",
168 __FUNCTION__,
self, macro, mc, vstr);
189 Check_Type(fn_v, T_STRING);
190 Check_Type(nesting_v, T_FIXNUM);
212 Check_Type(macrofiles_v, T_STRING);
224 rb_define_method(klass,
"add", &
rpmmc_add, 1);
225 rb_define_method(klass,
"del", &
rpmmc_del, 1);
226 rb_define_method(klass,
"list", &
rpmmc_list, 0);
247 fprintf(stderr,
"==> %s(0x%lx)\n", __FUNCTION__, s);
264 fprintf(stderr,
"==> %s(0x%lx, 0x%lx)\n", __FUNCTION__, s, v);
265 return INT2FIX(
_debug = FIX2INT(v));
305 rb_define_singleton_method(klass,
"global_context",
328 fprintf(stderr,
"==> %s(%p)\n", __FUNCTION__, mc);
339 fprintf(stderr,
"==> %s(0x%lx) obj 0x%lx mc %p\n",
340 __FUNCTION__, klass, obj, mc);
352 fprintf(stderr,
"==> %s() rpmmcClass 0x%lx\n", __FUNCTION__,
rpmmcClass);