get rid of cs_value::get_strr
parent
2f5bb697eb
commit
7eaf3679a4
|
@ -85,6 +85,13 @@ struct OSTD_EXPORT cs_strref {
|
|||
|
||||
operator ostd::string_range() const;
|
||||
|
||||
std::size_t size() const {
|
||||
return ostd::string_range{*this}.size();
|
||||
}
|
||||
std::size_t length() const {
|
||||
return ostd::string_range{*this}.length();
|
||||
}
|
||||
|
||||
bool operator==(cs_strref const &s) const;
|
||||
|
||||
private:
|
||||
|
@ -121,7 +128,6 @@ struct OSTD_EXPORT cs_value {
|
|||
void set_ident(cs_ident *val);
|
||||
|
||||
cs_strref get_str() const;
|
||||
ostd::string_range get_strr() const;
|
||||
cs_int get_int() const;
|
||||
cs_float get_float() const;
|
||||
cs_bcode *get_code() const;
|
||||
|
@ -867,7 +873,9 @@ private:
|
|||
break;
|
||||
}
|
||||
case cs_value_type::String: {
|
||||
ostd::range_put_all(writer, vals[i].get_strr());
|
||||
ostd::range_put_all(
|
||||
writer, ostd::string_range{vals[i].get_str()}
|
||||
);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
|
|
@ -247,18 +247,6 @@ cs_strref cs_value::get_str() const {
|
|||
return cs_strref{*state(), ""};
|
||||
}
|
||||
|
||||
ostd::string_range cs_value::get_strr() const {
|
||||
switch (get_type()) {
|
||||
case cs_value_type::String:
|
||||
return ostd::string_range(
|
||||
*reinterpret_cast<cs_strref const *>(&p_stor)
|
||||
);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return ostd::string_range();
|
||||
}
|
||||
|
||||
void cs_value::get_val(cs_value &r) const {
|
||||
switch (get_type()) {
|
||||
case cs_value_type::String:
|
||||
|
|
21
src/cs_vm.cc
21
src/cs_vm.cc
|
@ -256,7 +256,7 @@ static inline uint32_t *forcecode(cs_state &cs, cs_value &v) {
|
|||
static inline void forcecond(cs_state &cs, cs_value &v) {
|
||||
switch (v.get_type()) {
|
||||
case cs_value_type::String:
|
||||
if (!v.get_strr().empty()) {
|
||||
if (!ostd::string_range{v.get_str()}.empty()) {
|
||||
forcecode(cs, v);
|
||||
} else {
|
||||
v.set_int(0);
|
||||
|
@ -576,7 +576,7 @@ static inline int cs_get_lookupu_type(
|
|||
if (arg.get_type() != cs_value_type::String) {
|
||||
return -2; /* default case */
|
||||
}
|
||||
id = cs.get_ident(arg.get_strr());
|
||||
id = cs.get_ident(arg.get_str());
|
||||
if (id) {
|
||||
switch(id->get_type()) {
|
||||
case cs_ident_type::Alias:
|
||||
|
@ -604,7 +604,7 @@ static inline int cs_get_lookupu_type(
|
|||
return CsIdUnknown;
|
||||
}
|
||||
}
|
||||
throw cs_error(cs, "unknown alias lookup: %s", arg.get_strr());
|
||||
throw cs_error(cs, "unknown alias lookup: %s", arg.get_str());
|
||||
}
|
||||
|
||||
static uint32_t *runcode(cs_state &cs, uint32_t *code, cs_value &result) {
|
||||
|
@ -922,7 +922,7 @@ static uint32_t *runcode(cs_state &cs, uint32_t *code, cs_value &result) {
|
|||
break;
|
||||
case cs_value_type::String:
|
||||
gs.code.reserve(64);
|
||||
gs.gen_main(arg.get_strr());
|
||||
gs.gen_main(arg.get_str());
|
||||
break;
|
||||
default:
|
||||
gs.code.reserve(8);
|
||||
|
@ -944,7 +944,7 @@ static uint32_t *runcode(cs_state &cs, uint32_t *code, cs_value &result) {
|
|||
cs_value &arg = args[numargs - 1];
|
||||
switch (arg.get_type()) {
|
||||
case cs_value_type::String: {
|
||||
ostd::string_range s = arg.get_strr();
|
||||
ostd::string_range s = arg.get_str();
|
||||
if (!s.empty()) {
|
||||
cs_gen_state gs(cs);
|
||||
gs.code.reserve(64);
|
||||
|
@ -988,7 +988,7 @@ static uint32_t *runcode(cs_state &cs, uint32_t *code, cs_value &result) {
|
|||
cs_value &arg = args[numargs - 1];
|
||||
cs_ident *id = cs.p_state->identmap[DummyIdx];
|
||||
if (arg.get_type() == cs_value_type::String) {
|
||||
id = cs.new_ident(arg.get_strr());
|
||||
id = cs.new_ident(arg.get_str());
|
||||
}
|
||||
if ((id->get_index() < MaxArguments) && !cs_is_arg_used(cs, id)) {
|
||||
cs_value nv{cs};
|
||||
|
@ -1267,7 +1267,7 @@ static uint32_t *runcode(cs_state &cs, uint32_t *code, cs_value &result) {
|
|||
case CsCodeSvar1:
|
||||
cs.set_var_str_checked(
|
||||
static_cast<cs_svar *>(cs.p_state->identmap[op >> 8]),
|
||||
args[--numargs].get_strr()
|
||||
args[--numargs].get_str()
|
||||
);
|
||||
continue;
|
||||
|
||||
|
@ -1497,16 +1497,17 @@ litval:
|
|||
numargs = offset - 1;
|
||||
continue;
|
||||
}
|
||||
cs_ident *id = cs.get_ident(idarg.get_strr());
|
||||
auto idn = idarg.get_str();
|
||||
cs_ident *id = cs.get_ident(idn);
|
||||
if (!id) {
|
||||
noid:
|
||||
if (cs_check_num(idarg.get_strr())) {
|
||||
if (cs_check_num(idn)) {
|
||||
goto litval;
|
||||
}
|
||||
result.force_null();
|
||||
force_arg(result, op & CsCodeRetMask);
|
||||
throw cs_error(
|
||||
cs, "unknown command: %s", idarg.get_strr()
|
||||
cs, "unknown command: %s", ostd::string_range{idn}
|
||||
);
|
||||
}
|
||||
result.force_null();
|
||||
|
|
|
@ -539,7 +539,7 @@ OSTD_EXPORT cs_ident *cs_state::force_ident(cs_value &v) {
|
|||
case cs_value_type::Ident:
|
||||
return v.get_ident();
|
||||
case cs_value_type::String: {
|
||||
cs_ident *id = new_ident(v.get_strr());
|
||||
cs_ident *id = new_ident(v.get_str());
|
||||
v.set_ident(id);
|
||||
return id;
|
||||
}
|
||||
|
@ -1062,7 +1062,7 @@ end:
|
|||
|
||||
void cs_init_lib_base(cs_state &gcs) {
|
||||
gcs.new_command("error", "s", [](auto &cs, auto args, auto &) {
|
||||
throw cs_error(cs, args[0].get_strr());
|
||||
throw cs_error(cs, args[0].get_str());
|
||||
});
|
||||
|
||||
gcs.new_command("pcall", "err", [](auto &cs, auto args, auto &ret) {
|
||||
|
@ -1306,32 +1306,32 @@ end:
|
|||
});
|
||||
|
||||
gcs.new_command("resetvar", "s", [](auto &cs, auto args, auto &) {
|
||||
cs.reset_var(args[0].get_strr());
|
||||
cs.reset_var(args[0].get_str());
|
||||
});
|
||||
|
||||
gcs.new_command("alias", "st", [](auto &cs, auto args, auto &) {
|
||||
cs.set_alias(args[0].get_strr(), args[1]);
|
||||
cs.set_alias(args[0].get_str(), args[1]);
|
||||
});
|
||||
|
||||
gcs.new_command("getvarmin", "s", [](auto &cs, auto args, auto &res) {
|
||||
res.set_int(cs.get_var_min_int(args[0].get_strr()).value_or(0));
|
||||
res.set_int(cs.get_var_min_int(args[0].get_str()).value_or(0));
|
||||
});
|
||||
gcs.new_command("getvarmax", "s", [](auto &cs, auto args, auto &res) {
|
||||
res.set_int(cs.get_var_max_int(args[0].get_strr()).value_or(0));
|
||||
res.set_int(cs.get_var_max_int(args[0].get_str()).value_or(0));
|
||||
});
|
||||
gcs.new_command("getfvarmin", "s", [](auto &cs, auto args, auto &res) {
|
||||
res.set_float(cs.get_var_min_float(args[0].get_strr()).value_or(0.0f));
|
||||
res.set_float(cs.get_var_min_float(args[0].get_str()).value_or(0.0f));
|
||||
});
|
||||
gcs.new_command("getfvarmax", "s", [](auto &cs, auto args, auto &res) {
|
||||
res.set_float(cs.get_var_max_float(args[0].get_strr()).value_or(0.0f));
|
||||
res.set_float(cs.get_var_max_float(args[0].get_str()).value_or(0.0f));
|
||||
});
|
||||
|
||||
gcs.new_command("identexists", "s", [](auto &cs, auto args, auto &res) {
|
||||
res.set_int(cs.have_ident(args[0].get_strr()));
|
||||
res.set_int(cs.have_ident(args[0].get_str()));
|
||||
});
|
||||
|
||||
gcs.new_command("getalias", "s", [](auto &cs, auto args, auto &res) {
|
||||
auto s0 = cs.get_alias_val(args[0].get_strr());
|
||||
auto s0 = cs.get_alias_val(args[0].get_str());
|
||||
if (s0) {
|
||||
res.set_str(*s0);
|
||||
} else {
|
||||
|
|
|
@ -25,7 +25,7 @@ struct cs_arg_val<cs_float> {
|
|||
template<>
|
||||
struct cs_arg_val<ostd::string_range> {
|
||||
static ostd::string_range get(cs_value &tv) {
|
||||
return tv.get_strr();
|
||||
return tv.get_str();
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -35,7 +35,7 @@ static inline void cs_list_find(
|
|||
) {
|
||||
cs_int n = 0, skip = args[2].get_int();
|
||||
T val = cs_arg_val<T>::get(args[1]);
|
||||
for (util::list_parser p(cs, args[0].get_strr()); p.parse(); ++n) {
|
||||
for (util::list_parser p(cs, args[0].get_str()); p.parse(); ++n) {
|
||||
if (cmp(p, val)) {
|
||||
res.set_int(n);
|
||||
return;
|
||||
|
@ -56,7 +56,7 @@ static inline void cs_list_assoc(
|
|||
cs_state &cs, cs_value_r args, cs_value &res, F cmp
|
||||
) {
|
||||
T val = cs_arg_val<T>::get(args[1]);
|
||||
for (util::list_parser p(cs, args[0].get_strr()); p.parse();) {
|
||||
for (util::list_parser p(cs, args[0].get_str()); p.parse();) {
|
||||
if (cmp(p, val)) {
|
||||
if (p.parse()) {
|
||||
res.set_str(p.get_item());
|
||||
|
@ -117,8 +117,8 @@ template<bool PushList, bool Swap, typename F>
|
|||
static inline void cs_list_merge(
|
||||
cs_state &cs, cs_value_r args, cs_value &res, F cmp
|
||||
) {
|
||||
ostd::string_range list = args[0].get_strr();
|
||||
ostd::string_range elems = args[1].get_strr();
|
||||
ostd::string_range list = args[0].get_str();
|
||||
ostd::string_range elems = args[1].get_str();
|
||||
cs_string buf;
|
||||
if (PushList) {
|
||||
buf += list;
|
||||
|
@ -141,7 +141,7 @@ static void cs_init_lib_list_sort(cs_state &cs);
|
|||
|
||||
void cs_init_lib_list(cs_state &gcs) {
|
||||
gcs.new_command("listlen", "s", [](auto &cs, auto args, auto &res) {
|
||||
res.set_int(cs_int(util::list_parser(cs, args[0].get_strr()).count()));
|
||||
res.set_int(cs_int(util::list_parser(cs, args[0].get_str()).count()));
|
||||
});
|
||||
|
||||
gcs.new_command("at", "si1V", [](auto &cs, auto args, auto &res) {
|
||||
|
@ -174,7 +174,7 @@ void cs_init_lib_list(cs_state &gcs) {
|
|||
cs_int offset = std::max(skip, cs_int(0)),
|
||||
len = (numargs >= 3) ? std::max(count, cs_int(0)) : -1;
|
||||
|
||||
util::list_parser p(cs, args[0].get_strr());
|
||||
util::list_parser p(cs, args[0].get_str());
|
||||
for (cs_int i = 0; i < offset; ++i) {
|
||||
if (!p.parse()) break;
|
||||
}
|
||||
|
@ -204,7 +204,7 @@ void cs_init_lib_list(cs_state &gcs) {
|
|||
}
|
||||
auto body = args[2].get_code();
|
||||
int n = -1;
|
||||
for (util::list_parser p(cs, args[1].get_strr()); p.parse();) {
|
||||
for (util::list_parser p(cs, args[1].get_str()); p.parse();) {
|
||||
++n;
|
||||
idv.set_str(cs_string{p.get_raw_item()});
|
||||
idv.push();
|
||||
|
@ -223,7 +223,7 @@ void cs_init_lib_list(cs_state &gcs) {
|
|||
}
|
||||
auto body = args[2].get_code();
|
||||
int n = -1;
|
||||
for (util::list_parser p(cs, args[1].get_strr()); p.parse();) {
|
||||
for (util::list_parser p(cs, args[1].get_str()); p.parse();) {
|
||||
++n;
|
||||
idv.set_str(cs_string{p.get_raw_item()});
|
||||
idv.push();
|
||||
|
@ -290,7 +290,7 @@ void cs_init_lib_list(cs_state &gcs) {
|
|||
}
|
||||
auto body = args[2].get_code();
|
||||
int n = 0;
|
||||
for (util::list_parser p(cs, args[1].get_strr()); p.parse(); ++n) {
|
||||
for (util::list_parser p(cs, args[1].get_str()); p.parse(); ++n) {
|
||||
idv.set_str(p.get_item());
|
||||
idv.push();
|
||||
switch (cs.run_loop(body)) {
|
||||
|
@ -312,7 +312,7 @@ end:
|
|||
}
|
||||
auto body = args[3].get_code();
|
||||
int n = 0;
|
||||
for (util::list_parser p(cs, args[2].get_strr()); p.parse(); n += 2) {
|
||||
for (util::list_parser p(cs, args[2].get_str()); p.parse(); n += 2) {
|
||||
idv1.set_str(p.get_item());
|
||||
if (p.parse()) {
|
||||
idv2.set_str(p.get_item());
|
||||
|
@ -341,7 +341,7 @@ end:
|
|||
}
|
||||
auto body = args[4].get_code();
|
||||
int n = 0;
|
||||
for (util::list_parser p(cs, args[3].get_strr()); p.parse(); n += 3) {
|
||||
for (util::list_parser p(cs, args[3].get_str()); p.parse(); n += 3) {
|
||||
idv1.set_str(p.get_item());
|
||||
if (p.parse()) {
|
||||
idv2.set_str(p.get_item());
|
||||
|
@ -369,7 +369,7 @@ end:
|
|||
|
||||
gcs.new_command("looplistconcat", "rse", [](auto &cs, auto args, auto &res) {
|
||||
cs_loop_list_conc(
|
||||
cs, res, args[0].get_ident(), args[1].get_strr(),
|
||||
cs, res, args[0].get_ident(), args[1].get_str(),
|
||||
args[2].get_code(), true
|
||||
);
|
||||
});
|
||||
|
@ -378,7 +378,7 @@ end:
|
|||
auto &cs, auto args, auto &res
|
||||
) {
|
||||
cs_loop_list_conc(
|
||||
cs, res, args[0].get_ident(), args[1].get_strr(),
|
||||
cs, res, args[0].get_ident(), args[1].get_str(),
|
||||
args[2].get_code(), false
|
||||
);
|
||||
});
|
||||
|
@ -391,7 +391,7 @@ end:
|
|||
auto body = args[2].get_code();
|
||||
cs_string r;
|
||||
int n = 0;
|
||||
for (util::list_parser p(cs, args[1].get_strr()); p.parse(); ++n) {
|
||||
for (util::list_parser p(cs, args[1].get_str()); p.parse(); ++n) {
|
||||
idv.set_str(cs_string{p.get_raw_item()});
|
||||
idv.push();
|
||||
if (cs.run_bool(body)) {
|
||||
|
@ -411,7 +411,7 @@ end:
|
|||
}
|
||||
auto body = args[2].get_code();
|
||||
int n = 0, r = 0;
|
||||
for (util::list_parser p(cs, args[1].get_strr()); p.parse(); ++n) {
|
||||
for (util::list_parser p(cs, args[1].get_str()); p.parse(); ++n) {
|
||||
idv.set_str(cs_string{p.get_raw_item()});
|
||||
idv.push();
|
||||
if (cs.run_bool(body)) {
|
||||
|
@ -423,8 +423,8 @@ end:
|
|||
|
||||
gcs.new_command("prettylist", "ss", [](auto &cs, auto args, auto &res) {
|
||||
auto buf = ostd::appender<cs_string>();
|
||||
ostd::string_range s = args[0].get_strr();
|
||||
ostd::string_range conj = args[1].get_strr();
|
||||
ostd::string_range s = args[0].get_str();
|
||||
ostd::string_range conj = args[1].get_str();
|
||||
size_t len = util::list_parser(cs, s).count();
|
||||
size_t n = 0;
|
||||
for (util::list_parser p(cs, s); p.parse(); ++n) {
|
||||
|
@ -450,7 +450,7 @@ end:
|
|||
|
||||
gcs.new_command("indexof", "ss", [](auto &cs, auto args, auto &res) {
|
||||
res.set_int(
|
||||
cs_list_includes(cs, args[0].get_strr(), args[1].get_strr())
|
||||
cs_list_includes(cs, args[0].get_str(), args[1].get_str())
|
||||
);
|
||||
});
|
||||
|
||||
|
@ -467,8 +467,8 @@ end:
|
|||
gcs.new_command("listsplice", "ssii", [](auto &cs, auto args, auto &res) {
|
||||
cs_int offset = std::max(args[2].get_int(), cs_int(0));
|
||||
cs_int len = std::max(args[3].get_int(), cs_int(0));
|
||||
ostd::string_range s = args[0].get_strr();
|
||||
ostd::string_range vals = args[1].get_strr();
|
||||
ostd::string_range s = args[0].get_str();
|
||||
ostd::string_range vals = args[1].get_str();
|
||||
char const *list = s.data();
|
||||
util::list_parser p(cs, s);
|
||||
for (cs_int i = 0; i < offset; ++i) {
|
||||
|
@ -622,13 +622,13 @@ static void cs_list_sort(
|
|||
static void cs_init_lib_list_sort(cs_state &gcs) {
|
||||
gcs.new_command("sortlist", "srree", [](auto &cs, auto args, auto &res) {
|
||||
cs_list_sort(
|
||||
cs, res, args[0].get_strr(), args[1].get_ident(),
|
||||
cs, res, args[0].get_str(), args[1].get_ident(),
|
||||
args[2].get_ident(), args[3].get_code(), args[4].get_code()
|
||||
);
|
||||
});
|
||||
gcs.new_command("uniquelist", "srre", [](auto &cs, auto args, auto &res) {
|
||||
cs_list_sort(
|
||||
cs, res, args[0].get_strr(), args[1].get_ident(),
|
||||
cs, res, args[0].get_str(), args[1].get_ident(),
|
||||
args[2].get_ident(), nullptr, args[3].get_code()
|
||||
);
|
||||
});
|
||||
|
|
|
@ -8,13 +8,13 @@ template<typename F>
|
|||
static inline void cs_strgcmp(cs_value_r args, cs_value &res, F cfunc) {
|
||||
bool val;
|
||||
if (args.size() >= 2) {
|
||||
val = cfunc(args[0].get_strr(), args[1].get_strr());
|
||||
val = cfunc(args[0].get_str(), args[1].get_str());
|
||||
for (size_t i = 2; (i < args.size()) && val; ++i) {
|
||||
val = cfunc(args[i - 1].get_strr(), args[i].get_strr());
|
||||
val = cfunc(args[i - 1].get_str(), args[i].get_str());
|
||||
}
|
||||
} else {
|
||||
val = cfunc(
|
||||
!args.empty() ? args[0].get_strr() : ostd::string_range(),
|
||||
!args.empty() ? args[0].get_str() : ostd::string_range(),
|
||||
ostd::string_range()
|
||||
);
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ static inline void cs_strgcmp(cs_value_r args, cs_value &res, F cfunc) {
|
|||
|
||||
void cs_init_lib_string(cs_state &cs) {
|
||||
cs.new_command("strstr", "ss", [](auto &, auto args, auto &res) {
|
||||
ostd::string_range a = args[0].get_strr(), b = args[1].get_strr();
|
||||
ostd::string_range a = args[0].get_str(), b = args[1].get_str();
|
||||
ostd::string_range s = a;
|
||||
for (cs_int i = 0; b.size() <= s.size(); ++i) {
|
||||
if (b == s.slice(0, b.size())) {
|
||||
|
@ -36,11 +36,11 @@ void cs_init_lib_string(cs_state &cs) {
|
|||
});
|
||||
|
||||
cs.new_command("strlen", "s", [](auto &, auto args, auto &res) {
|
||||
res.set_int(cs_int(args[0].get_strr().size()));
|
||||
res.set_int(cs_int(args[0].get_str().size()));
|
||||
});
|
||||
|
||||
cs.new_command("strcode", "si", [](auto &, auto args, auto &res) {
|
||||
ostd::string_range str = args[0].get_strr();
|
||||
ostd::string_range str = args[0].get_str();
|
||||
cs_int i = args[1].get_int();
|
||||
if (i >= cs_int(str.size())) {
|
||||
res.set_int(0);
|
||||
|
@ -71,13 +71,13 @@ void cs_init_lib_string(cs_state &cs) {
|
|||
|
||||
cs.new_command("escape", "s", [](auto &, auto args, auto &res) {
|
||||
auto s = ostd::appender<cs_string>();
|
||||
util::escape_string(s, args[0].get_strr());
|
||||
util::escape_string(s, args[0].get_str());
|
||||
res.set_str(s.get());
|
||||
});
|
||||
|
||||
cs.new_command("unescape", "s", [](auto &, auto args, auto &res) {
|
||||
auto s = ostd::appender<cs_string>();
|
||||
util::unescape_string(s, args[0].get_strr());
|
||||
util::unescape_string(s, args[0].get_str());
|
||||
res.set_str(s.get());
|
||||
});
|
||||
|
||||
|
@ -135,7 +135,7 @@ void cs_init_lib_string(cs_state &cs) {
|
|||
});
|
||||
|
||||
cs.new_command("substr", "siiN", [](auto &, auto args, auto &res) {
|
||||
ostd::string_range s = args[0].get_strr();
|
||||
ostd::string_range s = args[0].get_str();
|
||||
cs_int start = args[1].get_int(), count = args[2].get_int();
|
||||
cs_int numargs = args[3].get_int();
|
||||
cs_int len = cs_int(s.size()), offset = std::clamp(start, cs_int(0), len);
|
||||
|
@ -170,10 +170,10 @@ void cs_init_lib_string(cs_state &cs) {
|
|||
});
|
||||
|
||||
cs.new_command("strreplace", "ssss", [](auto &, auto args, auto &res) {
|
||||
ostd::string_range s = args[0].get_strr();
|
||||
ostd::string_range oldval = args[1].get_strr(),
|
||||
newval = args[2].get_strr(),
|
||||
newval2 = args[3].get_strr();
|
||||
ostd::string_range s = args[0].get_str();
|
||||
ostd::string_range oldval = args[1].get_str(),
|
||||
newval = args[2].get_str(),
|
||||
newval2 = args[3].get_str();
|
||||
if (newval2.empty()) {
|
||||
newval2 = newval;
|
||||
}
|
||||
|
@ -204,8 +204,8 @@ void cs_init_lib_string(cs_state &cs) {
|
|||
});
|
||||
|
||||
cs.new_command("strsplice", "ssii", [](auto &, auto args, auto &res) {
|
||||
ostd::string_range s = args[0].get_strr();
|
||||
ostd::string_range vals = args[1].get_strr();
|
||||
ostd::string_range s = args[0].get_str();
|
||||
ostd::string_range vals = args[1].get_str();
|
||||
cs_int skip = args[2].get_int(),
|
||||
count = args[3].get_int();
|
||||
cs_int offset = std::clamp(skip, cs_int(0), cs_int(s.size())),
|
||||
|
|
|
@ -275,7 +275,7 @@ int main(int argc, char **argv) {
|
|||
gcs.init_libs();
|
||||
|
||||
gcs.new_command("exec", "s", [](auto &cs, auto args, auto &) {
|
||||
auto file = args[0].get_strr();
|
||||
auto file = args[0].get_str();
|
||||
bool ret = cs.run_file(file);
|
||||
if (!ret) {
|
||||
throw cscript::cs_error(
|
||||
|
@ -285,7 +285,7 @@ int main(int argc, char **argv) {
|
|||
});
|
||||
|
||||
gcs.new_command("echo", "C", [](auto &, auto args, auto &) {
|
||||
ostd::writeln(args[0].get_strr());
|
||||
ostd::writeln(ostd::string_range{args[0].get_str()});
|
||||
});
|
||||
|
||||
int firstarg = 0;
|
||||
|
|
Loading…
Reference in New Issue