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

Move duplicate cleanup close functions to lib/cleanup.c

Guillem Jover лет назад: 18
Родитель
Сommit
3e919df71f
7 измененных файлов с 80 добавлено и 40 удалено
  1. 13 0
      ChangeLog
  2. 1 0
      lib/Makefile.am
  3. 59 0
      lib/cleanup.c
  4. 7 0
      lib/dpkg.h
  5. 0 20
      src/help.c
  6. 0 5
      src/main.h
  7. 0 15
      src/query.c

+ 13 - 0
ChangeLog

@@ -1,3 +1,16 @@
+2008-03-20  Ian Jackson  <ian@davenant.greenend.org.uk>,
+            Guillem Jover  <guillem@debian.org>
+
+	* src/query.c (cu_closepipe, cu_closefile, cu_closefd): Remove
+	duplicated functions.
+	* src/help.c (cu_closepipe, cu_closefile, cu_closedir)
+	(cu_closefd): Move function definitions to ...
+	* lib/cleanup.c: ... here. New file.
+	* src/main.h (cu_closefile, cu_closepipe, cu_closedir)
+	(cu_closefd): Move prototypes to ...
+	* lib/dpkg.h: ... here.
+	* lib/Makefile.am (libdpkg_a_SOURCES): Add 'cleanup.c'.
+
 2008-03-20  Ian Jackson  <ian@davenant.greenend.org.uk>
 
 	* lib/dpkg-db.h (modstatdb_checkpoint): New prototype.

+ 1 - 0
lib/Makefile.am

@@ -15,6 +15,7 @@ libdpkg_a_SOURCES = \
 	dpkg-def.h \
 	dpkg.h \
 	dpkg-db.h \
+	cleanup.c \
 	compat.c \
 	compression.c \
 	database.c \

+ 59 - 0
lib/cleanup.c

@@ -0,0 +1,59 @@
+/*
+ * libdpkg - Debian packaging suite library routines
+ * cleanup.c - cleanup functions, used when we need to unwind
+ *
+ * Copyright (C) 1995 Ian Jackson <ian@chiark.greenend.org.uk>
+ *
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2,
+ * or (at your option) any later version.
+ *
+ * This is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with dpkg; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <dpkg.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <dirent.h>
+
+void
+cu_closepipe(int argc, void **argv)
+{
+	int *p1 = (int *)argv[0];
+
+	close(p1[0]);
+	close(p1[1]);
+}
+
+void
+cu_closefile(int argc, void **argv)
+{
+	FILE *f = (FILE *)(argv[0]);
+
+	fclose(f);
+}
+
+void
+cu_closedir(int argc, void **argv)
+{
+	DIR *d = (DIR *)(argv[0]);
+
+	closedir(d);
+}
+
+void
+cu_closefd(int argc, void **argv)
+{
+	int ip = *(int *)argv[0];
+
+	close(ip);
+}
+

+ 7 - 0
lib/dpkg.h

@@ -207,6 +207,13 @@ void badusage(const char *fmt, ...) NONRETURNING PRINTFFORMAT(1, 2);
 void werr(const char *what) NONRETURNING;
 void warningf(const char *fmt, ...) PRINTFFORMAT(1, 2);
 
+/*** cleanup.c ***/
+
+void cu_closefile(int argc, void **argv);
+void cu_closepipe(int argc, void **argv);
+void cu_closedir(int argc, void **argv);
+void cu_closefd(int argc, void **argv);
+
 /*** from mlib.c ***/
 
 void setcloexec(int fd, const char* fn);

+ 0 - 20
src/help.c

@@ -121,26 +121,6 @@ void ensure_package_clientdata(struct pkginfo *pkg) {
   pkg->clientdata->files = NULL;
 }
 
-void cu_closepipe(int argc, void **argv) {
-  int *p1= (int*)argv[0];
-  close(p1[0]); close(p1[1]);
-}
-
-void cu_closefile(int argc, void **argv) {
-  FILE *f= (FILE*)(argv[0]);
-  fclose(f);
-}
-
-void cu_closedir(int argc, void **argv) {
-  DIR *d= (DIR*)(argv[0]);
-  closedir(d);
-}
-
-void cu_closefd(int argc, void **argv) {
-  int ip= *(int*)argv[0];
-  close(ip);
-}
-
 int ignore_depends(struct pkginfo *pkg) {
   struct packageinlist *id;
   for (id= ignoredependss; id; id= id->next)

+ 0 - 5
src/main.h

@@ -173,11 +173,6 @@ int skip_due_to_hold(struct pkginfo *pkg);
 
 /* from help.c */
 
-void cu_closefile(int argc, void **argv);
-void cu_closepipe(int argc, void **argv);
-void cu_closedir(int argc, void **argv);
-void cu_closefd(int argc, void **argv);
-
 struct stat;
 
 int ignore_depends(struct pkginfo *pkg);

+ 0 - 15
src/query.c

@@ -66,21 +66,6 @@ const char *pkgadminfile(struct pkginfo *pkg, const char *whichfile) {
   return vb.buf;
 }
 
-void cu_closepipe(int argc, void **argv) {
-  int *p1= (int*)argv[0];
-  close(p1[0]); close(p1[1]);
-}
-
-void cu_closefile(int argc, void **argv) {
-  FILE *f= (FILE*)(argv[0]);
-  fclose(f);
-}
-
-void cu_closefd(int argc, void **argv) {
-  int ip= *(int*)argv;
-  close(ip);
-}
-
 int pkglistqsortcmp(const void *a, const void *b) {
   const struct pkginfo *pa= *(const struct pkginfo**)a;
   const struct pkginfo *pb= *(const struct pkginfo**)b;