summaryrefslogtreecommitdiffstats
path: root/gl/dirname.h
diff options
context:
space:
mode:
Diffstat (limited to 'gl/dirname.h')
-rw-r--r--gl/dirname.h54
1 files changed, 31 insertions, 23 deletions
diff --git a/gl/dirname.h b/gl/dirname.h
index 4ad0312..25abc7b 100644
--- a/gl/dirname.h
+++ b/gl/dirname.h
@@ -1,46 +1,54 @@
1/* Take file names apart into directory and base names. 1/* Take file names apart into directory and base names.
2 2
3 Copyright (C) 1998, 2001, 2003-2006, 2009-2013 Free Software Foundation, 3 Copyright (C) 1998, 2001, 2003-2006, 2009-2021 Free Software Foundation,
4 Inc. 4 Inc.
5 5
6 This program is free software: you can redistribute it and/or modify 6 This file is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU Lesser General Public License as
8 the Free Software Foundation; either version 3 of the License, or 8 published by the Free Software Foundation; either version 2.1 of the
9 (at your option) any later version. 9 License, or (at your option) any later version.
10 10
11 This program is distributed in the hope that it will be useful, 11 This file is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details. 14 GNU Lesser General Public License for more details.
15 15
16 You should have received a copy of the GNU General Public License 16 You should have received a copy of the GNU Lesser General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 17 along with this program. If not, see <https://www.gnu.org/licenses/>. */
18 18
19#ifndef DIRNAME_H_ 19#ifndef DIRNAME_H_
20# define DIRNAME_H_ 1 20# define DIRNAME_H_ 1
21 21
22# include <stdbool.h> 22# include <stdbool.h>
23# include <stddef.h> 23# include <stdlib.h>
24# include "dosname.h" 24# include "filename.h"
25# include "basename-lgpl.h"
25 26
26# ifndef DIRECTORY_SEPARATOR 27# ifndef DIRECTORY_SEPARATOR
27# define DIRECTORY_SEPARATOR '/' 28# define DIRECTORY_SEPARATOR '/'
28# endif 29# endif
29 30
30# ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT 31#ifdef __cplusplus
31# define DOUBLE_SLASH_IS_DISTINCT_ROOT 0 32extern "C" {
32# endif 33#endif
33 34
34# if GNULIB_DIRNAME 35# if GNULIB_DIRNAME
35char *base_name (char const *file); 36char *base_name (char const *file)
36char *dir_name (char const *file); 37 _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
38 _GL_ATTRIBUTE_RETURNS_NONNULL;
39char *dir_name (char const *file)
40 _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
41 _GL_ATTRIBUTE_RETURNS_NONNULL;
37# endif 42# endif
38 43
39char *mdir_name (char const *file); 44char *mdir_name (char const *file)
40size_t base_len (char const *file) _GL_ATTRIBUTE_PURE; 45 _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE;
41size_t dir_len (char const *file) _GL_ATTRIBUTE_PURE; 46size_t dir_len (char const *file) _GL_ATTRIBUTE_PURE;
42char *last_component (char const *file) _GL_ATTRIBUTE_PURE;
43 47
44bool strip_trailing_slashes (char *file); 48bool strip_trailing_slashes (char *file);
45 49
50#ifdef __cplusplus
51} /* extern "C" */
52#endif
53
46#endif /* not DIRNAME_H_ */ 54#endif /* not DIRNAME_H_ */