Explorar o código

libdpkg: Refactor varbuf_pkgadminfile() out from pkgadminfile()

Guillem Jover %!s(int64=15) %!d(string=hai) anos
pai
achega
bad1832947
Modificáronse 3 ficheiros con 17 adicións e 6 borrados
  1. 14 6
      lib/dpkg/dbmodify.c
  2. 2 0
      lib/dpkg/dpkg-db.h
  3. 1 0
      lib/dpkg/libdpkg.Versions

+ 14 - 6
lib/dpkg/dbmodify.c

@@ -410,13 +410,21 @@ pkgadmindir(void)
   return infodir;
 }
 
+void
+varbuf_pkgadminfile(struct varbuf *vb, struct pkginfo *pkg, const char *file)
+{
+  varbuf_reset(vb);
+  varbuf_add_str(vb, infodir);
+  varbuf_add_str(vb, pkg->name);
+  varbuf_add_char(vb, '.');
+  varbuf_add_str(vb, file);
+  varbuf_add_char(vb, '\0');
+}
+
 const char *pkgadminfile(struct pkginfo *pkg, const char *whichfile) {
   static struct varbuf vb;
-  varbuf_reset(&vb);
-  varbuf_add_str(&vb, infodir);
-  varbuf_add_str(&vb, pkg->name);
-  varbuf_add_char(&vb, '.');
-  varbuf_add_str(&vb, whichfile);
-  varbuf_add_char(&vb, '\0');
+
+  varbuf_pkgadminfile(&vb, pkg, whichfile);
+
   return vb.buf;
 }

+ 2 - 0
lib/dpkg/dpkg-db.h

@@ -232,6 +232,8 @@ void modstatdb_shutdown(void);
 
 const char *pkgadmindir_init(const char *default_dir);
 const char *pkgadmindir(void);
+void varbuf_pkgadminfile(struct varbuf *vb, struct pkginfo *pkg,
+                         const char *file);
 const char *pkgadminfile(struct pkginfo *pkg, const char *whichfile);
 
 /*** from database.c ***/

+ 1 - 0
lib/dpkg/libdpkg.Versions

@@ -213,6 +213,7 @@ LIBDPKG_PRIVATE {
 	varbufrecord;
 	writerecord;
 	pkgadmindir;
+	varbuf_pkgadminfile;
 	pkgadminfile;
 	parsedb;
 	writedb;