1 #ifndef SASS_BASE_H
2 #define SASS_BASE_H
3 
4 // #define DEBUG
5 // #define DEBUG_SHARED_PTR
6 
7 #ifdef _MSC_VER
8   #pragma warning(disable : 4503)
9   #ifndef _SCL_SECURE_NO_WARNINGS
10     #define _SCL_SECURE_NO_WARNINGS
11   #endif
12   #ifndef _CRT_SECURE_NO_WARNINGS
13     #define _CRT_SECURE_NO_WARNINGS
14   #endif
15   #ifndef _CRT_NONSTDC_NO_DEPRECATE
16     #define _CRT_NONSTDC_NO_DEPRECATE
17   #endif
18 #endif
19 
20 // Work around lack of `noexcept` keyword support in VS2013
21 #if defined(_MSC_VER) && (_MSC_VER <= 1800) && !defined(_ALLOW_KEYWORD_MACROS)
22 #define _ALLOW_KEYWORD_MACROS 1
23 #define noexcept throw( )
24 #endif
25 
26 #include <stddef.h>
27 #include <stdbool.h>
28 
29 #ifdef __GNUC__
30   #define DEPRECATED(func) func __attribute__ ((deprecated))
31 #elif defined(_MSC_VER)
32   #define DEPRECATED(func) __declspec(deprecated) func
33 #else
34   #pragma message("WARNING: You need to implement DEPRECATED for this compiler")
35   #define DEPRECATED(func) func
36 #endif
37 
38 #ifdef _WIN32
39 
40   /* You should define ADD_EXPORTS *only* when building the DLL. */
41   #ifdef ADD_EXPORTS
42     #define ADDAPI __declspec(dllexport)
43     #define ADDCALL __cdecl
44   #else
45     #define ADDAPI
46     #define ADDCALL
47   #endif
48 
49 #else /* _WIN32 not defined. */
50 
51   /* Define with no value on non-Windows OSes. */
52   #define ADDAPI
53   #define ADDCALL
54 
55 #endif
56 
57 /* Make sure functions are exported with C linkage under C++ compilers. */
58 #ifdef __cplusplus
59 extern "C" {
60 #endif
61 
62 
63 // Different render styles
64 enum Sass_Output_Style {
65   SASS_STYLE_NESTED,
66   SASS_STYLE_EXPANDED,
67   SASS_STYLE_COMPACT,
68   SASS_STYLE_COMPRESSED,
69   // only used internaly
70   SASS_STYLE_INSPECT,
71   SASS_STYLE_TO_SASS,
72   SASS_STYLE_TO_CSS
73 };
74 
75 // to allocate buffer to be filled
76 ADDAPI void* ADDCALL sass_alloc_memory(size_t size);
77 // to allocate a buffer from existing string
78 ADDAPI char* ADDCALL sass_copy_c_string(const char* str);
79 // to free overtaken memory when done
80 ADDAPI void ADDCALL sass_free_memory(void* ptr);
81 
82 // Some convenient string helper function
83 ADDAPI char* ADDCALL sass_string_quote (const char* str, const char quote_mark);
84 ADDAPI char* ADDCALL sass_string_unquote (const char* str);
85 
86 // Implemented sass language version
87 // Hardcoded version 3.4 for time being
88 ADDAPI const char* ADDCALL libsass_version(void);
89 
90 // Get compiled libsass language
91 ADDAPI const char* ADDCALL libsass_language_version(void);
92 
93 #ifdef __cplusplus
94 } // __cplusplus defined.
95 #endif
96 
97 #endif
98