Blame m4/as_case.m4

Packit Service 7c31a4
# AS_CASE(WORD, [PATTERN1], [IF-MATCHED1]...[DEFAULT])
Packit Service 7c31a4
# ----------------------------------------------------
Packit Service 7c31a4
# Expand into
Packit Service 7c31a4
# | case WORD in
Packit Service 7c31a4
# | PATTERN1) IF-MATCHED1 ;;
Packit Service 7c31a4
# | ...
Packit Service 7c31a4
# | *) DEFAULT ;;
Packit Service 7c31a4
# | esac
Packit Service 7c31a4
m4_define([_AS_CASE],
Packit Service 7c31a4
[m4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])],
Packit Service 7c31a4
       [$#], 1, [  *) $1 ;;],
Packit Service 7c31a4
       [$#], 2, [  $1) m4_default([$2], [:]) ;;],
Packit Service 7c31a4
       [  $1) m4_default([$2], [:]) ;;
Packit Service 7c31a4
$0(m4_shiftn(2, $@))])dnl
Packit Service 7c31a4
])
Packit Service 7c31a4
m4_defun([AS_CASE],
Packit Service 7c31a4
[m4_ifval([$2$3],
Packit Service 7c31a4
[case $1 in
Packit Service 7c31a4
_AS_CASE(m4_shift($@))
Packit Service 7c31a4
esac])])
Packit Service 7c31a4