vim-patch:9.1.0642: Check that mapping rhs starts with lhs fails if not simplified (#29909)

Problem:  Check that mapping rhs starts with lhs doesn't work if lhs is
          not simplified.
Solution: Keep track of the mapblock containing the alternative lhs and
          also compare with it (zeertzjq).

fixes: vim/vim#15376
closes: vim/vim#15384

9d997addc7

Cherry-pick removal of save_m_str from patch 8.2.4059.
This commit is contained in:
zeertzjq
2024-07-30 07:35:25 +08:00
committed by GitHub
parent d131c48c82
commit 4b852bc555
4 changed files with 103 additions and 38 deletions

View File

@@ -10,6 +10,9 @@ enum { MAXMAPLEN = 50, }; ///< Maximum length of key sequence to be mapped.
typedef struct mapblock mapblock_T;
struct mapblock {
mapblock_T *m_next; ///< next mapblock in list
mapblock_T *m_alt; ///< pointer to mapblock of the same mapping
///< with an alternative form of m_keys, or NULL
///< if there is no such mapblock
char *m_keys; ///< mapped from, lhs
char *m_str; ///< mapped to, rhs
char *m_orig_str; ///< rhs as entered by the user