mirror of
https://github.com/janet-lang/janet
synced 2024-11-28 19:19:53 +00:00
commit
c93ddceadb
@ -209,14 +209,28 @@ const char *janet_optcstring(const Janet *argv, int32_t argc, int32_t n, const c
|
|||||||
#undef DEFINE_OPTLEN
|
#undef DEFINE_OPTLEN
|
||||||
|
|
||||||
const char *janet_getcstring(const Janet *argv, int32_t n) {
|
const char *janet_getcstring(const Janet *argv, int32_t n) {
|
||||||
const uint8_t *jstr = janet_getstring(argv, n);
|
if (!janet_checktype(argv[n], JANET_STRING)) {
|
||||||
const char *cstr = (const char *)jstr;
|
janet_panic_type(argv[n], n, JANET_TFLAG_STRING);
|
||||||
if (strlen(cstr) != (size_t) janet_string_length(jstr)) {
|
}
|
||||||
janet_panic("string contains embedded 0s");
|
return janet_getcbytes(argv, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* janet_getcbytes(const Janet *argv, int32_t n) {
|
||||||
|
JanetByteView view = janet_getbytes(argv, n);
|
||||||
|
const char *cstr = (const char *)view.bytes;
|
||||||
|
if (strlen(cstr) != (size_t) view.len) {
|
||||||
|
janet_panic("bytes contain embedded 0s");
|
||||||
}
|
}
|
||||||
return cstr;
|
return cstr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *janet_optcbytes(const Janet *argv, int32_t argc, int32_t n, const char *dflt) {
|
||||||
|
if (n >= argc || janet_checktype(argv[n], JANET_NIL)) {
|
||||||
|
return dflt;
|
||||||
|
}
|
||||||
|
return janet_getcbytes(argv, n);
|
||||||
|
}
|
||||||
|
|
||||||
int32_t janet_getnat(const Janet *argv, int32_t n) {
|
int32_t janet_getnat(const Janet *argv, int32_t n) {
|
||||||
Janet x = argv[n];
|
Janet x = argv[n];
|
||||||
if (!janet_checkint(x)) goto bad;
|
if (!janet_checkint(x)) goto bad;
|
||||||
|
@ -1968,6 +1968,7 @@ JANET_API JanetTable *janet_gettable(const Janet *argv, int32_t n);
|
|||||||
JANET_API JanetStruct janet_getstruct(const Janet *argv, int32_t n);
|
JANET_API JanetStruct janet_getstruct(const Janet *argv, int32_t n);
|
||||||
JANET_API JanetString janet_getstring(const Janet *argv, int32_t n);
|
JANET_API JanetString janet_getstring(const Janet *argv, int32_t n);
|
||||||
JANET_API const char *janet_getcstring(const Janet *argv, int32_t n);
|
JANET_API const char *janet_getcstring(const Janet *argv, int32_t n);
|
||||||
|
JANET_API const char *janet_getcbytes(const Janet *argv, int32_t n);
|
||||||
JANET_API JanetSymbol janet_getsymbol(const Janet *argv, int32_t n);
|
JANET_API JanetSymbol janet_getsymbol(const Janet *argv, int32_t n);
|
||||||
JANET_API JanetKeyword janet_getkeyword(const Janet *argv, int32_t n);
|
JANET_API JanetKeyword janet_getkeyword(const Janet *argv, int32_t n);
|
||||||
JANET_API JanetBuffer *janet_getbuffer(const Janet *argv, int32_t n);
|
JANET_API JanetBuffer *janet_getbuffer(const Janet *argv, int32_t n);
|
||||||
@ -1997,6 +1998,7 @@ JANET_API JanetTuple janet_opttuple(const Janet *argv, int32_t argc, int32_t n,
|
|||||||
JANET_API JanetStruct janet_optstruct(const Janet *argv, int32_t argc, int32_t n, JanetStruct dflt);
|
JANET_API JanetStruct janet_optstruct(const Janet *argv, int32_t argc, int32_t n, JanetStruct dflt);
|
||||||
JANET_API JanetString janet_optstring(const Janet *argv, int32_t argc, int32_t n, JanetString dflt);
|
JANET_API JanetString janet_optstring(const Janet *argv, int32_t argc, int32_t n, JanetString dflt);
|
||||||
JANET_API const char *janet_optcstring(const Janet *argv, int32_t argc, int32_t n, const char *dflt);
|
JANET_API const char *janet_optcstring(const Janet *argv, int32_t argc, int32_t n, const char *dflt);
|
||||||
|
JANET_API const char *janet_optcbytes(const Janet *argv, int32_t argc, int32_t n, const char *dflt);
|
||||||
JANET_API JanetSymbol janet_optsymbol(const Janet *argv, int32_t argc, int32_t n, JanetString dflt);
|
JANET_API JanetSymbol janet_optsymbol(const Janet *argv, int32_t argc, int32_t n, JanetString dflt);
|
||||||
JANET_API JanetKeyword janet_optkeyword(const Janet *argv, int32_t argc, int32_t n, JanetString dflt);
|
JANET_API JanetKeyword janet_optkeyword(const Janet *argv, int32_t argc, int32_t n, JanetString dflt);
|
||||||
JANET_API JanetFiber *janet_optfiber(const Janet *argv, int32_t argc, int32_t n, JanetFiber *dflt);
|
JANET_API JanetFiber *janet_optfiber(const Janet *argv, int32_t argc, int32_t n, JanetFiber *dflt);
|
||||||
|
Loading…
Reference in New Issue
Block a user