Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=366bae8374ae30fb841e9bb1a4136dd052850322

commit 366bae8374ae30fb841e9bb1a4136dd052850322
Author: Michel Hermier <[email protected]>
Date:   Thu May 9 12:32:06 2013 +0200

libpacman: Add new PM_PKG_DATABASE.

diff --git a/doc/libpacman-changes.txt b/doc/libpacman-changes.txt
index 747cfd1..3267a44 100644
--- a/doc/libpacman-changes.txt
+++ b/doc/libpacman-changes.txt
@@ -24,11 +24,12 @@ PM_LIST is now a flib FList meaning that pacman_list(3) API 
will be deprecated w

==== Symbols added:

+PM_PKG_DATABASE: New package data accessor.
PM_TRANS_FLAG_EXPLICIT: (internal) Specify the user added the package on 
purpose.

==== Symbols removed:

-PM_PKG_DATA, PM_SYNC_DATA: Provided ambiguity in the API, returned value type 
was not consistant and was depending on other returned values.
+PM_PKG_DATA, PM_SYNC_DATA: These data accessors provided ambiguity in the API, 
returning value type was not consistant and was depending on other returned 
values.

PM_SYNC_TYPE_REPLACE, PM_SYNC_TYPE_UPGRADE, PM_SYNC_TYPE_DEPEND: One should use 
the PM_TRANS_TYPE_* equivalent instead.

@@ -36,7 +37,7 @@ pacman_pkg_checkmd5sum, pacman_pkg_checksha1sum: Unused and 
broken since a while

=== Behaviour changes

-None known.
+PM_TRANS_CONV_REPLACE_PKG data3 third argument is now allways NULL, you can 
get the database and its name using PM_PKG_DATABASE.

== AUTHORS

diff --git a/lib/libpacman/package.c b/lib/libpacman/package.c
index acc226e..0c0f4ec 100644
--- a/lib/libpacman/package.c
+++ b/lib/libpacman/package.c
@@ -558,6 +558,7 @@ void *_pacman_pkg_getinfo(pmpkg_t *pkg, unsigned char parm)
}

switch(parm) {
+               case PM_PKG_DATABASE:    data = pkg->db; break;
case PM_PKG_NAME:        data = pkg->name; break;
case PM_PKG_VERSION:     data = pkg->version; break;
case PM_PKG_DESC:        data = pkg->desc; break;
diff --git a/lib/libpacman/pacman.h b/lib/libpacman/pacman.h
index 01aa58e..05372a8 100644
--- a/lib/libpacman/pacman.h
+++ b/lib/libpacman/pacman.h
@@ -167,7 +167,8 @@ PM_LIST *pacman_db_test(PM_DB *db);
/* Info parameters */
enum {
/* Desc entry */
-       PM_PKG_NAME = 1,
+       PM_PKG_DATABASE,
+       PM_PKG_NAME,
PM_PKG_VERSION,
PM_PKG_DESC,
PM_PKG_GROUPS,
diff --git a/lib/libpacman/trans_sysupgrade.c b/lib/libpacman/trans_sysupgrade.c
index b8b8cd7..10a786d 100644
--- a/lib/libpacman/trans_sysupgrade.c
+++ b/lib/libpacman/trans_sysupgrade.c
@@ -96,7 +96,7 @@ int _pacman_sync_sysupgrade(pmtrans_t *trans)
} else {
/* get confirmation for the replacement */
int doreplace = 0;
-                                                       QUESTION(trans, 
PM_TRANS_CONV_REPLACE_PKG, lpkg, spkg, ((pmdb_t *)i->data)->treename, 
&doreplace);
+                                                       QUESTION(trans, 
PM_TRANS_CONV_REPLACE_PKG, lpkg, spkg, NULL, &doreplace);

if(doreplace) {
/* if confirmed, add this to the 'final' list, designating 'lpkg' as
diff --git a/src/pacman-g2/trans.c b/src/pacman-g2/trans.c
index 8d15fde..1f28ea5 100644
--- a/src/pacman-g2/trans.c
+++ b/src/pacman-g2/trans.c
@@ -214,7 +214,7 @@ void cb_trans_conv(unsigned char event, void *data1, void 
*data2, void *data3, i
} else {
snprintf(str, LOG_STR_LEN, _(":: Replace %s with %s/%s? [Y/n] "),
(char *)pacman_pkg_getinfo(data1, PM_PKG_NAME),
-                                        (char *)data3,
+                                        (char *)pacman_db_getinfo 
(pacman_pkg_getinfo (data2, PM_PKG_DATABASE), PM_DB_TREENAME),
(char *)pacman_pkg_getinfo(data2, PM_PKG_NAME));
*response = yesno(str);
}
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to