I was working on a plugin in which I wanted to capture the exit
status of my 'makeprg', preferably using v:shell_error.  The trouble
was that on Unix, 'shellpipe' is "2>&1| tee", so that following
:make, v:shell_error contained the exit status of tee and not of
'makeprg'.
I solved the problem by using bash's PIPESTATUS array variable to
access the exit status of the first command in the :make pipeline
and modifying 'shellpipe' to exit with that status.
    let l:save_sp  = &shellpipe
    let &shellpipe .= " %s; exit ${PIPESTATUS[0]}"
    make
    " v:shell_error now contains the exit status of 'makeprg'.
    let &shellpipe = l:save_sp
Let me know if there's a better way to do that.  In the meantime,
I hope someone finds that useful.
Regards,
Gary
-- 
-- 
You received this message from the "vim_use" 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_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment