]> err.no Git - dpkg/commitdiff
libdpkg: Add new rtrim_slash_slashdot private function
authorGuillem Jover <guillem@debian.org>
Mon, 12 May 2008 03:15:24 +0000 (06:15 +0300)
committerGuillem Jover <guillem@debian.org>
Mon, 12 May 2008 15:38:42 +0000 (18:38 +0300)
ChangeLog
lib/Makefile.am
lib/dpkg-priv.h [new file with mode: 0644]
lib/path.c [new file with mode: 0644]

index 5f3fdd561db1c359838a221ab78f2257dc042669..4389f4fd8952e03945783597c055d9ae36387ba8 100644 (file)
--- a/ChangeLog
+++ b/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()
index e114041480212a6fcd252d2d1379dd602e1f4552..b9b9d1c6ed5f4cab2e05c2ba4b63d6de9b15ed66 100644 (file)
@@ -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 \
diff --git a/lib/dpkg-priv.h b/lib/dpkg-priv.h
new file mode 100644 (file)
index 0000000..26e1d84
--- /dev/null
@@ -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 */
+
diff --git a/lib/path.c b/lib/path.c
new file mode 100644 (file)
index 0000000..e9b47dd
--- /dev/null
@@ -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;
+       }
+}
+