Browse Source

Merge branch '4413_user_syntax'

* 4413_user_syntax:
  Ticket #4413: mcedit: syntax definitions in user location don't work.
Andrew Borodin 2 years ago
parent
commit
2df6771645
6 changed files with 18 additions and 21 deletions
  1. 5 3
      doc/man/mcedit.1.in
  2. 2 1
      lib/fileloc.h
  3. 1 1
      lib/mcconfig/paths.c
  4. 3 3
      src/editor/editcmd.c
  5. 5 11
      src/editor/syntax.c
  6. 2 2
      tests/lib/mcconfig/user_configs_path.c

+ 5 - 3
doc/man/mcedit.1.in

@@ -237,12 +237,12 @@ where equal is symbol "=" goes to next function in navigation list
 supports syntax highlighting.  This means that keywords and contexts
 (like C comments, string constants, etc) are highlighted in different
 colors.  The following section explains the format of the file
-.BR ~/.config/mc/mcedit/Syntax .
+.BR ~/.local/share/mc/syntax/Syntax .
 If this file is missing, system\-wide
 .B %pkgdatadir%/syntax/Syntax
 is used.
 The file
-.B ~/.config/mc/mcedit/Syntax
+.B ~/.local/share/mc/syntax/Syntax
 is rescanned on opening of every new editor file.  The file contains
 rules for highlighting, each of which is given on a separate line, and
 define which keywords will be highlighted with what color.
@@ -631,7 +631,9 @@ affect all users, whether they have ~/.config/mc/ini or not.
 .I %pkgdatadir%/syntax/*
 .IP
 The default system\-wide syntax files for mcedit, used only if
-the corresponding user's own ~/.local/share/mc/mcedit/ file is missing.
+the corresponding user's own file in
+.B ~/.local/share/mc/syntax/
+is missing.
 .PP
 .I ~/.config/mc/ini
 .IP

+ 2 - 1
lib/fileloc.h

@@ -72,10 +72,11 @@
 
 /* file names */
 #define EDIT_HOME_MACRO_FILE    EDIT_HOME_DIR PATH_SEP_STR "macros.d" PATH_SEP_STR "macro"
-#define EDIT_HOME_SYNTAX_FILE   EDIT_HOME_DIR PATH_SEP_STR "Syntax"
 #define EDIT_HOME_CLIP_FILE     EDIT_HOME_DIR PATH_SEP_STR "mcedit.clip"
 #define EDIT_HOME_BLOCK_FILE    EDIT_HOME_DIR PATH_SEP_STR "mcedit.block"
 #define EDIT_HOME_TEMP_FILE     EDIT_HOME_DIR PATH_SEP_STR "mcedit.temp"
+#define EDIT_SYNTAX_DIR         "syntax"
+#define EDIT_SYNTAX_FILE        EDIT_SYNTAX_DIR PATH_SEP_STR "Syntax"
 
 #define EDIT_GLOBAL_MENU        "mcedit.menu"
 #define EDIT_LOCAL_MENU         ".cedit.menu"

+ 1 - 1
lib/mcconfig/paths.c

@@ -64,7 +64,6 @@ static const struct
     { &mc_config_str, MC_HOTLIST_FILE },
     { &mc_config_str, GLOBAL_KEYMAP_FILE },
     { &mc_config_str, MC_USERMENU_FILE },
-    { &mc_config_str, EDIT_HOME_SYNTAX_FILE },
     { &mc_config_str, EDIT_HOME_MENU },
     { &mc_config_str, MC_PANELS_FILE },
 
@@ -82,6 +81,7 @@ static const struct
     { &mc_data_str, MC_EXTFS_DIR },
     { &mc_data_str, MC_HISTORY_FILE },
     { &mc_data_str, MC_FILEPOS_FILE },
+    { &mc_data_str, EDIT_SYNTAX_FILE },
     { &mc_data_str, EDIT_HOME_CLIP_FILE },
     { &mc_data_str, MC_MACRO_FILE },
 

+ 3 - 3
src/editor/editcmd.c

@@ -1128,19 +1128,19 @@ edit_load_syntax_file (WDialog * h)
                             _("&User"), _("&System wide"));
 
     extdir_vpath =
-        vfs_path_build_filename (mc_global.sysconfig_dir, "syntax", "Syntax", (char *) NULL);
+        vfs_path_build_filename (mc_global.sysconfig_dir, EDIT_SYNTAX_FILE, (char *) NULL);
     if (!exist_file (vfs_path_get_last_path_str (extdir_vpath)))
     {
         vfs_path_free (extdir_vpath, TRUE);
         extdir_vpath =
-            vfs_path_build_filename (mc_global.share_data_dir, "syntax", "Syntax", (char *) NULL);
+            vfs_path_build_filename (mc_global.share_data_dir, EDIT_SYNTAX_FILE, (char *) NULL);
     }
 
     if (dir == 0)
     {
         vfs_path_t *user_syntax_file_vpath;
 
-        user_syntax_file_vpath = mc_config_get_full_vpath (EDIT_HOME_SYNTAX_FILE);
+        user_syntax_file_vpath = mc_config_get_full_vpath (EDIT_SYNTAX_FILE);
         check_for_default (extdir_vpath, user_syntax_file_vpath);
         ret = edit_load_file_from_filename (h, user_syntax_file_vpath, 0);
         vfs_path_free (user_syntax_file_vpath, TRUE);

+ 5 - 11
src/editor/syntax.c

@@ -57,7 +57,7 @@
 #include "lib/global.h"
 #include "lib/search.h"         /* search engine */
 #include "lib/skin.h"
-#include "lib/fileloc.h"        /* EDIT_HOME_DIR, EDIT_HOME_SYNTAX_FILE */
+#include "lib/fileloc.h"        /* EDIT_SYNTAX_DIR, EDIT_SYNTAX_FILE */
 #include "lib/strutil.h"        /* utf string functions */
 #include "lib/util.h"
 #include "lib/widget.h"         /* Listbox, message() */
@@ -887,20 +887,14 @@ open_include_file (const char *filename)
 
     g_free (error_file_name);
     error_file_name =
-        g_build_filename (mc_config_get_data_path (), EDIT_HOME_DIR, filename, (char *) NULL);
-    f = fopen (error_file_name, "r");
-    if (f != NULL)
-        return f;
-
-    g_free (error_file_name);
-    error_file_name = g_build_filename (mc_global.sysconfig_dir, "syntax", filename, (char *) NULL);
+        g_build_filename (mc_config_get_data_path (), EDIT_SYNTAX_DIR, filename, (char *) NULL);
     f = fopen (error_file_name, "r");
     if (f != NULL)
         return f;
 
     g_free (error_file_name);
     error_file_name =
-        g_build_filename (mc_global.share_data_dir, "syntax", filename, (char *) NULL);
+        g_build_filename (mc_global.share_data_dir, EDIT_SYNTAX_DIR, filename, (char *) NULL);
 
     return fopen (error_file_name, "r");
 }
@@ -1270,7 +1264,7 @@ edit_read_syntax_file (WEdit * edit, GPtrArray * pnames, const char *syntax_file
     f = fopen (syntax_file, "r");
     if (f == NULL)
     {
-        lib_file = g_build_filename (mc_global.share_data_dir, "syntax", "Syntax", (char *) NULL);
+        lib_file = g_build_filename (mc_global.share_data_dir, EDIT_SYNTAX_FILE, (char *) NULL);
         f = fopen (lib_file, "r");
         g_free (lib_file);
         if (f == NULL)
@@ -1521,7 +1515,7 @@ edit_load_syntax (WEdit * edit, GPtrArray * pnames, const char *type)
     if (edit != NULL && edit->filename_vpath == NULL)
         return;
 
-    f = mc_config_get_full_path (EDIT_HOME_SYNTAX_FILE);
+    f = mc_config_get_full_path (EDIT_SYNTAX_FILE);
     if (edit != NULL)
         r = edit_read_syntax_file (edit, pnames, f, vfs_path_as_str (edit->filename_vpath),
                                    get_first_editor_line (edit),

+ 2 - 2
tests/lib/mcconfig/user_configs_path.c

@@ -97,8 +97,8 @@ static const struct test_user_config_paths_ds
         MC_USERMENU_FILE
     },
     { /* 5. */
-        CONF_MAIN,
-        EDIT_HOME_SYNTAX_FILE
+        CONF_DATA,
+        EDIT_SYNTAX_FILE
     },
     { /* 6. */
         CONF_MAIN,