path.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * Copyright (c) 2012-2014 Daniele Bartolini and individual contributors.
  3. * License: https://github.com/taylor001/crown/blob/master/LICENSE
  4. */
  5. #pragma once
  6. #include "platform.h"
  7. #include "dynamic_string.h"
  8. namespace crown
  9. {
  10. /// @defgroup Path Path
  11. /// Functions for operating on strings as file paths.
  12. ///
  13. /// @ingroup Path
  14. namespace path
  15. {
  16. /// Returns whether the @a path is absolute.
  17. bool is_absolute_path(const char* path);
  18. /// Returns whether the @a path is the root path.
  19. bool is_root_path(const char* path);
  20. /// Appends path @a p2 to @a p1 and fills @a path with the result.
  21. void join(const char* p1, const char* p2, DynamicString& path);
  22. /// Returns os-dependent path from os-indipendent @a path
  23. const char* normalize(const char* path);
  24. void pathname(const char* path, char* str, size_t len);
  25. void filename(const char* path, char* str, size_t len);
  26. void basename(const char* path, char* str, size_t len);
  27. void extension(const char* path, char* str, size_t len);
  28. void filename_without_extension(const char* path, char* str, size_t len);
  29. //bool segments(const char* path, Array<Str>& ret);
  30. void strip_trailing_separator(const char* path, char* ret, size_t len);
  31. } // namespace path
  32. } // namespace crown