diff options
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/Makefile.in | 11 | ||||
-rw-r--r-- | Doc/Zsh/builtins.yo | 20 | ||||
-rw-r--r-- | Doc/Zsh/expn.yo | 108 | ||||
-rw-r--r-- | Doc/ztexi.yo | 6 |
4 files changed, 137 insertions, 8 deletions
diff --git a/Doc/Makefile.in b/Doc/Makefile.in index 1f8fa5ff9..e22f3c71d 100644 --- a/Doc/Makefile.in +++ b/Doc/Makefile.in @@ -112,11 +112,11 @@ version.yo: $(sdir_top)/Config/version.mk # ========== DEPENDENCIES FOR INSTALLING ========== -# install all the documentation -install: install.man install.info +# install just installs the manual pages +install: install.man -# uninstall all the documentation -uninstall: uninstall.man uninstall.info +# uninstall just unistalls the manual pages +uninstall: uninstall.man # install man pages, creating install directory if necessary install.man: $(MAN) @@ -141,6 +141,9 @@ install.info: zsh.info else :; \ fi || exit 1; \ done + if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \ + install-info --dir-file=$(infodir)/dir $(infodir)/zsh.info; \ + else true; fi install.html: zsh_toc.html $(sdir_top)/mkinstalldirs $(htmldir) diff --git a/Doc/Zsh/builtins.yo b/Doc/Zsh/builtins.yo index 82562fcbe..98110d122 100644 --- a/Doc/Zsh/builtins.yo +++ b/Doc/Zsh/builtins.yo @@ -878,7 +878,10 @@ Equivalent to tt(whence -v). findex(typeset) cindex(parameters, setting) cindex(parameters, declaring) -item(tt(typeset) [ {tt(PLUS())|tt(-)}tt(ALRUZafilrtuxm) [var(n)]] [ var(name)[tt(=)var(value)] ... ])( +xitem(tt(typeset) [ {tt(PLUS())|tt(-)}tt(ALRUZafilrtuxm) [var(n)]] [ \ +var(name)[tt(=)var(value)] ... ]) +item(tt(typeset) -T [ {tt(PLUS()|tt(-))}tt(LRUZrux) ] \ + var(SCALAR)[tt(=)var(value)] var(array))( Set or display attributes and values for shell parameters. A parameter is created for each var(name) that does not already refer @@ -891,7 +894,7 @@ ifnzman(noderef(Local Parameters))\ which case the parameter is exported em(only) when var(name) does not already appear in the environment. -For each nofill(var(name)tt(=)var(value)) assignment, the parameter +For each var(name)tt(=)var(value) assignment, the parameter var(name) set to var(value). Note that arrays currently cannot be assigned in tt(typeset) expressions; scalars and integers only. @@ -899,6 +902,19 @@ For each remaining var(name) that refers to a parameter that is set, the name and value of the parameter are printed in the form of an assignment. Nothing is printed for newly-created parameters. +If the tt(-T) option is given, exactly two (or zero) var(name) +arguments must be present. They represent a scalar and an array (in +that order) that will be tied together in the manner of tt($PATH) and +tt($path). In other words, an array present in the latter variable +appears as a scalar with the elements of the array joined by colons in +the former. Only the scalar may have an initial value. Both the +scalar and the array may otherwise be manipulated as normal. If one +is unset, the other will automatically be unset too. There is no way +of untying the variables without unsetting them, or converting the +type of one them with another tt(typeset) command; tt(+T) does not work, +assigning an array to var(SCALAR) is an error, and assigning a scalar +to var(array) sets it to be a single-element array. + If no var(name) is present, the names and values of all parameters are printed. In this case the attribute flags restrict the the display to only those parameters that have the specified attributes. Using diff --git a/Doc/Zsh/expn.yo b/Doc/Zsh/expn.yo index 32cc27f4e..87ef13d06 100644 --- a/Doc/Zsh/expn.yo +++ b/Doc/Zsh/expn.yo @@ -602,6 +602,46 @@ item(tt(f))( Split the result of the expansion to lines. This is a shorthand for `tt(ps:\n:)'. ) +item(tt(t))( +Don't work on the value of the parameter, but on a string describing +the type of the parameter. This string consists of keywords separated +by hyphens (`tt(-)'). The first keyword in the string describes the +main type, it can be one of `tt(scalar)', `tt(array)', `tt(integer)', +or `tt(association)'. The other keywords describe the type in more +detail: + +startitem() +item(`tt(left)')( +for left justified parameters +) +item(`tt(right_blanks)')( +for right justified parameters with leading blanks +) +item(`tt(right_zeros)')( +for right justified parameters with leading zeros +) +item(`tt(lower)')( +for parameters whose value is converted to all lower case when it is +expanded +) +item(`tt(upper)')( +for parameters whose value is converted to all upper case when it is +expanded +) +item(`tt(readonly)')( +for readonly parameters +) +item(`tt(tag)')( +for tagged parameters +) +item(`tt(export)')( +for exported parameters +) +item(`tt(unique)')( +for arrays which keep only the first occurrence of duplicated values +) +enditem() +) enditem() The following flags are meaningful with the tt(${)...tt(#)...tt(}), @@ -1048,6 +1088,49 @@ setgid files (02000) item(tt(t))( files with the sticky bit (01000) ) +item(tt(o)var(spec))( +files with access rights matching var(spec). This var(spec) may be a +octal number optionally preceded by a `tt(=)', a `tt(PLUS())', or a +`tt(-)'. If none of these characters is given, the behavior is the +same as for `tt(=)'. The octal number decribes the mode bits to be +expected, if combined with a `tt(=)', the value given must match the +file-modes exactly, with a `tt(PLUS())', at least the bits in the +given number must be set in the file-modes, and with a `tt(-)', the +bits in the number must not be set. Giving a `tt(?)' instead of a +octal digit anywhere in the number ensures that the corresponding bits +inthe file-modes are not checked, this is only useful in combination +with `tt(=)'. + +If the qualifier `tt(o)' is followed by any other character anything +up to the next matching character (`tt([)', `tt({)', and `tt(<)' match +`tt(])', `tt(})', and `tt(>)' respectively, any other character +matches itself) is taken as a list of comma-separated +var(sub-spec)s. Each var(sub-spec) may be either a octal number as +described above or a list of any of the characters `tt(u)', `tt(g)', +`tt(o)', and `tt(a)', followed by a `tt(=)', a `tt(PLUS())', or a +`tt(-)', followed by a list of any of the characters `tt(r)', `tt(w)', +`tt(x)', `tt(s)', and `tt(t)', or a octal digit. The first list of +characters specify which acess rights are to be checked. If a `tt(u)' +is given, those for the owner of the file are used, if a `tt(g)' is +given, those of the group are checked, a `tt(o)' means to test those +of other users, and the `tt(a)' says to test all three groups. The +`tt(=)', `tt(PLUS())', and `tt(-)' again says how the modes are to be +checked and have the same meaning as described for the first form +above. The second list of characters finally says which access rights +are to be expected: `tt(r)' for read access, `tt(w)' for write access, +`tt(x)' for the right to execute the file (or to search a directory), +`tt(s)' for the setuid and setgid bits, and `tt(t)' for the sticky +bit. + +Thus, `tt(*(o70?))' gives the files for which the owner has read, +write, and execute permission, and for which other group members have +no rights, independent of the permissions for other user. The pattern +`tt(*(o-100))' gives all files for which the owner does not have +execute permission, and `tt(*(o:gu+w,o-rx))' gives the files for which +the owner and the other members of the group have at least write +permission, and fo which other users don't have read or execute +permission. +) item(tt(d)var(dev))( files on the device var(dev) ) @@ -1065,8 +1148,8 @@ item(tt(u)var(id))( files owned by user ID var(id) if it is a number, if not, than the character after the `tt(u)' will be used as a separator and the string between it and the next matching separator -(`tt(LPAR())', `tt([)', `tt({)', and `tt(<)' -match `tt(RPAR())', `tt(])', `tt(})', and `tt(>)' respectively, +(`tt([)', `tt({)', and `tt(<)' +match `tt(])', `tt(})', and `tt(>)' respectively, any other character matches itself) will be taken as a user name, and the user ID of this user will be taken (e.g. `tt(u:foo:)' or `tt(u[foo])' for user `tt(foo)') @@ -1122,6 +1205,27 @@ item(tt(D))( sets the tt(GLOB_DOTS) option for the current pattern pindex(GLOB_DOTS, setting in pattern) ) +item(tt(O)var(c))( +specifies how the names of the files should be sorted. If var(c) is +tt(n) they are sorted by name (the default), if var(c) is tt(L) they +are sorted depending on the size (length) of the files, tt(l) makes +them be sorted by the number of links, and tt(a), tt(m), and tt(c) +make them be sorted by the time of the last access, modification, and +inode change respectively. Note that tt(a), tt(m), and tt(c) compare +the age to the current time, so the first name in the list is the +one of the youngest file. Also note that the modifiers tt(^) and tt(-) are +used, so `tt(*(^-OL))' gives a list of all files sorted by file size in +descending order working not on symbolic links but on the files they +point to. +) +item(tt([)var(beg)[tt(,)var(end)]tt(]))( +specifies which of the matched filenames should be included in the +returned list. The syntax is the same as for array +subscripts. var(beg) and the optional var(end) may be mathematical +expressions. As in parameter subscripting they may be negative to make +them count from the last match backward. E.g.: `tt(*(^-OL[1,3]))' +gives a list of the names of three biggest files. +) enditem() More than one of these lists can be combined, separated by commas. The diff --git a/Doc/ztexi.yo b/Doc/ztexi.yo index b8e115ec0..7388c61aa 100644 --- a/Doc/ztexi.yo +++ b/Doc/ztexi.yo @@ -57,6 +57,12 @@ def(texinfo)(2)(\ NOTRANS(@iftex)NL()\ NOTRANS(@set dsq '{}')NL()\ NOTRANS(@end iftex)NL()\ + NOTRANS(@ifinfo)NL()\ + NOTRANS(@dircategory Utilities)NL()\ + NOTRANS(@direntry)NL()\ + NOTRANS( * ZSH: (zsh). The Z Shell Guide.)NL()\ + NOTRANS(@end direntry)NL()\ + NOTRANS(@end ifinfo)NL()\ ) def(texiifinfo)(1)(\ |