diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2021-02-16 01:59:28 +1300 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2021-02-16 15:43:42 +1300 |
commit | 918992c19231b33b3d4a3288a7288a620e608cb4 (patch) | |
tree | 88fffd5330029788ecabd153da0e48d0a1d71d7b /contrib/vim | |
parent | f152064da9832d6d3d2b4e75f43f63bf2d50716f (diff) |
Add path to accommodate macOS' dynamic $TMPDIR
Per a report from Lakshay Garg <lakshayg@outlook.in>, the use of $TMPDIR
in the Vim plugin's pattern match does not work on macOS X, due to the
dynamic and symbolically-linked temporary dir structure this system
uses. Lakshay's email to me, which includes a full explanation, is
reproduced with his permission below.
This change is reflected in upstream v2.2.2:
<https://sanctum.geek.nz/cgit/vim-redact-pass.git/commit/?h=v2.2.2>
>Date: Sat, 13 Feb 2021 23:59:22 -0800
>From: Lakshay Garg <lakshayg@outlook.in>
>To: tom@sanctum.geek.nz
>Subject: [PATCH] vim: fix redact_pass.vim for macOS
>
>Hi Tom
>
>Thanks for maintaining redact_pass.vim. I came across an issue in the
>plugin a few months ago and submitted a patch for it to the
>password-store mailing list but did not get any responses. It seems
>like since only you have been maintaining that file, I might have
>better luck sending the patch to you.
>
>---
>
>Problem: redact_pass.vim did not work on macOS machines
>Fix: add resolve($TMPDIR) to the autcmd pattern list
>
>Explanation
>===========
>
>pass creates files under /private/var/<some-stuff> on macOS.
>redact_pass.vim uses the following pattern to detect when to
>enable the plugin:
>
>```
>$TMPDIR/pass.?*/?*.txt
>```
>
>This pattern expands to "/var/<some-stuff>//pass.?*/?*.txt"
>on my macbook and has two problems:
>
>1. The double forward slash in the expanded pattern (after <some-stuff>)
>2. pass uses /private/var but the pattern looks for /var
>
>Turns out, /var on macos is just a symlink to /private/var.
>The autocmd fails to trigger because it is trying to match
>the pattern: "/var/<some-stuff>//pass.?*/?*.txt"
>to filename: "/private/var/<some-stuff>/pass.<random-chars>/<random-chars>.txt"
>
>The simplest fix is to make $TMPDIR point to "/private/var/..."
>which is achieved by calling resolve on $TMPDIR prior to running
>the autocmd. This also handles the double forward-slash.
>
>Thanks again
>Lakshay
Diffstat (limited to 'contrib/vim')
-rw-r--r-- | contrib/vim/redact_pass.vim | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/contrib/vim/redact_pass.vim b/contrib/vim/redact_pass.vim index 008c8c1..2e752fe 100644 --- a/contrib/vim/redact_pass.vim +++ b/contrib/vim/redact_pass.vim @@ -49,4 +49,10 @@ augroup redact_pass \,$TMPDIR/pass.?*/?*.txt \,/tmp/pass.?*/?*.txt \ call s:CheckArgsRedact() + " Work around macOS' dynamic symlink structure for temporary directories + if has('mac') + autocmd VimEnter + \ /private/var/?*/pass.?*/?*.txt + \ call s:CheckArgsRedact() + endif augroup END |