From d927d69f118d3e1e56e67e47e9e4ec97bce2f016 Mon Sep 17 00:00:00 2001 From: Rafael Garcia-Suarez Date: Thu, 30 Jun 2005 04:58:54 +0000 Subject: Add function rpmErrorWriteTo($fd) --- URPM.pm | 2 ++ URPM.xs | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/URPM.pm b/URPM.pm index 77774c8..13ebbbf 100644 --- a/URPM.pm +++ b/URPM.pm @@ -645,6 +645,8 @@ Sets rpm verbosity level. $level is an integer between 2 (RPMMESS_CRIT) and 7 =item rpmErrorString() +=item rpmErrorWriteTo($fd) + =back =head1 COPYRIGHT diff --git a/URPM.xs b/URPM.xs index e1fefb9..d125cd4 100644 --- a/URPM.xs +++ b/URPM.xs @@ -239,6 +239,13 @@ struct _FD_s { }; /*@access FD_t@*/ +static int rpmError_callback_data; +void rpmError_callback() { + if (rpmErrorCode() != RPMERR_UNLINK && rpmErrorCode() != RPMERR_RMDIR) { + write(rpmError_callback_data, rpmErrorString(), strlen(rpmErrorString())); + } +} + static inline void fdInitDigest(FD_t fd, pgpHashAlgo hashalgo, int flags) /*@modifies fd @*/ @@ -3643,4 +3650,11 @@ setVerbosity(level) const char * rpmErrorString() +void +rpmErrorWriteTo(fd) + int fd + CODE: + rpmError_callback_data = fd; + rpmErrorSetCallback(rpmError_callback); + /* vim:set ts=8 sts=2 sw=2: */ -- cgit v1.2.1