diff options
author | Rafael Garcia-Suarez <rgarciasuarez@mandriva.org> | 2005-02-11 13:59:41 +0000 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@mandriva.org> | 2005-02-11 13:59:41 +0000 |
commit | 66c01d903344201469b7c74390ffb801cd4c56f9 (patch) | |
tree | b2380644d7e662052045fa80672a229de3aa42f5 | |
parent | 1da9c3b06209848ec5a9189763514fe7464dbe4e (diff) | |
download | perl-URPM-66c01d903344201469b7c74390ffb801cd4c56f9.tar perl-URPM-66c01d903344201469b7c74390ffb801cd4c56f9.tar.gz perl-URPM-66c01d903344201469b7c74390ffb801cd4c56f9.tar.bz2 perl-URPM-66c01d903344201469b7c74390ffb801cd4c56f9.tar.xz perl-URPM-66c01d903344201469b7c74390ffb801cd4c56f9.zip |
Add macro handling code from Olivier Thauvin
-rw-r--r-- | URPM.pm | 30 | ||||
-rw-r--r-- | URPM.xs | 30 |
2 files changed, 58 insertions, 2 deletions
@@ -609,10 +609,36 @@ They roughly correspond to command-line options to rpm(1). =back +=head2 Macro handling functions + +=item loadmacrosfile($filename) + +Load the specified macro file. Sets $! if the file can't be read. + +=item expand($name) + +Expands the specified macro. + +=item add_macro($macro_definition) + +Define a macro. For example, + + URPM::add_macro("vendor Mandrakesoft"); + my $vendor = URPM::expand("%vendor"); + +=item del_macro($name) + +Delete a macro. + +=item resetmacros() + +Destroys macros. + =head1 COPYRIGHT -Copyright 2002, 2003, 2004 MandrakeSoft (François Pons -<fpons@mandrakesoft.com>) +Copyright 2002-2005 Mandrakesoft + +Original author: François Pons This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. @@ -4095,4 +4095,34 @@ Urpm_stream2header(fp) Fclose(fd); } +void +expand(name) + char * name + PPCODE: + const char * value = rpmExpand(name, NULL); + XPUSHs(sv_2mortal(newSVpv(value, 0))); + +void +add_macro(macro) + char * macro + CODE: + rpmDefineMacro(NULL, macro, RMIL_DEFAULT); + +void +del_macro(name) + char * name + CODE: + delMacro(NULL, name); + +void +loadmacrosfile(filename) + char * filename + PPCODE: + rpmInitMacros(NULL, filename); + +void +resetmacros() + PPCODE: + rpmFreeMacros(NULL); + /* vim:set ts=8 sts=2 sw=2: */ |