145
|
1
|
|
2 /* Copyright (C) 1999-2019 by The D Language Foundation, All Rights Reserved
|
|
3 * http://www.digitalmars.com
|
|
4 * Distributed under the Boost Software License, Version 1.0.
|
|
5 * http://www.boost.org/LICENSE_1_0.txt
|
|
6 * https://github.com/dlang/dmd/blob/master/src/dmd/root/filename.h
|
|
7 */
|
|
8
|
|
9 #pragma once
|
|
10
|
|
11 #include "array.h"
|
|
12
|
|
13 class RootObject;
|
|
14
|
|
15 template <typename TYPE> struct Array;
|
|
16 typedef Array<const char *> Strings;
|
|
17
|
|
18 struct FileName
|
|
19 {
|
|
20 const char *str;
|
|
21 FileName(const char *str);
|
|
22 bool equals(RootObject *obj);
|
|
23 static bool equals(const char *name1, const char *name2);
|
|
24 int compare(RootObject *obj);
|
|
25 static int compare(const char *name1, const char *name2);
|
|
26 static bool absolute(const char *name);
|
|
27 static const char *ext(const char *);
|
|
28 const char *ext();
|
|
29 static const char *removeExt(const char *str);
|
|
30 static const char *name(const char *);
|
|
31 const char *name();
|
|
32 static const char *path(const char *);
|
|
33 static const char *replaceName(const char *path, const char *name);
|
|
34
|
|
35 static const char *combine(const char *path, const char *name);
|
|
36 static Strings *splitPath(const char *path);
|
|
37 static const char *defaultExt(const char *name, const char *ext);
|
|
38 static const char *forceExt(const char *name, const char *ext);
|
|
39 static bool equalsExt(const char *name, const char *ext);
|
|
40
|
|
41 bool equalsExt(const char *ext);
|
|
42
|
|
43 static const char *searchPath(Strings *path, const char *name, bool cwd);
|
|
44 static const char *safeSearchPath(Strings *path, const char *name);
|
|
45 static int exists(const char *name);
|
|
46 static bool ensurePathExists(const char *path);
|
|
47 static const char *canonicalName(const char *name);
|
|
48
|
|
49 static void free(const char *str);
|
|
50 const char *toChars() const;
|
|
51 };
|