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