Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package vim for openSUSE:Factory checked in 
at 2026-06-23 17:35:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vim (Old)
 and      /work/SRC/openSUSE:Factory/.vim.new.1956 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "vim"

Tue Jun 23 17:35:16 2026 rev:400 rq:1360695 version:9.2.0530

Changes:
--------
--- /work/SRC/openSUSE:Factory/vim/vim.changes  2026-04-28 11:54:49.897658104 
+0200
+++ /work/SRC/openSUSE:Factory/.vim.new.1956/vim.changes        2026-06-23 
17:35:19.758699449 +0200
@@ -1,0 +2,179 @@
+Sat Jun 20 06:23:46 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Actually apply vim-9.1.1732-fix-inc-detection.patch (add the missing
+  Patch16 / %patch entries): the patch was committed and documented but
+  never wired into the spec, so the fix for bsc#1262395 (scientific
+  parameter files misdetected as bitbake recipes) was not being built
+
+-------------------------------------------------------------------
+Tue Jun 16 20:01:40 UTC 2026 - Christian Boltz <[email protected]>
+
+- Update apparmor.vim to latest version (from AppArmor 5.0.1)
+  - several updates for highlighting file rules
+
+-------------------------------------------------------------------
+Tue May 26 18:59:49 UTC 2026 - Martin Schreiner <[email protected]>
+
+- Update to v9.2.0530.
+- Fix for SG#71948, bsc#1262395:
+  * vim-9.1.1732-fix-inc-detection.patch: Fix for incorrectly detecting
+    scientific parameter files as bitbake recipies.
+- Upstream fixed the following bugs / CVEs:
+  * bsc#1264706 CVE-2026-42307
+  * bsc#1265360 CVE-2026-46483
+  * bsc#1264708 CVE-2026-45130
+  * bsc#1264707 CVE-2026-44656
+  * bsc#1265349 CVE-2026-43961
+- Changes:
+  * 9.2.0530: WinBar row vertical separator not refreshed on window change
+  * 9.2.0529: GTK4: clipboard returns empty after a foreign app takes the 
selection
+  * 9.2.0528: possible overflow in XIM resource handling
+  * 9.2.0527: Possible double free in fill_partial_and_closure()
+  * 9.2.0526: missing out-of-memory check in ex_substitute()
+  * 9.2.0525: spell: memory leak in spell_read_dic()
+  * 9.2.0524: spell: buffer overflow with many affix or compound flags
+  * 9.2.0523: tests: no test for using shellescape() in combination with :!
+  * 9.2.0522: event_nr2name() in autocmd.c can be improved
+  * 9.2.0521: GTK4: cannot resize shell after the window is shown
+  * 9.2.0520: Reversed text opacity in popup when termguicolor is set
+  * 9.2.0519: GTK4: GUI tabline is not displayed correctly
+  * 9.2.0518: GTK4: input method cannot compose text
+  * 9.2.0517: quickfix: can set quickfixtextfunc in restricted/sandbox mode
+  * 9.2.0516: socketserver: spurious error when servername is taken
+  * 9.2.0515: virtualedit=insert doesn't work during change operation
+  * 9.2.0514: GTK4: build errors when socketserver is enabled
+  * 9.2.0513: [security]: memory safety issues in spellfile.c
+  * 9.2.0512: clientserver uses binary protocol
+  * 9.2.0511: configure: when GTK4 is used also links in X11 libs
+  * 9.2.0510: setline() mapping may trigger autoindent
+  * 9.2.0509: term.c: compile error when LOG_TRN is enabled
+  * 9.2.0508: completion: cannot complete user cmd :K with 'ignorecase'
+  * 9.2.0507: Vim9 class: public/protected member name clash uses same error
+  * 9.2.0506: home_replace() function can be improved
+  * 9.2.0505: GTK4: text looks blurry on HiDPI displays
+  * 9.2.0504: configure: requires X11 libraries for GTK4 build
+  * 9.2.0503: Makefile: Missing dependencies for new GTK4 source files
+  * 9.2.0502: runtime(netrw): bookmark handling can be improved
+  * 9.2.0501: GTK4: there is no GTK4 UI available
+  * 9.2.0500: filetype: some html files wrongly recognized as htmlangular
+  * 9.2.0499: modeline: allow to disable modelines with modelinestrict
+  * 9.2.0498: potential heap buffer overflow in if_xcmdsrv.c
+  * 9.2.0497: Cannot jump to remote tags
+  * 9.2.0496: [security]: Code Injection in cucumber filetype plugin
+  * 9.2.0495: [security]: runtime(netrw): code injection via 
NetrwBookHistSave()
+  * 9.2.0494: User commands cannot handle single args with spaces
+  * 9.2.0493: popup: missing  Popup, PopupBorder and PopupTitle hi groups
+  * 9.2.0492: popup: decoration wrongly drawn with clipping on border
+  * 9.2.0491: VMS: various build issues
+  * 9.2.0490: matchfuzzy() can crash on long multi-word patterns
+  * 9.2.0489: filetype: some Objective-C files are not recognized
+  * 9.2.0488: statusline: status line highlight blends into adjacent vsep cells
+  * 9.2.0487: viminfo: possible signed int overflow in register array
+  * 9.2.0486: out-of-bound read when recovering swap files
+  * 9.2.0485: clipboard provider callback can be called recursively
+  * 9.2.0484: TextPutPre triggers clipboard provider callback twice
+  * 9.2.0483: popup: terminal embedded in an opacity popup freezes Vim on input
+  * 9.2.0482: runtime(osc52): triggered twice with TextPutPoste autocmd
+  * 9.2.0481: runtime(netrw): command injection possible via maps
+  * 9.2.0480: [security]: runtime(netrw): code injection via mf command
+  * 9.2.0479: [security]: runtime(tar): command injection in tar plugin
+  * 9.2.0478: channel: redundant str/length assignments in channel_part_info()
+  * 9.2.0477: popup: leftover content after popup_free under layout change
+  * 9.2.0476: pattern completion leaks memory on alloc failures
+  * 9.2.0475: runtime(netrw): bookmark paths not normalized
+  * 9.2.0474: MS-Windows: hard to tell which Visual Studio version was 
selected with MSVC
+  * 9.2.0473: Pasting ". register without autocommands breaks TextPut*
+  * 9.2.0472: popup: column jitters when scrolled outside viewport
+  * 9.2.0471: vimvars di_key initialized at runtime
+  * 9.2.0470: No way to hook into put commands
+  * 9.2.0469: popup: textprop-anchored popups bleed past host window edges
+  * 9.2.0468: popups: not correctly updated from a CmdlineChanged autocommand
+  * 9.2.0467: multi-line statusline loses highlighting attributes
+  * 9.2.0466: popup: redraw can use stale blended cells
+  * 9.2.0465: modeline: foldmarker cannot be set with modelinestrict
+  * 9.2.0464: runtime(netrw): bookmarking directory uses current dir
+  * 9.2.0463: Not able to use legacy expression evaluation in a vim9script maps
+  * 9.2.0462: MS-Windows: workaround for assert error on GUI
+  * 9.2.0461: Corrupted undofile causes use-after-free
+  * 9.2.0460: did_set_shellpipe_redir() in wrong file
+  * 9.2.0459: tests: test_termcodes fails (after v9.2.0456)
+  * 9.2.0458: Crash with invalid shellredir/shellpipe value
+  * 9.2.0457: Compile warning about unused variable
+  * 9.2.0456: stray p character displayed on some terms
+  * 9.2.0455: 'findfunc' only allows extra info for cmdline completion
+  * 9.2.0454: tests: no test that "abbr" in customlist completion is shown
+  * 9.2.0453: vertical separator of statusline blend into active statusline
+  * 9.2.0452: screen.c popup opacity blend logic is duplicated
+  * 9.2.0451: 'findfunc' can't return extra info for cmdline completion
+  * 9.2.0450: [security]: heap buffer overflow in spellfile.c read_compound()
+  * 9.2.0449: Make proto fails in non GTK builds
+  * 9.2.0448: Vim9: dangling cmdline pointer after skip_expr_cctx()
+
+-------------------------------------------------------------------
+Wed May  6 19:41:13 UTC 2026 - Ondřej Súkup <[email protected]>
+
+- update to 9.2.0447
+ patch 9.2.0447: cindent does not ignore comments
+ patch 9.2.0446: runtime(netrw): off-by-one bug in s:NetrwUnMarkFile()
+ patch 9.2.0445: win_fix_scroll() called before win_comp_pos() in 
command_height()
+ patch 9.2.0444: Cannot set 'path' option via modeline
+ patch 9.2.0443: GUI: cancelling save dialog overwrites or discards unnamed 
buffer
+ patch 9.2.0442: completion: i_CTRL-X_CTRL-V doesn't use dict from customlist
+ runtime(autopkgtest): update syntax script
+ Fix wrong comment in getchar.c
+ patch 9.2.0441: statusline: click handler not called on multi-line statusline
+ patch 9.2.0440: MS-Windows: cursor flicker during update_screen()
+ patch 9.2.0439: completion: info popup not removed in cmdline mode
+ patch 9.2.0438: tests: test_plugin_termdebug is flaky
+ runtime(doc): Tweak documentation style
+ Fix a few more typos
+ patch 9.2.0437: MS-Windows: cursor flicker in vtp mode
+ patch 9.2.0436: Buffer overflow when parsing overlong errorformat lines
+ patch 9.2.0435: [security]: backticks in 'path' may cause shell execution on 
completion
+ patch 9.2.0434: cscope: filename interpreted by /bin/sh
+ patch 9.2.0433: customlist completion cannot supply pum metadata
+ patch 9.2.0432: blob to string conversion can be improved
+ patch 9.2.0431: blob encoding can be improved
+ patch 9.2.0430: tests: Test_shortmess_F3() is flaky on MS-Windows
+ patch 9.2.0429: tests: flaky screendump Test_smoothscroll_incsearch()
+ runtime(algol68): Update syntax file, match symbolic identity relators
+ patch 9.2.0428: popup: no opacity support for completepopup/previewpopup
+ patch 9.2.0427: popup: opacity blend may leaks white bg color
+ patch 9.2.0426: tests: still some flaky screendump tests
+ patch 9.2.0425: Cannot silence undo/redo messages
+ patch 9.2.0424: popup: flicker when wildtrigger() refreshes the popup menu
+ patch 9.2.0423: popup: wrapped cmdline truncated with wildoptions=pum
+ patch 9.2.0422: popup: leave stray char when scrollbar changes
+ translation(sr): Update of Serbian translation
+ runtime(cabal): add missing haskell language editions
+ runtime(doc): clarify separator cell on status line rows
+ runtime(doc): Update help tags file
+ runtime(doc): clarify that viminfo file should be trusted
+ patch 9.2.0421: vimball: can smuggle Vimscript into VimballRecord file
+ patch 9.2.0420: channel: cannot handle binary data via channel callbacks
+ patch 9.2.0419: popup: rendering issues
+ patch 9.2.0418: wildcards in expanded env vars reinterpreted by glob
+ patch 9.2.0417: completion: no support for "noinsert" with 'wildmode'
+ patch 9.2.0416: Unix: filename completion splits at space for single-file Ex 
commands
+ patch 9.2.0415: Wrong behavior when executing register that ends in Insert 
mode
+ patch 9.2.0414: Flicker when drawing window separator and pum is shown
+ runtime(qml): Add optional chaining to QML syntax
+ patch 9.2.0413: Scrolling wrong with 'splitkeep' when changing 'cmdheight'
+ patch 9.2.0412: channel: term_start() out_cb/err_cb no longer deliver raw 
chunks
+ patch 9.2.0411: tabpanel: no Vim script functions for the tabpanel
+ patch 9.2.0410: test suite races when run with parallel make
+ runtime(doc): Update docs related to tabpanel
+ patch 9.2.0409: memory leaks in copy_substring_from_pos()
+ patch 9.2.0408: Insert-mode <Cmd> edits can corrupt undo
+ patch 9.2.0407: tabpanel: A few issues with the tabpanel
+ patch 9.2.0406: VisualNOS not used when Wayland selection ownership lost
+ patch 9.2.0405: when jumping to tags, will open URLs
+ patch 9.2.0404: redraw_listener_add() does not check secure flag
+ patch 9.2.0403: Vim9: def function sandbox bypass
+ patch 9.2.0402: pum: opacity not applied to wildmenu pum
+ patch 9.2.0401: tests: still a few flaky tests
+ patch 9.2.0400: sandbox callbacks selected through 'complete'
+ patch 9.2.0399: MS-Windows: compile warning in strptime.c
+ runtime(doc): fix :z command description again
+
+-------------------------------------------------------------------

Old:
----
  vim-9.2.0398.tar.gz

New:
----
  vim-9.1.1732-fix-inc-detection.patch
  vim-9.2.0530.tar.gz

----------(New B)----------
  New:
- Actually apply vim-9.1.1732-fix-inc-detection.patch (add the missing
  Patch16 / %patch entries): the patch was committed and documented but
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ vim.spec ++++++
--- /var/tmp/diff_new_pack.VuebuN/_old  2026-06-23 17:35:21.458758687 +0200
+++ /var/tmp/diff_new_pack.VuebuN/_new  2026-06-23 17:35:21.462758827 +0200
@@ -17,7 +17,7 @@
 
 
 %define pkg_version 9.2
-%define patchlevel 0398
+%define patchlevel 0530
 %define patchlevel_compact %{patchlevel}
 %define VIM_SUBDIR vim92
 %define site_runtimepath %{_datadir}/vim/site
@@ -74,6 +74,7 @@
 Patch13:        %{name}-8.0.1568-defaults.patch
 Patch14:        %{name}-8.2.2411-globalvimrc.patch
 Patch15:        %{name}-9.1.1134-revert-putty-terminal-colors.patch
+Patch16:        %{name}-9.1.1732-fix-inc-detection.patch
 BuildRequires:  autoconf >= 2.71
 BuildRequires:  db-devel
 BuildRequires:  fdupes
@@ -83,7 +84,6 @@
 BuildRequires:  perl
 BuildRequires:  pkgconfig
 BuildRequires:  ruby-devel
-BuildRequires:  update-desktop-files
 BuildRequires:  wayland-utils
 BuildRequires:  pkgconfig(form)
 BuildRequires:  pkgconfig(formw)
@@ -227,6 +227,7 @@
 %patch -P 13 -p1
 %patch -P 14 -p1
 %patch -P 15 -p1
+%patch -P 16 -p1
 cp %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE8} %{SOURCE10} .
 
 %build
@@ -410,7 +411,6 @@
 
 # desktop file for gvim
 install -D -m 0644 %{SOURCE19} 
%{buildroot}%{_datadir}/applications/gvim.desktop
-%suse_update_desktop_file gvim Utility TextEditor
 
 #
 # documentation

++++++ apparmor.vim ++++++
--- /var/tmp/diff_new_pack.VuebuN/_old  2026-06-23 17:35:21.522760917 +0200
+++ /var/tmp/diff_new_pack.VuebuN/_new  2026-06-23 17:35:21.526761057 +0200
@@ -25,8 +25,8 @@
 " stick this file into ~/.vim/syntax/ and add these commands into your .vimrc
 " to have vim automagically use this syntax file for these directories:
 "
-" autocmd BufNewFile,BufRead /etc/apparmor.d/*                      set 
syntax=apparmor
-" autocmd BufNewFile,BufRead /usr/share/apparmor/extra-profiles/*   set 
syntax=apparmor
+" autocmd BufNewFile,BufRead /etc/apparmor.d/*                      set 
filetype=apparmor
+" autocmd BufNewFile,BufRead /usr/share/apparmor/extra-profiles/*   set 
filetype=apparmor
 
 " profiles are case sensitive
 syntax case match
@@ -215,81 +215,153 @@
 " file rules added with create_file_rule()
 
 " write + exec/mmap - danger! (known bug: accepts aw to keep things simple)
-syn match  sdEntryWriteExec  
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(l|r|w|a|m|k|[iuUpPcC]x)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryWriteExec  
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(l|r|w|a|m|k|[iuUpPcC]x)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryWriteExec  
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|w|a|m|k|[iuUpPcC]x)+(\s+-\>\s+\S+)?\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryWriteExec  
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|w|a|m|k|[iuUpPcC]x)+(\s+-\>\s+\S+)?\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryWriteExec  
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[lrwamk]*[iuUpPcC][iUu]?x[lrwamk]*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryWriteExec  
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[lrwamk]*[iuUpPcC][iUu]?x[lrwamk]*\s+(\/|\@\{\S*\})\S*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryWriteExec  
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[lrwamk]*[iuUpPcC][iUu]?x[lrwamk]*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryWriteExec  
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[lrwamk]*[iuUpPcC][iUu]?x[lrwamk]*\s+"(\/|\@\{\S*\})\S*"(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryWriteExec  
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[lrwamk]*[iuUpPcC][iUu]?x[lrwamk]*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryWriteExec  
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[lrwamk]*[iuUpPcC][iUu]?x[lrwamk]*\s+(\/|\@\{\S*\})\S*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryWriteExec  
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[lrwamk]*[iuUpPcC][iUu]?x[lrwamk]*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryWriteExec  
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[lrwamk]*[iuUpPcC][iUu]?x[lrwamk]*\s+"(\/|\@\{\S*\})\S*"(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 
-" ux(mr) - unconstrained entry, flag the line red. also includes pux which is 
unconstrained if no profile exists
+" ux(mr) - unconfined entry, flag the line red. also includes pux which is 
unconfined if no profile exists
 syn match  sdEntryUX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|ux|pux)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryUX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ux|pux)+\s+(\/|\@\{\S*\})\S*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 syn match  sdEntryUX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|ux|pux)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryUX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ux|pux)+(\s+-\>\s+\S+)?\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryUX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ux|pux)+(\s+-\>\s+\S+)?\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryUX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ux|pux)+\s+"(\/|\@\{\S*\})\S*"(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryUX 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|ux|pux)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryUX 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ux|pux)+\s+(\/|\@\{\S*\})\S*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryUX 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|ux|pux)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryUX 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ux|pux)+\s+"(\/|\@\{\S*\})\S*"(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 
 " Ux(mr) and PUx(mr) - like ux + clean environment
 syn match  sdEntryUXe 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|Ux|PUx)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryUXe 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Ux|PUx)+\s+(\/|\@\{\S*\})\S*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 syn match  sdEntryUXe 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|Ux|PUx)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryUXe 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Ux|PUx)+(\s+-\>\s+\S+)?\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryUXe 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Ux|PUx)+(\s+-\>\s+\S+)?\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryUXe 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Ux|PUx)+\s+"(\/|\@\{\S*\})\S*"(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryUXe 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|Ux|PUx)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryUXe 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Ux|PUx)+\s+(\/|\@\{\S*\})\S*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryUXe 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|Ux|PUx)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryUXe 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Ux|PUx)+\s+"(\/|\@\{\S*\})\S*"(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 
 " px/cx/pix/cix(mrk) - standard exec entry, flag the line blue
 syn match  sdEntryPX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|px|cx|pix|cix)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryPX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|px|cx|pix|cix)+\s+(\/|\@\{\S*\})\S*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 syn match  sdEntryPX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|px|cx|pix|cix)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryPX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|px|cx|pix|cix)+(\s+-\>\s+\S+)?\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryPX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|px|cx|pix|cix)+(\s+-\>\s+\S+)?\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryPX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|px|cx|pix|cix)+\s+"(\/|\@\{\S*\})\S*"(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryPX 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|px|cx|pix|cix)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryPX 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|px|cx|pix|cix)+\s+(\/|\@\{\S*\})\S*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryPX 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|px|cx|pix|cix)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryPX 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|px|cx|pix|cix)+\s+"(\/|\@\{\S*\})\S*"(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 
 " Px/Cx/Pix/Cix(mrk) - like px/cx + clean environment
 syn match  sdEntryPXe 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|Px|Cx|Pix|Cix)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryPXe 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Px|Cx|Pix|Cix)+\s+(\/|\@\{\S*\})\S*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 syn match  sdEntryPXe 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|Px|Cx|Pix|Cix)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryPXe 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Px|Cx|Pix|Cix)+(\s+-\>\s+\S+)?\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryPXe 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Px|Cx|Pix|Cix)+(\s+-\>\s+\S+)?\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryPXe 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Px|Cx|Pix|Cix)+\s+"(\/|\@\{\S*\})\S*"(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryPXe 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|Px|Cx|Pix|Cix)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryPXe 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Px|Cx|Pix|Cix)+\s+(\/|\@\{\S*\})\S*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryPXe 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|Px|Cx|Pix|Cix)+(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryPXe 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|Px|Cx|Pix|Cix)+\s+"(\/|\@\{\S*\})\S*"(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 
 " ix(mr) - standard exec entry, flag the line green
 syn match  sdEntryIX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|ix)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryIX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|ix)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 syn match  sdEntryIX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ix)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryIX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ix)+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryIX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|ix)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryIX 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ix)+\s+"(\/|\@\{\S*\})\S*"\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryIX 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|ix)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryIX 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ix)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryIX 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|ix)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryIX 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k|ix)+\s+"(\/|\@\{\S*\})\S*"\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 
 " mr - mmap with PROT_EXEC
 syn match  sdEntryM 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryM 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 syn match  sdEntryM 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryM 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k)+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryM 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryM 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k)+\s+"(\/|\@\{\S*\})\S*"\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryM 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryM 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryM 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryM 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(r|m|k)+\s+"(\/|\@\{\S*\})\S*"\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 
 " special case: deny x is allowed (does not need to be ix, px, ux or cx)
 syn match  sdEntryM 
/\v^\s*(audit\s+)?deny\s+(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|x)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryM 
/\v^\s*(audit\s+)?deny\s+(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|x)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 syn match  sdEntryM 
/\v^\s*(audit\s+)?deny\s+(owner\s+|other\s+)?(r|m|k|x)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryM 
/\v^\s*(audit\s+)?deny\s+(owner\s+|other\s+)?(r|m|k|x)+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryM 
/\v^\s*(audit\s+)?deny\s+(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|x)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryM 
/\v^\s*(audit\s+)?deny\s+(owner\s+|other\s+)?(r|m|k|x)+\s+"(\/|\@\{\S*\})\S*"\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryM 
/\v^\s*file\s+(audit\s+)?deny\s+(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(r|m|k|x)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryM 
/\v^\s*file\s+(audit\s+)?deny\s+(owner\s+|other\s+)?(r|m|k|x)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryM 
/\v^\s*file\s+(audit\s+)?deny\s+(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(r|m|k|x)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryM 
/\v^\s*file\s+(audit\s+)?deny\s+(owner\s+|other\s+)?(r|m|k|x)+\s+"(\/|\@\{\S*\})\S*"\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 
 " write + append is an error
 syn match  sdError 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+\S*(w\S*a|a\S*w)\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdError 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+\S*(w\S*a|a\S*w)\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 syn match  sdError 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?\S*(w\S*a|a\S*w)\S*\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdError 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?\S*(w\S*a|a\S*w)\S*\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdError 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+\S*(w\S*a|a\S*w)\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdError 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?\S*(w\S*a|a\S*w)\S*\s+"(\/|\@\{\S*\})\S*"\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdError 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+\S*(w\S*a|a\S*w)\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdError 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?\S*(w\S*a|a\S*w)\S*\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdError 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+\S*(w\S*a|a\S*w)\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdError 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?\S*(w\S*a|a\S*w)\S*\s+"(\/|\@\{\S*\})\S*"\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+
+" link (and optionally write) entry, flag the line yellow
+syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[rak]*l[rak]*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rak]*l[rak]*\s+(\/|\@\{\S*\})\S*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[rak]*l[rak]*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rak]*l[rak]*\s+"(\/|\@\{\S*\})\S*"(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[rak]*l[rak]*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rak]*l[rak]*\s+(\/|\@\{\S*\})\S*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[rak]*l[rak]*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rak]*l[rak]*\s+"(\/|\@\{\S*\})\S*"(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+
+" write entry, flag the line yellow
+syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[rak]+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rak]+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[rak]+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rak]+\s+"(\/|\@\{\S*\})\S*"\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[rak]+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rak]+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[rak]+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rak]+\s+"(\/|\@\{\S*\})\S*"\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+
+" link (and optionally write) entry, flag the line yellow
+syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[rwk]*l[rwk]*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rwk]*l[rwk]*\s+(\/|\@\{\S*\})\S*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[rwk]*l[rwk]*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rwk]*l[rwk]*\s+"(\/|\@\{\S*\})\S*"(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[rwk]*l[rwk]*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rwk]*l[rwk]*\s+(\/|\@\{\S*\})\S*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[rwk]*l[rwk]*(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rwk]*l[rwk]*\s+"(\/|\@\{\S*\})\S*"(\s+-\>\s+\S+)?\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 
 " write entry, flag the line yellow
-syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(l|r|w|k)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(l|r|w|k)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|w|k)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|w|k)+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-
-" append entry, flag the line yellow
-syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+(l|r|a|k)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+(l|r|a|k)+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|a|k)+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(l|r|a|k)+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[rwk]+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rwk]+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[rwk]+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rwk]+\s+"(\/|\@\{\S*\})\S*"\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[rwk]+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rwk]+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[rwk]+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryW 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rwk]+\s+"(\/|\@\{\S*\})\S*"\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 
 " read entry + locking, currently no highlighting
-syn match  sdEntryK 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[rlk]+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryK 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[rlk]+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryK 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rlk]+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryK 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rlk]+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryK 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[rk]+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryK 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rk]+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryK 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[rk]+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryK 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rk]+\s+"(\/|\@\{\S*\})\S*"\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryK 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[rk]+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryK 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rk]+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryK 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[rk]+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryK 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rk]+\s+"(\/|\@\{\S*\})\S*"\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 
 " read entry, no highlighting
-syn match  sdEntryR 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+[rl]+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryR 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+[rl]+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryR 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rl]+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
-syn match  sdEntryR 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?[rl]+\s+"(\/|\@\{\S*\})\S*"+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryR 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+r+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryR 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?r+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryR 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+r+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryR 
/\v^\s*(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?r+\s+"(\/|\@\{\S*\})\S*"\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryR 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?(\/|\@\{\S*\})\S*\s+r+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryR 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?r+\s+(\/|\@\{\S*\})\S*\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryR 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?"(\/|\@\{\S*\})\S*"\s+r+\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
+syn match  sdEntryR 
/\v^\s*file\s+(audit\s+)?(deny\s+|allow\s+)?(owner\s+|other\s+)?r+\s+"(\/|\@\{\S*\})\S*"\s*,(\s*$|(\s*#.*$)\@=)/
 contains=sdGlob,sdComment nextgroup=@sdEntry,sdComment,sdError,sdInclude
 
 










++++++ vim-9.1.1732-fix-inc-detection.patch ++++++
Index: vim-9.2.0530/runtime/autoload/dist/ft.vim
===================================================================
--- vim-9.2.0530.orig/runtime/autoload/dist/ft.vim
+++ vim-9.2.0530/runtime/autoload/dist/ft.vim
@@ -920,7 +920,8 @@ export def FTinc()
       elseif line =~ '^\s*\%({\|(\*\)' || line =~? ft_pascal_keywords
         setf pascal
         return
-      elseif line =~# '\<\%(require\|inherit\)\>' || line =~# 
'[A-Z][A-Za-z0-9_:${}/]*\(\[[A-Za-z0-9_:/]\+\]\)*\s\+\%(??\|[?:+.]\)\?=.\? '
+      elseif line =~# '^\s*\%(require\|inherit\)\>'
+        || line =~# 
"^\s*[A-Z][A-Za-z0-9_:${}/-]*\(\[[A-Za-z0-9_:/]\+\]\)*\s*\\%(??=\\|:=\\|+=\\|?=\\|\\.=\\|=\\.\\|=\\)\\s*\\%(['\"]\\|\\${\\)"
         setf bitbake
         return
       endif

++++++ vim-9.2.0398.tar.gz -> vim-9.2.0530.tar.gz ++++++
/work/SRC/openSUSE:Factory/vim/vim-9.2.0398.tar.gz 
/work/SRC/openSUSE:Factory/.vim.new.1956/vim-9.2.0530.tar.gz differ: char 14, 
line 1

Reply via email to