Home | History | Annotate | Line # | Download | only in root
      1      1.1  mrg 
      2  1.1.1.2  mrg /* Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
      3  1.1.1.2  mrg  * written by Walter Bright
      4  1.1.1.2  mrg  * https://www.digitalmars.com
      5      1.1  mrg  * Distributed under the Boost Software License, Version 1.0.
      6  1.1.1.2  mrg  * https://www.boost.org/LICENSE_1_0.txt
      7      1.1  mrg  * https://github.com/dlang/dmd/blob/master/src/dmd/root/filename.h
      8      1.1  mrg  */
      9      1.1  mrg 
     10      1.1  mrg #pragma once
     11      1.1  mrg 
     12      1.1  mrg #include "array.h"
     13  1.1.1.2  mrg #include "dcompat.h"
     14      1.1  mrg 
     15      1.1  mrg typedef Array<const char *> Strings;
     16      1.1  mrg 
     17      1.1  mrg struct FileName
     18      1.1  mrg {
     19  1.1.1.2  mrg private:
     20  1.1.1.2  mrg     DString str;
     21  1.1.1.2  mrg public:
     22      1.1  mrg     static bool equals(const char *name1, const char *name2);
     23      1.1  mrg     static bool absolute(const char *name);
     24  1.1.1.2  mrg     static const char *toAbsolute(const char *name, const char *base = NULL);
     25      1.1  mrg     static const char *ext(const char *);
     26      1.1  mrg     const char *ext();
     27      1.1  mrg     static const char *removeExt(const char *str);
     28      1.1  mrg     static const char *name(const char *);
     29      1.1  mrg     const char *name();
     30      1.1  mrg     static const char *path(const char *);
     31      1.1  mrg 
     32      1.1  mrg     static const char *combine(const char *path, const char *name);
     33      1.1  mrg     static Strings *splitPath(const char *path);
     34      1.1  mrg     static const char *defaultExt(const char *name, const char *ext);
     35      1.1  mrg     static const char *forceExt(const char *name, const char *ext);
     36      1.1  mrg     static bool equalsExt(const char *name, const char *ext);
     37      1.1  mrg 
     38      1.1  mrg     bool equalsExt(const char *ext);
     39      1.1  mrg 
     40      1.1  mrg     static const char *searchPath(Strings *path, const char *name, bool cwd);
     41      1.1  mrg     static int exists(const char *name);
     42      1.1  mrg     static bool ensurePathExists(const char *path);
     43      1.1  mrg     static const char *canonicalName(const char *name);
     44      1.1  mrg 
     45      1.1  mrg     static void free(const char *str);
     46      1.1  mrg     const char *toChars() const;
     47      1.1  mrg };
     48