ext/libsass/sass.cpp in sassc-0.0.10 vs ext/libsass/sass.cpp in sassc-0.0.11

- old
+ new

@@ -2,32 +2,42 @@ #include <cstring> #include <vector> #include <sstream> #include "sass.h" +#include "file.hpp" #include "util.hpp" extern "C" { using namespace std; + using namespace Sass; + using namespace File; // caller must free the returned memory - char* ADDCALL sass_string_quote (const char *str, const char quote_mark) { - string quoted = Sass::quote(str, quote_mark); - char *cstr = (char*) malloc(quoted.length() + 1); - std::strcpy(cstr, quoted.c_str()); - return cstr; + char* ADDCALL sass_string_quote (const char *str, const char quote_mark) + { + string quoted = quote(str, quote_mark); + return sass_strdup(quoted.c_str()); } // caller must free the returned memory - char* ADDCALL sass_string_unquote (const char *str) { - string unquoted = Sass::unquote(str); - char *cstr = (char*) malloc(unquoted.length() + 1); - std::strcpy(cstr, unquoted.c_str()); - return cstr; + char* ADDCALL sass_string_unquote (const char *str) + { + string unquoted = unquote(str); + return sass_strdup(unquoted.c_str()); } + // Make sure to free the returned value! + // Incs array has to be null terminated! + char* ADDCALL sass_resolve_file (const char* file, const char* paths[]) + { + string resolved(find_file(file, paths)); + return sass_strdup(resolved.c_str()); + } + // Get compiled libsass version - const char* ADDCALL libsass_version(void) { + const char* ADDCALL libsass_version(void) + { return LIBSASS_VERSION; } }