Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37045336
en ru br
Репозитории ALT
S:4.8.30-alt3
5.1: 4.8.11-alt0.M51.1
4.1: 4.6.2-alt7.pre1
4.0: 4.6.1r-alt9
3.0: 4.6.1r-alt3
www.altlinux.org/Changes

Группа :: Работа с файлами
Пакет: mc

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: mc-4.6.1-xs-file-highlight.patch
Скачать


diff -urN mc-4.6.1/po/mc.pot mc-4.6.1.mod/po/mc.pot
--- mc-4.6.1/po/mc.pot	2005-07-23 20:53:25 +0400
+++ mc-4.6.1.mod/po/mc.pot	2005-08-09 15:47:29 +0400
@@ -977,7 +977,43 @@
 msgid "&Select"
 msgstr ""
 
-#: src/boxes.c:717
+#: src/boxes.c:654
+msgid "&Ok"
+msgstr ""
+
+#: src/boxes.c:656
+msgid "Databases"
+msgstr ""
+
+#: src/boxes.c:658
+msgid "Graphics"
+msgstr ""
+
+#: src/boxes.c:660
+msgid "Multimedia"
+msgstr ""
+
+#: src/boxes.c:662
+msgid "Sources"
+msgstr ""
+
+#: src/boxes.c:664
+msgid "Archives"
+msgstr ""
+
+#: src/boxes.c:666
+msgid "Text/Doc Files"
+msgstr ""
+
+#: src/boxes.c:668
+msgid "Temp Files"
+msgstr ""
+
+#: src/boxes.c:673
+msgid " File highlighting "
+msgstr ""
+
+#: src/boxes.c:783
 msgid "Use &passive mode"
 msgstr ""
 
@@ -2719,7 +2755,11 @@
 msgid "&Display bits..."
 msgstr ""
 
-#: src/main.c:916
+#: src/main.c:920
+msgid "file &Highlighting..."
+msgstr ""
+
+#: src/main.c:922
 msgid "&Virtual FS..."
 msgstr ""
 
@@ -2813,8 +2853,9 @@
 "   Menus:        menu, menuhot, menusel, menuhotsel\n"
 "   Editor:       editnormal, editbold, editmarked\n"
 "   Help:         helpnormal, helpitalic, helpbold, helplink, helpslink\n"
-"   File types:   directory, executable, link, stalelink, device, special, "
-"core\n"
+"   File types:   directory, executable, link, stalelink, device, special,\n"
+"                 core, hidden, temp, doc, archive, source, media, graph,\n"
+"                 database\n"
 "\n"
 "Colors:\n"
 "   black, gray, red, brightred, green, brightgreen, brown,\n"
diff -urN mc-4.6.1/po/ru.po mc-4.6.1.mod/po/ru.po
--- mc-4.6.1/po/ru.po	2005-08-09 15:54:49 +0400
+++ mc-4.6.1.mod/po/ru.po	2005-08-09 15:47:29 +0400
@@ -1012,7 +1012,43 @@
 msgid "&Select"
 msgstr "Выбрать"
 
-#: src/boxes.c:717
+#: src/boxes.c:654
+msgid "&Ok"
+msgstr "&Дальше"
+
+#: src/boxes.c:656
+msgid "Databases"
+msgstr "Файлы баз данных"
+
+#: src/boxes.c:658
+msgid "Graphics"
+msgstr "Графические файлы"
+
+#: src/boxes.c:660
+msgid "Multimedia"
+msgstr "Мультимедиа файлы"
+
+#: src/boxes.c:662
+msgid "Sources"
+msgstr "Файлы исходных текстов"
+
+#: src/boxes.c:664
+msgid "Archives"
+msgstr "Файлы архивов"
+
+#: src/boxes.c:666
+msgid "Text/Doc Files"
+msgstr "Текстовые файлы и файлы документов"
+
+#: src/boxes.c:668
+msgid "Temp Files"
+msgstr "Временные файлы"
+
+#: src/boxes.c:673
+msgid " File highlighting "
+msgstr " Подсветка файлов "
+
+#: src/boxes.c:783
 msgid "Use &passive mode"
 msgstr "Использовать пассивный режим"
 
@@ -2857,7 +2893,11 @@
 msgid "&Display bits..."
 msgstr "&Биты символов..."
 
-#: src/main.c:916
+#: src/main.c:920
+msgid "file &Highlighting..."
+msgstr "П&одсветка файлов..."
+
+#: src/main.c:922
 msgid "&Virtual FS..."
 msgstr "Виртуальные &ФС..."
 
@@ -2959,8 +2999,9 @@
 "   Menus:        menu, menuhot, menusel, menuhotsel\n"
 "   Editor:       editnormal, editbold, editmarked\n"
 "   Help:         helpnormal, helpitalic, helpbold, helplink, helpslink\n"
-"   File types:   directory, executable, link, stalelink, device, special, "
-"core\n"
+"   File types:   directory, executable, link, stalelink, device, special,\n"
+"                 core, hidden, temp, doc, archive, source, media, graph,\n"
+"                 database\n"
 "\n"
 "Colors:\n"
 "   black, gray, red, brightred, green, brightgreen, brown,\n"
diff -urN mc-4.6.1/src/boxes.c mc-4.6.1.mod/src/boxes.c
--- mc-4.6.1/src/boxes.c	2005-08-09 15:54:49 +0400
+++ mc-4.6.1.mod/src/boxes.c	2005-08-09 15:47:29 +0400
@@ -635,6 +635,72 @@
 
 #endif /* HAVE_CHARSET */
 
+/*
+* File highlighting setup dialog
+*/
+#define FILEHLY 20
+#define FILEHLX 56
+
+static char *ret_ftmp;
+static char *ret_fdoc;
+static char *ret_farch;
+static char *ret_fsrc;
+static char *ret_fmedia;
+static char *ret_fgraph;
+static char *ret_fdbase;
+
+static QuickWidget filehl_widgets [] = {
+{ quick_button,   30, FILEHLX, FILEHLY - 3, FILEHLY, N_("&Cancel"), 0, B_CANCEL, 0, 0, "button-cancel" },
+{ quick_button,   12, FILEHLX, FILEHLY - 3, FILEHLY, N_("&Ok"), 0, B_ENTER, 0, 0, "button-ok" },
+{ quick_input,     4, FILEHLX, 15,  FILEHLY, "", 48, 0, 0, &ret_fdbase, "input-ft-dbase"},
+{ quick_label,     4, FILEHLX, 14,  FILEHLY, N_("Databases"), 0, 0, 0, 0, "label-ft-dbase" },
+{ quick_input,     4, FILEHLX, 13,  FILEHLY, "", 48, 0, 0, &ret_fgraph, "input-ft-graph"},
+{ quick_label,     4, FILEHLX, 12,  FILEHLY, N_("Graphics"), 0, 0, 0, 0, "label-ft-graph" },
+{ quick_input,     4, FILEHLX, 11,  FILEHLY, "", 48, 0, 0, &ret_fmedia, "input-ft-media" },
+{ quick_label,     4, FILEHLX, 10,  FILEHLY, N_("Multimedia"), 0, 0, 0, 0, "label-ft-media" },
+{ quick_input,     4, FILEHLX,  9,  FILEHLY, "", 48, 0, 0, &ret_fsrc, "input-ft-src" },
+{ quick_label,     4, FILEHLX,  8,  FILEHLY, N_("Sources"),  0, 0, 0, 0, "label-ft-src" },
+{ quick_input,     4, FILEHLX,  7,  FILEHLY, "", 48, 0, 0, &ret_farch, "input-ft-arch" },
+{ quick_label,     4, FILEHLX,  6,  FILEHLY, N_("Archives"),  0, 0, 0, 0, "label-ft-arch" },
+{ quick_input,     4, FILEHLX,  5,  FILEHLY, "", 48, 0, 0, &ret_fdoc, "input-ft-doc" },
+{ quick_label,     4, FILEHLX,  4,  FILEHLY, N_("Text/Doc Files"),  0, 0, 0, 0, "label-ft-doc" },
+{ quick_input,     4, FILEHLX,  3,  FILEHLY, "", 48, 0, 0, &ret_ftmp, "input-ft-tmp" },
+{ quick_label,     4, FILEHLX,  2,  FILEHLY, N_("Temp Files"),  0, 0, 0, 0, "label-ft-tmp" },
+{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } 
+};
+
+static QuickDialog filehl_dlg =
+{ FILEHLX, FILEHLY, -1, -1, N_(" File highlighting "), "[File highlighting]",  filehl_widgets, 0 };
+
+void
+file_highlighting_box (void)
+{
+    filehl_widgets [2].text = file_types.fdbase;
+    filehl_widgets [4].text = file_types.fgraph;
+    filehl_widgets [6].text = file_types.fmedia;
+    filehl_widgets [8].text = file_types.fsrc;
+    filehl_widgets [10].text = file_types.farch;
+    filehl_widgets [12].text = file_types.fdoc;
+    filehl_widgets [14].text = file_types.ftmp;
+
+    if (quick_dialog (&filehl_dlg) != B_CANCEL) {
+        g_free(file_types.ftmp);
+        file_types.ftmp = ret_ftmp;
+        g_free(file_types.fdoc);
+        file_types.fdoc = ret_fdoc;
+        g_free(file_types.farch);
+        file_types.farch = ret_farch;
+        g_free(file_types.fsrc);
+        file_types.fsrc = ret_fsrc;
+        g_free(file_types.fmedia);
+        file_types.fmedia = ret_fmedia;
+        g_free(file_types.fgraph);
+        file_types.fgraph = ret_fgraph;
+        g_free(file_types.fdbase);
+        file_types.fdbase = ret_fdbase;
+    }
+}
+//end File highlighting setup dialog
 
 #define TREE_Y 20
 #define TREE_X 60
diff -urN mc-4.6.1/src/boxes.h mc-4.6.1.mod/src/boxes.h
--- mc-4.6.1/src/boxes.h	2004-08-29 20:42:40 +0400
+++ mc-4.6.1.mod/src/boxes.h	2005-08-09 15:47:29 +0400
@@ -7,6 +7,7 @@
 			  int *case_sensitive);
 void    confirm_box      (void);
 void    display_bits_box (void);
+void	file_highlighting_box (void);
 void    configure_vfs    (void);
 void    jobs_cmd         (void);
 char   *cd_dialog        (void);
diff -urN mc-4.6.1/src/color.c mc-4.6.1.mod/src/color.c
--- mc-4.6.1/src/color.c	2005-05-27 18:19:18 +0400
+++ mc-4.6.1.mod/src/color.c	2005-08-09 15:47:29 +0400
@@ -87,18 +87,29 @@
     { "special=",    0, 0 }, /* sockets, fifo */
     { "core=",       0, 0 }, /* core files */              /* 29 */
 
-    { 0,             0, 0 }, /* not usable (DEFAULT_COLOR_INDEX) *//* 30 */
+    /* colors for specific file types */
+
+    { "hidden=",     0, 0 }, /* hidden files */		/*30*/
+    { "temp=",       0, 0 }, /* temp file type */	/*31*/
+    { "doc=",        0, 0 }, /* doc file type */	/*32*/
+    { "archive=",    0, 0 }, /* archive file type */	/*33*/
+    { "source=",     0, 0 }, /* sources file type */	/*34*/
+    { "media=",      0, 0 }, /* multimedia file type */	/*35*/
+    { "graph=",      0, 0 }, /* graphics file type */	/*36*/
+    { "database=",   0, 0 }, /* database file type */	/*37*/
+
+    { 0,             0, 0 }, /* not usable (DEFAULT_COLOR_INDEX) *//* 38 */
     { 0,             0, 0 }, /* unused */
     { 0,             0, 0 }, /* not usable (A_REVERSE) */
     { 0,             0, 0 }, /* not usable (A_REVERSE_BOLD) */
 
-/* editor colors start at 34 */
-    { "editnormal=",     0, 0 },	/* normal */       /* 34 */
+/* editor colors start at 42 */
+    { "editnormal=",     0, 0 },	/* normal */       /* 42 */
     { "editbold=",       0, 0 },	/* search->found */
     { "editmarked=",     0, 0 },	/* marked/selected */
 
-/* error dialog colors start at 37 */
-    { "errdhotnormal=",  0, 0 }, /* Error dialog normal/hot */ /* 37 */
+/* error dialog colors start at 45 */
+    { "errdhotnormal=",  0, 0 }, /* Error dialog normal/hot */ /* 45 */
     { "errdhotfocus=",   0, 0 }, /* Error dialog focused/hot */
 };
 
@@ -158,6 +169,14 @@
 "device=brightmagenta,blue:"
 "core=red,blue:"
 "special=black,blue:"
+"hidden=black,blue:"
+"temp=gray,blue:"
+"doc=brown,blue:"
+"archive=brightmagenta,blue:"
+"source=cyan,blue:"
+"media=green,blue:"
+"graph=brightcyan,blue:"
+"database=brightred,blue:"
 "editnormal=lightgray,blue:"
 "editbold=yellow,blue:"
 "editmarked=black,cyan:"
@@ -261,7 +280,7 @@
 }
 
 #ifndef HAVE_SLANG
-#define MAX_PAIRS 64
+#define MAX_PAIRS 84
 int attr_pairs [MAX_PAIRS];
 #endif
 
diff -urN mc-4.6.1/src/color.h mc-4.6.1.mod/src/color.h
--- mc-4.6.1/src/color.h	2004-09-02 02:33:43 +0400
+++ mc-4.6.1.mod/src/color.h	2005-08-09 15:47:29 +0400
@@ -65,23 +65,32 @@
 #define SPECIAL_COLOR      IF_COLOR (28, 0)
 #define CORE_COLOR         IF_COLOR (29, 0)
 
+/* colors for specific files */
+#define HIDDEN_COLOR       IF_COLOR (30, 0)
+#define TEMP_COLOR         IF_COLOR (31, 0)
+#define DOC_COLOR          IF_COLOR (32, 0)
+#define ARCH_COLOR         IF_COLOR (33, 0)
+#define SRC_COLOR          IF_COLOR (34, 0)
+#define MEDIA_COLOR        IF_COLOR (35, 0)
+#define GRAPH_COLOR        IF_COLOR (36, 0)
+#define DBASE_COLOR        IF_COLOR (37, 0)
 
 /* For the default color any unused index may be chosen. */
-#define DEFAULT_COLOR_INDEX   30
+#define DEFAULT_COLOR_INDEX   38
 #define DEFAULT_COLOR      IF_COLOR (DEFAULT_COLOR_INDEX, 0)
 
 /*
  * editor colors - only 3 for normal, search->found, and select, respectively
  * Last is defined to view color.
  */
-#define EDITOR_NORMAL_COLOR_INDEX    34
+#define EDITOR_NORMAL_COLOR_INDEX    42
 #define EDITOR_NORMAL_COLOR          IF_COLOR (EDITOR_NORMAL_COLOR_INDEX, 0)
-#define EDITOR_BOLD_COLOR            IF_COLOR (35, A_BOLD)
-#define EDITOR_MARKED_COLOR          IF_COLOR (36, A_REVERSE)
+#define EDITOR_BOLD_COLOR            IF_COLOR (43, A_BOLD)
+#define EDITOR_MARKED_COLOR          IF_COLOR (44, A_REVERSE)
 
 /* Error dialog colors */
-#define ERROR_HOT_NORMAL   IF_COLOR (37, 0)
-#define ERROR_HOT_FOCUS    IF_COLOR (38, 0)
+#define ERROR_HOT_NORMAL   IF_COLOR (45, 0)
+#define ERROR_HOT_FOCUS    IF_COLOR (46, 0)
 
 #ifdef HAVE_SLANG
 #   define CTYPE const char *
@@ -89,6 +98,19 @@
 #   define CTYPE int
 #endif
 
+/* File Types for file highlighting */
+struct file_types_t {
+    char *ftmp;
+    char *fdoc;
+    char *farch;
+    char *fsrc;
+    char *fmedia;
+    char *fgraph;
+    char *fdbase;
+};
+
+extern struct file_types_t file_types;
+
 void init_colors (void);
 void done_colors (void);
 void mc_init_pair (int index, CTYPE foreground, CTYPE background);
diff -urN mc-4.6.1/src/main.c mc-4.6.1.mod/src/main.c
--- mc-4.6.1/src/main.c	2005-08-09 15:54:49 +0400
+++ mc-4.6.1.mod/src/main.c	2005-08-09 15:47:29 +0400
@@ -917,6 +917,7 @@
     {' ', N_("c&Onfirmation..."), 'O', confirm_box},
     {' ', N_("&Display bits..."), 'D', display_bits_box},
     {' ', N_("learn &Keys..."), 'K', learn_keys},
+    {' ', N_("file &Highlighting..."),'H', file_highlighting_box},
 #ifdef USE_VFS
     {' ', N_("&Virtual FS..."), 'V', configure_vfs},
 #endif				/* !USE_VFS */
@@ -1436,6 +1437,15 @@
 	save_hotlist ();
     done_screen ();
     vfs_add_current_stamps ();
+
+    /* Free file highlighting variables */
+    g_free(file_types.ftmp);
+    g_free(file_types.fdoc);
+    g_free(file_types.farch);
+    g_free(file_types.fsrc);
+    g_free(file_types.fmedia);
+    g_free(file_types.fgraph);
+    g_free(file_types.fdbase);
 }
 
 /* This should be called after destroy_dlg since panel widgets
@@ -1905,7 +1915,9 @@
 	    "   Menus:        menu, menuhot, menusel, menuhotsel\n"
 	    "   Editor:       editnormal, editbold, editmarked\n"
 	    "   Help:         helpnormal, helpitalic, helpbold, helplink, helpslink\n"
-	    "   File types:   directory, executable, link, stalelink, device, special, core\n"
+	    "   File types:   directory, executable, link, stalelink, device, special,\n"
+	    "                 core, hidden, temp, doc, archive, source, media, graph,\n"
+	    "                 database\n"
 	    "\n" "Colors:\n"
 	    "   black, gray, red, brightred, green, brightgreen, brown,\n"
 	    "   yellow, blue, brightblue, magenta, brightmagenta, cyan,\n"
diff -urN mc-4.6.1/src/screen.c mc-4.6.1.mod/src/screen.c
--- mc-4.6.1/src/screen.c	2005-08-09 15:54:49 +0400
+++ mc-4.6.1.mod/src/screen.c	2005-08-09 15:47:29 +0400
@@ -104,6 +104,9 @@
 /* The hook list for the select file function */
 Hook *select_file_hook = 0;
 
+/* File Types for file highlighting */
+struct file_types_t file_types;
+
 static cb_ret_t panel_callback (WPanel *p, widget_msg_t msg, int parm);
 static int panel_event (Gpm_Event *event, WPanel *panel);
 static void paint_frame (WPanel *panel);
@@ -463,24 +466,72 @@
 };
 
 static int
+is_file_type(char *extension, char *file_type)
+{
+    char *ft;
+    char *buf;
+    char *ext;
+
+/* skip empty file types */
+    if (!file_type || !*file_type)
+        return 0;
+
+    buf = ft = g_strdup(file_type);
+    while (buf)
+    {
+        ext =
+#if defined(SUNOS) || defined(SOLARIS) || defined(SUNOS41x) ||  defined(SUNOS5x)
+       sunos_get_token(&buf, ",");
+#else
+        strsep(&buf, ",");
+#endif
+        if (!strcasecmp(extension, ext))
+        {
+            g_free(ft);
+            return 1;
+        }
+    }
+    g_free(ft);
+    return 0;
+}
+ 
+static int
 file_compute_color (int attr, file_entry *fe)
 {
-    switch (attr) {
-    case SELECTED:
-	return (SELECTED_COLOR);
-    case MARKED:
-	return (MARKED_COLOR);
-    case MARKED_SELECTED:
-	return (MARKED_SELECTED_COLOR);
-    case STATUS:
-	return (NORMAL_COLOR);
-    case NORMAL:
-    default:
-	if (!filetype_mode)
-	    return (NORMAL_COLOR);
+    int color;
+
+    switch (attr) {
+    case SELECTED:
+        color = SELECTED_COLOR;
+        break;
+    case MARKED:
+        color = MARKED_COLOR;
+        break;
+    case MARKED_SELECTED:
+        color = MARKED_SELECTED_COLOR;
+        break;
+    case STATUS:
+        color = NORMAL_COLOR;
+        break;
+    case NORMAL:
+    default:
+        color = file_entry_color(fe);
     }
+
+    return color;
+}
+     
+int
+file_entry_color (file_entry *fe)
+{
+    char *ext = extension(fe->fname);
 
+  if (filetype_mode)
+  {
     /* if filetype_mode == true  */
+    if (fe->fname[0]=='.' && strcmp(fe->fname, ".."))
+        return (HIDDEN_COLOR);
+    else
     if (S_ISDIR (fe->st.st_mode))
 	return (DIRECTORY_COLOR);
     else if (S_ISLNK (fe->st.st_mode)) {
@@ -509,7 +560,39 @@
     else if (fe->fname && (!strcmp (fe->fname, "core")
 			   || !strcmp (extension (fe->fname), "core")))
 	return (CORE_COLOR);
-
+    else
+    { /* file-extentions groups colorizing */
+	int tmpi;
+	char *new_ext = g_malloc(strlen(ext)+3);
+	for(tmpi=0;tmpi <= strlen(ext);tmpi++)
+	    new_ext[tmpi] = tolower(ext[tmpi]);
+
+        if (is_file_type(new_ext, file_types.ftmp)) {
+	    g_free(new_ext);
+            return (TEMP_COLOR);
+        } else if (is_file_type(new_ext, file_types.fdoc)) {
+    	    g_free(new_ext);
+            return (DOC_COLOR);
+        } else if (is_file_type(new_ext, file_types.farch)) {
+    	    g_free(new_ext);
+            return (ARCH_COLOR);
+        } else if (is_file_type(new_ext, file_types.fsrc)) {
+            g_free(new_ext);
+            return (SRC_COLOR);
+        } else if (is_file_type(new_ext, file_types.fmedia)) {
+            g_free(new_ext);
+            return (MEDIA_COLOR);
+        } else if (is_file_type(new_ext, file_types.fgraph)) {
+            g_free(new_ext);
+            return (GRAPH_COLOR);
+        } else if (is_file_type(new_ext, file_types.fdbase)) {
+            g_free(new_ext);
+            return (DBASE_COLOR);
+        }
+	g_free(new_ext);
+    }
+    return (NORMAL_COLOR);
+  }
     return (NORMAL_COLOR);
 }
 
diff -urN mc-4.6.1/src/setup.c mc-4.6.1.mod/src/setup.c
--- mc-4.6.1/src/setup.c	2005-05-27 18:19:18 +0400
+++ mc-4.6.1.mod/src/setup.c	2005-08-09 15:53:11 +0400
@@ -40,6 +40,7 @@
 #include "win.h"		/* lookup_key */
 #include "cmd.h"
 #include "file.h"		/* safe_delete */
+#include "color.h"		/* safe_delete */
 
 #ifdef USE_VFS
 #include "../vfs/gc.h"
@@ -349,6 +350,15 @@
 				   ftpfs_proxy_host, profile);
 #endif /* USE_VFS && USE_NETCODE */
 
+    /* Save file highlighting info */
+    save_string ("File Types", "temp", file_types.ftmp, profile_name);
+    save_string ("File Types", "doc", file_types.fdoc, profile_name);
+    save_string ("File Types", "archive", file_types.farch, profile_name);
+    save_string ("File Types", "source", file_types.fsrc, profile_name);
+    save_string ("File Types", "media", file_types.fmedia, profile_name);
+    save_string ("File Types", "graphics", file_types.fgraph, profile_name);
+    save_string ("File Types", "database", file_types.fdbase, profile_name);
+				
 #ifdef HAVE_CHARSET
     save_string( "Misc", "display_codepage",
     		 get_codepage_id( display_codepage ), profile_name );
@@ -438,10 +448,10 @@
 static char *
 do_load_string (const char *s, const char *ss, const char *def)
 {
-    char *buffer = g_malloc (BUF_SMALL);
+    char *buffer = g_malloc (BUF_MEDIUM);
     char *p;
 
-    load_string (s, ss, def, buffer, BUF_SMALL);
+    load_string (s, ss, def, buffer, BUF_MEDIUM);
 
     p = g_strdup (buffer);
     g_free (buffer);
@@ -533,6 +543,22 @@
     load_string ("Colors", "color_terminals", "",
 			     color_terminal_string, sizeof (color_terminal_string));
 
+    /* Load file highlighting info */
+    file_types.ftmp   = do_load_string ("File Types", "temp",
+                                "tmp,$$$,~,bak");
+    file_types.fdoc   = do_load_string ("File Types", "doc",
+                                "txt,doc,rtf,diz,ctl,me,ps,pdf,xml,xsd,xslt,dtd,html,shtml,htm,mail,msg,lsm,po,nroff,man,tex,sgml,css,text,letter");
+    file_types.farch  = do_load_string ("File Types", "archive",
+                                "gz,bz2,tar,tgz,rpm,Z,rar,zip,arj,cab,lzh,lha,zoo,arc,ark");
+    file_types.fsrc   = do_load_string ("File Types", "source",
+                                "c,h,cc,hh,cpp,hpp,asm,py,pl,pm,inc,cgi,php,phps,js,java,jav,jasm,sh,bash,diff,patch,pas,tcl,tk,awk,m4,st,mak,sl,ada,caml,ml,mli,mly,mll,mlp,sas,prg");
+    file_types.fmedia = do_load_string ("File Types", "media",
+                                "mp2,mp3,mpg,ogg,mpeg,wav,avi,asf,mov,mol,mpl,xm,mod,it,med,mid,midi,s3m,umx");
+    file_types.fgraph = do_load_string ("File Types", "graphics",
+                                "jpg,jpeg,gif,png,tif,pcx,bmp,xpm,xbm,eps,pic,rle,ico,wmf,omf,ai,cdr");
+    file_types.fdbase = do_load_string ("File Types", "database",
+                                "dbf,mdn,db,mdb,dat,fox,dbx,mdx,sql,mssql,msql,ssql,pgsql,xls,cdx,dbi");
+
     /* Load the directory history */
 /*    directory_history_load (); */
     /* Remove the temporal entries */
diff -urN mc-4.6.1/doc/ru/mc.1.in mc-4.6.1.mod/doc/ru/mc.1.in
--- mc-4.6.1/doc/ru/mc.1.in	2004-08-17 12:41:53 +0400
+++ mc-4.6.1.mod/doc/ru/mc.1.in	2005-08-22 17:21:26 +0400
@@ -3351,8 +3351,9 @@
 dnormal, dfocus, dhotnormal, dhotfocus; Цвета в окне подсказки:
 helpnormal, helpitalic, helpbold, helplink, helpslink; в окне программы
 просмотра:  viewunderline; специальные подсветки: executable, directory,
-link, device, special, core; в окне редактора: editnormal, editbold,
-editmarked.
+link, device, special, core; подсветка файлов по типам: hidden, temp,
+doc, archive, source, media, graph, database; в окне редактора:
+editnormal, editbold, editmarked.
 .PP
 Цвета задавать не обязательно. Цвет какого именно поля определяется
 каждым ключевым словом, можно понять из перевода этого ключевого слова.
@@ -3416,6 +3417,25 @@
 .I core
 \- для файлов с дампами (core).
 .PP
+Аналогично подсветка файлов по типам используется для подсветки файлов
+в зависимости от их расширения:
+.I hidden
+используется для скрытых файлов и каталогов, которые начинаются с точки;
+.I temp
+\- для временных файлов;
+.I doc
+\- для файлов документов;
+.I archive
+\- для файлов архивов;
+.I source
+\- для файлов исходных текстов;
+.I media
+\- для мультимедиа-файлов;
+.I graph
+\- для графических файлов;
+.I database
+\- для файлов баз данных.
+.PP
 Возможные цвета: black, gray, red, brightred, green, brightgreen, brown,
 yellow, blue, brightblue, magenta, brightmagenta, cyan, brightcyan,
 lightgray и white.
diff -urN mc-4.6.1/doc/mc.1.in mc-4.6.1.mod/doc/mc.1.in
--- mc-4.6.1/doc/mc.1.in	2004-08-17 12:41:53 +0400
+++ mc-4.6.1.mod/doc/mc.1.in	2005-08-22 17:21:26 +0400
@@ -3021,7 +3021,9 @@
 dhotnormal, dhotfocus.  Help colors are: helpnormal, helpitalic,
 helpbold, helplink, helpslink.  Viewer color is: viewunderline.  Special
 highlighting colors are: executable, directory, link, stalelink, device,
-special, core.  Editor colors are: editnormal, editbold, editmarked.
+special, core. Filetype highlighting colors are: hidden, temp, doc,
+archive, source, media, graph, database.  Editor colors are: editnormal,
+editbold, editmarked.
 .PP
 .I input
 determines the color of input lines used in query dialogs.
@@ -3079,6 +3081,25 @@
 .I core
 is for core files.
 .PP
+Also filetype highlight colors determine how files displayed depending
+on file type such as (below are colors named as filetypes):
+.I hidden
+is used for hidden files and directories that begin with dot;
+.I temp
+is used for temporary files;
+.I doc
+is used for document and text files;
+.I archive
+is used for archive files;
+.I source
+is used for files with source codes;
+.I media
+is used for multimedia files;
+.I graph
+is used for files with graphic data;
+.I database
+is used for database files.
+.PP
 The possible colors are: black, gray, red, brightred, green,
 brightgreen, brown, yellow, blue, brightblue, magenta, brightmagenta,
 cyan, brightcyan, lightgray and white. And there is a special keyword
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin