aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChloe Kudryavtsev <code@toast.bunkerlabs.net>2023-03-22 10:35:33 -0400
committerChloe Kudryavtsev <code@toast.bunkerlabs.net>2023-03-22 10:35:33 -0400
commit907b90a6e0936524dbd2d9798bfcbffdca1fd059 (patch)
tree7c5dfd6c1470150ed001b21d575c8ad809280058
parentdocs: update prefixes to be accurate (diff)
native: remove extern by adding a getjurl fn
-rw-r--r--jurl.c12
-rw-r--r--jurl.h5
-rw-r--r--jurl_getinfo.c2
-rw-r--r--jurl_setopt.c2
4 files changed, 10 insertions, 11 deletions
diff --git a/jurl.c b/jurl.c
index 0795497..9dde785 100644
--- a/jurl.c
+++ b/jurl.c
@@ -1,6 +1,4 @@
// jurl.c - a curl_easy minimal wrapper for janet
-
-#define JURL_C
#include "jurl.h"
int jurl_gc(void *p, size_t s) {
@@ -28,6 +26,10 @@ const JanetAbstractType jurl_type = {
JANET_ATEND_GC
};
+jurl_handle *janet_getjurl(Janet *argv, int32_t n) {
+ return (jurl_handle*)janet_getabstract(argv, n, &jurl_type);
+}
+
JANET_CFUN(jurl_new) {
janet_fixarity(argc, 0);
jurl_handle *jurl = (jurl_handle*)janet_abstract(&jurl_type, sizeof(jurl));
@@ -49,14 +51,14 @@ struct jurl_cleanup *register_cleanup(jurl_handle *jurl, enum jurl_cleanup_type
JANET_CFUN(jurl_reset) {
janet_fixarity(argc, 1);
- jurl_handle *jurl = (jurl_handle*)janet_getabstract(argv, 0, &jurl_type);
+ jurl_handle *jurl = janet_getjurl(argv, 0);
curl_easy_reset(jurl->handle);
return janet_wrap_abstract(jurl);
}
JANET_CFUN(jurl_dup) {
janet_fixarity(argc, 1);
- jurl_handle *jurl = (jurl_handle*)janet_getabstract(argv, 0, &jurl_type);
+ jurl_handle *jurl = janet_getjurl(argv, 0);
jurl_handle *newj = (jurl_handle*)janet_abstract(&jurl_type, sizeof(jurl));
newj->handle = curl_easy_duphandle(jurl->handle);
return janet_wrap_abstract(newj);
@@ -106,7 +108,7 @@ size_t write_buffer_callback(void *contents, size_t size, size_t nmemb, void* us
JANET_CFUN(jurl_perform) {
janet_fixarity(argc, 1);
- jurl_handle *jurl = (jurl_handle*)janet_getabstract(argv, 0, &jurl_type);
+ jurl_handle *jurl = (jurl_handle*)janet_getjurl(argv, 0);
CURLcode res = curl_easy_perform(jurl->handle);
return janet_wrap_boolean(res == CURLE_OK);
}
diff --git a/jurl.h b/jurl.h
index 370a8a0..c398b14 100644
--- a/jurl.h
+++ b/jurl.h
@@ -26,10 +26,7 @@ JANET_CFUN(jurl_new);
JANET_CFUN(jurl_reset);
JANET_CFUN(jurl_dup);
JANET_CFUN(jurl_perform);
-
-#ifndef JURL_C
-extern JANET_API const JanetAbstractType jurl_type;
-#endif
+jurl_handle *janet_getjurl(Janet *argv, int32_t n);
// jurl_callbacks.c
CURLcode jurl_setcallback(jurl_handle *jurl, CURLoption opt, JanetFunction *fun);
diff --git a/jurl_getinfo.c b/jurl_getinfo.c
index 830d282..95fd6be 100644
--- a/jurl_getinfo.c
+++ b/jurl_getinfo.c
@@ -90,7 +90,7 @@ static const struct jurl_opt jurl_opts[] = {
JANET_CFUN(jurl_getinfo) {
janet_fixarity(argc, 2);
- jurl_handle *jurl = (jurl_handle*)janet_getabstract(argv, 0, &jurl_type);
+ jurl_handle *jurl = janet_getjurl(argv, 0);
CURL* curl = jurl->handle;
const struct jurl_opt *opt;
diff --git a/jurl_setopt.c b/jurl_setopt.c
index a720eed..f1e5e64 100644
--- a/jurl_setopt.c
+++ b/jurl_setopt.c
@@ -297,7 +297,7 @@ static const struct jurl_opt jurl_opts[] = {
JANET_CFUN(jurl_setopt) {
janet_fixarity(argc, 3);
- jurl_handle *jurl = (jurl_handle*)janet_getabstract(argv, 0, &jurl_type);
+ jurl_handle *jurl = janet_getjurl(argv, 0);
const struct jurl_opt *opt;
Janet jopt = argv[1];