Skip to content
This repository was archived by the owner on Oct 24, 2025. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions context.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ namespace Sass {
if (input_path == "") input_path = "stdin";
if (output_path == "") output_path = "stdout";

num_included_files = 0;
include_paths.push_back(cwd);
collect_include_paths(initializers.include_paths_c_str());
collect_include_paths(initializers.include_paths_array());
Expand Down Expand Up @@ -220,6 +221,7 @@ namespace Sass {
{
sources.push_back(contents);
included_files.push_back(abs_path);
num_included_files = num_included_files + 1;
queue.push_back(Sass_Queued(load_path, abs_path, contents));
emitter.add_source_index(sources.size() - 1);
include_links.push_back(resolve_relative_path(abs_path, source_map_file, cwd));
Expand Down Expand Up @@ -395,6 +397,11 @@ namespace Sass {
return includes;
}

int Context::get_num_included_files(size_t skip)
{
return num_included_files - skip;
}

string Context::get_cwd()
{
return Sass::File::get_cwd();
Expand Down
4 changes: 3 additions & 1 deletion context.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ namespace Sass {
vector<const char*> sources;
// absolute paths to includes
vector<string> included_files;
// number of included files
int num_included_files;
// relative links to includes
vector<string> include_links;
// vectors above have same size
Expand Down Expand Up @@ -118,7 +120,7 @@ namespace Sass {
char* generate_source_map();

vector<string> get_included_files(size_t skip = 0);

int get_num_included_files(size_t skip = 0);
private:
void collect_plugin_paths(const char* paths_str);
void collect_plugin_paths(const char** paths_array);
Expand Down
10 changes: 7 additions & 3 deletions sass_context.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ extern "C" {

// report imported files
char** included_files;

int num_included_files;
};

// struct for file compilation
Expand Down Expand Up @@ -472,8 +472,10 @@ extern "C" {
}

// copy the included files on to the context (dont forget to free)
if (root) copy_strings(cpp_ctx->get_included_files(skip), &c_ctx->included_files, skip);

if (root) {
copy_strings(cpp_ctx->get_included_files(skip), &c_ctx->included_files, skip);
c_ctx->num_included_files = cpp_ctx->get_num_included_files(skip);
}
// return parsed block
return root;

Expand Down Expand Up @@ -728,6 +730,7 @@ extern "C" {
ctx->source_map_file = 0;
ctx->source_map_root = 0;
ctx->included_files = 0;
ctx->num_included_files = 0;
// now clear the options
sass_clear_options(ctx);
}
Expand Down Expand Up @@ -787,6 +790,7 @@ extern "C" {
IMPLEMENT_SASS_CONTEXT_GETTER(const char*, output_string);
IMPLEMENT_SASS_CONTEXT_GETTER(const char*, source_map_string);
IMPLEMENT_SASS_CONTEXT_GETTER(char**, included_files);
IMPLEMENT_SASS_CONTEXT_GETTER(int, num_included_files);

// Take ownership of memory (value on context is set to 0)
IMPLEMENT_SASS_CONTEXT_TAKER(char*, error_json);
Expand Down
1 change: 1 addition & 0 deletions sass_context.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ ADDAPI size_t ADDCALL sass_context_get_error_line (struct Sass_Context* ctx);
ADDAPI size_t ADDCALL sass_context_get_error_column (struct Sass_Context* ctx);
ADDAPI const char* ADDCALL sass_context_get_source_map_string (struct Sass_Context* ctx);
ADDAPI char** ADDCALL sass_context_get_included_files (struct Sass_Context* ctx);
ADDAPI int ADDCALL sass_context_get_num_included_files (struct Sass_Context* ctx);

// Take ownership of memory (value on context is set to 0)
ADDAPI char* ADDCALL sass_context_take_error_json (struct Sass_Context* ctx);
Expand Down
4 changes: 2 additions & 2 deletions sass_interface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ extern "C" {
c_ctx->source_map_string = cpp_ctx.generate_source_map();
c_ctx->error_message = 0;
c_ctx->error_status = 0;

c_ctx->num_included_files = cpp_ctx.get_num_included_files(0);
copy_strings(cpp_ctx.get_included_files(1), &c_ctx->included_files, 1);
}
catch (Sass_Error& e) {
Expand Down Expand Up @@ -231,7 +231,7 @@ extern "C" {
c_ctx->source_map_string = cpp_ctx.generate_source_map();
c_ctx->error_message = 0;
c_ctx->error_status = 0;

c_ctx->num_included_files = cpp_ctx.get_num_included_files(0);
copy_strings(cpp_ctx.get_included_files(), &c_ctx->included_files);
}
catch (Sass_Error& e) {
Expand Down