On 2009-04-21 19:07, Till Maas wrote
> On Di April 21 2009, Stefanie Fauconnier wrote:
> 
>> I have the same problem. When I hit <F5> in insert mode and choose an
>> environment (doesn't matter which one) there is a redundant " before the
>> cursor. I'm using vim-latexsuite 20060325-4.1 on Ubuntu Hardy (installed
>> from the Ubuntu repos).

I also had this problem with vim-latexsuite 20060325-4.1. Moving to the 
current vim-latex-1.5-20090804-r1058 tarball release downloaded from 
sourceforge fixed it for me.

>> I don't know if I'd better upgrade or not, I made
>> quite a few customizations so I don't know if it would matter that much
>> anyway (I replaced most math functionalities with shortcuts and combo's for
>> linguists).

Beware, I did have problems upgrading from 20060325-4.1 to 
vim-latex-1.5-20090804-r1058. Like you, I had loads of customizations in 
the code, but recent clean-ups apparently also introduced a number of 
small bugs. See my other mails for patches.


Back to the <F5> bug:

Before trying vim-latex-1.5-20090804-r1058, I digged into this problem 
as well. What I found is a bit worrying, as it might indicate a bug in 
vim that needs to be reported upstream.

When calling vim's input() function with a string that contains 
newlines, $BAD_THINGS can happen much later. In this example, the 
following occurred:

Tex_DoEnvironment()
|
  \-calls PromptForEnvironment()
  |  |
  |  \-calls Tex_InputChooseFromPrompt()
  |   |
  |    \-calls input("a \n long \n string \n with \n newlines")
  |
   \-calls Tex_PutEnvironment()
     |
      \-calls IMAP_PutTextWithMovement()
        |
         \-uses expression register (c_CTRL-R_=) to enter movement string

The string entered into the document by IMAP_PutTextWithMovement with 
the expression register is quite complicated, containing some function 
calls to set position and the likes.
When entering the string into the expression register by hand, it works 
okay. It also works okay in IMAP_PutTextWithMovement() with _most_ 
strings. Apparently, only some special characters like \[ (escape?) 
cause problems.
The problems go away if you change the prompt-string used in input() to 
not contain newlines. Also, the problems go away if you use 
inputdisplay() in a gui.

To me it looks a bit like vim's implementation of input() has some 
buffer overflow that causes problems *much* later. Bad, _bad_ thing.


> There seems to be a fix in svn for your problem according to the log message:
> http://vim-latex.svn.sourceforge.net/viewvc/vim-latex?view=rev&revision=1013

This log message says:
>  Bug: In vim7, 'exe pos' doesn't seem to always work. Sometimes it leads to
>       a spurious double-quote being inserted into the text. I have no idea
>       why this happens. However, using vim's native setpos() when available
>       seems to not have this problem.

While using setpos() instead of exe pos obviously doesn't trigger the 
problem any more, this might turn up any time again, as vim-latex uses 
input() with \n constantly. Therefore I wouldn't consider this bug fixed 
yet, even if it's working at the moment.

This should probably be investigated by a more experienced vim-latex 
developer, and if it's indeed a bug in input(), it needs to be fixed 
upstream. I'll leave the upstream reporting in the capable hands of the 
aforementioned experienced vim-latex developer ;)

Cheers,
Alex


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Vim-latex-devel mailing list
Vim-latex-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vim-latex-devel

Reply via email to