#ifndef SASS_FILE_H #define SASS_FILE_H #include #include namespace Sass { using namespace std; class Context; namespace File { // return the current directory // always with forward slashes string get_cwd(); // test if path exists and is a file bool file_exists(const string& file); // return if given path is absolute // works with *nix and windows paths bool is_absolute_path(const string& path); // return only the directory part of path string dir_name(const string& path); // return only the filename part of path string base_name(const string&); // do a locigal clean up of the path // no physical check on the filesystem string make_canonical_path (string path); // join two path segments cleanly together // but only if right side is not absolute yet string join_paths(string root, string name); // create an absolute path by resolving relative paths with cwd string make_absolute_path(const string& path, const string& cwd = "."); // create a path that is relative to the given base directory // path and base will first be resolved against cwd to make them absolute string resolve_relative_path(const string& path, const string& base, const string& cwd = "."); // try to find/resolve the filename string resolve_file(const string& file); // helper function to resolve a filename string find_file(const string& file, const vector paths); // inc paths can be directly passed from C code string find_file(const string& file, const char** paths); // try to load the given filename // returned memory must be freed // will auto convert .sass files char* read_file(const string& file); } } #endif