summaryrefslogtreecommitdiff
path: root/Doc
diff options
context:
space:
mode:
Diffstat (limited to 'Doc')
-rw-r--r--Doc/Makefile.in57
-rw-r--r--Doc/Zsh/mod_zselect.yo66
2 files changed, 91 insertions, 32 deletions
diff --git a/Doc/Makefile.in b/Doc/Makefile.in
index 30cde758c..4b67ca875 100644
--- a/Doc/Makefile.in
+++ b/Doc/Makefile.in
@@ -61,7 +61,8 @@ Zsh/mod_deltochar.yo Zsh/mod_example.yo Zsh/mod_files.yo \
Zsh/mod_mapfile.yo Zsh/mod_mathfunc.yo Zsh/mod_parameter.yo Zsh/mod_pcre.yo \
Zsh/mod_sched.yo Zsh/mod_stat.yo Zsh/mod_termcap.yo Zsh/mod_terminfo.yo \
Zsh/mod_zftp.yo Zsh/mod_zle.yo Zsh/mod_zleparameter.yo \
-Zsh/mod_zprof.yo Zsh/mod_zpty.yo Zsh/mod_zutil.yo Zsh/mod_tcp.yo
+Zsh/mod_zprof.yo Zsh/mod_zpty.yo Zsh/mod_zselect.yo \
+Zsh/mod_zutil.yo Zsh/mod_tcp.yo
YODLSRC = zmacros.yo zman.yo ztexi.yo Zsh/arith.yo Zsh/builtins.yo \
Zsh/compat.yo Zsh/compctl.yo Zsh/compsys.yo Zsh/compwid.yo Zsh/cond.yo \
@@ -83,31 +84,27 @@ everything: all dvi ps html
dvi: zsh.dvi
.PHONY: dvi
-zsh.dvi: $(sdir)/zsh.texi
- $(TEXI2DVI) $(sdir)/zsh.texi
+zsh.dvi: zsh.texi
+ $(TEXI2DVI) zsh.texi
-texi: $(sdir)/zsh.texi
+texi: zsh.texi
.PHONY: texi
-$(sdir)/zsh.texi:
+zsh.texi:
$(YODL) -o $@ -I$(sdir) -w ztexi.yo version.yo zsh.yo; \
test -f $@
info: zsh.info
.PHONY: info
-zsh.info: $(sdir)/zsh.texi
- $(MAKEINFO) $(sdir)/zsh.texi
+zsh.info: zsh.texi
+ $(MAKEINFO) zsh.texi
.yo.1:
- case $@ in \
- */*) target=$@ ;; \
- *) target=$(sdir)/$@ ;; \
- esac; \
case '$(YODL)' in :*) ;; *) \
- $(YODL) -I$(sdir) -w zman.yo version.yo $< | sed -e '1s/\\-/-/g' -e '/^\.'\''/d' > $$target \
+ $(YODL) -I$(sdir) -w zman.yo version.yo $< | sed -e '1s/\\-/-/g' -e '/^\.'\''/d' > $@ \
;; esac; \
- test -f $$target
+ test -f $@
ps: us_ps a4_ps
.PHONY: ps
@@ -127,28 +124,24 @@ zsh_a4.ps: zsh.dvi
html: zsh_toc.html
.PHONY: html
-zsh_toc.html: $(sdir)/zsh.texi
- $(TEXI2HTML) $(sdir)/zsh.texi
+zsh_toc.html: zsh.texi
+ $(TEXI2HTML) zsh.texi
zshall.1: zsh.yo
- case $@ in \
- */*) target=$@ ;; \
- *) target=$(sdir)/$@ ;; \
- esac; \
case '$(YODL)' in :*) ;; *) \
- $(YODL) -I$(sdir) -DZSHALL -w zman.yo version.yo zsh.yo | sed -e '1s/\\-/-/g' -e '/^\.'\''/d' > $$target \
+ $(YODL) -I$(sdir) -DZSHALL -w zman.yo version.yo zsh.yo | sed -e '1s/\\-/-/g' -e '/^\.'\''/d' > $@ \
;; esac; \
- test -f $$target
+ test -f $@
../META-FAQ: META-FAQ.yo Zsh/metafaq.yo
case '$(YODL)' in :*) ;; *) \
- $(YODL) -I$(sdir) META-FAQ.yo | sed -e '/NEXTLINE/N' -e '/DELLINE/d' -e '/^SECTHEAD$$/{N;s/^SECTHEAD.//;h;s/./-/g;H;g;}' -e 's/ *$$//' > $(sdir_top)/META-FAQ \
+ $(YODL) -I$(sdir) META-FAQ.yo | sed -e '/NEXTLINE/N' -e '/DELLINE/d' -e '/^SECTHEAD$$/{N;s/^SECTHEAD.//;h;s/./-/g;H;g;}' -e 's/ *$$//' > $@ \
;; esac
- test -f $(sdir_top)/META-FAQ
+ test -f $@
$(YODLDOC): version.yo
-$(sdir)/zsh.texi: $(YODLSRC)
+zsh.texi: $(YODLSRC)
man: $(MAN)
.PHONY: man
@@ -190,7 +183,7 @@ version.yo: $(sdir_top)/Config/version.mk
echo 'def(version)(0)('$(VERSION)')'; \
echo 'def(date)(0)('$(VERSION_DATE)')'; \
echo 'ENDDEF()#' | tr '#' '\\'; \
- ) > $(sdir)/version.yo
+ ) > $@
Zsh/modlist.yo: $(MODDOCSRC)
( \
@@ -218,7 +211,7 @@ Zsh/modlist.yo: $(MODDOCSRC)
mod1=$$mod2; \
mod2=$$mod3; \
done \
- ) > $(sdir)/Zsh/modlist.yo
+ ) > $@
Zsh/modmenu.yo: $(MODDOCSRC)
( \
@@ -228,7 +221,7 @@ Zsh/modmenu.yo: $(MODDOCSRC)
< $(sdir)/$$modfile; \
done; \
echo "endmenu()" \
- ) > $(sdir)/Zsh/modmenu.yo
+ ) > $@
Zsh/manmodmenu.yo: $(MODDOCSRC)
( \
@@ -236,7 +229,7 @@ Zsh/manmodmenu.yo: $(MODDOCSRC)
sed -n '1{s|^COMMENT(!MOD!\(.*\)$$|menu(The \1 Module)|;p;q;}' \
< $(sdir)/$$modfile; \
done \
- ) > $(sdir)/Zsh/manmodmenu.yo
+ ) > $@
# ========== DEPENDENCIES FOR INSTALLING ==========
@@ -252,7 +245,7 @@ uninstall: uninstall.man
install.man: man
${SHELL} $(sdir_top)/mkinstalldirs $(DESTDIR)$(mandir)/man1
for file in $(MAN); do \
- $(INSTALL_DATA) $(sdir)/$$file $(DESTDIR)$(mandir)/man1/`echo $$file | sed 's|zsh|$(tzsh)|'` || exit 1; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(mandir)/man1/`echo $$file | sed 's|zsh|$(tzsh)|'` || exit 1; \
done
.PHONY: install.man
@@ -263,7 +256,7 @@ install.info: texi
mkdir infodir
if ( \
sed '/^@setfilename/s|zsh|$(tzsh)|' \
- < $(sdir)/zsh.texi > infodir/tzsh.texi && \
+ < zsh.texi > infodir/tzsh.texi && \
(cd infodir && $(MAKEINFO) tzsh.texi) && \
for file in infodir/$(tzsh).info*; do \
$(INSTALL_DATA) $$file $(DESTDIR)$(infodir) || exit 1; \
@@ -321,8 +314,8 @@ distclean-here: clean-here
.PHONY: distclean-here
realclean-here: distclean-here
- cd $(sdir) && rm -f Zsh/modlist.yo Zsh/modmenu.yo Zsh/manmodmenu.yo
- cd $(sdir) && rm -f version.yo ../META-FAQ zsh.texi $(MAN)
+ rm -f Zsh/modlist.yo Zsh/modmenu.yo Zsh/manmodmenu.yo
+ rm -f version.yo ../META-FAQ zsh.texi $(MAN)
.PHONY: realclean-here
@CLEAN_MK@
diff --git a/Doc/Zsh/mod_zselect.yo b/Doc/Zsh/mod_zselect.yo
new file mode 100644
index 000000000..506ef033c
--- /dev/null
+++ b/Doc/Zsh/mod_zselect.yo
@@ -0,0 +1,66 @@
+COMMENT(!MOD!zsh/zselect
+Block and return when file descriptors are ready.
+!MOD!)
+The tt(zsh/zselect) module makes available one builtin command:
+
+startitem()
+findex(zselect)
+cindex(select, system call)
+cindex(file descriptors, waiting for)
+item(tt(zselect) [ tt(-rwe) tt(-t) var(timeout) tt(-a) var(array) ] [ var(fd) ... ])(
+The tt(zselect) builtin is a front-end to the `select' system call, which
+blocks until a file descriptor is ready for reading or writing, or has an
+error condition, with an optional timeout. If this is not available on
+your system, the command prints an error message and returns status 2
+(normal errors return status 1). For more information, see your systems
+documentation for manref(select)(3). Note there is no connection with the
+shell builtin of the same name.
+
+Arguments and options may be intermingled in any order. Non-option
+arguments are file descriptors, which must be decimal integers. By
+default, file descriptors are to be tested for reading, i.e. tt(zselect)
+will return when data is availble to be read from the file descriptor, or
+more precisely, when a read operation from the file descriptor will not
+block. After a tt(-r), tt(-w) and tt(-e), the given file descriptors are
+to be tested for reading, writing, or error conditions. These options and
+an arbitrary list of file descriptors may be given in any order.
+
+(The presence of an `error condition' is not well defined in the
+documentation for many implementations of the select system call.
+According to recent versions of the POSIX specification, it is really an
+em(exception) condition, of which the only standard example is out-of-band
+data received on a socket. So zsh users are unlikely to find the tt(-e)
+option useful.)
+
+The option `tt(-t) var(timeout)' specifies a timeout in hundredths of a
+second. This may be zero, in which case the file descriptors will simply
+be polled and tt(zselect) will return immediately. It is possible to call
+zselect with no file descriptors and a non-zero timeout for use as a
+finer-grained replacement for `sleep'; not, however, the return status is
+always 1 for a timeout.
+
+The option `tt(-a) var(array)' indicates that tt(array) should be set to
+indicate the file descriptor(s) which are ready. If the option is not
+given, the array tt(reply) will be used for this purpose. The array will
+contain a string similar to the arguments for tt(zselect). For example,
+
+example(zselect -t 0 -r 0 -w 1)
+
+might return immediately with status 0 and tt($reply) containing `tt(-r 0 -w
+1)' to show that both file descriptors are ready for the requested
+operations.
+
+The option `tt(-A) var(assoc)' indicates that the associative array
+tt(assoc) should be set to indicate the file descriptor(s) which are
+ready. This option overrides the option tt(-a), nor will tt(reply) be
+modified. The keys of tt(assoc) are the file descriptors, and the
+corresponding values are any of the characters `tt(rwe)' to indicate the
+condition.
+
+The command returns 0 if some file descriptors are ready for reading. If
+the operation timed out, or a timeout of 0 was given and no file
+descriptors were ready, or there was an error, it returns status 1 and
+the array will not be set (nor modified in any way). If there was an error
+in the select operation the appropriate error message is printed.
+)
+enditem()