Dominique Pellé wrote:

> Stephen Riehm <[email protected]> wrote:
> 
> > Hi everyone,
> >
> > after upgrading from MacVim 104 to MacVim 106 I noticed that <M-"> no 
> > longer works (not recognised for maps - just inserts a ¢ character). (The 
> > problem also exists in 105 - which I missed).
> >
> > Workarounds such as <S-M-'> also had no effect.
> >
> > After a bit of git bisecting I found the following commit:
> >
> > 1d90a5a... patch 7.4.1968 Problem:    Invalid memory access with "\<C-">. 
> > Solution:   Do not recognize this as a special character. (Dominique Pelle)
> >
> > misc2.c line 2762 (as of commit 5009946)
> >
> >                 /* Anything accepted, like <C-?>, except <C-">, because the 
> > "
> >                  * ends the string. */
> >                 if (bp[l] != '"' && bp[l + 1] == '>')
> >                     bp += l;
> >
> > This only checks for "> - thus not only catching <C-"> but also <M-">. 
> > (which always worked fine (for me at least :-)).
> > Strangely, <D-"> was not adversely affected.
> >
> > After returning the check to its original
> >
> >                 if (bp[l + 1] == '>')
> >
> > <M-"> worked fine again.
> >
> > Also, even without the extra check, I still could not reproduce any 
> > problems via <C-"> (except that it only produced a ' character - Mac OS 
> > 10.9.5, MacVim Snapshot 106).
> >
> > Could we please revoke this patch, possibly replacing it with something 
> > else?
> >
> > IMHO: If the invalid memory access problem still exists, it should be 
> > solved by "not accessing invalid memory" rather than simply turning off / 
> > breaking useful functionality.
> >
> > Thanks in advance,
> >
> > Steve
> 
> 
> Hi Steve
> 
> I attach a patch which re-allows <M-"> in mappings while
> still fixing the memory error that was fixed in 7.4.1968.
> 
> Please confirm whether that works for you.
> 
> I verified that:
> 
> * all tests pass with the patch
> 
> * valgrind --num-callers=20 vim -u NONE -c 'echo "\<M-">' -c q 2> log
>   which reported memory errors before 7.4.1968 is still fixed.
> 
> * in gvim, mappings with <M-">  works  (it was broken
>   by patch 7.4.1968). Example:
> 
>   :imap <M-"> foo

Thanks.  While writing a test for this I realized that there is no way
to use <M-"> in a string.  Since many places expect the " to terminate
the string, we need to put a backslash before it to avoid that.  And
then have the special key code recognize that backslash, so that
"<M-\">" works.  I'll make it that way.

-- 
hundred-and-one symptoms of being an internet addict:
25. You believe nothing looks sexier than a man in boxer shorts illuminated
    only by a 17" inch svga monitor.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui