From 9f148a4e9b2ea7fa45431f640051e66801161f25 Mon Sep 17 00:00:00 2001 From: Guillem Jover Date: Mon, 12 May 2008 06:15:24 +0300 Subject: [PATCH] libdpkg: Add new rtrim_slash_slashdot private function --- ChangeLog | 6 ++++++ lib/Makefile.am | 2 ++ lib/dpkg-priv.h | 38 ++++++++++++++++++++++++++++++++++++++ lib/path.c | 41 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 87 insertions(+) create mode 100644 lib/dpkg-priv.h create mode 100644 lib/path.c diff --git a/ChangeLog b/ChangeLog index 5f3fdd56..4389f4fd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-05-12 Guillem Jover + + * 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 * lib/showpkg.c (show1package): Use %zd instead of %d in sprintf() diff --git a/lib/Makefile.am b/lib/Makefile.am index e1140414..b9b9d1c6 100644 --- a/lib/Makefile.am +++ b/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 \ diff --git a/lib/dpkg-priv.h b/lib/dpkg-priv.h new file mode 100644 index 00000000..26e1d848 --- /dev/null +++ b/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 + * + * 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 index 00000000..e9b47dd5 --- /dev/null +++ b/lib/path.c @@ -0,0 +1,41 @@ +/* + * libdpkg - Debian packaging suite library routines + * path.c - path handling functions + * + * Copyright (C) 2008 Guillem Jover + * + * 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 +#include +#include + +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; + } +} + -- 2.39.5