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