Mercurial > vim
view runtime/plugin/vimballPlugin.vim @ 33303:924e9cb09df7 v9.0.1917
patch 9.0.1917: undefined behaviour with python function pointer
Commit: https://github.com/vim/vim/commit/d606fccf6fd716bda43a8e1d11d898f438d28b82
Author: Yee Cheng Chin <ychin.git@gmail.com>
Date: Wed Sep 20 19:59:47 2023 +0200
patch 9.0.1917: undefined behaviour with python function pointer
Problem: undefined behaviour with python function pointer
Solution: correctly cast function pointers from void
Fix more undefined behaviors in if_python
Fix remaining UBSAN errors from Clang 17 in if_python in casting
function pointers.
Also fix a mistake where `PyMem_Free()` should be returning void, by the
dynamic build is mistakenly casting it as a function that returns an
int.
closes: #13128
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 20 Sep 2023 20:15:04 +0200 |
parents | fcd65e5d277a |
children | 02bd0fe77c68 |
line wrap: on
line source
" vimballPlugin : construct a file containing both paths and files " Author: Charles E. Campbell " Copyright: (c) 2004-2014 by Charles E. Campbell " The VIM LICENSE applies to Vimball.vim, and Vimball.txt " (see |copyright|) except use "Vimball" instead of "Vim". " No warranty, express or implied. " *** *** Use At-Your-Own-Risk! *** *** " " (Rom 2:1 WEB) Therefore you are without excuse, O man, whoever you are who " judge. For in that which you judge another, you condemn yourself. For " you who judge practice the same things. " GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim " --------------------------------------------------------------------- " Load Once: {{{1 if &cp || exists("g:loaded_vimballPlugin") finish endif let g:loaded_vimballPlugin = "v37" let s:keepcpo = &cpo set cpo&vim " ------------------------------------------------------------------------------ " Public Interface: {{{1 com! -range -complete=file -nargs=+ -bang MkVimball call vimball#MkVimball(<line1>,<line2>,<bang>0,<f-args>) com! -nargs=? -complete=dir UseVimball call vimball#Vimball(1,<f-args>) com! -nargs=0 VimballList call vimball#Vimball(0) com! -nargs=* -complete=dir RmVimball call vimball#SaveSettings()|call vimball#RmVimball(<f-args>)|call vimball#RestoreSettings() augroup Vimball au! au BufEnter *.vba,*.vba.gz,*.vba.bz2,*.vba.zip,*.vba.xz \ if getline(1) =~ '^" Vimball Archiver' | \ setlocal bt=nofile fmr=[[[,]]] fdm=marker|if &ff != 'unix'|setlocal ma ff=unix noma|endif|if line('$') > 1|call vimball#ShowMesg(0, "Source this file to extract it! (:so %)")|endif | \ endif au SourceCmd *.vba.gz,*.vba.bz2,*.vba.zip,*.vba.xz let s:origfile=expand("%")|if expand("%")!=expand("<afile>") | exe "1sp" fnameescape(expand("<afile>"))|endif|call vimball#Decompress(expand("<amatch>"))|so %|if s:origfile!=expand("<afile>")|close|endif au SourceCmd *.vba if expand("%")!=expand("<afile>") | exe "1sp" fnameescape(expand("<afile>"))|call vimball#Vimball(1)|close|else|call vimball#Vimball(1)|endif au BufEnter *.vmb,*.vmb.gz,*.vmb.bz2,*.vmb.zip,*.vmb.xz \ if getline(1) =~ '^" Vimball Archiver' | \ setlocal bt=nofile fmr=[[[,]]] fdm=marker|if &ff != 'unix'|setlocal ma ff=unix noma|endif|if line('$') > 1|call vimball#ShowMesg(0,"Source this file to extract it! (:so %)")|endif | \ endif au SourceCmd *.vmb.gz,*.vmb.bz2,*.vmb.zip,*.vmb.xz let s:origfile=expand("%")|if expand("%")!=expand("<afile>") | exe "1sp" fnameescape(expand("<afile>"))|endif|call vimball#Decompress(expand("<amatch>"))|so %|if s:origfile!=expand("<afile>")|close|endif au SourceCmd *.vmb if expand("%")!=expand("<afile>") | exe "1sp" fnameescape(expand("<afile>"))|call vimball#Vimball(1)|close|else|call vimball#Vimball(1)|endif augroup END " ===================================================================== " Restoration And Modelines: {{{1 " vim: fdm=marker let &cpo= s:keepcpo unlet s:keepcpo " vim: ts=4: