about summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
authorNorbert Lange <nolange79@gmail.com>2022-05-24 22:26:29 +0200
committerMatthew Martin <phy1729@gmail.com>2022-05-25 22:50:48 -0500
commitc1f1bbc5b9c128944b82afed25140ee62ccf522a (patch)
treed297ce494674cd5aba7d7b65ffdb9472255a839c /Completion
parent1e52cd968d7ffd9da3249ef01f6c41f8b29e4df3 (diff)
downloadzsh-c1f1bbc5b9c128944b82afed25140ee62ccf522a.tar.gz
zsh-c1f1bbc5b9c128944b82afed25140ee62ccf522a.tar.xz
zsh-c1f1bbc5b9c128944b82afed25140ee62ccf522a.zip
github #93: Replace /etc/mtab with /proc/self/mounts for Linux
/proc/self/mounts has been available since Linux 2.4.19,
released in 2002. /etc/mtab is usually a symlink to this
file but might not exist
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Linux/Command/_btrfs2
-rw-r--r--Completion/Linux/Command/_fusermount2
-rw-r--r--Completion/Unix/Type/_umountable7
3 files changed, 8 insertions, 3 deletions
diff --git a/Completion/Linux/Command/_btrfs b/Completion/Linux/Command/_btrfs
index 65cf067aa..1d87fd83a 100644
--- a/Completion/Linux/Command/_btrfs
+++ b/Completion/Linux/Command/_btrfs
@@ -424,7 +424,7 @@ while (( $#state )); do
     ;;
     mounts)
       _wanted mount-points expl 'mount point' compadd \
-          ${${${(M)${(f)"$(</etc/mtab)"}:#*btrfs*}#* }%% *} && ret=0
+          ${${${(M)${(f)"$(</proc/self/mounts)"}:#*btrfs*}#* }%% *} && ret=0
     ;;
     filters)
       state=()
diff --git a/Completion/Linux/Command/_fusermount b/Completion/Linux/Command/_fusermount
index 41d3dec72..d55eca29c 100644
--- a/Completion/Linux/Command/_fusermount
+++ b/Completion/Linux/Command/_fusermount
@@ -19,7 +19,7 @@ case "$state" in
   if [[ $+opt_args[-u] -eq 0 ]]; then
     _files -/
   else
-    mtpts=(${${${"${(f)$(< /etc/mtab)}"}#* }%% *})
+    mtpts=(${${${"${(f)$(< /proc/self/mounts)}"}#* }%% *})
     _canonical_paths mounted 'mounted filesystem' "${(@g::)mtpts}"
   fi
   ;;
diff --git a/Completion/Unix/Type/_umountable b/Completion/Unix/Type/_umountable
index 7ffce5bb4..6e4988e2d 100644
--- a/Completion/Unix/Type/_umountable
+++ b/Completion/Unix/Type/_umountable
@@ -3,7 +3,12 @@ local tmp
 local dev_tmp dpath_tmp mp_tmp mline
 
 case "$OSTYPE" in
-linux*|irix*)
+linux*)
+  tmp=( "${(@f)$(< /proc/self/mounts)}" )
+  dev_tmp=( "${(@)${(@)tmp%% *}:#none}" )
+  mp_tmp=( "${(@)${(@)tmp#* }%% *}" )
+  ;;
+irix*)
   tmp=( "${(@f)$(< /etc/mtab)}" )
   dev_tmp=( "${(@)${(@)tmp%% *}:#none}" )
   mp_tmp=( "${(@)${(@)tmp#* }%% *}" )