about summary refs log tree commit diff
path: root/Doc/Zsh
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/Zsh')
-rw-r--r--Doc/Zsh/.distfiles14
-rw-r--r--Doc/Zsh/compwid.yo7
-rw-r--r--Doc/Zsh/files.yo26
-rw-r--r--Doc/Zsh/mod_files.yo2
-rw-r--r--Doc/Zsh/mod_mapfile.yo46
-rw-r--r--Doc/Zsh/mod_parameter.yo2
-rw-r--r--Doc/Zsh/modules.yo5
7 files changed, 77 insertions, 25 deletions
diff --git a/Doc/Zsh/.distfiles b/Doc/Zsh/.distfiles
index 785febb16..f3e7352a5 100644
--- a/Doc/Zsh/.distfiles
+++ b/Doc/Zsh/.distfiles
@@ -1,10 +1,10 @@
 DISTFILES_SRC='
     .distfiles
-    arith.yo builtins.yo compat.yo compctl.yo compsys.yo compwid.yo
-    cond.yo exec.yo expn.yo filelist.yo files.yo func.yo grammar.yo
-    guide.yo index.yo intro.yo invoke.yo jobs.yo metafaq.yo mod_cap.yo
-    mod_clone.yo mod_comp1.yo mod_compctl.yo mod_deltochar.yo
-    mod_example.yo mod_files.yo mod_parameter.yo mod_sched.yo
-    mod_stat.yo mod_zftp.yo mod_zle.yo modules.yo options.yo params.yo
-    prompt.yo redirect.yo restricted.yo seealso.yo zftpsys.yo zle.yo
+    arith.yo builtins.yo compat.yo compctl.yo compwid.yo cond.yo exec.yo
+    expn.yo filelist.yo files.yo func.yo grammar.yo guide.yo index.yo intro.yo
+    invoke.yo jobs.yo metafaq.yo mod_cap.yo mod_clone.yo mod_comp1.yo
+    mod_compctl.yo mod_deltochar.yo mod_example.yo mod_files.yo
+    mod_mapfile.yo mod_sched.yo mod_stat.yo mod_zftp.yo mod_zle.yo
+    modules.yo options.yo params.yo 
+    prompt.yo redirect.yo restricted.yo seealso.yo zle.yo
 '
diff --git a/Doc/Zsh/compwid.yo b/Doc/Zsh/compwid.yo
index 79577d13d..d74054a9c 100644
--- a/Doc/Zsh/compwid.yo
+++ b/Doc/Zsh/compwid.yo
@@ -424,7 +424,8 @@ is the same character.
 )
 item(tt(-r) var(remove-chars))(
 This is a more versatile form of the tt(-q) option.
-The suffix given with tt(-S) will be automatically removed if
+The suffix given with tt(-S) or the slash automatically added after
+completing directories will be automatically removed if
 the next character typed inserts one of the characters given in the
 var(remove-chars).  This string is parsed as a characters class and
 understands the backslash sequences used by the tt(print) command.  For
@@ -436,8 +437,8 @@ all characters that insert nothing. Thus `tt(-S "=" -q)' is the same
 as `tt(-S "=" -r "= \t\n\-")'.
 )
 item(tt(-R) var(remove-func))(
-This is another form of the tt(-r) option. When a suffix given with the
-tt(-S) option has been inserted and the completion accepted, the function
+This is another form of the tt(-r) option. When a suffix 
+has been inserted and the completion accepted, the function
 var(remove-func) will be called after the next character typed.  It is
 passed the length of the suffix as an argument and can use the special
 parameters available in ordinary (non-completion) zle widgets (see
diff --git a/Doc/Zsh/files.yo b/Doc/Zsh/files.yo
index 6eb6c202e..9ff59fe19 100644
--- a/Doc/Zsh/files.yo
+++ b/Doc/Zsh/files.yo
@@ -6,12 +6,17 @@ cindex(startup files)
 cindex(files, shutdown)
 cindex(shutdown files)
 pindex(NO_RCS, use of)
-Commands are first read from tt(/etc/zshenv).
-If the tt(RCS) option is unset
-within tt(/etc/zshenv), all other
-initialization files are skipped.
-Otherwise, commands are read
-from tt($ZDOTDIR/.zshenv).
+pindex(NO_GLOBAL_RCS, use of)
+Commands are first read from tt(/etc/zshenv); this cannot be overridden.
+If the tt(RCS) option is unset, no further files are read; changing this
+option after this point has no effect on initialization files, but may
+affect behaviour on logout.  Subsequent behaviour is also modified by the
+option tt(GLOBAL_RCS).  If it is unset at any point during initialisation,
+later files in the tt(/etc) directory will not be read.  It is also
+possible for a file in tt($ZDOTDIR) to re-enable tt(GLOBAL_RCS). Both
+tt(RCS) and tt(GLOBAL_RCS) are set by default.
+
+Commands are then read from tt($ZDOTDIR/.zshenv).
 pindex(LOGIN, use of)
 If the shell is a login shell, commands
 are read from tt(/etc/zprofile) and then tt($ZDOTDIR/.zprofile).
@@ -20,20 +25,15 @@ commands are read from tt(/etc/zshrc) and then tt($ZDOTDIR/.zshrc).
 Finally, if the shell is a login shell, tt(/etc/zlogin) and
 tt($ZDOTDIR/.zlogin) are read.
 
-If the option tt(GLOBAL_RCS_FIRST) is set when the shell is invoked or in
-the file tt(/etc/zshenv), then all the applicable global startup files are
-read before all the users', so that the order becomes tt(/etc/zshenv)
-... tt(/etc/zlogin), tt($ZDOTDIR/.zshenv) ... tt($ZDOTDIR/.zlogin).
-After tt(/etc/zshenv) has been read, changing the option has no further
-effect.
-
 When a login shell exits, the files tt($ZDOTDIR/.zlogout) and then
 tt(/etc/zlogout) are read.  This happens with either an explicit exit
 via the tt(exit) or tt(logout) commands, or an implict exit by reading
 end-of-file from the terminal.  However, if the shell terminates due
 to tt(exec)'ing another process, the logout files are not read.
+These are also affected by the tt(RCS) and tt(GLOBAL_RCS) options.
 
 If tt(ZDOTDIR) is unset, tt(HOME) is used instead.
 Those files listed above as being in tt(/etc) may be in another
 directory, depending on the installation.
 ifnzman(includefile(Zsh/filelist.yo))
+
diff --git a/Doc/Zsh/mod_files.yo b/Doc/Zsh/mod_files.yo
index 160473fba..932d8583c 100644
--- a/Doc/Zsh/mod_files.yo
+++ b/Doc/Zsh/mod_files.yo
@@ -1,4 +1,4 @@
-texinode(The files Module)(The parameter Module)(The example Module)(Zsh Modules)
+texinode(The files Module)(The mapfile Module)(The example Module)(Zsh Modules)
 sect(The files Module)
 cindex(files, manipulating)
 The tt(files) module makes some standard commands available as builtins:
diff --git a/Doc/Zsh/mod_mapfile.yo b/Doc/Zsh/mod_mapfile.yo
new file mode 100644
index 000000000..6d0475711
--- /dev/null
+++ b/Doc/Zsh/mod_mapfile.yo
@@ -0,0 +1,46 @@
+texinode(The mapfile Module)(The parameter Module)(The files Module)(Zsh Modules)
+sect(The mapfile Module)
+cindex(parameter, file access via)
+The tt(mapfile) module provides one special associative array parameter of
+the same name.
+
+startitem()
+vindex(mapfile)
+item(tt(mapfile))(
+This associative array takes as keys the names of files; the resulting
+value is the content of the file.  The value is treated identically to any
+other text coming from a parameter.  The value may also be assigned to, in
+which case the file in question is written (whether or not it originally
+existed); or an element may be unset, which will delete the file in
+question.  For example, `tt(vared mapfile[myfile])' works as expected,
+editing the file `tt(myfile)'.
+
+When the array is accessed as a whole, the keys are the names of files in
+the current directory, and the values are empty (to save a huge overhead in
+memory).  Thus tt(${(k)mapfile}) has the same affect as the glob operator
+tt(*(D)), since files beginning with a dot are not special.  Care must be
+taken with expressions such as tt(rm ${(k)mapfile}), which will delete
+every file in the current directory without the usual `tt(rm *)' test.
+
+The parameter tt(mapfile) may be made read-only; in that case, files
+referenced may not be written or deleted.
+)
+enditem()
+
+subsect(Limitations)
+
+Although reading and writing of the file in question is efficiently
+handled, zsh's internal memory management may be arbitrarily baroque.  Thus
+it should not automatically be assumed that use of tt(mapfile) represents a
+gain in efficiency over use of other mechanisms.  Note in particular that
+the whole contents of the file will always reside physically in memory when
+accessed (possibly multiple times, due to standard parameter subsitution
+operations).
+
+No errors are printed or flagged for non-existent, unreadable, or
+unwriteable files, as the parameter mechanism is too low in the shell
+execution hierarchy to make this convenient.
+
+It is unfortunate that the mechanism for loading modules does not yet allow
+the user to specify the name of the shell parameter to be given the special
+behaviour.
diff --git a/Doc/Zsh/mod_parameter.yo b/Doc/Zsh/mod_parameter.yo
index c84dd18eb..4fe537c6d 100644
--- a/Doc/Zsh/mod_parameter.yo
+++ b/Doc/Zsh/mod_parameter.yo
@@ -1,4 +1,4 @@
-texinode(The parameter Module)(The sched Module)(The files Module)(Zsh Modules)
+texinode(The parameter Module)(The sched Module)(The mapfile Module)(Zsh Modules)
 sect(The parameter Module)
 cindex(parameters, special)
 The tt(parameter) module gives access to some of the internal hash
diff --git a/Doc/Zsh/modules.yo b/Doc/Zsh/modules.yo
index a7c528951..0b487f673 100644
--- a/Doc/Zsh/modules.yo
+++ b/Doc/Zsh/modules.yo
@@ -31,6 +31,9 @@ An example of how to write a module.
 item(tt(files))(
 Some basic file manipulation commands as builtins.
 )
+item(tt(mapfile))(
+Access to external files via a special associative array.
+)
 item(tt(parameter))(
 Access to internal hash tables via special associative arrays.
 )
@@ -55,6 +58,7 @@ menu(The compctl Module)
 menu(The deltochar Module)
 menu(The example Module)
 menu(The files Module)
+menu(The mapfile Module)
 menu(The parameter Module)
 menu(The sched Module)
 menu(The stat Module)
@@ -68,6 +72,7 @@ includefile(Zsh/mod_compctl.yo)
 includefile(Zsh/mod_deltochar.yo)
 includefile(Zsh/mod_example.yo)
 includefile(Zsh/mod_files.yo)
+includefile(Zsh/mod_mapfile.yo)
 includefile(Zsh/mod_parameter.yo)
 includefile(Zsh/mod_sched.yo)
 includefile(Zsh/mod_stat.yo)