comparison 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
comparison
equal deleted inserted replaced
29594:6eea3c60c85c 29595:5233acfa06f1
223 + ((dy_flags & DY_UHEX) ? 4 : 2); 223 + ((dy_flags & DY_UHEX) ? 4 : 2);
224 g_chartab[c] &= ~CT_PRINT_CHAR; 224 g_chartab[c] &= ~CT_PRINT_CHAR;
225 } 225 }
226 else 226 else
227 { 227 {
228 g_chartab[c] = (g_chartab[c] & ~CT_CELL_MASK) + 1; 228 g_chartab[c] = (g_chartab[c] & ~CT_CELL_MASK)
229 + 1;
229 g_chartab[c] |= CT_PRINT_CHAR; 230 g_chartab[c] |= CT_PRINT_CHAR;
230 } 231 }
231 } 232 }
232 } 233 }
233 else if (i == 2) // (re)set fname flag 234 else if (i == 2) // (re)set fname flag
844 c = (*mb_ptr2char)(p); 845 c = (*mb_ptr2char)(p);
845 return vim_iswordc_buf(c, buf); 846 return vim_iswordc_buf(c, buf);
846 } 847 }
847 848
848 /* 849 /*
849 * return TRUE if 'c' is a valid file-name character 850 * Return TRUE if 'c' is a valid file-name character as specified with the
851 * 'isfname' option.
850 * Assume characters above 0x100 are valid (multi-byte). 852 * Assume characters above 0x100 are valid (multi-byte).
853 * To be used for commands like "gf".
851 */ 854 */
852 int 855 int
853 vim_isfilec(int c) 856 vim_isfilec(int c)
854 { 857 {
855 return (c >= 0x100 || (c > 0 && (g_chartab[c] & CT_FNAME_CHAR))); 858 return (c >= 0x100 || (c > 0 && (g_chartab[c] & CT_FNAME_CHAR)));
859 }
860
861 /*
862 * Return TRUE if 'c' is a valid file-name character, including characters left
863 * out of 'isfname' to make "gf" work, such as comma, space, '@', etc.
864 */
865 int
866 vim_is_fname_char(int c)
867 {
868 return vim_isfilec(c) || c == ',' || c == ' ' || c == '@';
856 } 869 }
857 870
858 /* 871 /*
859 * return TRUE if 'c' is a valid file-name character or a wildcard character 872 * return TRUE if 'c' is a valid file-name character or a wildcard character
860 * Assume characters above 0x100 are valid (multi-byte). 873 * Assume characters above 0x100 are valid (multi-byte).