sassc4 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.gitmodules +3 -0
- data/.travis.yml +16 -0
- data/CHANGELOG.md +97 -0
- data/CODE_OF_CONDUCT.md +10 -0
- data/Gemfile +2 -0
- data/LICENSE.txt +22 -0
- data/README.md +80 -0
- data/Rakefile +51 -0
- data/ext/depend +4 -0
- data/ext/extconf.rb +92 -0
- data/ext/libsass/VERSION +1 -0
- data/ext/libsass/contrib/plugin.cpp +60 -0
- data/ext/libsass/include/sass/base.h +97 -0
- data/ext/libsass/include/sass/context.h +174 -0
- data/ext/libsass/include/sass/functions.h +139 -0
- data/ext/libsass/include/sass/values.h +145 -0
- data/ext/libsass/include/sass/version.h +12 -0
- data/ext/libsass/include/sass.h +15 -0
- data/ext/libsass/include/sass2scss.h +120 -0
- data/ext/libsass/src/MurmurHash2.hpp +91 -0
- data/ext/libsass/src/ast.cpp +953 -0
- data/ext/libsass/src/ast.hpp +1064 -0
- data/ext/libsass/src/ast2c.cpp +80 -0
- data/ext/libsass/src/ast2c.hpp +39 -0
- data/ext/libsass/src/ast_def_macros.hpp +140 -0
- data/ext/libsass/src/ast_fwd_decl.cpp +31 -0
- data/ext/libsass/src/ast_fwd_decl.hpp +274 -0
- data/ext/libsass/src/ast_helpers.hpp +316 -0
- data/ext/libsass/src/ast_sel_cmp.cpp +396 -0
- data/ext/libsass/src/ast_sel_super.cpp +539 -0
- data/ext/libsass/src/ast_sel_unify.cpp +275 -0
- data/ext/libsass/src/ast_sel_weave.cpp +616 -0
- data/ext/libsass/src/ast_selectors.cpp +1070 -0
- data/ext/libsass/src/ast_selectors.hpp +523 -0
- data/ext/libsass/src/ast_supports.cpp +114 -0
- data/ext/libsass/src/ast_supports.hpp +121 -0
- data/ext/libsass/src/ast_values.cpp +1154 -0
- data/ext/libsass/src/ast_values.hpp +498 -0
- data/ext/libsass/src/b64/cencode.h +32 -0
- data/ext/libsass/src/b64/encode.h +79 -0
- data/ext/libsass/src/backtrace.cpp +50 -0
- data/ext/libsass/src/backtrace.hpp +29 -0
- data/ext/libsass/src/base64vlq.cpp +47 -0
- data/ext/libsass/src/base64vlq.hpp +30 -0
- data/ext/libsass/src/bind.cpp +312 -0
- data/ext/libsass/src/bind.hpp +15 -0
- data/ext/libsass/src/c2ast.cpp +64 -0
- data/ext/libsass/src/c2ast.hpp +14 -0
- data/ext/libsass/src/c99func.c +54 -0
- data/ext/libsass/src/cencode.c +106 -0
- data/ext/libsass/src/check_nesting.cpp +393 -0
- data/ext/libsass/src/check_nesting.hpp +70 -0
- data/ext/libsass/src/color_maps.cpp +652 -0
- data/ext/libsass/src/color_maps.hpp +323 -0
- data/ext/libsass/src/color_spaces.cpp +241 -0
- data/ext/libsass/src/color_spaces.hpp +227 -0
- data/ext/libsass/src/constants.cpp +199 -0
- data/ext/libsass/src/constants.hpp +200 -0
- data/ext/libsass/src/context.cpp +870 -0
- data/ext/libsass/src/context.hpp +140 -0
- data/ext/libsass/src/cssize.cpp +521 -0
- data/ext/libsass/src/cssize.hpp +71 -0
- data/ext/libsass/src/dart_helpers.hpp +199 -0
- data/ext/libsass/src/debug.hpp +43 -0
- data/ext/libsass/src/debugger.hpp +964 -0
- data/ext/libsass/src/emitter.cpp +297 -0
- data/ext/libsass/src/emitter.hpp +101 -0
- data/ext/libsass/src/environment.cpp +260 -0
- data/ext/libsass/src/environment.hpp +124 -0
- data/ext/libsass/src/error_handling.cpp +239 -0
- data/ext/libsass/src/error_handling.hpp +248 -0
- data/ext/libsass/src/eval.cpp +1543 -0
- data/ext/libsass/src/eval.hpp +110 -0
- data/ext/libsass/src/eval_selectors.cpp +75 -0
- data/ext/libsass/src/expand.cpp +875 -0
- data/ext/libsass/src/expand.hpp +98 -0
- data/ext/libsass/src/extender.cpp +1226 -0
- data/ext/libsass/src/extender.hpp +399 -0
- data/ext/libsass/src/extension.cpp +43 -0
- data/ext/libsass/src/extension.hpp +89 -0
- data/ext/libsass/src/file.cpp +531 -0
- data/ext/libsass/src/file.hpp +124 -0
- data/ext/libsass/src/fn_colors.cpp +836 -0
- data/ext/libsass/src/fn_colors.hpp +99 -0
- data/ext/libsass/src/fn_lists.cpp +285 -0
- data/ext/libsass/src/fn_lists.hpp +34 -0
- data/ext/libsass/src/fn_maps.cpp +94 -0
- data/ext/libsass/src/fn_maps.hpp +30 -0
- data/ext/libsass/src/fn_miscs.cpp +248 -0
- data/ext/libsass/src/fn_miscs.hpp +40 -0
- data/ext/libsass/src/fn_numbers.cpp +246 -0
- data/ext/libsass/src/fn_numbers.hpp +45 -0
- data/ext/libsass/src/fn_selectors.cpp +205 -0
- data/ext/libsass/src/fn_selectors.hpp +35 -0
- data/ext/libsass/src/fn_strings.cpp +268 -0
- data/ext/libsass/src/fn_strings.hpp +34 -0
- data/ext/libsass/src/fn_utils.cpp +159 -0
- data/ext/libsass/src/fn_utils.hpp +62 -0
- data/ext/libsass/src/inspect.cpp +1126 -0
- data/ext/libsass/src/inspect.hpp +101 -0
- data/ext/libsass/src/json.cpp +1436 -0
- data/ext/libsass/src/json.hpp +117 -0
- data/ext/libsass/src/kwd_arg_macros.hpp +28 -0
- data/ext/libsass/src/lexer.cpp +122 -0
- data/ext/libsass/src/lexer.hpp +304 -0
- data/ext/libsass/src/listize.cpp +70 -0
- data/ext/libsass/src/listize.hpp +37 -0
- data/ext/libsass/src/mapping.hpp +19 -0
- data/ext/libsass/src/memory/allocator.cpp +48 -0
- data/ext/libsass/src/memory/allocator.hpp +138 -0
- data/ext/libsass/src/memory/config.hpp +20 -0
- data/ext/libsass/src/memory/memory_pool.hpp +186 -0
- data/ext/libsass/src/memory/shared_ptr.cpp +33 -0
- data/ext/libsass/src/memory/shared_ptr.hpp +332 -0
- data/ext/libsass/src/memory.hpp +12 -0
- data/ext/libsass/src/operation.hpp +223 -0
- data/ext/libsass/src/operators.cpp +267 -0
- data/ext/libsass/src/operators.hpp +30 -0
- data/ext/libsass/src/ordered_map.hpp +112 -0
- data/ext/libsass/src/output.cpp +320 -0
- data/ext/libsass/src/output.hpp +47 -0
- data/ext/libsass/src/parser.cpp +3059 -0
- data/ext/libsass/src/parser.hpp +395 -0
- data/ext/libsass/src/parser_selectors.cpp +189 -0
- data/ext/libsass/src/permutate.hpp +164 -0
- data/ext/libsass/src/plugins.cpp +188 -0
- data/ext/libsass/src/plugins.hpp +57 -0
- data/ext/libsass/src/position.cpp +163 -0
- data/ext/libsass/src/position.hpp +147 -0
- data/ext/libsass/src/prelexer.cpp +1780 -0
- data/ext/libsass/src/prelexer.hpp +484 -0
- data/ext/libsass/src/remove_placeholders.cpp +86 -0
- data/ext/libsass/src/remove_placeholders.hpp +37 -0
- data/ext/libsass/src/sass.cpp +156 -0
- data/ext/libsass/src/sass.hpp +147 -0
- data/ext/libsass/src/sass2scss.cpp +895 -0
- data/ext/libsass/src/sass_context.cpp +742 -0
- data/ext/libsass/src/sass_context.hpp +129 -0
- data/ext/libsass/src/sass_functions.cpp +210 -0
- data/ext/libsass/src/sass_functions.hpp +50 -0
- data/ext/libsass/src/sass_values.cpp +362 -0
- data/ext/libsass/src/sass_values.hpp +82 -0
- data/ext/libsass/src/settings.hpp +19 -0
- data/ext/libsass/src/source.cpp +69 -0
- data/ext/libsass/src/source.hpp +95 -0
- data/ext/libsass/src/source_data.hpp +32 -0
- data/ext/libsass/src/source_map.cpp +202 -0
- data/ext/libsass/src/source_map.hpp +65 -0
- data/ext/libsass/src/stylesheet.cpp +22 -0
- data/ext/libsass/src/stylesheet.hpp +57 -0
- data/ext/libsass/src/to_value.cpp +114 -0
- data/ext/libsass/src/to_value.hpp +46 -0
- data/ext/libsass/src/units.cpp +507 -0
- data/ext/libsass/src/units.hpp +110 -0
- data/ext/libsass/src/utf8/checked.h +336 -0
- data/ext/libsass/src/utf8/core.h +332 -0
- data/ext/libsass/src/utf8/unchecked.h +235 -0
- data/ext/libsass/src/utf8.h +34 -0
- data/ext/libsass/src/utf8_string.cpp +104 -0
- data/ext/libsass/src/utf8_string.hpp +38 -0
- data/ext/libsass/src/util.cpp +723 -0
- data/ext/libsass/src/util.hpp +105 -0
- data/ext/libsass/src/util_string.cpp +125 -0
- data/ext/libsass/src/util_string.hpp +73 -0
- data/ext/libsass/src/values.cpp +140 -0
- data/ext/libsass/src/values.hpp +12 -0
- data/lib/sassc/dependency.rb +17 -0
- data/lib/sassc/engine.rb +141 -0
- data/lib/sassc/error.rb +37 -0
- data/lib/sassc/functions_handler.rb +73 -0
- data/lib/sassc/import_handler.rb +50 -0
- data/lib/sassc/importer.rb +31 -0
- data/lib/sassc/native/native_context_api.rb +147 -0
- data/lib/sassc/native/native_functions_api.rb +159 -0
- data/lib/sassc/native/sass2scss_api.rb +10 -0
- data/lib/sassc/native/sass_input_style.rb +13 -0
- data/lib/sassc/native/sass_output_style.rb +12 -0
- data/lib/sassc/native/sass_value.rb +97 -0
- data/lib/sassc/native/string_list.rb +10 -0
- data/lib/sassc/native.rb +64 -0
- data/lib/sassc/sass_2_scss.rb +9 -0
- data/lib/sassc/script/functions.rb +8 -0
- data/lib/sassc/script/value/bool.rb +32 -0
- data/lib/sassc/script/value/color.rb +95 -0
- data/lib/sassc/script/value/list.rb +136 -0
- data/lib/sassc/script/value/map.rb +69 -0
- data/lib/sassc/script/value/number.rb +389 -0
- data/lib/sassc/script/value/string.rb +96 -0
- data/lib/sassc/script/value.rb +137 -0
- data/lib/sassc/script/value_conversion/base.rb +13 -0
- data/lib/sassc/script/value_conversion/bool.rb +13 -0
- data/lib/sassc/script/value_conversion/color.rb +18 -0
- data/lib/sassc/script/value_conversion/list.rb +25 -0
- data/lib/sassc/script/value_conversion/map.rb +21 -0
- data/lib/sassc/script/value_conversion/number.rb +13 -0
- data/lib/sassc/script/value_conversion/string.rb +17 -0
- data/lib/sassc/script/value_conversion.rb +69 -0
- data/lib/sassc/script.rb +17 -0
- data/lib/sassc/util/normalized_map.rb +117 -0
- data/lib/sassc/util.rb +231 -0
- data/lib/sassc/version.rb +5 -0
- data/lib/sassc.rb +57 -0
- data/sassc.gemspec +69 -0
- data/test/css_color_level4_test.rb +168 -0
- data/test/custom_importer_test.rb +127 -0
- data/test/engine_test.rb +314 -0
- data/test/error_test.rb +29 -0
- data/test/fixtures/paths.scss +10 -0
- data/test/functions_test.rb +340 -0
- data/test/native_test.rb +213 -0
- data/test/output_style_test.rb +107 -0
- data/test/sass_2_scss_test.rb +14 -0
- data/test/test_helper.rb +45 -0
- metadata +396 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
// sass.hpp must go before all system headers to get the
|
|
2
|
+
// __EXTENSIONS__ fix on Solaris.
|
|
3
|
+
#include "sass.hpp"
|
|
4
|
+
|
|
5
|
+
#include <cstdlib>
|
|
6
|
+
#include <cstring>
|
|
7
|
+
#include <vector>
|
|
8
|
+
#include <sstream>
|
|
9
|
+
|
|
10
|
+
#include "sass.h"
|
|
11
|
+
#include "file.hpp"
|
|
12
|
+
#include "util.hpp"
|
|
13
|
+
#include "context.hpp"
|
|
14
|
+
#include "sass_context.hpp"
|
|
15
|
+
#include "sass_functions.hpp"
|
|
16
|
+
|
|
17
|
+
namespace Sass {
|
|
18
|
+
|
|
19
|
+
// helper to convert string list to vector
|
|
20
|
+
sass::vector<sass::string> list2vec(struct string_list* cur)
|
|
21
|
+
{
|
|
22
|
+
sass::vector<sass::string> list;
|
|
23
|
+
while (cur) {
|
|
24
|
+
list.push_back(cur->string);
|
|
25
|
+
cur = cur->next;
|
|
26
|
+
}
|
|
27
|
+
return list;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
extern "C" {
|
|
33
|
+
using namespace Sass;
|
|
34
|
+
|
|
35
|
+
// Allocate libsass heap memory
|
|
36
|
+
// Don't forget string termination!
|
|
37
|
+
void* ADDCALL sass_alloc_memory(size_t size)
|
|
38
|
+
{
|
|
39
|
+
void* ptr = malloc(size);
|
|
40
|
+
if (ptr == NULL) {
|
|
41
|
+
std::cerr << "Out of memory.\n";
|
|
42
|
+
exit(EXIT_FAILURE);
|
|
43
|
+
}
|
|
44
|
+
return ptr;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
char* ADDCALL sass_copy_c_string(const char* str)
|
|
48
|
+
{
|
|
49
|
+
if (str == nullptr) return nullptr;
|
|
50
|
+
size_t len = strlen(str) + 1;
|
|
51
|
+
char* cpy = (char*) sass_alloc_memory(len);
|
|
52
|
+
std::memcpy(cpy, str, len);
|
|
53
|
+
return cpy;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Deallocate libsass heap memory
|
|
57
|
+
void ADDCALL sass_free_memory(void* ptr)
|
|
58
|
+
{
|
|
59
|
+
if (ptr) free (ptr);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// caller must free the returned memory
|
|
63
|
+
char* ADDCALL sass_string_quote (const char *str, const char quote_mark)
|
|
64
|
+
{
|
|
65
|
+
sass::string quoted = quote(str, quote_mark);
|
|
66
|
+
return sass_copy_c_string(quoted.c_str());
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// caller must free the returned memory
|
|
70
|
+
char* ADDCALL sass_string_unquote (const char *str)
|
|
71
|
+
{
|
|
72
|
+
sass::string unquoted = unquote(str);
|
|
73
|
+
return sass_copy_c_string(unquoted.c_str());
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
char* ADDCALL sass_compiler_find_include (const char* file, struct Sass_Compiler* compiler)
|
|
77
|
+
{
|
|
78
|
+
// get the last import entry to get current base directory
|
|
79
|
+
Sass_Import_Entry import = sass_compiler_get_last_import(compiler);
|
|
80
|
+
const sass::vector<sass::string>& incs = compiler->cpp_ctx->include_paths;
|
|
81
|
+
// create the vector with paths to lookup
|
|
82
|
+
sass::vector<sass::string> paths(1 + incs.size());
|
|
83
|
+
paths.push_back(File::dir_name(import->abs_path));
|
|
84
|
+
paths.insert( paths.end(), incs.begin(), incs.end() );
|
|
85
|
+
// now resolve the file path relative to lookup paths
|
|
86
|
+
sass::string resolved(File::find_include(file, paths));
|
|
87
|
+
return sass_copy_c_string(resolved.c_str());
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
char* ADDCALL sass_compiler_find_file (const char* file, struct Sass_Compiler* compiler)
|
|
91
|
+
{
|
|
92
|
+
// get the last import entry to get current base directory
|
|
93
|
+
Sass_Import_Entry import = sass_compiler_get_last_import(compiler);
|
|
94
|
+
const sass::vector<sass::string>& incs = compiler->cpp_ctx->include_paths;
|
|
95
|
+
// create the vector with paths to lookup
|
|
96
|
+
sass::vector<sass::string> paths(1 + incs.size());
|
|
97
|
+
paths.push_back(File::dir_name(import->abs_path));
|
|
98
|
+
paths.insert( paths.end(), incs.begin(), incs.end() );
|
|
99
|
+
// now resolve the file path relative to lookup paths
|
|
100
|
+
sass::string resolved(File::find_file(file, paths));
|
|
101
|
+
return sass_copy_c_string(resolved.c_str());
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// Make sure to free the returned value!
|
|
105
|
+
// Incs array has to be null terminated!
|
|
106
|
+
// this has the original resolve logic for sass include
|
|
107
|
+
char* ADDCALL sass_find_include (const char* file, struct Sass_Options* opt)
|
|
108
|
+
{
|
|
109
|
+
sass::vector<sass::string> vec(list2vec(opt->include_paths));
|
|
110
|
+
sass::string resolved(File::find_include(file, vec));
|
|
111
|
+
return sass_copy_c_string(resolved.c_str());
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// Make sure to free the returned value!
|
|
115
|
+
// Incs array has to be null terminated!
|
|
116
|
+
char* ADDCALL sass_find_file (const char* file, struct Sass_Options* opt)
|
|
117
|
+
{
|
|
118
|
+
sass::vector<sass::string> vec(list2vec(opt->include_paths));
|
|
119
|
+
sass::string resolved(File::find_file(file, vec));
|
|
120
|
+
return sass_copy_c_string(resolved.c_str());
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// Get compiled libsass version
|
|
124
|
+
const char* ADDCALL libsass_version(void)
|
|
125
|
+
{
|
|
126
|
+
return LIBSASS_VERSION;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Get compiled libsass version
|
|
130
|
+
const char* ADDCALL libsass_language_version(void)
|
|
131
|
+
{
|
|
132
|
+
return LIBSASS_LANGUAGE_VERSION;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
namespace Sass {
|
|
138
|
+
|
|
139
|
+
// helper to aid dreaded MSVC debug mode
|
|
140
|
+
char* sass_copy_string(sass::string str)
|
|
141
|
+
{
|
|
142
|
+
// In MSVC the following can lead to segfault:
|
|
143
|
+
// sass_copy_c_string(stream.str().c_str());
|
|
144
|
+
// Reason is that the string returned by str() is disposed before
|
|
145
|
+
// sass_copy_c_string is invoked. The string is actually a stack
|
|
146
|
+
// object, so indeed nobody is holding on to it. So it seems
|
|
147
|
+
// perfectly fair to release it right away. So the const char*
|
|
148
|
+
// by c_str will point to invalid memory. I'm not sure if this is
|
|
149
|
+
// the behavior for all compiler, but I'm pretty sure we would
|
|
150
|
+
// have gotten more issues reported if that would be the case.
|
|
151
|
+
// Wrapping it in a functions seems the cleanest approach as the
|
|
152
|
+
// function must hold on to the stack variable until it's done.
|
|
153
|
+
return sass_copy_c_string(str.c_str());
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// must be the first include in all compile units
|
|
2
|
+
#ifndef SASS_SASS_H
|
|
3
|
+
#define SASS_SASS_H
|
|
4
|
+
|
|
5
|
+
// undefine extensions macro to tell sys includes
|
|
6
|
+
// that we do not want any macros to be exported
|
|
7
|
+
// mainly fixes an issue on SmartOS (SEC macro)
|
|
8
|
+
#undef __EXTENSIONS__
|
|
9
|
+
|
|
10
|
+
#ifdef _MSC_VER
|
|
11
|
+
#pragma warning(disable : 4005)
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
// applies to MSVC and MinGW
|
|
15
|
+
#ifdef _WIN32
|
|
16
|
+
// we do not want the ERROR macro
|
|
17
|
+
# ifndef NOGDI
|
|
18
|
+
# define NOGDI
|
|
19
|
+
# endif
|
|
20
|
+
// we do not want the min/max macro
|
|
21
|
+
# ifndef NOMINMAX
|
|
22
|
+
# define NOMINMAX
|
|
23
|
+
# endif
|
|
24
|
+
// we do not want the IN/OUT macro
|
|
25
|
+
# ifndef _NO_W32_PSEUDO_MODIFIERS
|
|
26
|
+
# define _NO_W32_PSEUDO_MODIFIERS
|
|
27
|
+
# endif
|
|
28
|
+
#endif
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
// should we be case insensitive
|
|
32
|
+
// when dealing with files or paths
|
|
33
|
+
#ifndef FS_CASE_SENSITIVE
|
|
34
|
+
# ifdef _WIN32
|
|
35
|
+
# define FS_CASE_SENSITIVE 0
|
|
36
|
+
# else
|
|
37
|
+
# define FS_CASE_SENSITIVE 1
|
|
38
|
+
# endif
|
|
39
|
+
#endif
|
|
40
|
+
|
|
41
|
+
// path separation char
|
|
42
|
+
#ifndef PATH_SEP
|
|
43
|
+
# ifdef _WIN32
|
|
44
|
+
# define PATH_SEP ';'
|
|
45
|
+
# else
|
|
46
|
+
# define PATH_SEP ':'
|
|
47
|
+
# endif
|
|
48
|
+
#endif
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
// Include C-API header
|
|
52
|
+
#include "sass/base.h"
|
|
53
|
+
|
|
54
|
+
// Include allocator
|
|
55
|
+
#include "memory.hpp"
|
|
56
|
+
|
|
57
|
+
// For C++ helper
|
|
58
|
+
#include <string>
|
|
59
|
+
#include <vector>
|
|
60
|
+
|
|
61
|
+
// output behavior
|
|
62
|
+
namespace Sass {
|
|
63
|
+
|
|
64
|
+
// create some C++ aliases for the most used options
|
|
65
|
+
const static Sass_Output_Style NESTED = SASS_STYLE_NESTED;
|
|
66
|
+
const static Sass_Output_Style COMPACT = SASS_STYLE_COMPACT;
|
|
67
|
+
const static Sass_Output_Style EXPANDED = SASS_STYLE_EXPANDED;
|
|
68
|
+
const static Sass_Output_Style COMPRESSED = SASS_STYLE_COMPRESSED;
|
|
69
|
+
// only used internal to trigger ruby inspect behavior
|
|
70
|
+
const static Sass_Output_Style INSPECT = SASS_STYLE_INSPECT;
|
|
71
|
+
const static Sass_Output_Style TO_SASS = SASS_STYLE_TO_SASS;
|
|
72
|
+
const static Sass_Output_Style TO_CSS = SASS_STYLE_TO_CSS;
|
|
73
|
+
|
|
74
|
+
// helper to aid dreaded MSVC debug mode
|
|
75
|
+
// see implementation for more details
|
|
76
|
+
char* sass_copy_string(sass::string str);
|
|
77
|
+
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// input behaviors
|
|
81
|
+
enum Sass_Input_Style {
|
|
82
|
+
SASS_CONTEXT_NULL,
|
|
83
|
+
SASS_CONTEXT_FILE,
|
|
84
|
+
SASS_CONTEXT_DATA,
|
|
85
|
+
SASS_CONTEXT_FOLDER
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
// simple linked list
|
|
89
|
+
struct string_list {
|
|
90
|
+
string_list* next;
|
|
91
|
+
char* string;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
// sass config options structure
|
|
95
|
+
struct Sass_Inspect_Options {
|
|
96
|
+
|
|
97
|
+
// Output style for the generated css code
|
|
98
|
+
// A value from above SASS_STYLE_* constants
|
|
99
|
+
enum Sass_Output_Style output_style;
|
|
100
|
+
|
|
101
|
+
// Precision for fractional numbers
|
|
102
|
+
int precision;
|
|
103
|
+
|
|
104
|
+
// initialization list (constructor with defaults)
|
|
105
|
+
Sass_Inspect_Options(Sass_Output_Style style = Sass::NESTED,
|
|
106
|
+
int precision = 10)
|
|
107
|
+
: output_style(style), precision(precision)
|
|
108
|
+
{ }
|
|
109
|
+
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
// sass config options structure
|
|
113
|
+
struct Sass_Output_Options : Sass_Inspect_Options {
|
|
114
|
+
|
|
115
|
+
// String to be used for indentation
|
|
116
|
+
const char* indent;
|
|
117
|
+
// String to be used to for line feeds
|
|
118
|
+
const char* linefeed;
|
|
119
|
+
|
|
120
|
+
// Emit comments in the generated CSS indicating
|
|
121
|
+
// the corresponding source line.
|
|
122
|
+
bool source_comments;
|
|
123
|
+
|
|
124
|
+
// initialization list (constructor with defaults)
|
|
125
|
+
Sass_Output_Options(struct Sass_Inspect_Options opt,
|
|
126
|
+
const char* indent = " ",
|
|
127
|
+
const char* linefeed = "\n",
|
|
128
|
+
bool source_comments = false)
|
|
129
|
+
: Sass_Inspect_Options(opt),
|
|
130
|
+
indent(indent), linefeed(linefeed),
|
|
131
|
+
source_comments(source_comments)
|
|
132
|
+
{ }
|
|
133
|
+
|
|
134
|
+
// initialization list (constructor with defaults)
|
|
135
|
+
Sass_Output_Options(Sass_Output_Style style = Sass::NESTED,
|
|
136
|
+
int precision = 10,
|
|
137
|
+
const char* indent = " ",
|
|
138
|
+
const char* linefeed = "\n",
|
|
139
|
+
bool source_comments = false)
|
|
140
|
+
: Sass_Inspect_Options(style, precision),
|
|
141
|
+
indent(indent), linefeed(linefeed),
|
|
142
|
+
source_comments(source_comments)
|
|
143
|
+
{ }
|
|
144
|
+
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
#endif
|