Przeglądaj źródła

dselect: Use modstatdb_get_status() instead of a global variable

Guillem Jover 14 lat temu
rodzic
commit
127ffc452f
5 zmienionych plików z 21 dodań i 12 usunięć
  1. 4 1
      dselect/pkgcmds.cc
  2. 11 5
      dselect/pkgdisplay.cc
  3. 1 1
      dselect/pkginfo.cc
  4. 5 3
      dselect/pkglist.cc
  5. 0 2
      dselect/pkglist.h

+ 4 - 1
dselect/pkgcmds.cc

@@ -100,7 +100,10 @@ void packagelist::setwant(pkginfo::pkgwant nwarg) {
   int index, top, bot;
   pkginfo::pkgwant nw;
 
-  if (!readwrite) { beep(); return; }
+  if (modstatdb_get_status() == msdbrw_readonly) {
+    beep();
+    return;
+  }
 
   if (recursive) {
     redrawitemsrange(cursorline,cursorline+1);

+ 11 - 5
dselect/pkgdisplay.cc

@@ -196,7 +196,8 @@ void packagelist::redrawtitle() {
     mywerase(titlewin);
     mvwaddnstr(titlewin,0,0,
                recursive ?  _("dselect - recursive package listing") :
-               !readwrite ? _("dselect - inspection of package states") :
+               modstatdb_get_status() == msdbrw_readonly ?
+                            _("dselect - inspection of package states") :
                             _("dselect - main package listing"),
                xmax);
     getyx(titlewin,y,x);
@@ -255,10 +256,15 @@ void packagelist::redrawtitle() {
         internerr("bad sort in redrawtitle");
       }
     }
-    const char *helpstring= readwrite ? (verbose ? _(" mark:+/=/- terse:v help:?")
-                                                 : _(" mark:+/=/- verbose:v help:?"))
-                                      : (verbose ? _(" terse:v help:?")
-                                                 : _(" verbose:v help:?"));
+    const char *helpstring;
+
+    if (modstatdb_get_status() == msdbrw_write)
+      helpstring = (verbose ? _(" mark:+/=/- terse:v help:?")
+                            : _(" mark:+/=/- verbose:v help:?"));
+    else
+      helpstring = (verbose ? _(" terse:v help:?")
+                            : _(" verbose:v help:?"));
+
     int l= strlen(helpstring);
     getyx(titlewin,y,x);
     if (xmax-l > 0) {

+ 1 - 1
dselect/pkginfo.cc

@@ -57,7 +57,7 @@ const struct helpmenuentry *packagelist::helpmenulist() {
       {  0                        }
     };
   return
-    !readwrite ? ro :
+    modstatdb_get_status() == msdbrw_readonly ? ro :
     !recursive ? rw :
                  recur;
 }

+ 5 - 3
dselect/pkglist.cc

@@ -396,7 +396,8 @@ packagelist::packagelist(keybindings *kb) : baselist(kb) {
     }
     // treat all unknown packages as already seen
     state->direct= state->original= (pkg->want == pkginfo::want_unknown ? pkginfo::want_purge : pkg->want);
-    if (readwrite && state->original == pkginfo::want_unknown) {
+    if (modstatdb_get_status() == msdbrw_write &&
+        state->original == pkginfo::want_unknown) {
       state->suggested=
         pkg->status == pkginfo::stat_installed ||
           pkg->priority <= pkginfo::pri_standard /* FIXME: configurable */
@@ -445,7 +446,7 @@ packagelist::packagelist(keybindings *kb, pkginfo **pkgltab) : baselist(kb) {
 
 void perpackagestate::free(int recursive) {
   if (pkg->set->name) {
-    if (readwrite) {
+    if (modstatdb_get_status() == msdbrw_write) {
       if (uprec) {
         assert(recursive);
         uprec->selected= selected;
@@ -594,7 +595,8 @@ pkginfo **packagelist::display() {
   pop_cleanup(ehflag_normaltidy); // unset the SIGWINCH handler
   enddisplay();
 
-  if (interp->qa == qa_quitnochecksave || !readwrite) {
+  if (interp->qa == qa_quitnochecksave ||
+      modstatdb_get_status() == msdbrw_readonly) {
     debug(dbg_general, "packagelist[%p]::display() done - quitNOcheck", this);
     return 0;
   }

+ 0 - 2
dselect/pkglist.h

@@ -229,6 +229,4 @@ extern const char statuschars[];
 extern const char eflagchars[];
 extern const char wantchars[];
 
-extern modstatdb_rw readwrite;
-
 #endif /* PKGLIST_H */