From defcb9047e18f6c9fe1129fb85915344a6a57126 Mon Sep 17 00:00:00 2001 From: Philip Sequeira Date: Sat, 10 Sep 2016 14:53:55 -0400 Subject: TOOLS/zsh.pl: die if we can't parse main options This will catch cases where mpv runs without error, but the --list-options output isn't what we expect. Otherwise, we'll make a broken completion file that will result in cryptic errors when pressing tab, like: _mpv:18: command not found: *:files:->mfiles That's been the case for most of the zsh completion issues we've had reported, that I can remember. Also make uninitialized variable access fatal so that failures to parse other options will also make the script die eventually, albeit with a less nice message. --- TOOLS/zsh.pl | 3 +++ 1 file changed, 3 insertions(+) (limited to 'TOOLS') diff --git a/TOOLS/zsh.pl b/TOOLS/zsh.pl index 809a8a4d8a..7d354b4c47 100755 --- a/TOOLS/zsh.pl +++ b/TOOLS/zsh.pl @@ -4,11 +4,14 @@ use strict; use warnings; +use warnings FATAL => 'uninitialized'; my $mpv = $ARGV[0] || 'mpv'; my @opts = parse_main_opts('--list-options', '^ (\-\-[^\s\*]*)\*?\s*(.*)'); +die "Couldn't find any options" unless (@opts); + my @ao = parse_opts('--ao=help', '^ ([^\s\:]*)\s*: (.*)'); my @vo = parse_opts('--vo=help', '^ ([^\s\:]*)\s*: (.*)'); -- cgit v1.2.3