Преглед изворни кода

Pass ‘struct pkginfoperfile’ from maint script functions to do_script

This allows us to retrieve package information from either the installed
package or the one being installed from the maintainer script invoking
functions.
Guillem Jover пре 17 година
родитељ
комит
ab95f0bb2f
1 измењених фајлова са 9 додато и 7 уклоњено
  1. 9 7
      src/help.c

+ 9 - 7
src/help.c

@@ -247,7 +247,7 @@ static void setexecute(const char *path, struct stat *stab) {
 }
 
 static int
-do_script(struct pkginfo *pkg,
+do_script(struct pkginfo *pkg, struct pkginfoperfile *pif,
           const char *scriptname, const char *scriptpath, struct stat *stab,
           char *const arglist[], const char *desc, const char *name, int warn)
 {
@@ -302,7 +302,8 @@ vmaintainer_script_installed(struct pkginfo *pkg, const char *scriptname,
     }
     ohshite(_("unable to stat %s `%.250s'"), buf, scriptpath);
   }
-  do_script(pkg, scriptname, scriptpath, &stab, arglist, _("unable to execute %s"), buf, 0);
+  do_script(pkg, &pkg->installed, scriptname, scriptpath, &stab,
+            arglist, _("unable to execute %s"), buf, 0);
 
   return 1;
 }
@@ -362,8 +363,8 @@ maintainer_script_new(struct pkginfo *pkg,
     }
     ohshite(_("unable to stat %s `%.250s'"), buf, cidir);
   }
-  do_script(pkg, scriptname, cidir, &stab, arglist,
-            _("unable to execute %s"), buf, 0);
+  do_script(pkg, &pkg->available, scriptname, cidir, &stab,
+            arglist, _("unable to execute %s"), buf, 0);
   post_script_tasks();
 
   return 1;
@@ -393,8 +394,8 @@ int maintainer_script_alternative(struct pkginfo *pkg,
     warning(_("unable to stat %s '%.250s': %s"),
             buf,oldscriptpath,strerror(errno));
   } else {
-    if (!do_script(pkg, scriptname, oldscriptpath, &stab, arglist,
-                   _("unable to execute %s"), buf, PROCWARN)) {
+    if (!do_script(pkg, &pkg->installed, scriptname, oldscriptpath, &stab,
+                   arglist, _("unable to execute %s"), buf, PROCWARN)) {
       post_script_tasks();
       return 1;
     }
@@ -415,7 +416,8 @@ int maintainer_script_alternative(struct pkginfo *pkg,
       ohshite(_("unable to stat %s `%.250s'"),buf,cidir);
   }
 
-  do_script(pkg, scriptname, cidir, &stab, arglist, _("unable to execute %s"), buf, 0);
+  do_script(pkg, &pkg->available, scriptname, cidir, &stab,
+            arglist, _("unable to execute %s"), buf, 0);
   fprintf(stderr, _("dpkg: ... it looks like that went OK.\n"));
 
   post_script_tasks();