summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-04-16 07:08:05 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-04-16 07:08:05 -0700
commit83aea1f74dd3de219de053d9162f8b217b0530ca (patch)
tree0f44c6424a853a88bbe80c074f7525c1c343d39a
parent656dfb6b5ebde7c8e719fa34570c6725cc3c1640 (diff)
downloadtxr-83aea1f74dd3de219de053d9162f8b217b0530ca.tar.gz
txr-83aea1f74dd3de219de053d9162f8b217b0530ca.tar.bz2
txr-83aea1f74dd3de219de053d9162f8b217b0530ca.zip
Adding chmod.
* configure: Detect chmod. * sysif.c (chmod_wrap): New function. (sysif_init): Register chmod intrinsic. * txr.1: Documented. * tl.vim, txr.vim: Regenerated.
-rw-r--r--ChangeLog13
-rwxr-xr-xconfigure17
-rw-r--r--sysif.c20
-rw-r--r--tl.vim321
-rw-r--r--txr.140
-rw-r--r--txr.vim321
6 files changed, 412 insertions, 320 deletions
diff --git a/ChangeLog b/ChangeLog
index a9bc47a6..dbce9883 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,18 @@
2015-04-16 Kaz Kylheku <kaz@kylheku.com>
+ Adding chmod.
+
+ * configure: Detect chmod.
+
+ * sysif.c (chmod_wrap): New function.
+ (sysif_init): Register chmod intrinsic.
+
+ * txr.1: Documented.
+
+ * tl.vim, txr.vim: Regenerated.
+
+2015-04-16 Kaz Kylheku <kaz@kylheku.com>
+
Adding dotimes macro.
* eval.c (me_dotimes): New function.
diff --git a/configure b/configure
index f813978c..992f014b 100755
--- a/configure
+++ b/configure
@@ -1872,6 +1872,23 @@ else
printf "no\n"
fi
+printf "Checking for chmod ... "
+cat > conftest.c <<!
+#include <sys/stat.h>
+
+int main(void)
+{
+ int r = chmod("a", S_IWUSR);
+ return 0;
+}
+!
+if conftest ; then
+ printf "yes\n"
+ printf "#define HAVE_CHMOD 1\n" >> $config_h
+else
+ printf "no\n"
+fi
+
printf "Checking for _wspawnlp ... "
cat > conftest.c <<!
diff --git a/sysif.c b/sysif.c
index 1126abf2..64a453b0 100644
--- a/sysif.c
+++ b/sysif.c
@@ -325,6 +325,22 @@ static val mknod_wrap(val path, val mode, val dev)
#endif
+#if HAVE_CHMOD
+
+static val chmod_wrap(val path, val mode)
+{
+ char *u8path = utf8_dup_to(c_str(path));
+ int err = chmod(u8path, c_num(mode));
+ free(u8path);
+
+ if (err < 0)
+ uw_throwf(file_error_s, lit("chmod ~a ~a: ~a/~s"),
+ path, mode, num(errno), string_utf8(strerror(errno)), nao);
+ return t;
+}
+
+#endif
+
#if HAVE_SYMLINK
static val symlink_wrap(val target, val to)
@@ -548,6 +564,10 @@ void sysif_init(void)
reg_fun(intern(lit("mknod"), user_package), func_n3(mknod_wrap));
#endif
+#if HAVE_CHMOD
+ reg_fun(intern(lit("chmod"), user_package), func_n2(chmod_wrap));
+#endif
+
#if HAVE_SYMLINK
reg_fun(intern(lit("symlink"), user_package), func_n2(symlink_wrap));
reg_fun(intern(lit("link"), user_package), func_n2(link_wrap));
diff --git a/tl.vim b/tl.vim
index 3d238f63..a6076262 100644
--- a/tl.vim
+++ b/tl.vim
@@ -39,166 +39,167 @@ syn keyword txl_keyword contained bit block boundp break-str
syn keyword txl_keyword contained call callf car caseq
syn keyword txl_keyword contained caseql casequal cat-str cat-streams
syn keyword txl_keyword contained cat-vec catch cdr ceil
-syn keyword txl_keyword contained chain chand chdir chr-isalnum
-syn keyword txl_keyword contained chr-isalpha chr-isascii chr-isblank chr-iscntrl
-syn keyword txl_keyword contained chr-isdigit chr-isgraph chr-islower chr-isprint
-syn keyword txl_keyword contained chr-ispunct chr-isspace chr-isunisp chr-isupper
-syn keyword txl_keyword contained chr-isxdigit chr-num chr-str chr-str-set
-syn keyword txl_keyword contained chr-tolower chr-toupper chrp clear-error
-syn keyword txl_keyword contained close-stream closelog cmp-str collect-each
-syn keyword txl_keyword contained collect-each* comb compl-span-str cond
-syn keyword txl_keyword contained cons conses conses* consp
-syn keyword txl_keyword contained constantp copy copy-alist copy-cons
-syn keyword txl_keyword contained copy-hash copy-list copy-str copy-vec
-syn keyword txl_keyword contained cos count-if countq countql
-syn keyword txl_keyword contained countqual cum-norm-dist daemon dec
-syn keyword txl_keyword contained defmacro defsymacro defun defvar
-syn keyword txl_keyword contained del delay delete-package do
-syn keyword txl_keyword contained dohash downcase-str dup dupfd
-syn keyword txl_keyword contained dwim each each* empty
-syn keyword txl_keyword contained ensure-dir env env-fbind env-hash
-syn keyword txl_keyword contained env-vbind eq eql equal
-syn keyword txl_keyword contained errno error eval evenp
-syn keyword txl_keyword contained exit exp expt exptmod
-syn keyword txl_keyword contained false fbind fboundp fifth
-syn keyword txl_keyword contained fileno filter-equal filter-string-tree finalize
-syn keyword txl_keyword contained find find-if find-max find-min
-syn keyword txl_keyword contained find-package first fixnump flatten
-syn keyword txl_keyword contained flatten* flet flip flo-int
-syn keyword txl_keyword contained flo-str floatp floor flush-stream
-syn keyword txl_keyword contained for for* force fork
-syn keyword txl_keyword contained format fourth fun func-get-env
-syn keyword txl_keyword contained func-get-form func-set-env functionp gcd
-syn keyword txl_keyword contained gen generate gensym gequal
-syn keyword txl_keyword contained get-byte get-char get-error get-error-str
-syn keyword txl_keyword contained get-hash-userdata get-line get-lines get-list-from-stream
-syn keyword txl_keyword contained get-sig-handler get-string get-string-from-stream gethash
-syn keyword txl_keyword contained getitimer getpid getppid giterate
-syn keyword txl_keyword contained glob glob-altdirfunc glob-brace glob-err
-syn keyword txl_keyword contained glob-mark glob-nocheck glob-noescape glob-nomagic
-syn keyword txl_keyword contained glob-nosort glob-onlydir glob-period glob-tilde
-syn keyword txl_keyword contained glob-tilde-check greater group-by gun
-syn keyword txl_keyword contained hash hash-alist hash-construct hash-count
-syn keyword txl_keyword contained hash-diff hash-eql hash-equal hash-isec
-syn keyword txl_keyword contained hash-keys hash-pairs hash-uni hash-update
-syn keyword txl_keyword contained hash-update-1 hash-values hashp html-decode
-syn keyword txl_keyword contained html-encode iapply identity ido
-syn keyword txl_keyword contained if iff iffi iflet
-syn keyword txl_keyword contained ignerr in inc inhash
-syn keyword txl_keyword contained int-flo int-str integerp intern
-syn keyword txl_keyword contained interp-fun-p interpose ip ipf
-syn keyword txl_keyword contained isqrt itimer-prov itimer-real itimer-virtual
-syn keyword txl_keyword contained juxt keep-if keep-if* keywordp
-syn keyword txl_keyword contained kill labels lambda last
-syn keyword txl_keyword contained lazy-str lazy-str-force lazy-str-force-upto lazy-str-get-trailing-list
-syn keyword txl_keyword contained lazy-stream-cons lazy-stringp lbind lcm
-syn keyword txl_keyword contained lcons-fun lconsp ldiff length
-syn keyword txl_keyword contained length-list length-str length-str-< length-str-<=
-syn keyword txl_keyword contained length-str-> length-str->= length-vec lequal
-syn keyword txl_keyword contained less let let* lexical-fun-p
-syn keyword txl_keyword contained lexical-lisp1-binding lexical-var-p link lisp-parse
-syn keyword txl_keyword contained list list* list-str list-vector
-syn keyword txl_keyword contained listp log log-alert log-auth
-syn keyword txl_keyword contained log-authpriv log-cons log-crit log-daemon
-syn keyword txl_keyword contained log-debug log-emerg log-err log-info
-syn keyword txl_keyword contained log-ndelay log-notice log-nowait log-odelay
-syn keyword txl_keyword contained log-perror log-pid log-user log-warning
-syn keyword txl_keyword contained log10 log2 logand logior
-syn keyword txl_keyword contained lognot logtest logtrunc logxor
-syn keyword txl_keyword contained macro-form-p macro-time macroexpand macroexpand-1
-syn keyword txl_keyword contained macrolet major make-catenated-stream make-env
-syn keyword txl_keyword contained make-hash make-lazy-cons make-like make-package
-syn keyword txl_keyword contained make-random-state make-similar-hash make-string-byte-input-stream make-string-input-stream
-syn keyword txl_keyword contained make-string-output-stream make-strlist-output-stream make-sym make-time
-syn keyword txl_keyword contained make-time-utc make-trie makedev mapcar
-syn keyword txl_keyword contained mapcar* mapdo mapf maphash
-syn keyword txl_keyword contained mappend mappend* mask match-fun
-syn keyword txl_keyword contained match-regex match-regex-right match-regst match-regst-right
-syn keyword txl_keyword contained match-str match-str-tree max member
-syn keyword txl_keyword contained member-if memq memql memqual
-syn keyword txl_keyword contained merge min minor minusp
-syn keyword txl_keyword contained mkdir mknod mkstring mod
-syn keyword txl_keyword contained multi multi-sort n-choose-k n-perm-k
-syn keyword txl_keyword contained nconc nilf none not
-syn keyword txl_keyword contained notf nreverse null nullify
-syn keyword txl_keyword contained num-chr num-str numberp oand
-syn keyword txl_keyword contained oddp op open-command open-directory
-syn keyword txl_keyword contained open-file open-fileno open-files open-files*
-syn keyword txl_keyword contained open-pipe open-process open-tail openlog
-syn keyword txl_keyword contained opip or orf packagep
-syn keyword txl_keyword contained pad partition partition* partition-by
-syn keyword txl_keyword contained perm plusp pop pos
-syn keyword txl_keyword contained pos-if pos-max pos-min posq
-syn keyword txl_keyword contained posql posqual pppred ppred
-syn keyword txl_keyword contained pprinl pprint pprof pred
-syn keyword txl_keyword contained prinl print prof prog1
-syn keyword txl_keyword contained progn prop proper-listp push
-syn keyword txl_keyword contained pushhash put-byte put-char put-line
-syn keyword txl_keyword contained put-lines put-string put-strings pwd
-syn keyword txl_keyword contained qquote quasi quasilist quote
-syn keyword txl_keyword contained rand random random-fixnum random-state-p
-syn keyword txl_keyword contained range range* range-regex rcomb
-syn keyword txl_keyword contained read readlink real-time-stream-p reduce-left
-syn keyword txl_keyword contained reduce-right ref refset regex-compile
-syn keyword txl_keyword contained regex-parse regexp regsub rehome-sym
-syn keyword txl_keyword contained remhash remove-if remove-if* remove-path
-syn keyword txl_keyword contained remq remq* remql remql*
-syn keyword txl_keyword contained remqual remqual* rename-path repeat
-syn keyword txl_keyword contained replace replace-list replace-str replace-vec
-syn keyword txl_keyword contained rest ret retf return
-syn keyword txl_keyword contained return-from reverse rlcp rperm
-syn keyword txl_keyword contained rplaca rplacd run s-ifblk
-syn keyword txl_keyword contained s-ifchr s-ifdir s-ififo s-iflnk
-syn keyword txl_keyword contained s-ifmt s-ifreg s-ifsock s-irgrp
-syn keyword txl_keyword contained s-iroth s-irusr s-irwxg s-irwxo
-syn keyword txl_keyword contained s-irwxu s-isgid s-isuid s-isvtx
-syn keyword txl_keyword contained s-iwgrp s-iwoth s-iwusr s-ixgrp
-syn keyword txl_keyword contained s-ixoth s-ixusr search search-regex
-syn keyword txl_keyword contained search-regst search-str search-str-tree second
-syn keyword txl_keyword contained seek-stream select seqp set
-syn keyword txl_keyword contained set-diff set-hash-userdata set-sig-handler sethash
-syn keyword txl_keyword contained setitimer setlogmask sh sig-abrt
-syn keyword txl_keyword contained sig-alrm sig-bus sig-check sig-chld
-syn keyword txl_keyword contained sig-cont sig-fpe sig-hup sig-ill
-syn keyword txl_keyword contained sig-int sig-io sig-iot sig-kill
-syn keyword txl_keyword contained sig-lost sig-pipe sig-poll sig-prof
-syn keyword txl_keyword contained sig-pwr sig-quit sig-segv sig-stkflt
-syn keyword txl_keyword contained sig-stop sig-sys sig-term sig-trap
-syn keyword txl_keyword contained sig-tstp sig-ttin sig-ttou sig-urg
-syn keyword txl_keyword contained sig-usr1 sig-usr2 sig-vtalrm sig-winch
-syn keyword txl_keyword contained sig-xcpu sig-xfsz sign-extend sin
-syn keyword txl_keyword contained sixth size-vec some sort
-syn keyword txl_keyword contained sort-group source-loc source-loc-str span-str
-syn keyword txl_keyword contained splice split-str split-str-set sqrt
-syn keyword txl_keyword contained sssucc ssucc stat stdlib
-syn keyword txl_keyword contained str< str<= str= str>
-syn keyword txl_keyword contained str>= stream-get-prop stream-set-prop streamp
-syn keyword txl_keyword contained string-extend string-lt stringp sub
-syn keyword txl_keyword contained sub-list sub-str sub-vec succ
-syn keyword txl_keyword contained symacrolet symbol-function symbol-name symbol-package
-syn keyword txl_keyword contained symbol-value symbolp symlink sys-qquote
-syn keyword txl_keyword contained sys-splice sys-unquote syslog tan
-syn keyword txl_keyword contained tb tc tf third
-syn keyword txl_keyword contained throw throwf time time-fields-local
-syn keyword txl_keyword contained time-fields-utc time-string-local time-string-utc time-usec
-syn keyword txl_keyword contained tofloat toint tok-str tok-where
-syn keyword txl_keyword contained tostring tostringp tprint transpose
-syn keyword txl_keyword contained tree-bind tree-case tree-find trie-add
-syn keyword txl_keyword contained trie-compress trie-lookup-begin trie-lookup-feed-char trie-value-at
-syn keyword txl_keyword contained trim-str true trunc trunc-rem
-syn keyword txl_keyword contained tuples txr-case txr-if txr-when
-syn keyword txl_keyword contained typeof unget-byte unget-char uniq
-syn keyword txl_keyword contained unique unless unquote until
-syn keyword txl_keyword contained until* upcase-str update url-decode
-syn keyword txl_keyword contained url-encode usleep uw-protect vec
-syn keyword txl_keyword contained vec-push vec-set-length vecref vector
-syn keyword txl_keyword contained vector-list vectorp w-continued w-coredump
-syn keyword txl_keyword contained w-exitstatus w-ifcontinued w-ifexited w-ifsignaled
-syn keyword txl_keyword contained w-ifstopped w-nohang w-stopsig w-termsig
-syn keyword txl_keyword contained w-untraced wait weave when
-syn keyword txl_keyword contained whenlet where while while*
-syn keyword txl_keyword contained whilet width with-saved-vars wrap
-syn keyword txl_keyword contained wrap* zap zerop zip
+syn keyword txl_keyword contained chain chand chdir chmod
+syn keyword txl_keyword contained chr-isalnum chr-isalpha chr-isascii chr-isblank
+syn keyword txl_keyword contained chr-iscntrl chr-isdigit chr-isgraph chr-islower
+syn keyword txl_keyword contained chr-isprint chr-ispunct chr-isspace chr-isunisp
+syn keyword txl_keyword contained chr-isupper chr-isxdigit chr-num chr-str
+syn keyword txl_keyword contained chr-str-set chr-tolower chr-toupper chrp
+syn keyword txl_keyword contained clear-error close-stream closelog cmp-str
+syn keyword txl_keyword contained collect-each collect-each* comb compl-span-str
+syn keyword txl_keyword contained cond cons conses conses*
+syn keyword txl_keyword contained consp constantp copy copy-alist
+syn keyword txl_keyword contained copy-cons copy-hash copy-list copy-str
+syn keyword txl_keyword contained copy-vec cos count-if countq
+syn keyword txl_keyword contained countql countqual cum-norm-dist daemon
+syn keyword txl_keyword contained dec defmacro defsymacro defun
+syn keyword txl_keyword contained defvar del delay delete-package
+syn keyword txl_keyword contained do dohash dotimes downcase-str
+syn keyword txl_keyword contained dup dupfd dwim each
+syn keyword txl_keyword contained each* empty ensure-dir env
+syn keyword txl_keyword contained env-fbind env-hash env-vbind eq
+syn keyword txl_keyword contained eql equal errno error
+syn keyword txl_keyword contained eval evenp exit exp
+syn keyword txl_keyword contained expt exptmod false fbind
+syn keyword txl_keyword contained fboundp fifth fileno filter-equal
+syn keyword txl_keyword contained filter-string-tree finalize find find-if
+syn keyword txl_keyword contained find-max find-min find-package first
+syn keyword txl_keyword contained fixnump flatten flatten* flet
+syn keyword txl_keyword contained flip flo-int flo-str floatp
+syn keyword txl_keyword contained floor flush-stream for for*
+syn keyword txl_keyword contained force fork format fourth
+syn keyword txl_keyword contained fun func-get-env func-get-form func-set-env
+syn keyword txl_keyword contained functionp gcd gen generate
+syn keyword txl_keyword contained gensym gequal get-byte get-char
+syn keyword txl_keyword contained get-error get-error-str get-hash-userdata get-line
+syn keyword txl_keyword contained get-lines get-list-from-stream get-sig-handler get-string
+syn keyword txl_keyword contained get-string-from-stream gethash getitimer getpid
+syn keyword txl_keyword contained getppid giterate glob glob-altdirfunc
+syn keyword txl_keyword contained glob-brace glob-err glob-mark glob-nocheck
+syn keyword txl_keyword contained glob-noescape glob-nomagic glob-nosort glob-onlydir
+syn keyword txl_keyword contained glob-period glob-tilde glob-tilde-check greater
+syn keyword txl_keyword contained group-by gun hash hash-alist
+syn keyword txl_keyword contained hash-construct hash-count hash-diff hash-eql
+syn keyword txl_keyword contained hash-equal hash-isec hash-keys hash-pairs
+syn keyword txl_keyword contained hash-uni hash-update hash-update-1 hash-values
+syn keyword txl_keyword contained hashp html-decode html-encode iapply
+syn keyword txl_keyword contained identity ido if iff
+syn keyword txl_keyword contained iffi iflet ignerr in
+syn keyword txl_keyword contained inc inhash int-flo int-str
+syn keyword txl_keyword contained integerp intern interp-fun-p interpose
+syn keyword txl_keyword contained ip ipf isqrt itimer-prov
+syn keyword txl_keyword contained itimer-real itimer-virtual juxt keep-if
+syn keyword txl_keyword contained keep-if* keywordp kill labels
+syn keyword txl_keyword contained lambda last lazy-str lazy-str-force
+syn keyword txl_keyword contained lazy-str-force-upto lazy-str-get-trailing-list lazy-stream-cons lazy-stringp
+syn keyword txl_keyword contained lbind lcm lcons-fun lconsp
+syn keyword txl_keyword contained ldiff length length-list length-str
+syn keyword txl_keyword contained length-str-< length-str-<= length-str-> length-str->=
+syn keyword txl_keyword contained length-vec lequal less let
+syn keyword txl_keyword contained let* lexical-fun-p lexical-lisp1-binding lexical-var-p
+syn keyword txl_keyword contained link lisp-parse list list*
+syn keyword txl_keyword contained list-str list-vector listp log
+syn keyword txl_keyword contained log-alert log-auth log-authpriv log-cons
+syn keyword txl_keyword contained log-crit log-daemon log-debug log-emerg
+syn keyword txl_keyword contained log-err log-info log-ndelay log-notice
+syn keyword txl_keyword contained log-nowait log-odelay log-perror log-pid
+syn keyword txl_keyword contained log-user log-warning log10 log2
+syn keyword txl_keyword contained logand logior lognot logtest
+syn keyword txl_keyword contained logtrunc logxor macro-form-p macro-time
+syn keyword txl_keyword contained macroexpand macroexpand-1 macrolet major
+syn keyword txl_keyword contained make-catenated-stream make-env make-hash make-lazy-cons
+syn keyword txl_keyword contained make-like make-package make-random-state make-similar-hash
+syn keyword txl_keyword contained make-string-byte-input-stream make-string-input-stream make-string-output-stream make-strlist-output-stream
+syn keyword txl_keyword contained make-sym make-time make-time-utc make-trie
+syn keyword txl_keyword contained makedev mapcar mapcar* mapdo
+syn keyword txl_keyword contained mapf maphash mappend mappend*
+syn keyword txl_keyword contained mask match-fun match-regex match-regex-right
+syn keyword txl_keyword contained match-regst match-regst-right match-str match-str-tree
+syn keyword txl_keyword contained max member member-if memq
+syn keyword txl_keyword contained memql memqual merge min
+syn keyword txl_keyword contained minor minusp mkdir mknod
+syn keyword txl_keyword contained mkstring mod multi multi-sort
+syn keyword txl_keyword contained n-choose-k n-perm-k nconc nilf
+syn keyword txl_keyword contained none not notf nreverse
+syn keyword txl_keyword contained null nullify num-chr num-str
+syn keyword txl_keyword contained numberp oand oddp op
+syn keyword txl_keyword contained open-command open-directory open-file open-fileno
+syn keyword txl_keyword contained open-files open-files* open-pipe open-process
+syn keyword txl_keyword contained open-tail openlog opip or
+syn keyword txl_keyword contained orf packagep pad partition
+syn keyword txl_keyword contained partition* partition-by perm plusp
+syn keyword txl_keyword contained pop pos pos-if pos-max
+syn keyword txl_keyword contained pos-min posq posql posqual
+syn keyword txl_keyword contained pppred ppred pprinl pprint
+syn keyword txl_keyword contained pprof pred prinl print
+syn keyword txl_keyword contained prof prog1 progn prop
+syn keyword txl_keyword contained proper-listp push pushhash put-byte
+syn keyword txl_keyword contained put-char put-line put-lines put-string
+syn keyword txl_keyword contained put-strings pwd qquote quasi
+syn keyword txl_keyword contained quasilist quote rand random
+syn keyword txl_keyword contained random-fixnum random-state-p range range*
+syn keyword txl_keyword contained range-regex rcomb read readlink
+syn keyword txl_keyword contained real-time-stream-p reduce-left reduce-right ref
+syn keyword txl_keyword contained refset regex-compile regex-parse regexp
+syn keyword txl_keyword contained regsub rehome-sym remhash remove-if
+syn keyword txl_keyword contained remove-if* remove-path remq remq*
+syn keyword txl_keyword contained remql remql* remqual remqual*
+syn keyword txl_keyword contained rename-path repeat replace replace-list
+syn keyword txl_keyword contained replace-str replace-vec rest ret
+syn keyword txl_keyword contained retf return return-from reverse
+syn keyword txl_keyword contained rlcp rperm rplaca rplacd
+syn keyword txl_keyword contained run s-ifblk s-ifchr s-ifdir
+syn keyword txl_keyword contained s-ififo s-iflnk s-ifmt s-ifreg
+syn keyword txl_keyword contained s-ifsock s-irgrp s-iroth s-irusr
+syn keyword txl_keyword contained s-irwxg s-irwxo s-irwxu s-isgid
+syn keyword txl_keyword contained s-isuid s-isvtx s-iwgrp s-iwoth
+syn keyword txl_keyword contained s-iwusr s-ixgrp s-ixoth s-ixusr
+syn keyword txl_keyword contained search search-regex search-regst search-str
+syn keyword txl_keyword contained search-str-tree second seek-stream select
+syn keyword txl_keyword contained seqp set set-diff set-hash-userdata
+syn keyword txl_keyword contained set-sig-handler sethash setitimer setlogmask
+syn keyword txl_keyword contained sh sig-abrt sig-alrm sig-bus
+syn keyword txl_keyword contained sig-check sig-chld sig-cont sig-fpe
+syn keyword txl_keyword contained sig-hup sig-ill sig-int sig-io
+syn keyword txl_keyword contained sig-iot sig-kill sig-lost sig-pipe
+syn keyword txl_keyword contained sig-poll sig-prof sig-pwr sig-quit
+syn keyword txl_keyword contained sig-segv sig-stkflt sig-stop sig-sys
+syn keyword txl_keyword contained sig-term sig-trap sig-tstp sig-ttin
+syn keyword txl_keyword contained sig-ttou sig-urg sig-usr1 sig-usr2
+syn keyword txl_keyword contained sig-vtalrm sig-winch sig-xcpu sig-xfsz
+syn keyword txl_keyword contained sign-extend sin sixth size-vec
+syn keyword txl_keyword contained some sort sort-group source-loc
+syn keyword txl_keyword contained source-loc-str span-str splice split-str
+syn keyword txl_keyword contained split-str-set sqrt sssucc ssucc
+syn keyword txl_keyword contained stat stdlib str< str<=
+syn keyword txl_keyword contained str= str> str>= stream-get-prop
+syn keyword txl_keyword contained stream-set-prop streamp string-extend string-lt
+syn keyword txl_keyword contained stringp sub sub-list sub-str
+syn keyword txl_keyword contained sub-vec succ symacrolet symbol-function
+syn keyword txl_keyword contained symbol-name symbol-package symbol-value symbolp
+syn keyword txl_keyword contained symlink sys-qquote sys-splice sys-unquote
+syn keyword txl_keyword contained syslog tan tb tc
+syn keyword txl_keyword contained tf third throw throwf
+syn keyword txl_keyword contained time time-fields-local time-fields-utc time-string-local
+syn keyword txl_keyword contained time-string-utc time-usec tofloat toint
+syn keyword txl_keyword contained tok-str tok-where tostring tostringp
+syn keyword txl_keyword contained tprint transpose tree-bind tree-case
+syn keyword txl_keyword contained tree-find trie-add trie-compress trie-lookup-begin
+syn keyword txl_keyword contained trie-lookup-feed-char trie-value-at trim-str true
+syn keyword txl_keyword contained trunc trunc-rem tuples txr-case
+syn keyword txl_keyword contained txr-if txr-when typeof unget-byte
+syn keyword txl_keyword contained unget-char uniq unique unless
+syn keyword txl_keyword contained unquote until until* upcase-str
+syn keyword txl_keyword contained update url-decode url-encode usleep
+syn keyword txl_keyword contained uw-protect vec vec-push vec-set-length
+syn keyword txl_keyword contained vecref vector vector-list vectorp
+syn keyword txl_keyword contained w-continued w-coredump w-exitstatus w-ifcontinued
+syn keyword txl_keyword contained w-ifexited w-ifsignaled w-ifstopped w-nohang
+syn keyword txl_keyword contained w-stopsig w-termsig w-untraced wait
+syn keyword txl_keyword contained weave when whenlet where
+syn keyword txl_keyword contained while while* whilet width
+syn keyword txl_keyword contained with-saved-vars wrap wrap* zap
+syn keyword txl_keyword contained zerop zip
syn match txr_metanum "@[0-9]\+"
syn match txr_nested_error "[^\t `]\+" contained
diff --git a/txr.1 b/txr.1
index 1b95285e..0319b491 100644
--- a/txr.1
+++ b/txr.1
@@ -24459,6 +24459,46 @@ from a combined device number.
.coNP Function @ mknod
.synb
+.mets (chmod < path << mode )
+.syne
+.desc
+The
+.code chmod
+function changes the permissions of the filesystem objects
+specified by
+.metn path.
+It is a direct wrapper for the POSIX C library function of the same name.
+
+The permissions are specified by
+.metn mode ,
+an integer argument.
+
+The existing permissions may be obtained using the
+.code stat
+function.
+
+The function throws a
+.code file-error
+exception if an error occurs, otherwise it returns
+.codn t.
+
+.TP* Example:
+.cblk
+ ;; Set permissions of foo.txt to "rw-r--r--"
+ ;; (owner can read and write; group owner
+ ;; and other users can only read).
+
+ ;; numerically:
+ (chmod "foo.txt" #o644)
+
+ ;; symbolically:
+ (chmod "foo.txt" (logior s-irusr s-iwusr
+ s-irgrp
+ s-iroth))
+.cble
+
+.coNP Function @ mknod
+.synb
.mets (mknod < path < mode <> [ dev ])
.syne
.desc
diff --git a/txr.vim b/txr.vim
index 39abd499..46c4080c 100644
--- a/txr.vim
+++ b/txr.vim
@@ -39,166 +39,167 @@ syn keyword txl_keyword contained bit block boundp break-str
syn keyword txl_keyword contained call callf car caseq
syn keyword txl_keyword contained caseql casequal cat-str cat-streams
syn keyword txl_keyword contained cat-vec catch cdr ceil
-syn keyword txl_keyword contained chain chand chdir chr-isalnum
-syn keyword txl_keyword contained chr-isalpha chr-isascii chr-isblank chr-iscntrl
-syn keyword txl_keyword contained chr-isdigit chr-isgraph chr-islower chr-isprint
-syn keyword txl_keyword contained chr-ispunct chr-isspace chr-isunisp chr-isupper
-syn keyword txl_keyword contained chr-isxdigit chr-num chr-str chr-str-set
-syn keyword txl_keyword contained chr-tolower chr-toupper chrp clear-error
-syn keyword txl_keyword contained close-stream closelog cmp-str collect-each
-syn keyword txl_keyword contained collect-each* comb compl-span-str cond
-syn keyword txl_keyword contained cons conses conses* consp
-syn keyword txl_keyword contained constantp copy copy-alist copy-cons
-syn keyword txl_keyword contained copy-hash copy-list copy-str copy-vec
-syn keyword txl_keyword contained cos count-if countq countql
-syn keyword txl_keyword contained countqual cum-norm-dist daemon dec
-syn keyword txl_keyword contained defmacro defsymacro defun defvar
-syn keyword txl_keyword contained del delay delete-package do
-syn keyword txl_keyword contained dohash downcase-str dup dupfd
-syn keyword txl_keyword contained dwim each each* empty
-syn keyword txl_keyword contained ensure-dir env env-fbind env-hash
-syn keyword txl_keyword contained env-vbind eq eql equal
-syn keyword txl_keyword contained errno error eval evenp
-syn keyword txl_keyword contained exit exp expt exptmod
-syn keyword txl_keyword contained false fbind fboundp fifth
-syn keyword txl_keyword contained fileno filter-equal filter-string-tree finalize
-syn keyword txl_keyword contained find find-if find-max find-min
-syn keyword txl_keyword contained find-package first fixnump flatten
-syn keyword txl_keyword contained flatten* flet flip flo-int
-syn keyword txl_keyword contained flo-str floatp floor flush-stream
-syn keyword txl_keyword contained for for* force fork
-syn keyword txl_keyword contained format fourth fun func-get-env
-syn keyword txl_keyword contained func-get-form func-set-env functionp gcd
-syn keyword txl_keyword contained gen generate gensym gequal
-syn keyword txl_keyword contained get-byte get-char get-error get-error-str
-syn keyword txl_keyword contained get-hash-userdata get-line get-lines get-list-from-stream
-syn keyword txl_keyword contained get-sig-handler get-string get-string-from-stream gethash
-syn keyword txl_keyword contained getitimer getpid getppid giterate
-syn keyword txl_keyword contained glob glob-altdirfunc glob-brace glob-err
-syn keyword txl_keyword contained glob-mark glob-nocheck glob-noescape glob-nomagic
-syn keyword txl_keyword contained glob-nosort glob-onlydir glob-period glob-tilde
-syn keyword txl_keyword contained glob-tilde-check greater group-by gun
-syn keyword txl_keyword contained hash hash-alist hash-construct hash-count
-syn keyword txl_keyword contained hash-diff hash-eql hash-equal hash-isec
-syn keyword txl_keyword contained hash-keys hash-pairs hash-uni hash-update
-syn keyword txl_keyword contained hash-update-1 hash-values hashp html-decode
-syn keyword txl_keyword contained html-encode iapply identity ido
-syn keyword txl_keyword contained if iff iffi iflet
-syn keyword txl_keyword contained ignerr in inc inhash
-syn keyword txl_keyword contained int-flo int-str integerp intern
-syn keyword txl_keyword contained interp-fun-p interpose ip ipf
-syn keyword txl_keyword contained isqrt itimer-prov itimer-real itimer-virtual
-syn keyword txl_keyword contained juxt keep-if keep-if* keywordp
-syn keyword txl_keyword contained kill labels lambda last
-syn keyword txl_keyword contained lazy-str lazy-str-force lazy-str-force-upto lazy-str-get-trailing-list
-syn keyword txl_keyword contained lazy-stream-cons lazy-stringp lbind lcm
-syn keyword txl_keyword contained lcons-fun lconsp ldiff length
-syn keyword txl_keyword contained length-list length-str length-str-< length-str-<=
-syn keyword txl_keyword contained length-str-> length-str->= length-vec lequal
-syn keyword txl_keyword contained less let let* lexical-fun-p
-syn keyword txl_keyword contained lexical-lisp1-binding lexical-var-p link lisp-parse
-syn keyword txl_keyword contained list list* list-str list-vector
-syn keyword txl_keyword contained listp log log-alert log-auth
-syn keyword txl_keyword contained log-authpriv log-cons log-crit log-daemon
-syn keyword txl_keyword contained log-debug log-emerg log-err log-info
-syn keyword txl_keyword contained log-ndelay log-notice log-nowait log-odelay
-syn keyword txl_keyword contained log-perror log-pid log-user log-warning
-syn keyword txl_keyword contained log10 log2 logand logior
-syn keyword txl_keyword contained lognot logtest logtrunc logxor
-syn keyword txl_keyword contained macro-form-p macro-time macroexpand macroexpand-1
-syn keyword txl_keyword contained macrolet major make-catenated-stream make-env
-syn keyword txl_keyword contained make-hash make-lazy-cons make-like make-package
-syn keyword txl_keyword contained make-random-state make-similar-hash make-string-byte-input-stream make-string-input-stream
-syn keyword txl_keyword contained make-string-output-stream make-strlist-output-stream make-sym make-time
-syn keyword txl_keyword contained make-time-utc make-trie makedev mapcar
-syn keyword txl_keyword contained mapcar* mapdo mapf maphash
-syn keyword txl_keyword contained mappend mappend* mask match-fun
-syn keyword txl_keyword contained match-regex match-regex-right match-regst match-regst-right
-syn keyword txl_keyword contained match-str match-str-tree max member
-syn keyword txl_keyword contained member-if memq memql memqual
-syn keyword txl_keyword contained merge min minor minusp
-syn keyword txl_keyword contained mkdir mknod mkstring mod
-syn keyword txl_keyword contained multi multi-sort n-choose-k n-perm-k
-syn keyword txl_keyword contained nconc nilf none not
-syn keyword txl_keyword contained notf nreverse null nullify
-syn keyword txl_keyword contained num-chr num-str numberp oand
-syn keyword txl_keyword contained oddp op open-command open-directory
-syn keyword txl_keyword contained open-file open-fileno open-files open-files*
-syn keyword txl_keyword contained open-pipe open-process open-tail openlog
-syn keyword txl_keyword contained opip or orf packagep
-syn keyword txl_keyword contained pad partition partition* partition-by
-syn keyword txl_keyword contained perm plusp pop pos
-syn keyword txl_keyword contained pos-if pos-max pos-min posq
-syn keyword txl_keyword contained posql posqual pppred ppred
-syn keyword txl_keyword contained pprinl pprint pprof pred
-syn keyword txl_keyword contained prinl print prof prog1
-syn keyword txl_keyword contained progn prop proper-listp push
-syn keyword txl_keyword contained pushhash put-byte put-char put-line
-syn keyword txl_keyword contained put-lines put-string put-strings pwd
-syn keyword txl_keyword contained qquote quasi quasilist quote
-syn keyword txl_keyword contained rand random random-fixnum random-state-p
-syn keyword txl_keyword contained range range* range-regex rcomb
-syn keyword txl_keyword contained read readlink real-time-stream-p reduce-left
-syn keyword txl_keyword contained reduce-right ref refset regex-compile
-syn keyword txl_keyword contained regex-parse regexp regsub rehome-sym
-syn keyword txl_keyword contained remhash remove-if remove-if* remove-path
-syn keyword txl_keyword contained remq remq* remql remql*
-syn keyword txl_keyword contained remqual remqual* rename-path repeat
-syn keyword txl_keyword contained replace replace-list replace-str replace-vec
-syn keyword txl_keyword contained rest ret retf return
-syn keyword txl_keyword contained return-from reverse rlcp rperm
-syn keyword txl_keyword contained rplaca rplacd run s-ifblk
-syn keyword txl_keyword contained s-ifchr s-ifdir s-ififo s-iflnk
-syn keyword txl_keyword contained s-ifmt s-ifreg s-ifsock s-irgrp
-syn keyword txl_keyword contained s-iroth s-irusr s-irwxg s-irwxo
-syn keyword txl_keyword contained s-irwxu s-isgid s-isuid s-isvtx
-syn keyword txl_keyword contained s-iwgrp s-iwoth s-iwusr s-ixgrp
-syn keyword txl_keyword contained s-ixoth s-ixusr search search-regex
-syn keyword txl_keyword contained search-regst search-str search-str-tree second
-syn keyword txl_keyword contained seek-stream select seqp set
-syn keyword txl_keyword contained set-diff set-hash-userdata set-sig-handler sethash
-syn keyword txl_keyword contained setitimer setlogmask sh sig-abrt
-syn keyword txl_keyword contained sig-alrm sig-bus sig-check sig-chld
-syn keyword txl_keyword contained sig-cont sig-fpe sig-hup sig-ill
-syn keyword txl_keyword contained sig-int sig-io sig-iot sig-kill
-syn keyword txl_keyword contained sig-lost sig-pipe sig-poll sig-prof
-syn keyword txl_keyword contained sig-pwr sig-quit sig-segv sig-stkflt
-syn keyword txl_keyword contained sig-stop sig-sys sig-term sig-trap
-syn keyword txl_keyword contained sig-tstp sig-ttin sig-ttou sig-urg
-syn keyword txl_keyword contained sig-usr1 sig-usr2 sig-vtalrm sig-winch
-syn keyword txl_keyword contained sig-xcpu sig-xfsz sign-extend sin
-syn keyword txl_keyword contained sixth size-vec some sort
-syn keyword txl_keyword contained sort-group source-loc source-loc-str span-str
-syn keyword txl_keyword contained splice split-str split-str-set sqrt
-syn keyword txl_keyword contained sssucc ssucc stat stdlib
-syn keyword txl_keyword contained str< str<= str= str>
-syn keyword txl_keyword contained str>= stream-get-prop stream-set-prop streamp
-syn keyword txl_keyword contained string-extend string-lt stringp sub
-syn keyword txl_keyword contained sub-list sub-str sub-vec succ
-syn keyword txl_keyword contained symacrolet symbol-function symbol-name symbol-package
-syn keyword txl_keyword contained symbol-value symbolp symlink sys-qquote
-syn keyword txl_keyword contained sys-splice sys-unquote syslog tan
-syn keyword txl_keyword contained tb tc tf third
-syn keyword txl_keyword contained throw throwf time time-fields-local
-syn keyword txl_keyword contained time-fields-utc time-string-local time-string-utc time-usec
-syn keyword txl_keyword contained tofloat toint tok-str tok-where
-syn keyword txl_keyword contained tostring tostringp tprint transpose
-syn keyword txl_keyword contained tree-bind tree-case tree-find trie-add
-syn keyword txl_keyword contained trie-compress trie-lookup-begin trie-lookup-feed-char trie-value-at
-syn keyword txl_keyword contained trim-str true trunc trunc-rem
-syn keyword txl_keyword contained tuples txr-case txr-if txr-when
-syn keyword txl_keyword contained typeof unget-byte unget-char uniq
-syn keyword txl_keyword contained unique unless unquote until
-syn keyword txl_keyword contained until* upcase-str update url-decode
-syn keyword txl_keyword contained url-encode usleep uw-protect vec
-syn keyword txl_keyword contained vec-push vec-set-length vecref vector
-syn keyword txl_keyword contained vector-list vectorp w-continued w-coredump
-syn keyword txl_keyword contained w-exitstatus w-ifcontinued w-ifexited w-ifsignaled
-syn keyword txl_keyword contained w-ifstopped w-nohang w-stopsig w-termsig
-syn keyword txl_keyword contained w-untraced wait weave when
-syn keyword txl_keyword contained whenlet where while while*
-syn keyword txl_keyword contained whilet width with-saved-vars wrap
-syn keyword txl_keyword contained wrap* zap zerop zip
+syn keyword txl_keyword contained chain chand chdir chmod
+syn keyword txl_keyword contained chr-isalnum chr-isalpha chr-isascii chr-isblank
+syn keyword txl_keyword contained chr-iscntrl chr-isdigit chr-isgraph chr-islower
+syn keyword txl_keyword contained chr-isprint chr-ispunct chr-isspace chr-isunisp
+syn keyword txl_keyword contained chr-isupper chr-isxdigit chr-num chr-str
+syn keyword txl_keyword contained chr-str-set chr-tolower chr-toupper chrp
+syn keyword txl_keyword contained clear-error close-stream closelog cmp-str
+syn keyword txl_keyword contained collect-each collect-each* comb compl-span-str
+syn keyword txl_keyword contained cond cons conses conses*
+syn keyword txl_keyword contained consp constantp copy copy-alist
+syn keyword txl_keyword contained copy-cons copy-hash copy-list copy-str
+syn keyword txl_keyword contained copy-vec cos count-if countq
+syn keyword txl_keyword contained countql countqual cum-norm-dist daemon
+syn keyword txl_keyword contained dec defmacro defsymacro defun
+syn keyword txl_keyword contained defvar del delay delete-package
+syn keyword txl_keyword contained do dohash dotimes downcase-str
+syn keyword txl_keyword contained dup dupfd dwim each
+syn keyword txl_keyword contained each* empty ensure-dir env
+syn keyword txl_keyword contained env-fbind env-hash env-vbind eq
+syn keyword txl_keyword contained eql equal errno error
+syn keyword txl_keyword contained eval evenp exit exp
+syn keyword txl_keyword contained expt exptmod false fbind
+syn keyword txl_keyword contained fboundp fifth fileno filter-equal
+syn keyword txl_keyword contained filter-string-tree finalize find find-if
+syn keyword txl_keyword contained find-max find-min find-package first
+syn keyword txl_keyword contained fixnump flatten flatten* flet
+syn keyword txl_keyword contained flip flo-int flo-str floatp
+syn keyword txl_keyword contained floor flush-stream for for*
+syn keyword txl_keyword contained force fork format fourth
+syn keyword txl_keyword contained fun func-get-env func-get-form func-set-env
+syn keyword txl_keyword contained functionp gcd gen generate
+syn keyword txl_keyword contained gensym gequal get-byte get-char
+syn keyword txl_keyword contained get-error get-error-str get-hash-userdata get-line
+syn keyword txl_keyword contained get-lines get-list-from-stream get-sig-handler get-string
+syn keyword txl_keyword contained get-string-from-stream gethash getitimer getpid
+syn keyword txl_keyword contained getppid giterate glob glob-altdirfunc
+syn keyword txl_keyword contained glob-brace glob-err glob-mark glob-nocheck
+syn keyword txl_keyword contained glob-noescape glob-nomagic glob-nosort glob-onlydir
+syn keyword txl_keyword contained glob-period glob-tilde glob-tilde-check greater
+syn keyword txl_keyword contained group-by gun hash hash-alist
+syn keyword txl_keyword contained hash-construct hash-count hash-diff hash-eql
+syn keyword txl_keyword contained hash-equal hash-isec hash-keys hash-pairs
+syn keyword txl_keyword contained hash-uni hash-update hash-update-1 hash-values
+syn keyword txl_keyword contained hashp html-decode html-encode iapply
+syn keyword txl_keyword contained identity ido if iff
+syn keyword txl_keyword contained iffi iflet ignerr in
+syn keyword txl_keyword contained inc inhash int-flo int-str
+syn keyword txl_keyword contained integerp intern interp-fun-p interpose
+syn keyword txl_keyword contained ip ipf isqrt itimer-prov
+syn keyword txl_keyword contained itimer-real itimer-virtual juxt keep-if
+syn keyword txl_keyword contained keep-if* keywordp kill labels
+syn keyword txl_keyword contained lambda last lazy-str lazy-str-force
+syn keyword txl_keyword contained lazy-str-force-upto lazy-str-get-trailing-list lazy-stream-cons lazy-stringp
+syn keyword txl_keyword contained lbind lcm lcons-fun lconsp
+syn keyword txl_keyword contained ldiff length length-list length-str
+syn keyword txl_keyword contained length-str-< length-str-<= length-str-> length-str->=
+syn keyword txl_keyword contained length-vec lequal less let
+syn keyword txl_keyword contained let* lexical-fun-p lexical-lisp1-binding lexical-var-p
+syn keyword txl_keyword contained link lisp-parse list list*
+syn keyword txl_keyword contained list-str list-vector listp log
+syn keyword txl_keyword contained log-alert log-auth log-authpriv log-cons
+syn keyword txl_keyword contained log-crit log-daemon log-debug log-emerg
+syn keyword txl_keyword contained log-err log-info log-ndelay log-notice
+syn keyword txl_keyword contained log-nowait log-odelay log-perror log-pid
+syn keyword txl_keyword contained log-user log-warning log10 log2
+syn keyword txl_keyword contained logand logior lognot logtest
+syn keyword txl_keyword contained logtrunc logxor macro-form-p macro-time
+syn keyword txl_keyword contained macroexpand macroexpand-1 macrolet major
+syn keyword txl_keyword contained make-catenated-stream make-env make-hash make-lazy-cons
+syn keyword txl_keyword contained make-like make-package make-random-state make-similar-hash
+syn keyword txl_keyword contained make-string-byte-input-stream make-string-input-stream make-string-output-stream make-strlist-output-stream
+syn keyword txl_keyword contained make-sym make-time make-time-utc make-trie
+syn keyword txl_keyword contained makedev mapcar mapcar* mapdo
+syn keyword txl_keyword contained mapf maphash mappend mappend*
+syn keyword txl_keyword contained mask match-fun match-regex match-regex-right
+syn keyword txl_keyword contained match-regst match-regst-right match-str match-str-tree
+syn keyword txl_keyword contained max member member-if memq
+syn keyword txl_keyword contained memql memqual merge min
+syn keyword txl_keyword contained minor minusp mkdir mknod
+syn keyword txl_keyword contained mkstring mod multi multi-sort
+syn keyword txl_keyword contained n-choose-k n-perm-k nconc nilf
+syn keyword txl_keyword contained none not notf nreverse
+syn keyword txl_keyword contained null nullify num-chr num-str
+syn keyword txl_keyword contained numberp oand oddp op
+syn keyword txl_keyword contained open-command open-directory open-file open-fileno
+syn keyword txl_keyword contained open-files open-files* open-pipe open-process
+syn keyword txl_keyword contained open-tail openlog opip or
+syn keyword txl_keyword contained orf packagep pad partition
+syn keyword txl_keyword contained partition* partition-by perm plusp
+syn keyword txl_keyword contained pop pos pos-if pos-max
+syn keyword txl_keyword contained pos-min posq posql posqual
+syn keyword txl_keyword contained pppred ppred pprinl pprint
+syn keyword txl_keyword contained pprof pred prinl print
+syn keyword txl_keyword contained prof prog1 progn prop
+syn keyword txl_keyword contained proper-listp push pushhash put-byte
+syn keyword txl_keyword contained put-char put-line put-lines put-string
+syn keyword txl_keyword contained put-strings pwd qquote quasi
+syn keyword txl_keyword contained quasilist quote rand random
+syn keyword txl_keyword contained random-fixnum random-state-p range range*
+syn keyword txl_keyword contained range-regex rcomb read readlink
+syn keyword txl_keyword contained real-time-stream-p reduce-left reduce-right ref
+syn keyword txl_keyword contained refset regex-compile regex-parse regexp
+syn keyword txl_keyword contained regsub rehome-sym remhash remove-if
+syn keyword txl_keyword contained remove-if* remove-path remq remq*
+syn keyword txl_keyword contained remql remql* remqual remqual*
+syn keyword txl_keyword contained rename-path repeat replace replace-list
+syn keyword txl_keyword contained replace-str replace-vec rest ret
+syn keyword txl_keyword contained retf return return-from reverse
+syn keyword txl_keyword contained rlcp rperm rplaca rplacd
+syn keyword txl_keyword contained run s-ifblk s-ifchr s-ifdir
+syn keyword txl_keyword contained s-ififo s-iflnk s-ifmt s-ifreg
+syn keyword txl_keyword contained s-ifsock s-irgrp s-iroth s-irusr
+syn keyword txl_keyword contained s-irwxg s-irwxo s-irwxu s-isgid
+syn keyword txl_keyword contained s-isuid s-isvtx s-iwgrp s-iwoth
+syn keyword txl_keyword contained s-iwusr s-ixgrp s-ixoth s-ixusr
+syn keyword txl_keyword contained search search-regex search-regst search-str
+syn keyword txl_keyword contained search-str-tree second seek-stream select
+syn keyword txl_keyword contained seqp set set-diff set-hash-userdata
+syn keyword txl_keyword contained set-sig-handler sethash setitimer setlogmask
+syn keyword txl_keyword contained sh sig-abrt sig-alrm sig-bus
+syn keyword txl_keyword contained sig-check sig-chld sig-cont sig-fpe
+syn keyword txl_keyword contained sig-hup sig-ill sig-int sig-io
+syn keyword txl_keyword contained sig-iot sig-kill sig-lost sig-pipe
+syn keyword txl_keyword contained sig-poll sig-prof sig-pwr sig-quit
+syn keyword txl_keyword contained sig-segv sig-stkflt sig-stop sig-sys
+syn keyword txl_keyword contained sig-term sig-trap sig-tstp sig-ttin
+syn keyword txl_keyword contained sig-ttou sig-urg sig-usr1 sig-usr2
+syn keyword txl_keyword contained sig-vtalrm sig-winch sig-xcpu sig-xfsz
+syn keyword txl_keyword contained sign-extend sin sixth size-vec
+syn keyword txl_keyword contained some sort sort-group source-loc
+syn keyword txl_keyword contained source-loc-str span-str splice split-str
+syn keyword txl_keyword contained split-str-set sqrt sssucc ssucc
+syn keyword txl_keyword contained stat stdlib str< str<=
+syn keyword txl_keyword contained str= str> str>= stream-get-prop
+syn keyword txl_keyword contained stream-set-prop streamp string-extend string-lt
+syn keyword txl_keyword contained stringp sub sub-list sub-str
+syn keyword txl_keyword contained sub-vec succ symacrolet symbol-function
+syn keyword txl_keyword contained symbol-name symbol-package symbol-value symbolp
+syn keyword txl_keyword contained symlink sys-qquote sys-splice sys-unquote
+syn keyword txl_keyword contained syslog tan tb tc
+syn keyword txl_keyword contained tf third throw throwf
+syn keyword txl_keyword contained time time-fields-local time-fields-utc time-string-local
+syn keyword txl_keyword contained time-string-utc time-usec tofloat toint
+syn keyword txl_keyword contained tok-str tok-where tostring tostringp
+syn keyword txl_keyword contained tprint transpose tree-bind tree-case
+syn keyword txl_keyword contained tree-find trie-add trie-compress trie-lookup-begin
+syn keyword txl_keyword contained trie-lookup-feed-char trie-value-at trim-str true
+syn keyword txl_keyword contained trunc trunc-rem tuples txr-case
+syn keyword txl_keyword contained txr-if txr-when typeof unget-byte
+syn keyword txl_keyword contained unget-char uniq unique unless
+syn keyword txl_keyword contained unquote until until* upcase-str
+syn keyword txl_keyword contained update url-decode url-encode usleep
+syn keyword txl_keyword contained uw-protect vec vec-push vec-set-length
+syn keyword txl_keyword contained vecref vector vector-list vectorp
+syn keyword txl_keyword contained w-continued w-coredump w-exitstatus w-ifcontinued
+syn keyword txl_keyword contained w-ifexited w-ifsignaled w-ifstopped w-nohang
+syn keyword txl_keyword contained w-stopsig w-termsig w-untraced wait
+syn keyword txl_keyword contained weave when whenlet where
+syn keyword txl_keyword contained while while* whilet width
+syn keyword txl_keyword contained with-saved-vars wrap wrap* zap
+syn keyword txl_keyword contained zerop zip
syn keyword txr_keyword contained accept all and assert
syn keyword txr_keyword contained bind block cases cat