summaryrefslogtreecommitdiffstats
path: root/lib/dirname.h
diff options
context:
space:
mode:
authorClaudio Fontana <sick_soul@users.sourceforge.net>2005-12-27 04:24:57 +0000
committerClaudio Fontana <sick_soul@users.sourceforge.net>2005-12-27 04:24:57 +0000
commit50916693c92ce904c5a57e1ab6a5a6982d2d67df (patch)
tree998f3226f26a9ee835cd5a8ea1d4e5f87070449c /lib/dirname.h
parentf25997f7039e40474694aa53031d20f6209ba3d8 (diff)
downloadidutils-50916693c92ce904c5a57e1ab6a5a6982d2d67df.tar.gz
idutils-50916693c92ce904c5a57e1ab6a5a6982d2d67df.tar.bz2
idutils-50916693c92ce904c5a57e1ab6a5a6982d2d67df.zip
* started to address portability problems in the id-utils-4.0 release
Diffstat (limited to 'lib/dirname.h')
-rw-r--r--lib/dirname.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/dirname.h b/lib/dirname.h
new file mode 100644
index 0000000..1688ae8
--- /dev/null
+++ b/lib/dirname.h
@@ -0,0 +1,47 @@
+/* Take file names apart into directory and base names.
+
+ Copyright (C) 1998, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+ This program 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 program 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 this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef DIRNAME_H_
+# define DIRNAME_H_ 1
+
+# include <stdbool.h>
+# include <stddef.h>
+
+# ifndef DIRECTORY_SEPARATOR
+# define DIRECTORY_SEPARATOR '/'
+# endif
+
+# ifndef ISSLASH
+# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
+# endif
+
+# ifndef FILE_SYSTEM_PREFIX_LEN
+# define FILE_SYSTEM_PREFIX_LEN(File_name) 0
+# endif
+
+# define IS_ABSOLUTE_FILE_NAME(F) ISSLASH ((F)[FILE_SYSTEM_PREFIX_LEN (F)])
+# define IS_RELATIVE_FILE_NAME(F) (! IS_ABSOLUTE_FILE_NAME (F))
+
+char *base_name (char const *file);
+char *dir_name (char const *file);
+size_t base_len (char const *file);
+size_t dir_len (char const *file);
+
+bool strip_trailing_slashes (char *file);
+
+#endif /* not DIRNAME_H_ */