summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2012-03-13 12:57:21 -0700
committerKaz Kylheku <kaz@kylheku.com>2012-03-13 12:57:21 -0700
commit5961f0de80abce4645ec2f022b2346e24b6479ed (patch)
tree2ae5ac4b66170ddf43bbc968f1160cd9aa9f2be9 /eval.c
parentaa62864118b755f10b30fd58a3b7fd8407ce8c6c (diff)
downloadtxr-5961f0de80abce4645ec2f022b2346e24b6479ed.tar.gz
txr-5961f0de80abce4645ec2f022b2346e24b6479ed.tar.bz2
txr-5961f0de80abce4645ec2f022b2346e24b6479ed.zip
Implementing URL filtering.
* eval.c (eval_init): New intrinsic functions: url-encode, url-decode. * filter.c (tourl_k, fromurl_k): New keyword variables. (is_url_reserved, digit_value): New static functions. (url_encode, url_decode): New functions. (filter_init): Intialize new keyword variables and register new :tourl and :fromurl filters. * filter.h (tourl_k, fromurl_k, url_encode, url_decode): Declared. * txr.1: Updated. * txr.vim: Likewise.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index c527d9de..156e58e2 100644
--- a/eval.c
+++ b/eval.c
@@ -43,6 +43,7 @@
#include "debug.h"
#include "match.h"
#include "rand.h"
+#include "filter.h"
#include "eval.h"
typedef val (*opfun_t)(val, val);
@@ -2354,6 +2355,9 @@ void eval_init(void)
reg_fun(intern(lit("match-fun"), user_package), func_n4(match_fun));
+ reg_fun(intern(lit("url-encode"), user_package), func_n1(url_encode));
+ reg_fun(intern(lit("url-decode"), user_package), func_n1(url_decode));
+
eval_error_s = intern(lit("eval-error"), user_package);
uw_register_subtype(eval_error_s, error_s);
}