SOURCES: __fish_complete_text.fish (NEW) - added
aredridel
aredridel at pld-linux.org
Sat Jun 2 00:51:09 CEST 2007
Author: aredridel Date: Fri Jun 1 22:51:09 2007 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- added
---- Files affected:
SOURCES:
__fish_complete_text.fish (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/__fish_complete_text.fish
diff -u /dev/null SOURCES/__fish_complete_text.fish:1.1
--- /dev/null Sat Jun 2 00:51:09 2007
+++ SOURCES/__fish_complete_text.fish Sat Jun 2 00:51:04 2007
@@ -0,0 +1,63 @@
+
+function __fish_filter_text_files -d "Select text files only"
+ set -l mime (mimedb $argv)
+ set -l res
+ for i in (seq (count $argv))
+ switch $mime[$i]
+ case 'text/*'
+ set res $res $argv[$i]
+ end
+ end
+ printf "%s\n" $res
+end
+
+function __fish_filter_gzip_files -d "Select gzipped files only"
+ set -l mime (mimedb $argv)
+ set -l res
+ for i in (seq (count $argv))
+ switch $mime[$i]
+ case 'application/x-gzip'
+ set res $res $argv[$i]
+ end
+ end
+ printf "%s\n" $res
+end
+
+
+function __fish_complete_text -d "Complete using text files"
+ # Find all possible file completions
+ set -l all
+ set -l comp (commandline -ct)
+ set -l base (echo $comp | sed -e 's/\.[a-zA-Z0-9]*$//')
+ eval "set all $base*"
+
+ # Select text files only
+ set -l files (__fish_filter_text_files $all)
+
+ # Select gzipped files only
+ if test (count $argv) -gt 0
+ set -l gfiles (__fish_filter_gzip_files $all)
+
+ for i in (seq (count $gfiles))
+ set files $files $gfiles[$i]
+ end
+ end
+
+ # Get descriptions for files
+ set desc (mimedb -d $files)
+
+ # Format completions and descriptions
+ set -l res
+ for i in (seq (count $files))
+ set res $res $files[$i]\t$desc[$i]
+ end
+
+ if test $res[1]
+ printf "%s\n" $res
+ end
+
+ # Also do directory completion, since there might be files
+ # with the correct suffix in a subdirectory
+ __fish_complete_directory $comp
+end
+
================================================================
More information about the pld-cvs-commit
mailing list