1cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*  Take file names apart into directory and base names.
2cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    Copyright (C) 1998, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
4cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
5cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    This program is free software; you can redistribute it and/or modify
6cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    it under the terms of the GNU General Public License as published by
7cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    the Free Software Foundation; either version 2, or (at your option)
8cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    any later version.
9cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
10cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    This program is distributed in the hope that it will be useful,
11cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    but WITHOUT ANY WARRANTY; without even the implied warranty of
12cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    GNU General Public License for more details.
14cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
15cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    You should have received a copy of the GNU General Public License
16cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    along with this program; if not, write to the Free Software Foundation,
17cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
18cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
19cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef DIRNAME_H_
20cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define DIRNAME_H_ 1
21cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
22cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# include <stdbool.h>
23cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# include <stddef.h>
24cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
25cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ifndef DIRECTORY_SEPARATOR
26cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  define DIRECTORY_SEPARATOR '/'
27cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# endif
28cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
29cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ifndef ISSLASH
30cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
31cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# endif
32cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
33cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ifndef FILE_SYSTEM_PREFIX_LEN
34cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#  define FILE_SYSTEM_PREFIX_LEN(File_name) 0
35cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# endif
36cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
37cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define IS_ABSOLUTE_FILE_NAME(F) ISSLASH ((F)[FILE_SYSTEM_PREFIX_LEN (F)])
38cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# define IS_RELATIVE_FILE_NAME(F) (! IS_ABSOLUTE_FILE_NAME (F))
39cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
40cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectchar *base_name (char const *file);
41cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectchar *dir_name (char const *file);
42cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectsize_t base_len (char const *file);
43cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectsize_t dir_len (char const *file);
44cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
45cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectbool strip_trailing_slashes (char *file);
46cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
47cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif /* not DIRNAME_H_ */
48