zsh-users
 help / color / mirror / code / Atom feed
From: Mikael Magnusson <mikachu@gmail.com>
To: Bart Schaefer <schaefer@brasslantern.com>
Cc: Zsh Users <zsh-users@zsh.org>
Subject: Re: umount completion context and tags
Date: Sun, 14 Dec 2014 18:13:33 +0100	[thread overview]
Message-ID: <CAHYJk3Q7qFoELxSGMnDu7Z4=if9kh6g9_wbYMOGgG++fzuztqA@mail.gmail.com> (raw)
In-Reply-To: <141214085310.ZM23615@torch.brasslantern.com>

On Sun, Dec 14, 2014 at 5:53 PM, Bart Schaefer
<schaefer@brasslantern.com> wrote:
> [Sticking with zsh-users for now but this maybe should move to -workers]
>
> On Dec 14,  4:15pm, Mikael Magnusson wrote:
> } Subject: Re: umount completion context and tags
> }
> } >     umount u<Tab>
> } >     umount udev  (!!!)
> }
> } That's weird in at least two ways. I get the style to work only if i
> } make it ":completion:*".
>
> See previous message about :(u|)mount: ...?

Yeah, I somehow missed this missing u. It works fine if I add it again.

> } Secondly, those are filesystem types, not labels, and are only valid
> } after -t afaik(?), and umount -t produces a broken completion.
>
> Hmm.  On the latter point, "umount -t" works for me:

Sorry, I should have been more specific than just saying it's broken.
It produces this output for me:

% umount -t
---- file system type
\#                 auto\'       following  mqueue    to
\#vfat             available    fuse       msdos     try
[...]

I see now that the gentoo /etc/filesystems has some lines in it with
comments, and the completer doesn't remove them. How about instead of
this,

fss+=( ${$(</etc/filesystems)#\*} )

we use this?

fss+=( ${${${(f)"$(</etc/filesystems)"}:#\#*}#\*} )

> On the former point, I get:
>
> torch% umount u<TAB>
> torch% umount usbfs
>
> Looking at _complete_debug output, usbfs is being completed as a device
> label because there are no matches to "u" for either device-paths or
> directories.  The tag-order '!' style only applies when the other tags
> do have possible matches.

Here, you can use - as the first element of tag-order as
zstyle ':completion:*:umount:*' tag-order - '! device-labels'
and device-labels will never be used, not even as a fallback.

> Now, as to WHY it's being completed as a label, it's because /etc/mtab
> has the line
>
> usbfs /proc/bus/usb usbfs rw 0 0
>
> so _mount assigns
>
> dev_tmp=( /dev/hda2 usbfs /dev/hda1 sunrpc )
>
> which subsquently interprets everything that doesn't start with a slash
> as a device label.

I'm not even sure here what a device label is meant to be. I don't
suppose it's something mounted by LABEL=foo? My mount manpage mentions
partition labels, filesystem labels (and I know these are only
readable by root), and also 'those that are labeled "nodev"' appears.

-- 
Mikael Magnusson


  reply	other threads:[~2014-12-14 17:13 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-14 13:15 Silas Silva
2014-12-14 15:15 ` Mikael Magnusson
2014-12-14 16:53   ` Bart Schaefer
2014-12-14 17:13     ` Mikael Magnusson [this message]
2014-12-14 17:47       ` Bart Schaefer
2014-12-14 18:51         ` Mikael Magnusson
2014-12-14 16:31 ` Bart Schaefer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAHYJk3Q7qFoELxSGMnDu7Z4=if9kh6g9_wbYMOGgG++fzuztqA@mail.gmail.com' \
    --to=mikachu@gmail.com \
    --cc=schaefer@brasslantern.com \
    --cc=zsh-users@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).