annotate runtime/indent/python.vim @ 33295:a43861545866 v9.0.1913

patch 9.0.1913: if_python: undefined behaviour for function pointers Commit: https://github.com/vim/vim/commit/2ce070c27acd12ccc614afa4cecf4970a645a4af Author: Yee Cheng Chin <ychin.git@gmail.com> Date: Tue Sep 19 20:30:22 2023 +0200 patch 9.0.1913: if_python: undefined behaviour for function pointers Problem: if_python: undefined behaviour for function pointers Solution: Fix if_python undefined behavior for function pointer casts Identified by clang 17 UBSAN (see #12745). Make sure to cast function pointers with the same signature only. closes: #13122 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 Tue, 19 Sep 2023 20:45:05 +0200
parents 4027cefc2aab
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1 " Vim indent file
32770
4027cefc2aab Farewell to Bram and dedicate upcoming Vim 9.1 to him (#12749)
Christian Brabandt <cb@256bit.org>
parents: 29450
diff changeset
2 " Language: Python
4027cefc2aab Farewell to Bram and dedicate upcoming Vim 9.1 to him (#12749)
Christian Brabandt <cb@256bit.org>
parents: 29450
diff changeset
3 " Maintainer: The Vim Project <https://github.com/vim/vim>
4027cefc2aab Farewell to Bram and dedicate upcoming Vim 9.1 to him (#12749)
Christian Brabandt <cb@256bit.org>
parents: 29450
diff changeset
4 " Last Change: 2023 Aug 10
4027cefc2aab Farewell to Bram and dedicate upcoming Vim 9.1 to him (#12749)
Christian Brabandt <cb@256bit.org>
parents: 29450
diff changeset
5 " Former Maintainer: Bram Moolenaar <Bram@vim.org>
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6 " Original Author: David Bustos <bustos@caltech.edu>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8 " Only load this indent file when no other was loaded.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 if exists("b:did_indent")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12 let b:did_indent = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14 " Some preliminary settings
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15 setlocal nolisp " Make sure lisp indenting doesn't supersede us
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 setlocal autoindent " indentexpr isn't much help otherwise
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17
29450
67f31c24291b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25880
diff changeset
18 setlocal indentexpr=python#GetIndent(v:lnum)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19 setlocal indentkeys+=<:>,=elif,=except
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20
25880
9c221ad9634a Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24751
diff changeset
21 let b:undo_indent = "setl ai< inde< indk< lisp<"
9c221ad9634a Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24751
diff changeset
22
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 " Only define the function once.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 if exists("*GetPythonIndent")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27
29450
67f31c24291b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25880
diff changeset
28 " Keep this for backward compatibility, new scripts should use
67f31c24291b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25880
diff changeset
29 " python#GetIndent()
67f31c24291b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25880
diff changeset
30 function GetPythonIndent(lnum)
67f31c24291b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25880
diff changeset
31 return python#GetIndent(a:lnum)
20379
7f88f6a3ed4c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 15932
diff changeset
32 endfunction
7f88f6a3ed4c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 15932
diff changeset
33
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 " vim:sw=2