Mercurial > vim
view runtime/indent/dts.vim @ 33004:50e7d33c40f9 v9.0.1794
patch 9.0.1794: autoconf: not correctly detecing include dirs
Commit: https://github.com/vim/vim/commit/74e1dada4199b2d9e68ccaafdb7895c85b4b08f1
Author: Illia Bobyr <illia.bobyr@gmail.com>
Date: Sun Aug 27 18:26:54 2023 +0200
patch 9.0.1794: autoconf: not correctly detecing include dirs
Problem: autoconf: not correctly detecing include dirs
Solution: make use of python3 to generate includedirs
configure: Python3: Use sysconfig for -I
It seems better to use tools provided by Python for determining the
include directories, rather than construct them "manually".
Current system is broken when using virtual environments for python
3.11.4. It used to work before, but now it detects a incorrect value
for `-I`.
It would probably make sense to switch to a similar logic for lib
folders, that is for the `-l` switch. There are also
`sysconfig.get_config_h_filename()` and
`sysconfig.get_makefile_filename()`, that could replace more Python
specific logic in the current `configure{.ac,}`.
sysconfig provides the necessary tools since Python 2.7.
closes: #12889
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Illia Bobyr <illia.bobyr@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 27 Aug 2023 18:45:03 +0200 |
parents | 695b50472e85 |
children |
line wrap: on
line source
" Vim indent file " Language: Device Tree " Maintainer: Roland Hieber, Pengutronix <rhi@pengutronix.de> " if exists("b:did_indent") finish endif let b:did_indent = 1 setlocal autoindent setlocal nosmartindent setlocal indentkeys=o,O,0},0<>>,!<Ctrl-F> setlocal indentexpr=GetDTSIndent() setlocal nolisp let b:undo_indent = 'setl autoindent< smartindent< indentkeys< indentexpr< lisp<' function GetDTSIndent() let sw = shiftwidth() let lnum = v:lnum let line = getline(lnum) let prevline = getline(prevnonblank(lnum-1)) let prevind = indent(prevnonblank(lnum-1)) if prevnonblank(lnum-1) < 1 return 0 endif " Don't indent header and preprocessor directives if line =~ '^\s*\(/dts-\|#\(include\|define\|undef\|warn\(ing\)\?\|error\|if\(n\?def\)\?\|else\|elif\|endif\)\)' return 0 " Don't indent /node and &label blocks elseif line =~ '^\s*[/&].\+{\s*$' return 0 " Indent to matching bracket or remove one shiftwidth if line begins with } or > elseif line =~ '^\s*[}>]' " set cursor to closing bracket on current line let col = matchend(line, '^\s*[>}]') call cursor(lnum, col) " determine bracket type, {} or <> let pair = strpart('{}<>', stridx('}>', line[col-1]) * 2, 2) " find matching bracket pair let pairline = searchpair(pair[0], '', pair[1], 'bW') if pairline > 0 return indent(pairline) else return prevind - sw endif " else, add one level of indent if line ends in { or < or = or , elseif prevline =~ '[{<=,]$' return prevind + sw else return prevind endif endfunction