void get_directory_for_filename(Value* filename, Value* result) { // TODO: This function is bad, need to use an existing library for dealing // with paths. int last_slash = string_find_char_from_end(filename, '/'); if (last_slash == -1) { set_string(result, "."); return; } if (last_slash == 0) { set_string(result, "/"); return; } circa_set_string_size(result, as_cstring(filename), last_slash); }
void TokenStream::getNextStr(caValue* value, int lookahead) const { int startPos = next(lookahead).start; int length = next(lookahead).length(); circa_set_string_size(value, _sourceText.c_str() + startPos, length); }