#!/bin/bash
## -----------------------------------------------------------------------
## -----------------------------------------------------------------------

## -----------------------------------------------------------------------
## Intent: Parse command line switch, when *-not detected take action
##   - remove substring '-not' modifier from switch name
##   - set values in map %attrs=() to capture detection of NOT
##   - switch value returned modified
## Return:
##   %attrs   ['not']=true
## -----------------------------------------------------------------------
function getopts_switch__not()
{
    local -n gsn_arg=$1 ; shift
    declare -g -A attrs

    case "$gsn_arg" in

        # -[-not]
        '--not')
            attrs['not']=1
            gsn_argv=''
            local -i rc=0
            ;;

        # --reserved-is[-not]-empty
        *'-not'*)
            declare -a args=()
            attrs['not']=1
            gsn_arg="${gsn_arg/-not/}"
            local -i rc=0
            ;;

        *) local -i rc=1 ;;
    esac

    [[ $rc -eq 0 ]] && { true; } || { false; }
    return
}

# [EOF]
