diff src/charset.c @ 29595:5233acfa06f1 v9.0.0138

patch 9.0.0138: not enough characters accepted for 'spellfile' Commit: https://github.com/vim/vim/commit/bc49c5f48f89c2d6f4d88ee77f44a11d68293be3 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Aug 4 13:01:48 2022 +0100 patch 9.0.0138: not enough characters accepted for 'spellfile' Problem: Not enough characters accepted for 'spellfile'. Solution: Add vim_is_fname_char() and use it for 'spellfile'.
author Bram Moolenaar <Bram@vim.org>
date Thu, 04 Aug 2022 14:15:29 +0200
parents 32aee589fc9a
children f2d7f20d83c3
line wrap: on
line diff
--- a/src/charset.c
+++ b/src/charset.c
@@ -225,7 +225,8 @@ buf_init_chartab(
 			    }
 			    else
 			    {
-				g_chartab[c] = (g_chartab[c] & ~CT_CELL_MASK) + 1;
+				g_chartab[c] = (g_chartab[c] & ~CT_CELL_MASK)
+									   + 1;
 				g_chartab[c] |= CT_PRINT_CHAR;
 			    }
 			}
@@ -846,8 +847,10 @@ vim_iswordp_buf(char_u *p, buf_T *buf)
 }
 
 /*
- * return TRUE if 'c' is a valid file-name character
+ * Return TRUE if 'c' is a valid file-name character as specified with the
+ * 'isfname' option.
  * Assume characters above 0x100 are valid (multi-byte).
+ * To be used for commands like "gf".
  */
     int
 vim_isfilec(int c)
@@ -856,6 +859,16 @@ vim_isfilec(int c)
 }
 
 /*
+ * Return TRUE if 'c' is a valid file-name character, including characters left
+ * out of 'isfname' to make "gf" work, such as comma, space, '@', etc.
+ */
+    int
+vim_is_fname_char(int c)
+{
+    return vim_isfilec(c) || c == ',' || c == ' ' || c == '@';
+}
+
+/*
  * return TRUE if 'c' is a valid file-name character or a wildcard character
  * Assume characters above 0x100 are valid (multi-byte).
  * Explicitly interpret ']' as a wildcard character as mch_has_wildcard("]")