diff options
author | Judd Vinet <judd@archlinux.org> | 2005-10-09 08:09:57 +0200 |
---|---|---|
committer | Judd Vinet <judd@archlinux.org> | 2005-10-09 08:09:57 +0200 |
commit | a36ded25eb9bdea5b73c33f993820b657f9e6623 (patch) | |
tree | cd1fede1bf2400edee18bd8542f4a426354550aa /src/pacman/trans.c | |
parent | 9a4719d3c5e7d75fda485e3251edba0fb96b5b27 (diff) | |
download | pacman-a36ded25eb9bdea5b73c33f993820b657f9e6623.tar.gz pacman-a36ded25eb9bdea5b73c33f993820b657f9e6623.tar.xz |
added conversation callback support for transactions
Diffstat (limited to 'src/pacman/trans.c')
-rw-r--r-- | src/pacman/trans.c | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/src/pacman/trans.c b/src/pacman/trans.c index 90341770..2840fca2 100644 --- a/src/pacman/trans.c +++ b/src/pacman/trans.c @@ -36,7 +36,7 @@ /* Callback to handle transaction events */ -void cb_trans(unsigned char event, void *data1, void *data2) +void cb_trans_evt(unsigned char event, void *data1, void *data2) { char str[LOG_STR_LEN] = ""; @@ -93,4 +93,37 @@ void cb_trans(unsigned char event, void *data1, void *data2) } } +void cb_trans_conv(unsigned char event, void *data1, void *data2, void *data3, int *response) +{ + char str[LOG_STR_LEN] = ""; + + switch(event) { + case PM_TRANS_CONV_INSTALL_IGNOREPKG: + snprintf(str, LOG_STR_LEN, ":: %s requires %s, but it is in IgnorePkg. Install anyway? [Y/n] ", + (char *)alpm_pkg_getinfo(data1, PM_PKG_NAME), + (char *)alpm_pkg_getinfo(data2, PM_PKG_NAME)); + *response = yesno(str); + break; + case PM_TRANS_CONV_REPLACE_PKG: + snprintf(str, LOG_STR_LEN, ":: Replace %s with %s from \"%s\"? [Y/n] ", + (char *)alpm_pkg_getinfo(data1, PM_PKG_NAME), + (char *)alpm_pkg_getinfo(data2, PM_PKG_NAME), + (char *)data3); + *response = yesno(str); + break; + case PM_TRANS_CONV_LOCAL_NEWER: + snprintf(str, LOG_STR_LEN, ":: %s-%s: local version is newer. Upgrade anyway? [Y/n] ", + (char *)alpm_pkg_getinfo(data1, PM_PKG_NAME), + (char *)alpm_pkg_getinfo(data1, PM_PKG_VERSION)); + *response = yesno(str); + break; + case PM_TRANS_CONV_LOCAL_UPTODATE: + snprintf(str, LOG_STR_LEN, ":: %s-%s: local version is up to date. Upgrade anyway? [Y/n] ", + (char *)alpm_pkg_getinfo(data1, PM_PKG_NAME), + (char *)alpm_pkg_getinfo(data1, PM_PKG_VERSION)); + *response = yesno(str); + break; + } +} + /* vim: set ts=2 sw=2 noet: */ |