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
