From a7bab7b18bea6fe3e1718c10b359e270bada8878 Mon Sep 17 00:00:00 2001 From: David Adam Date: Sat, 15 Nov 2014 23:48:40 +0800 Subject: [PATCH] abbr/web_config: support space-delimited abbreviations Support for space-delimited abbreviations was added to the expansion parser in fbade198; this commit extends that support to the user-facing tools, and documents the space-separated behaviour. Equals-delimited abbreviations are expected to be removed before the next release. Work on #731. --- doc_src/abbr.txt | 4 ++-- share/functions/abbr.fish | 2 +- share/tools/web_config/webconfig.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc_src/abbr.txt b/doc_src/abbr.txt index b3e9a7fdc..0c3dc37a3 100644 --- a/doc_src/abbr.txt +++ b/doc_src/abbr.txt @@ -18,7 +18,7 @@ Abbreviations are stored, by default, in a universal variable. The following parameters are available: -- `-a 'WORD=PHRASE'` or `--add 'WORD=PHRASE'` Adds a new abbreviation, where WORD will be expanded to PHRASE. Only a single argument is supported - protect the contents with quotes or escapes. +- `-a WORD PHRASE` or `--add WORD PHRASE` Adds a new abbreviation, where WORD will be expanded to PHRASE. - `-s` or `--show` Show all abbreviated words and their expanded phrases in a manner suitable for export and import. @@ -29,7 +29,7 @@ The following parameters are available: \subsection abbr-example Examples \fish -abbr -a 'gco=git checkout' +abbr -a gco git checkout \endfish Add a new abbreviation where `gco` will be replaced with `git checkout`. diff --git a/share/functions/abbr.fish b/share/functions/abbr.fish index e109a5585..2339ca442 100644 --- a/share/functions/abbr.fish +++ b/share/functions/abbr.fish @@ -151,7 +151,7 @@ function __fish_abbr_parse_entry -S -a __input __key __value end # use read -z to avoid splitting on newlines # I think we can safely assume there will be no NULs in the input - set -l IFS = + set -l IFS '= ' printf "%s" $__input | read -z $__key $__value return 0 end diff --git a/share/tools/web_config/webconfig.py b/share/tools/web_config/webconfig.py index 31fa79b77..60d3b30d4 100755 --- a/share/tools/web_config/webconfig.py +++ b/share/tools/web_config/webconfig.py @@ -691,7 +691,7 @@ class FishConfigHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): lines = (x for x in out.rstrip().split('\n')) # Turn the output into something we can use abbrout = (line[len('abbr -a '):].strip('\'') for line in lines) - abbrs = [x.split('=') for x in abbrout] + abbrs = [re.split('[ =]', x, maxsplit=1) for x in abbrout] if abbrs[0][0]: result = [{'word': x, 'phrase': y} for x, y in abbrs]