summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2012-09-18 22:11:45 -0700
committerKaz Kylheku <kaz@kylheku.com>2012-09-18 22:11:45 -0700
commit20bcf160207f5c4fc7a0e11bbba2adb36b74ca63 (patch)
tree9c49f9fcccb9c8f11a8777843a2954644c9f8f03 /eval.c
parente4445e078f15013e072cffd93d6b6f3eab3ecabe (diff)
downloadtxr-20bcf160207f5c4fc7a0e11bbba2adb36b74ca63.tar.gz
txr-20bcf160207f5c4fc7a0e11bbba2adb36b74ca63.tar.bz2
txr-20bcf160207f5c4fc7a0e11bbba2adb36b74ca63.zip
* arith.c (logtest): New function.
* eval.c (eval_init): Registered logtest. Registered s-ifmt, s-iflnk, s-ifreg, s-ifblk, s-ifdir, s-ifchr, s-ififo, s-isuid, s-isgid, s-isvtx, s-irwxu, s-irusr, s-iwusr, s-ixusr, s-irwxg, s-irgrp, s-iwgrp, s-ixgrp, s-irwxo, s-iroth, s-iwoth, s-ixoth variables. * lib.h (logtest): Declared. * stream.c (s_ifmt, s_ifsock, s_iflnk, s_ifreg, s_ifblk, s_ifdir, s_ifchr, s_ififo, s_isuid, s_isgid, s_isvtx, s_irwxu, s_irusr, s_iwusr, s_ixusr, s_irwxg, s_irgrp, s_iwgrp, s_ixgrp, s_irwxo, s_iroth, s_iwoth, s_ixoth): New global variables. * stream.h (s_ifmt, s_ifsock, s_iflnk, s_ifreg, s_ifblk, s_ifdir, s_ifchr, s_ififo, s_isuid, s_isgid, s_isvtx, s_irwxu, s_irusr, s_iwusr, s_ixusr, s_irwxg, s_irgrp, s_iwgrp, s_ixgrp, s_irwxo, s_iroth, s_iwoth, s_ixoth): Declared. * txr.1: Documented logtest and s-* variables for stat, as well as open-file and open-directory.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index 298e6484..e5a251f8 100644
--- a/eval.c
+++ b/eval.c
@@ -2234,6 +2234,7 @@ void eval_init(void)
reg_fun(intern(lit("logand"), user_package), func_n2(logand));
reg_fun(intern(lit("logior"), user_package), func_n2(logior));
reg_fun(intern(lit("logxor"), user_package), func_n2(logxor));
+ reg_fun(intern(lit("logtest"), user_package), func_n2(logtest));
reg_fun(intern(lit("lognot"), user_package), func_n2o(lognot, 1));
reg_fun(intern(lit("logtrunc"), user_package), func_n2(logtrunc));
reg_fun(intern(lit("ash"), user_package), func_n2(ash));
@@ -2302,6 +2303,30 @@ void eval_init(void)
reg_fun(intern(lit("put-byte"), user_package), func_n2o(put_byte, 1));
reg_fun(intern(lit("flush-stream"), user_package), func_n1(flush_stream));
reg_fun(intern(lit("stat"), user_package), func_n1(statf));
+
+ reg_var(intern(lit("s-ifmt"), user_package), &s_ifmt);
+ reg_var(intern(lit("s-iflnk"), user_package), &s_iflnk);
+ reg_var(intern(lit("s-ifreg"), user_package), &s_ifreg);
+ reg_var(intern(lit("s-ifblk"), user_package), &s_ifblk);
+ reg_var(intern(lit("s-ifdir"), user_package), &s_ifdir);
+ reg_var(intern(lit("s-ifchr"), user_package), &s_ifchr);
+ reg_var(intern(lit("s-ififo"), user_package), &s_ififo);
+ reg_var(intern(lit("s-isuid"), user_package), &s_isuid);
+ reg_var(intern(lit("s-isgid"), user_package), &s_isgid);
+ reg_var(intern(lit("s-isvtx"), user_package), &s_isvtx);
+ reg_var(intern(lit("s-irwxu"), user_package), &s_irwxu);
+ reg_var(intern(lit("s-irusr"), user_package), &s_irusr);
+ reg_var(intern(lit("s-iwusr"), user_package), &s_iwusr);
+ reg_var(intern(lit("s-ixusr"), user_package), &s_ixusr);
+ reg_var(intern(lit("s-irwxg"), user_package), &s_irwxg);
+ reg_var(intern(lit("s-irgrp"), user_package), &s_irgrp);
+ reg_var(intern(lit("s-iwgrp"), user_package), &s_iwgrp);
+ reg_var(intern(lit("s-ixgrp"), user_package), &s_ixgrp);
+ reg_var(intern(lit("s-irwxo"), user_package), &s_irwxo);
+ reg_var(intern(lit("s-iroth"), user_package), &s_iroth);
+ reg_var(intern(lit("s-iwoth"), user_package), &s_iwoth);
+ reg_var(intern(lit("s-ixoth"), user_package), &s_ixoth);
+
reg_fun(intern(lit("open-directory"), user_package), func_n1(open_directory));
reg_fun(intern(lit("open-file"), user_package), func_n2(open_file));
reg_fun(intern(lit("open-command"), user_package), func_n2(open_command));