# Keywords and patterns the cleaner keeps out of curly brackets, on top of
# the argument-taking macros of the vendored snapshot in macro_functions.txt
# and the macros the spec itself declares.
#
# A name the snapshot carries is not listed here: the snapshot is the
# data-driven source for argument-taking macros, and listing such a name
# again would only restate what the data already provides. Lines starting
# with '#' and empty lines are skipped by the loader.
#
# The entries are grouped by the reason they are here; the group header
# states the reason, and an entry carries its own comment only where the
# name needs one beyond that.

# rpm section keywords: a braced %{...} would be a macro expansion, not a
# section header
build
changelog
check
conf
filetriggerin
filetriggerpostun
filetriggerun
generate_buildrequires
install
patchlist
post
posttrans
postun
postuntrans
pre
prep
pretrans
preun
preuntrans
sourcelist
transfiletriggerin
transfiletriggerpostun
transfiletriggerun
triggerin
triggerpostun
triggerprein
triggerun

# spec parser directives, not macros the snapshot can carry
else
elif[^\s]*
endif
if(\s*\(.*\))?
if[^\s]*
include
patch[0-9]*
setup

# %files directives and flag words, not macro invocations; for the
# parenthesised forms the braced invocation form is the directive syntax
# itself
artifact
attr(\s*\([^)]*\))?
caps(\s*\([^)]*\))?
config(\s*\([^)]*\))?
defattr(\s*\([^)]*\))?
defverify(\s*\([^)]*\))?
dev(\s*\([^)]*\))?
dir
doc
docdir
exclude
ghost
lang(\s*\([^)]*\))
license
missingok
pubkey
readme
# also covers the %verifyscript section keyword
verify[^\s]*
verify(\s*\([^)]*\))?

# plain macros taking no arguments; the snapshot carries argument-taking
# macros only
__os_install_post
run_permissions
systemd_ordering
systemd_requires
sysusers_requires

# emitted by the cleaner's own dephell conversion in rpmprep; the
# generated output keeps the spelling the conversion produces
dephell_gensetup

# macros invoked like commands, kept unbraced by convention: they read as
# the command line they expand to, and bracing is applied only where it
# makes sense. The snapshot does not carry them as argument-taking
# macros — several families among them the snapshot does not fully
# carry — and a few are defined in neither distribution's macro files.
cabal_test
cmake
cmake_[^\s]*
configure
electron_check_native
electron_rebuild
fillup_[^\s]*
find_lang
gem_packages
ghc_pkg_recache
glib2_gsettings_schema_[^\s]*
gpg_verify
insserv_[^\s]*
jupyter_move_config
kf6_build
kf6_install
langpack
make_build
make_install
make_jobs
makeinstall
meson
meson_[^\s]*
_mingw32_configure
ninja_[^\s]*
nodejs_install
ocaml_create_file_list
ocaml_dune_build
ocaml_dune_install
ocaml_dune_setup
ocaml_dune_test
octave
octave_pkg_src
octave_pkg_test
pattern_[^\s]*
perl_make_install
py_compile
pyqt_install
python(.?)_build
qmake
qmake5
qmake5_install
qmake6
qmake6_build
qmake6_install
qt6_build
qt6_install
regenerate_initrd_post
regenerate_initrd_posttrans
reconfigure_fonts_[^\s]*
requires_[^\s]*
set_build_flags
setup_openmpi
suseconfig_fonts_prereq
systemd_preset_post
systemd_preset_posttrans
systemd_preset_pre
systemd_user_preset_post
systemd_user_preset_posttrans
systemd_user_preset_pre
update_bootloader_posttrans
yast_(build|check|install)[^\s]*
yast_metainfo
