Package: vim Version: 2:7.3.035+hg~8fdc12103333-1 Severity: normal I think I've tracked down the root cause of this bug.
- Vim asks the terminal for its version string when it starts, in the may_req_termresponse function, by sending the kPRV string from the terminfo record, and then calling vpeekc_nomap. - That reads the response from stdin into typebuf, and eventually ends up in check_termcode, which handles terminal escape sequences. - check_termcode finds the version response, and if it manages to extract an xterm version number, it sets various features based on that version number. - check_termcode then translates the escape sequence into the key_name array as KS_EXTRA and KE_IGNORE, which match the second and third bytes of the escape sequence. - Towards the end of check_termcode (near the comment "Add any modifier codes to our string."), this becomes a three-byte sequence K_SPECIAL KS_EXTRA KE_IGNORE, which matches the three bytes that appear in the script file. - check_termcode then puts this sequence into the typebuf, and doesn't seem to set anything to make vim treat this sequence as something not typed by the user. - Later on, this character gets read, and ends up in vgetorpeek. Near the comment "get a character: 2. from the typeahead buffer", vgetorpeek ends up considering this character a typed character, and feeds it to gotchars, which calls updatescript on each character to write it to the script file. I don't know the correct fix. Possibly something should set tb_maplen to mark the character as the result of a map, or possibly the character shouldn't get re-inserted into typebuf at all. - Josh Triplett -- System Information: Debian Release: 6.0 APT prefers unstable APT policy: (500, 'unstable'), (500, 'stable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 2.6.37-rc5-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages vim depends on: ii libacl1 2.2.49-4 Access control list shared library ii libc6 2.11.2-7 Embedded GNU C Library: Shared lib ii libgpm2 1.20.4-3.3 General Purpose Mouse - shared lib ii libncurses5 5.7+20100313-4 shared libraries for terminal hand ii libselinux1 2.0.96-1 SELinux runtime shared libraries ii vim-common 2:7.3.035+hg~8fdc12103333-1 Vi IMproved - Common files ii vim-runtime 2:7.3.035+hg~8fdc12103333-1 Vi IMproved - Runtime files vim recommends no packages. Versions of packages vim suggests: pn ctags <none> (no description available) pn vim-doc <none> (no description available) pn vim-scripts <none> (no description available) -- no debconf information -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org