flag pour réinitialiser les valeurs des variables
This commit is contained in:
parent
ecccb58e15
commit
3aa18cd7e7
|
@ -2312,7 +2312,7 @@ function parse_opts() {
|
|||
# Les arguments de cette fonction sont donc de la forme 'optdescs -- args'
|
||||
|
||||
# optdescs est une suite d'arguments d'une des formes suivantes: 'opt,opt... var',
|
||||
# 'opt,opt... $cmd', '@ var', '+', '-'
|
||||
# 'opt,opt... $cmd', '@ var', '+', '-', '%'
|
||||
# - Dans la forme 'opt var[=value]', opt est une description d'option, var un
|
||||
# nom de variable à mettre à jour, et value une valeur éventuelle pour les
|
||||
# options sans argument. Si plusieurs options sont mentionnées, séparées par des
|
||||
|
@ -2353,6 +2353,8 @@ function parse_opts() {
|
|||
# '-', les options sont valides n'importe ou sur la ligne de commande, mais les
|
||||
# arguments ne sont pas réordonnés, et apparaissent dans l'ordre de leur
|
||||
# mention.
|
||||
# - Toutes les variables mentionnées après le caractère '%' sont
|
||||
# initialisées. Elle sont garanties d'être vides
|
||||
# Si opt est définie plusieurs fois, la dernière définition est celle qui est
|
||||
# retenue, e.g. dans l'exemple suivant, l'option -o prend une valeur et met à
|
||||
# jour la variable second:
|
||||
|
@ -2400,6 +2402,7 @@ function __po_parse_optdescs() {
|
|||
# Retourner le nombre d'arguments à shifter
|
||||
local -a optdescs_
|
||||
local optdesc_ option_ name_ flag_ value_
|
||||
local reset_
|
||||
local shift_
|
||||
local i_ count_
|
||||
|
||||
|
@ -2409,6 +2412,10 @@ function __po_parse_optdescs() {
|
|||
shift
|
||||
let shift_=$shift_+1
|
||||
break
|
||||
elif [ "$1" == "%" ]; then
|
||||
reset_=1
|
||||
shift
|
||||
let shift_=$shift_+1
|
||||
elif [ "$1" == "-" -o "$1" == "+" ]; then
|
||||
# annuler les précédentes options + ou -
|
||||
if [ "${opts_#+}" != "$opts_" ]; then
|
||||
|
@ -2457,8 +2464,10 @@ function __po_parse_optdescs() {
|
|||
if [[ "$2" == *=* ]]; then
|
||||
# la valeur mentionnée est toujours ignorée
|
||||
name_="${2%%=*}="
|
||||
[ -n "$reset_" ] && eval "$name_="
|
||||
else
|
||||
name_="$2"
|
||||
[ -n "$reset_" ] && array_new "$name_"
|
||||
fi
|
||||
flag_=::
|
||||
elif [[ "$optdesc_" == *: ]]; then
|
||||
|
@ -2466,13 +2475,16 @@ function __po_parse_optdescs() {
|
|||
if [[ "$2" == *=* ]]; then
|
||||
# la valeur mentionnée est toujours ignorée
|
||||
name_="${2%%=*}="
|
||||
[ -n "$reset_" ] && eval "$name_="
|
||||
else
|
||||
name_="$2"
|
||||
[ -n "$reset_" ] && array_new "$name_"
|
||||
fi
|
||||
flag_=:
|
||||
else
|
||||
option_="$optdesc_"
|
||||
name_="$2"
|
||||
[ -n "$reset_" ] && eval "$name_="
|
||||
flag_=
|
||||
fi
|
||||
|
||||
|
|
Loading…
Reference in New Issue