Skip to content

Commit c012fcb

Browse files
committed
Updates documentation for callee stack queries
1 parent 04d96da commit c012fcb

File tree

4 files changed

+48
-27
lines changed

4 files changed

+48
-27
lines changed

docs/api-context.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,15 @@ size_t sass_context_get_error_column (struct Sass_Context* ctx);
207207
const char* sass_context_get_source_map_string (struct Sass_Context* ctx);
208208
char** sass_context_get_included_files (struct Sass_Context* ctx);
209209

210+
// Getters for Sass_Compiler options (query import stack)
211+
size_t sass_compiler_get_import_stack_size(struct Sass_Compiler* compiler);
212+
Sass_Import_Entry sass_compiler_get_last_import(struct Sass_Compiler* compiler);
213+
Sass_Import_Entry sass_compiler_get_import_entry(struct Sass_Compiler* compiler, size_t idx);
214+
// Getters for Sass_Compiler options (query function stack)
215+
size_t sass_compiler_get_callee_stack_size(struct Sass_Compiler* compiler);
216+
Sass_Callee_Entry sass_compiler_get_last_callee(struct Sass_Compiler* compiler);
217+
Sass_Callee_Entry sass_compiler_get_callee_entry(struct Sass_Compiler* compiler, size_t idx);
218+
210219
// Take ownership of memory (value on context is set to 0)
211220
char* sass_context_take_error_json (struct Sass_Context* ctx);
212221
char* sass_context_take_error_text (struct Sass_Context* ctx);

docs/api-function-example.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ union Sass_Value* call_fn_foo(const union Sass_Value* s_args, Sass_Function_Entr
1111
struct Sass_Context* ctx = sass_compiler_get_context(comp);
1212
struct Sass_Options* opts = sass_compiler_get_options(comp);
1313
// get information about previous importer entry from the stack
14-
struct Sass_Import* import = sass_compiler_get_last_import(comp);
14+
Sass_Import_Entry import = sass_compiler_get_last_import(comp);
1515
const char* prev_abs_path = sass_import_get_abs_path(import);
1616
const char* prev_imp_path = sass_import_get_imp_path(import);
1717
// get the cookie from function descriptor

docs/api-function.md

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,29 @@ typedef union Sass_Value* (*Sass_Function_Fn)
3030
(const union Sass_Value*, Sass_Function_Entry cb, struct Sass_Compiler* compiler);
3131

3232
// Creators for sass function list and function descriptors
33-
ADDAPI Sass_Function_List ADDCALL sass_make_function_list (size_t length);
34-
ADDAPI Sass_Function_Entry ADDCALL sass_make_function (const char* signature, Sass_Function_Fn cb, void* cookie);
33+
Sass_Function_List sass_make_function_list (size_t length);
34+
Sass_Function_Entry sass_make_function (const char* signature, Sass_Function_Fn cb, void* cookie);
3535

3636
// Setters and getters for callbacks on function lists
37-
ADDAPI Sass_Function_Entry ADDCALL sass_function_get_list_entry(Sass_Function_List list, size_t pos);
38-
ADDAPI void ADDCALL sass_function_set_list_entry(Sass_Function_List list, size_t pos, Sass_Function_Entry cb);
37+
Sass_Function_Entry sass_function_get_list_entry(Sass_Function_List list, size_t pos);
38+
void sass_function_set_list_entry(Sass_Function_List list, size_t pos, Sass_Function_Entry cb);
39+
40+
// Setters to insert an entry into the import list (you may also use [] access directly)
41+
// Since we are dealing with pointers they should have a guaranteed and fixed size
42+
void sass_import_set_list_entry (Sass_Import_List list, size_t idx, Sass_Import_Entry entry);
43+
Sass_Import_Entry sass_import_get_list_entry (Sass_Import_List list, size_t idx);
3944

4045
// Getters for custom function descriptors
41-
ADDAPI const char* ADDCALL sass_function_get_signature (Sass_Function_Entry cb);
42-
ADDAPI Sass_Function_Fn ADDCALL sass_function_get_function (Sass_Function_Entry cb);
43-
ADDAPI void* ADDCALL sass_function_get_cookie (Sass_Function_Entry cb);
46+
const char* sass_function_get_signature (Sass_Function_Entry cb);
47+
Sass_Function_Fn sass_function_get_function (Sass_Function_Entry cb);
48+
void* sass_function_get_cookie (Sass_Function_Entry cb);
49+
50+
// Getters for callee entry
51+
const char* sass_callee_get_name (Sass_Callee_Entry);
52+
const char* sass_callee_get_path (Sass_Callee_Entry);
53+
size_t sass_callee_get_line (Sass_Callee_Entry);
54+
size_t sass_callee_get_column (Sass_Callee_Entry);
55+
enum Sass_Callee_Type sass_callee_get_type (Sass_Callee_Entry);
4456
```
4557
4658
### More links

docs/api-importer.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ By using custom importers, Sass stylesheets can be implemented in any possible w
55
You actually have to return a list of imports, since some importers may want to import multiple files from one import statement (ie. a glob/star importer). The memory you pass with source and srcmap is taken over by LibSass and freed automatically when the import is done. You are also allowed to return `0` instead of a list, which will tell LibSass to handle the import by itself (as if no custom importer was in use).
66

77
```C
8-
struct Sass_Import** rv = sass_make_import_list(1);
8+
Sass_Import_Entry* rv = sass_make_import_list(1);
99
rv[0] = sass_make_import(rel, abs, source, srcmap);
1010
```
1111

@@ -31,7 +31,7 @@ struct Sass_C_Import_Descriptor;
3131
// Typedef defining the custom importer callback
3232
typedef struct Sass_C_Import_Descriptor (*Sass_C_Import_Callback);
3333
// Typedef defining the importer c function prototype
34-
typedef struct Sass_Import** (*Sass_C_Import_Fn) (const char* url, const char* prev, void* cookie);
34+
typedef Sass_Import_Entry* (*Sass_C_Import_Fn) (const char* url, const char* prev, void* cookie);
3535

3636
// Creators for custom importer callback (with some additional pointer)
3737
// The pointer is mostly used to store the callback into the actual function
@@ -45,38 +45,38 @@ void* sass_import_get_cookie (Sass_C_Import_Callback fn);
4545
void sass_delete_importer (Sass_C_Import_Callback fn);
4646

4747
// Creator for sass custom importer return argument list
48-
struct Sass_Import** sass_make_import_list (size_t length);
48+
Sass_Import_Entry* sass_make_import_list (size_t length);
4949
// Creator for a single import entry returned by the custom importer inside the list
50-
struct Sass_Import* sass_make_import_entry (const char* path, char* source, char* srcmap);
51-
struct Sass_Import* sass_make_import (const char* rel, const char* abs, char* source, char* srcmap);
50+
Sass_Import_Entry sass_make_import_entry (const char* path, char* source, char* srcmap);
51+
Sass_Import_Entry sass_make_import (const char* rel, const char* abs, char* source, char* srcmap);
5252

5353
// set error message to abort import and to print out a message (path from existing object is used in output)
54-
struct Sass_Import* sass_import_set_error(struct Sass_Import* import, const char* message, size_t line, size_t col);
54+
Sass_Import_Entry sass_import_set_error(Sass_Import_Entry import, const char* message, size_t line, size_t col);
5555

5656
// Setters to insert an entry into the import list (you may also use [] access directly)
5757
// Since we are dealing with pointers they should have a guaranteed and fixed size
58-
void sass_import_set_list_entry (struct Sass_Import** list, size_t idx, struct Sass_Import* entry);
59-
struct Sass_Import* sass_import_get_list_entry (struct Sass_Import** list, size_t idx);
58+
void sass_import_set_list_entry (Sass_Import_Entry* list, size_t idx, Sass_Import_Entry entry);
59+
Sass_Import_Entry sass_import_get_list_entry (Sass_Import_Entry* list, size_t idx);
6060

6161
// Getters for import entry
62-
const char* sass_import_get_rel_path (struct Sass_Import*);
63-
const char* sass_import_get_abs_path (struct Sass_Import*);
64-
const char* sass_import_get_source (struct Sass_Import*);
65-
const char* sass_import_get_srcmap (struct Sass_Import*);
62+
const char* sass_import_get_imp_path (Sass_Import_Entry);
63+
const char* sass_import_get_abs_path (Sass_Import_Entry);
64+
const char* sass_import_get_source (Sass_Import_Entry);
65+
const char* sass_import_get_srcmap (Sass_Import_Entry);
6666
// Explicit functions to take ownership of these items
6767
// The property on our struct will be reset to NULL
68-
char* sass_import_take_source (struct Sass_Import*);
69-
char* sass_import_take_srcmap (struct Sass_Import*);
68+
char* sass_import_take_source (Sass_Import_Entry);
69+
char* sass_import_take_srcmap (Sass_Import_Entry);
7070

7171
// Getters for import error entries
72-
size_t sass_import_get_error_line (struct Sass_Import*);
73-
size_t sass_import_get_error_column (struct Sass_Import*);
74-
const char* sass_import_get_error_message (struct Sass_Import*);
72+
size_t sass_import_get_error_line (Sass_Import_Entry);
73+
size_t sass_import_get_error_column (Sass_Import_Entry);
74+
const char* sass_import_get_error_message (Sass_Import_Entry);
7575

7676
// Deallocator for associated memory (incl. entries)
77-
void sass_delete_import_list (struct Sass_Import**);
77+
void sass_delete_import_list (Sass_Import_Entry*);
7878
// Just in case we have some stray import structs
79-
void sass_delete_import (struct Sass_Import*);
79+
void sass_delete_import (Sass_Import_Entry);
8080
```
8181
8282
### More links

0 commit comments

Comments
 (0)