I have a mapping that executes the :cnext command (or another command based
on context):
" map <F3> and <S-F3> to jump between locations in a quickfix list, or
" differences if in window in diff mode
if v:version >= 700
nnoremap <expr> <silent> <F3> <SID>NextThingJump()
nnoremap <expr> <silent> <S-F3> <SID>PrevThingJump()
function! s:NextThingJump()
let cmd=''
if &diff
let cmd.= "]c"
elseif !empty(getloclist(0))
let cmd.= ":lnext\<CR>zv"
elseif !empty(getqflist())
let cmd.= ":cnext\<CR>zv"
else
let cmd.= 'n'
endif
return cmd.":.list\<CR>"
endfun
function! s:PrevThingJump()
let cmd=''
if &diff
let cmd.= "[c"
elseif !empty(getloclist(0))
let cmd.= ":lprev\<CR>zv"
elseif !empty(getqflist())
let cmd.= ":cprev\<CR>zv"
else
let cmd.= 'N'
endif
return cmd.":.list\<CR>"
endfun
When using this command, with a quickfix list populated by a :make command,
I got a crash as follows:
> gvim.exe!qf_jump(qf_info_S * qi, int dir, int errornr, int forceit) Line
1903 + 0x15 bytes C
gvim.exe!do_one_cmd(unsigned char * * cmdlinep, int sourcing, condstack *
cstack, unsigned char * (int, void *, int)* fgetline, void * cookie) Line
2962 C
gvim.exe!do_cmdline(unsigned char * cmdline, unsigned char * (int, void
*, int)* fgetline, void * cookie, int flags) Line 1138 C
gvim.exe!nv_colon(cmdarg_S * cap) Line 5437 C
gvim.exe!normal_cmd(oparg_S * oap, int toplevel) Line 1183 C
gvim.exe!main_loop(int cmdwin, int noexmode) Line 1352 C
gvim.exe!VimMain() Line 1050 + 0x9 bytes C
gvim.exe!WinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInst, char *
lpszCmdLine, int nCmdShow) Line 131 C
gvim.exe!__tmainCRTStartup() Line 275 + 0x21 bytes C
Here is the content of the "locals" window in a Visual Studio debugger:
+ qi 0x0000000000000000 {qf_refcount=??? qf_listcount=??? qf_curlist=???
...} qf_info_S *
dir 0x00000001 int
errornr 0x001becd0 int
forceit 0x00000000 int
+ e_no_more_items 0x000000013f8b0b48 "E553: No more items" unsigned char *
And here is the "Autos" window:
+ IObuff 0x0000000001c5bbc0 "(2 of 0) (line deleted) ): " unsigned char *
I know this may not be all that useful, but maybe somebody will see
something (related to qi being NULL no doubt).
qf_ptr and len can't be found at all by the debugger for some reason.
msg_scrolled is currently set to 1.
I'm not sure why there would be a "no more items" string in the local
variables, unless that is pre-populated just in case of error. I was
somewhere in the middle of my quickfix hits, transitioning from one file to
another, with an ignored line in between the real lines in the quickfix
list.
I don't have time to try narrowing it down any further, sorry.
My Vim version is a 64-bit 7.4.898, HUGE version with GUI, on 64-bit
Windows. I do have several plugins active that use the Python interface but
from the crash location I doubt that's related.
--
--
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.