All pastes #1928303 Raw Edit

FS#9043

public text v1 · immutable
#1928303 ·published 2010-08-29 11:33 UTC
rendered paste body
Index: apps/plugins/viewers.config
===================================================================
--- apps/plugins/viewers.config	(revision 27935)
+++ apps/plugins/viewers.config	(working copy)
@@ -1,70 +1,116 @@
-wav,viewers/test_codec,-
+*,apps/md5sum,-
+*,viewers/properties,-
+*,viewers/shortcuts_append,-
+*,viewers/sort,-
+bmp,apps/rockpaint,11
+bmp,games/sliding_puzzle,11
+bmp,viewers/bmp,2
+bmp,viewers/sort,-
 bmp,viewers/test_greylib_bitmap_scale,-
-jpeg,viewers/test_core_jpeg,-
+cells,games/rocklife,-
+cfg,apps/text_editor,2
+cfg,viewers/theme_remove,-
+cfg,viewers/viewer,1
+ch8,viewers/chip8,0
+colours,apps/text_editor,11
+cue,apps/text_editor,2
+cue,viewers/sort,-
+cue,viewers/viewer,1
+fmr,apps/text_editor,2
+fmr,viewers/sort,-
+fmr,viewers/viewer,1
+gb,viewers/rockboy,6
+gbc,viewers/rockboy,6
+ipod,viewers/crypt_firmware,-
+ipodx,viewers/crypt_firmware,-
+iriver,viewers/iriver_flash,3
+jpe,viewers/bench_mem_jpeg,-
+jpe,viewers/jpeg,2
+jpe,viewers/sort,-
 jpe,viewers/test_core_jpeg,-
-jpg,viewers/test_core_jpeg,-
-jpeg,viewers/test_mem_jpeg,-
 jpe,viewers/test_mem_jpeg,-
-jpg,viewers/test_mem_jpeg,-
 jpeg,viewers/bench_mem_jpeg,-
-jpe,viewers/bench_mem_jpeg,-
+jpeg,viewers/jpeg,2
+jpeg,viewers/sort,-
+jpeg,viewers/test_core_jpeg,-
+jpeg,viewers/test_mem_jpeg,-
 jpg,viewers/bench_mem_jpeg,-
-ch8,viewers/chip8,0
-txt,viewers/text_viewer,1
-nfo,viewers/text_viewer,1
-txt,apps/text_editor,2
-bmp,viewers/bmp,2
 jpg,viewers/jpeg,2
-jpe,viewers/jpeg,2
-jpeg,viewers/jpeg,2
-png,viewers/png,2
-ucl,viewers/rockbox_flash,3
-rvf,viewers/video,4
-mp3,viewers/vbrfix,5
-m3u,viewers/search,-
-txt,viewers/sort,-
+jpg,viewers/sort,-
+jpg,viewers/test_core_jpeg,-
+jpg,viewers/test_mem_jpeg,-
+kbd,apps/text_editor,2
+kbd,viewers/viewer,1
+link,apps/text_editor,2
+link,viewers/shortcuts_view,-
+link,viewers/sort,-
+link,viewers/viewer,1
+list,apps/text_editor,2
+list,viewers/shopper,1
+list,viewers/sort,-
 lrc,apps/lrcplayer,1
 lrc8,apps/lrcplayer,1
-snc,apps/lrcplayer,1
-gb,viewers/rockboy,6
-gbc,viewers/rockboy,6
-sgb,viewers/rockboy,6
+lua,viewers/lua,-
+m2v,viewers/mpegplayer,4
+m3u,apps/text_editor,2
 m3u,viewers/iriverify,-
+m3u,viewers/search,-
+m3u,viewers/sort,-
+m3u,viewers/viewer,1
+m3u8,apps/text_editor,2
+m3u8,viewers/search,-
+m3u8,viewers/sort,-
+m3u8,viewers/viewer,1
 mid,viewers/midi,7
+mid,viewers/sort,-
+mp3,viewers/sort,-
+mp3,viewers/vbrfix,5
+mpeg,viewers/mpegplayer,4
+mpg,viewers/mpegplayer,4
+mpg,viewers/sort,-
+mpv,viewers/mpegplayer,4
+mpv,viewers/sort,-
+nfo,viewers/text_viewer,1
+pd,viewers/pdbox,2
+pgn,apps/text_editor,2
+pgn,games/chessbox,1
+pgn,viewers/sort,-
+pgn,viewers/viewer,1
+png,viewers/png,2
+png,viewers/sort,-
+ppm,viewers/ppmviewer,2
 rmi,viewers/midi,7
-pd,viewers/pdbox,2
 rsp,viewers/searchengine,8
+rvf,viewers/video,4
+rwps,apps/text_editor,2
+rwps,viewers/viewer,1
+sgb,viewers/rockboy,6
+sgf,games/goban,1
+sna,viewers/zxbox,12
+snc,apps/lrcplayer,1
+sok,apps/text_editor,2
 sok,games/sokoban,1
-pgn,games/chessbox,1
-sgf,games/goban,1
+sok,viewers/sort,-
+sok,viewers/viewer,1
+ss,apps/text_editor,2
 ss,games/sudoku,1
+ss,viewers/sort,-
+ss,viewers/viewer,1
+ssg,games/superdom,-
+tap,viewers/zxbox,12
+txt,apps/text_editor,2
+txt,viewers/sort,-
+txt,viewers/text_viewer,1
+tzx,viewers/zxbox,12
+ucl,viewers/rockbox_flash,3
+viewers/sort,-
+wav,viewers/mp3_encoder,-
+wav,viewers/test_codec,-
 wav,viewers/wav2wv,-
-wav,viewers/mp3_encoder,-
 wav,viewers/wavplay,9
 wav,viewers/wavview,10
-bmp,apps/rockpaint,11
-bmp,games/sliding_puzzle,11
-mpg,viewers/mpegplayer,4
-mpeg,viewers/mpegplayer,4
-mpv,viewers/mpegplayer,4
-m2v,viewers/mpegplayer,4
-iriver,viewers/iriver_flash,3
-tap,viewers/zxbox,12
-sna,viewers/zxbox,12
-tzx,viewers/zxbox,12
-z80,viewers/zxbox,12
-ppm,viewers/ppmviewer,2
-cfg,viewers/theme_remove,-
-*,viewers/properties,-
-colours,apps/text_editor,11
-ssg,games/superdom,-
-cells,games/rocklife,-
-link,viewers/shortcuts_view,-
-*,viewers/shortcuts_append,-
-*,apps/md5sum,-
-lua,viewers/lua,-
-ipod,viewers/crypt_firmware,-
-ipodx,viewers/crypt_firmware,-
+wps,apps/text_editor,2
+wps,viewers/viewer,1
 z1,viewers/frotz,-
 z2,viewers/frotz,-
 z3,viewers/frotz,-
@@ -73,4 +119,4 @@
 z6,viewers/frotz,-
 z7,viewers/frotz,-
 z8,viewers/frotz,-
-list,viewers/shopper,1
+z80,viewers/zxbox,12
Index: apps/filetypes.c
===================================================================
--- apps/filetypes.c	(revision 27935)
+++ apps/filetypes.c	(working copy)
@@ -307,6 +307,15 @@
     *s = '\0';
 }
 
+static char *get_extension(const char* file)
+{
+    char *extension = strrchr(file, '.');
+    if (!extension)
+        return NULL;
+    extension++;
+    return (char *)extension;
+}
+
 static void read_builtin_types(void)
 {
     int count = sizeof(inbuilt_filetypes)/sizeof(*inbuilt_filetypes), i;
@@ -377,11 +386,10 @@
 
 int filetype_get_attr(const char* file)
 {
-    char *extension = strrchr(file, '.');
     int i;
+    char *extension = get_extension(file);
     if (!extension)
         return 0;
-    extension++;
     for (i=0; i<filetype_count; i++)
     {
         if (filetypes[i].extension && 
@@ -408,14 +416,12 @@
 #ifdef HAVE_LCD_COLOR
 int filetype_get_color(const char * name, int attr)
 {
-    char *extension;
     int i;
     if ((attr & ATTR_DIRECTORY)==ATTR_DIRECTORY)
         return custom_colors[0];
-    extension = strrchr(name, '.');
+    char *extension = get_extension(name);
     if (!extension)
         return custom_colors[MAX_FILETYPES];
-    extension++;
     
     for (i=1; i<filetype_count; i++)
     {
@@ -503,10 +509,16 @@
     int items[MAX_FILETYPES];
     struct simplelist_info info;
     struct cb_data data = { items, current_file };
+    char *ext = get_extension(current_file);
     for (i=0; i<filetype_count && count < MAX_FILETYPES; i++)
     {
         if (filetypes[i].plugin)
         {
+            /* do not show unrelated plugins, unless 'show files' is 'all' */
+            if (global_settings.dirfilter != 0)
+                if ( strcmp(filetypes[i].extension, "*") &&
+                     strcasecmp(filetypes[i].extension, ext) )
+                    continue;
             int j;
             for (j=0;j<count;j++) /* check if the plugin is in the list yet */
             {