Bladeren bron

libdpkg: Add new rtrim_slash_slashdot private function

Guillem Jover 18 jaren geleden
bovenliggende
commit
9f148a4e9b
4 gewijzigde bestanden met toevoegingen van 87 en 0 verwijderingen
  1. 6 0
      ChangeLog
  2. 2 0
      lib/Makefile.am
  3. 38 0
      lib/dpkg-priv.h
  4. 41 0
      lib/path.c

+ 6 - 0
ChangeLog

@@ -1,3 +1,9 @@
+2008-05-12  Guillem Jover  <guillem@debian.org>
+
+	* lib/Makefile.am (libdpkg_a_SOURCES): Add 'dpkg-priv.h' and 'path.c'.
+	* lib/dpkg-priv.h: New file.
+	* lib/path.c: Likewise.
+
 2008-05-11  Pierre Habouzit  <madcoder@debian.org>
 
 	* lib/showpkg.c (show1package): Use %zd instead of %d in sprintf()

+ 2 - 0
lib/Makefile.am

@@ -15,6 +15,7 @@ libdpkg_a_SOURCES = \
 	dpkg-def.h \
 	dpkg.h \
 	dpkg-db.h \
+	dpkg-priv.h \
 	dlist.h \
 	cleanup.c \
 	compat.c \
@@ -35,6 +36,7 @@ libdpkg_a_SOURCES = \
 	parse.c \
 	parsehelp.c \
 	parsedump.h \
+	path.c \
 	showpkg.c \
 	tarfn.c tarfn.h \
 	triglib.c \

+ 38 - 0
lib/dpkg-priv.h

@@ -0,0 +1,38 @@
+/*
+ * libdpkg - Debian packaging suite library routines
+ * dpkg-priv.h - private declarations for libdpkg and dpkg programs
+ *
+ * Copyright (C) 2008 Guillem Jover <guillem@debian.org>
+ *
+ * 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.
+ */
+
+#ifndef DPKG_PRIV_H
+#define DPKG_PRIV_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Path handling. */
+
+void rtrim_slash_slashdot(char *path);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* DPKG_PRIV_H */
+

+ 41 - 0
lib/path.c

@@ -0,0 +1,41 @@
+/*
+ * libdpkg - Debian packaging suite library routines
+ * path.c - path handling functions
+ *
+ * Copyright (C) 2008 Guillem Jover <guillem@debian.org>
+ *
+ * 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 <config.h>
+#include <string.h>
+#include <dpkg-priv.h>
+
+void
+rtrim_slash_slashdot(char *path)
+{
+	char *end;
+
+	if (!path || !*path)
+		return;
+
+	for (end = path + strlen(path) - 1; end - path >= 1; end--) {
+		if (*end == '/' || (*(end - 1) == '/' && *end == '.'))
+			*end = '\0';
+		else
+			break;
+	}
+}
+