summaryrefslogtreecommitdiffstats
path: root/gl/dirname.h
diff options
context:
space:
mode:
Diffstat (limited to 'gl/dirname.h')
-rw-r--r--gl/dirname.h55
1 files changed, 31 insertions, 24 deletions
diff --git a/gl/dirname.h b/gl/dirname.h
index 4ad03120..f98e83bd 100644
--- a/gl/dirname.h
+++ b/gl/dirname.h
@@ -1,46 +1,53 @@
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-2023 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 <stdlib.h>
23# include <stddef.h> 23# include "filename.h"
24# include "dosname.h" 24# include "basename-lgpl.h"
25 25
26# ifndef DIRECTORY_SEPARATOR 26# ifndef DIRECTORY_SEPARATOR
27# define DIRECTORY_SEPARATOR '/' 27# define DIRECTORY_SEPARATOR '/'
28# endif 28# endif
29 29
30# ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT 30#ifdef __cplusplus
31# define DOUBLE_SLASH_IS_DISTINCT_ROOT 0 31extern "C" {
32# endif 32#endif
33 33
34# if GNULIB_DIRNAME 34# if GNULIB_DIRNAME
35char *base_name (char const *file); 35char *base_name (char const *file)
36char *dir_name (char const *file); 36 _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
37 _GL_ATTRIBUTE_RETURNS_NONNULL;
38char *dir_name (char const *file)
39 _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
40 _GL_ATTRIBUTE_RETURNS_NONNULL;
37# endif 41# endif
38 42
39char *mdir_name (char const *file); 43char *mdir_name (char const *file)
40size_t base_len (char const *file) _GL_ATTRIBUTE_PURE; 44 _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE;
41size_t dir_len (char const *file) _GL_ATTRIBUTE_PURE; 45size_t dir_len (char const *file) _GL_ATTRIBUTE_PURE;
42char *last_component (char const *file) _GL_ATTRIBUTE_PURE;
43 46
44bool strip_trailing_slashes (char *file); 47bool strip_trailing_slashes (char *file);
45 48
49#ifdef __cplusplus
50} /* extern "C" */
51#endif
52
46#endif /* not DIRNAME_H_ */ 53#endif /* not DIRNAME_H_ */