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

commit e6b914a81c3000f72678b0050bb6d0271dd8c93e
Author: Michel Hermier <[email protected]>
Date:   Sat Nov 2 11:25:02 2013 +0100

libpacman: Add pretriggers posttriggers serialisation support.

diff --git a/lib/libpacman/be_files.c b/lib/libpacman/be_files.c
index 3c31fab..967c588 100644
--- a/lib/libpacman/be_files.c
+++ b/lib/libpacman/be_files.c
@@ -441,6 +441,10 @@ static int _pacman_db_read_desc(pmdb_t *db, unsigned int 
inforeq, pmpkg_t *info)
}
_pacman_strtrim(tmp);
info->reason = atol(tmp);
+                       } else if(!strcmp(line, "%PRETRIGGERS%")) {
+                               _pacman_db_read_lines(db, &info->pretriggers, 
line, sline, fp);
+                       } else if(!strcmp(line, "%POSTTRIGGERS%")) {
+                               _pacman_db_read_lines(db, &info->posttriggers, 
line, sline, fp);
} else if(!strcmp(line, "%SIZE%") || !strcmp(line, "%CSIZE%")) {
/* NOTE: the CSIZE and SIZE fields both share the "size" field
*       in the pkginfo_t struct.  This can be done b/c CSIZE
@@ -752,6 +756,8 @@ int _pacman_db_write(pmdb_t *db, pmpkg_t *info, unsigned 
int inforeq)
fprintf(fp, "%%REASON%%\n"
"%d\n\n", info->reason);
}
+                       _pacman_db_write_stringlist("PRETRIGGERS", 
info->pretriggers, fp);
+                       _pacman_db_write_stringlist("POSTTRIGGERS", 
info->pretriggers, fp);
} else {
if(info->size) {
fprintf(fp, "%%CSIZE%%\n"
diff --git a/lib/libpacman/package.c b/lib/libpacman/package.c
index 02e70ab..22edc84 100644
--- a/lib/libpacman/package.c
+++ b/lib/libpacman/package.c
@@ -225,6 +225,10 @@ static int parse_descfile(char *descfile, pmpkg_t *info, 
int output)
info->provides = _pacman_stringlist_append(info->provides, ptr);
} else if(!strcmp(key, "BACKUP")) {
info->backup = _pacman_stringlist_append(info->backup, ptr);
+                       } else if(!strcmp(key, "PRETRIGGER")) {
+                               info->pretriggers = 
_pacman_stringlist_append(info->pretriggers, ptr);
+                       } else if(!strcmp(key, "POSTTRIGGER")) {
+                               info->posttriggers = 
_pacman_stringlist_append(info->posttriggers, ptr);
} else {
_pacman_log(PM_LOG_DEBUG, _("%s: syntax error in description file line %d"),
info->name[0] != '\0' ? info->name : "error", linenum);
diff --git a/lib/libpacman/package.h b/lib/libpacman/package.h
index 5e5fae4..8476c90 100644
--- a/lib/libpacman/package.h
+++ b/lib/libpacman/package.h
@@ -77,6 +77,8 @@ struct __pmpkg_t {
pmlist_t *requiredby;
pmlist_t *conflicts;
pmlist_t *provides;
+       pmlist_t *pretriggers;
+       pmlist_t *posttriggers;
/* internal */
unsigned char origin;
void *data;
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to