1 1.1 christos # AS_CASE(WORD, [PATTERN1], [IF-MATCHED1]...[DEFAULT]) 2 1.1 christos # ---------------------------------------------------- 3 1.1 christos # Expand into 4 1.1 christos # | case WORD in 5 1.1 christos # | PATTERN1) IF-MATCHED1 ;; 6 1.1 christos # | ... 7 1.1 christos # | *) DEFAULT ;; 8 1.1 christos # | esac 9 1.1 christos m4_define([_AS_CASE], 10 1.1 christos [m4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], 11 1.1 christos [$#], 1, [ *) $1 ;;], 12 1.1 christos [$#], 2, [ $1) m4_default([$2], [:]) ;;], 13 1.1 christos [ $1) m4_default([$2], [:]) ;; 14 1.1 christos $0(m4_shiftn(2, $@))])dnl 15 1.1 christos ]) 16 1.1 christos m4_defun([AS_CASE], 17 1.1 christos [m4_ifval([$2$3], 18 1.1 christos [case $1 in 19 1.1 christos _AS_CASE(m4_shift($@)) 20 1.1 christos esac])]) 21 1.1 christos 22