diff --git a/src/file.cpp b/src/file.cpp index 32d4a7c63..46973057a 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -323,7 +323,7 @@ namespace Sass { // (2) underscore + given // (3) underscore + given + extension // (4) given + extension - std::vector resolve_includes(const std::string& root, const std::string& file, const std::vector& exts) + std::vector resolve_includes(const std::string& root, const std::string& file, const std::vector& exts, const std::vector& d_exts) { std::string filename = join_paths(root, file); // split the filename @@ -350,6 +350,18 @@ namespace Sass { abs_path = join_paths(root, rel_path); if (file_exists(abs_path)) includes.push_back({{ rel_path, root }, abs_path }); } + // next test d_exts plus underscore + for(auto ext : d_exts) { + rel_path = join_paths(base, "_" + name + ext); + abs_path = join_paths(root, rel_path); + if (file_exists(abs_path)) includes.push_back({{ rel_path, root }, abs_path }); + } + // next test plain name with d_exts + for(auto ext : d_exts) { + rel_path = join_paths(base, name + ext); + abs_path = join_paths(root, rel_path); + if (file_exists(abs_path)) includes.push_back({{ rel_path, root }, abs_path }); + } // nothing found return includes; } diff --git a/src/file.hpp b/src/file.hpp index 279b9e9f6..759996fa8 100644 --- a/src/file.hpp +++ b/src/file.hpp @@ -121,10 +121,12 @@ namespace Sass { namespace File { - static std::vector defaultExtensions = { ".scss", ".sass", ".css" }; + static std::vector defaultExtensions = { ".scss", ".sass" }; + static std::vector deprecatedExtensions = { ".css" }; std::vector resolve_includes(const std::string& root, const std::string& file, - const std::vector& exts = defaultExtensions); + const std::vector& exts = defaultExtensions, + const std::vector& d_exts = deprecatedExtensions); }