Home | History | Annotate | Line # | Download | only in m4
      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