Просмотр исходного кода

Switch the logic from msdbrw_noavail to msdbrw_available

Guillem Jover лет назад: 15
Родитель
Сommit
8e57f4f422
8 измененных файлов с 25 добавлено и 23 удалено
  1. 2 1
      dselect/main.cc
  2. 1 1
      lib/dpkg/dbmodify.c
  3. 1 1
      lib/dpkg/dpkg-db.h
  4. 5 4
      src/archives.c
  5. 4 4
      src/enquiry.c
  6. 3 3
      src/packages.c
  7. 6 6
      src/querycmd.c
  8. 3 3
      src/select.c

+ 2 - 1
dselect/main.cc

@@ -360,7 +360,8 @@ extern void operator delete(void *p) {
 }
 
 urqresult urq_list(void) {
-  readwrite= modstatdb_init(admindir,msdbrw_writeifposs);
+  readwrite = modstatdb_init(admindir, (modstatdb_rw)(msdbrw_writeifposs |
+                                                      msdbrw_available));
 
   curseson();
 

+ 1 - 1
lib/dpkg/dbmodify.c

@@ -244,7 +244,7 @@ modstatdb_init(const char *admindir, enum modstatdb_rw readwritereq)
 
   if (cstatus != msdbrw_needsuperuserlockonly) {
     cleanupdates();
-    if(!(cflags & msdbrw_noavail))
+    if (cflags & msdbrw_available)
     parsedb(availablefile,
             pdb_recordavailable | pdb_rejectstatus | pdb_lax_parser,
             NULL);

+ 1 - 1
lib/dpkg/dpkg-db.h

@@ -218,7 +218,7 @@ enum modstatdb_rw {
   /* Now some optional flags: */
   msdbrw_flagsmask= ~077,
   /* Flags start at 0100. */
-  msdbrw_noavail= 0100,
+  msdbrw_available = 0100,
 };
 
 bool modstatdb_is_locked(const char *admindir);

+ 5 - 4
src/archives.c

@@ -1182,10 +1182,11 @@ void archivefiles(const char *const *argv) {
   trigproc_install_hooks();
 
   modstatdb_init(admindir,
-                 f_noact ?                     msdbrw_readonly
-               : cipaction->arg_int == act_avail ? msdbrw_write
-               : fc_nonroot ?                  msdbrw_write
-               :                               msdbrw_needsuperuser);
+                 (f_noact ?                         msdbrw_readonly :
+                  cipaction->arg_int == act_avail ? msdbrw_write :
+                  fc_nonroot ?                      msdbrw_write :
+                                                    msdbrw_needsuperuser) |
+                 msdbrw_available);
 
   checkpath();
   log_message("startup archives %s", cipaction->olong);

+ 4 - 4
src/enquiry.c

@@ -134,7 +134,7 @@ void audit(const char *const *argv) {
   if (*argv)
     badusage(_("--%s takes no arguments"), cipaction->olong);
 
-  modstatdb_init(admindir,msdbrw_readonly);
+  modstatdb_init(admindir, msdbrw_readonly | msdbrw_available);
 
   for (bsi= badstatinfos; bsi->yesno; bsi++) {
     struct pkgiterator *it;
@@ -204,7 +204,7 @@ void unpackchk(const char *const *argv) {
   if (*argv)
     badusage(_("--%s takes no arguments"), cipaction->olong);
 
-  modstatdb_init(admindir,msdbrw_readonly|msdbrw_noavail);
+  modstatdb_init(admindir, msdbrw_readonly);
 
   totalcount= 0;
   sectionentries = NULL;
@@ -282,7 +282,7 @@ assert_version_support(const char *const *argv,
   if (*argv)
     badusage(_("--%s takes no arguments"), cipaction->olong);
 
-  modstatdb_init(admindir,msdbrw_readonly|msdbrw_noavail);
+  modstatdb_init(admindir, msdbrw_readonly);
 
   pkg = pkg_db_find("dpkg");
   switch (pkg->status) {
@@ -348,7 +348,7 @@ void predeppackage(const char *const *argv) {
   if (*argv)
     badusage(_("--%s takes no arguments"), cipaction->olong);
 
-  modstatdb_init(admindir,msdbrw_readonly);
+  modstatdb_init(admindir, msdbrw_readonly | msdbrw_available);
   /* We use clientdata->istobe to detect loops. */
   clear_istobes();
 

+ 3 - 3
src/packages.c

@@ -123,9 +123,9 @@ packages(const char *const *argv)
   trigproc_install_hooks();
 
   modstatdb_init(admindir,
-                 f_noact ?    msdbrw_readonly
-               : fc_nonroot ? msdbrw_write
-               :              msdbrw_needsuperuser);
+                 (f_noact ?    msdbrw_readonly :
+                  fc_nonroot ? msdbrw_write :
+                               msdbrw_needsuperuser) | msdbrw_available);
   checkpath();
   log_message("startup packages %s", cipaction->olong);
 

+ 6 - 6
src/querycmd.c

@@ -201,7 +201,7 @@ listpackages(const char *const *argv)
   int failures = 0;
   struct list_format fmt;
 
-  modstatdb_init(admindir,msdbrw_readonly);
+  modstatdb_init(admindir, msdbrw_readonly | msdbrw_available);
 
   pkg_array_init_from_db(&array);
   pkg_array_sort(&array, pkg_sorter_by_name);
@@ -302,7 +302,7 @@ searchfiles(const char *const *argv)
   if (!*argv)
     badusage(_("--search needs at least one file name pattern argument"));
 
-  modstatdb_init(admindir,msdbrw_readonly|msdbrw_noavail);
+  modstatdb_init(admindir, msdbrw_readonly);
   ensure_allinstfiles_available_quiet();
   ensure_diversions();
 
@@ -369,9 +369,9 @@ enqperpackage(const char *const *argv)
     badusage(_("--%s needs at least one package name argument"), cipaction->olong);
 
   if (cipaction->arg_int == act_listfiles)
-    modstatdb_init(admindir,msdbrw_readonly|msdbrw_noavail);
+    modstatdb_init(admindir, msdbrw_readonly);
   else
-    modstatdb_init(admindir,msdbrw_readonly);
+    modstatdb_init(admindir, msdbrw_readonly | msdbrw_available);
 
   while ((thisarg = *argv++) != NULL) {
     pkg = pkg_db_find(thisarg);
@@ -466,7 +466,7 @@ showpackages(const char *const *argv)
     return failures;
   }
 
-  modstatdb_init(admindir,msdbrw_readonly);
+  modstatdb_init(admindir, msdbrw_readonly | msdbrw_available);
 
   pkg_array_init_from_db(&array);
   pkg_array_sort(&array, pkg_sorter_by_name);
@@ -569,7 +569,7 @@ control_path(const char *const *argv)
         badusage(_("control file contains %c"), *c);
   }
 
-  modstatdb_init(admindir, msdbrw_readonly | msdbrw_noavail);
+  modstatdb_init(admindir, msdbrw_readonly);
 
   pkg = pkg_db_find(pkg_name);
   if (pkg->status == stat_notinstalled)

+ 3 - 3
src/select.c

@@ -50,7 +50,7 @@ void getselections(const char *const *argv) {
   const char *thisarg;
   int i, found;
 
-  modstatdb_init(admindir,msdbrw_readonly);
+  modstatdb_init(admindir, msdbrw_readonly | msdbrw_available);
 
   pkg_array_init_from_db(&array);
   pkg_array_sort(&array, pkg_sorter_by_name);
@@ -91,7 +91,7 @@ void setselections(const char *const *argv) {
   if (*argv)
     badusage(_("--%s takes no arguments"), cipaction->olong);
 
-  modstatdb_init(admindir,msdbrw_write);
+  modstatdb_init(admindir, msdbrw_write | msdbrw_available);
 
   lno= 1;
   for (;;) {
@@ -154,7 +154,7 @@ void clearselections(const char *const *argv)
   if (*argv)
     badusage(_("--%s takes no arguments"), cipaction->olong);
 
-  modstatdb_init(admindir, msdbrw_write);
+  modstatdb_init(admindir, msdbrw_write | msdbrw_available);
 
   it = pkg_db_iter_new();
   while ((pkg = pkg_db_iter_next(it))) {