diff options
author | Guillem Jover <guillem@debian.org> | 2014-10-10 13:54:16 +0200 |
---|---|---|
committer | Guillem Jover <guillem@debian.org> | 2014-10-12 05:20:13 +0200 |
commit | 216c509b1daee0e2a9e0e095c5e862cf16e181c0 (patch) | |
tree | f64674f59e4837f1efedc460fbd41b730696698d /src | |
parent | 35c1c59cfad75d75b3d98974ad201f95d932adb6 (diff) | |
download | dpkg-216c509b1daee0e2a9e0e095c5e862cf16e181c0.tar.gz |
dpkg: Do not write the database when changing selections with --dry-run
Closes: #764673
Diffstat (limited to 'src')
-rw-r--r-- | src/select.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/select.c b/src/select.c index 41e82da19..cdfd5bdd4 100644 --- a/src/select.c +++ b/src/select.c @@ -109,6 +109,7 @@ getselections(const char *const *argv) int setselections(const char *const *argv) { + enum modstatdb_rw msdbflags; const struct namevalue *nv; struct pkginfo *pkg; int c, lno; @@ -119,7 +120,13 @@ setselections(const char *const *argv) if (*argv) badusage(_("--%s takes no arguments"), cipaction->olong); - modstatdb_open(msdbrw_write | msdbrw_available_readonly); + msdbflags = msdbrw_available_readonly; + if (f_noact) + msdbflags |= msdbrw_readonly; + else + msdbflags |= msdbrw_write; + + modstatdb_open(msdbflags); pkg_infodb_upgrade(); lno= 1; @@ -194,13 +201,19 @@ setselections(const char *const *argv) int clearselections(const char *const *argv) { + enum modstatdb_rw msdbflags; struct pkgiterator *it; struct pkginfo *pkg; if (*argv) badusage(_("--%s takes no arguments"), cipaction->olong); - modstatdb_open(msdbrw_write); + if (f_noact) + msdbflags = msdbrw_readonly; + else + msdbflags = msdbrw_write; + + modstatdb_open(msdbflags); pkg_infodb_upgrade(); it = pkg_db_iter_new(); |