From 16aa0b93e92178796c05249b384e5f5dabf52f4a Mon Sep 17 00:00:00 2001 From: Fabian Homborg Date: Wed, 3 Feb 2016 23:26:41 +0100 Subject: [PATCH] Stringify __fish_complete_lpr_option --- share/functions/__fish_complete_lpr_option.fish | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/share/functions/__fish_complete_lpr_option.fish b/share/functions/__fish_complete_lpr_option.fish index aa9d981f0..e593aab44 100644 --- a/share/functions/__fish_complete_lpr_option.fish +++ b/share/functions/__fish_complete_lpr_option.fish @@ -5,24 +5,20 @@ function __fish_complete_lpr_option --description 'Complete lpr option' set -l IFS = echo $optstr | read -l opt val set -l descr - # Some seds (e.g. on Mac OS X), don't support \n in the RHS - # Use a literal newline instead - # http://sed.sourceforge.net/sedfaq4.html#s4.1 - for l in (lpoptions -l ^ /dev/null | grep $opt | sed 's+\(.*\)/\(.*\):\s*\(.*\)$+\2 \3+; s/ /\\ -/g;') + for l in (lpoptions -l ^/dev/null | string match -- "*$opt*" | string replace -r '.*/(.*):\s*(.*)$' '$1 $2' | string split " ") if not set -q descr[1] set descr $l continue end set -l default '' - if test (expr substr $l 1 1) = '*' + if string match -q '\**' -- $l set default 'Default ' - set l (echo $l | sed 's/\*//') + set l (string sub -s 2 -- $l) end echo $opt=$l\t$default$descr end case '*' - lpoptions -l ^ /dev/null | sed 's+\(.*\)/\(.*\):.*$+\1=\t\2+' + lpoptions -l ^/dev/null | string replace -r '(.*)/(.*):.*$' '$1=\t$2' end