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'
|
# 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',
|
# 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
|
# - 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
|
# 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
|
# 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
|
# '-', 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
|
# arguments ne sont pas réordonnés, et apparaissent dans l'ordre de leur
|
||||||
# mention.
|
# 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
|
# 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 à
|
# retenue, e.g. dans l'exemple suivant, l'option -o prend une valeur et met à
|
||||||
# jour la variable second:
|
# jour la variable second:
|
||||||
|
@ -2400,6 +2402,7 @@ function __po_parse_optdescs() {
|
||||||
# Retourner le nombre d'arguments à shifter
|
# Retourner le nombre d'arguments à shifter
|
||||||
local -a optdescs_
|
local -a optdescs_
|
||||||
local optdesc_ option_ name_ flag_ value_
|
local optdesc_ option_ name_ flag_ value_
|
||||||
|
local reset_
|
||||||
local shift_
|
local shift_
|
||||||
local i_ count_
|
local i_ count_
|
||||||
|
|
||||||
|
@ -2409,6 +2412,10 @@ function __po_parse_optdescs() {
|
||||||
shift
|
shift
|
||||||
let shift_=$shift_+1
|
let shift_=$shift_+1
|
||||||
break
|
break
|
||||||
|
elif [ "$1" == "%" ]; then
|
||||||
|
reset_=1
|
||||||
|
shift
|
||||||
|
let shift_=$shift_+1
|
||||||
elif [ "$1" == "-" -o "$1" == "+" ]; then
|
elif [ "$1" == "-" -o "$1" == "+" ]; then
|
||||||
# annuler les précédentes options + ou -
|
# annuler les précédentes options + ou -
|
||||||
if [ "${opts_#+}" != "$opts_" ]; then
|
if [ "${opts_#+}" != "$opts_" ]; then
|
||||||
|
@ -2457,8 +2464,10 @@ function __po_parse_optdescs() {
|
||||||
if [[ "$2" == *=* ]]; then
|
if [[ "$2" == *=* ]]; then
|
||||||
# la valeur mentionnée est toujours ignorée
|
# la valeur mentionnée est toujours ignorée
|
||||||
name_="${2%%=*}="
|
name_="${2%%=*}="
|
||||||
|
[ -n "$reset_" ] && eval "$name_="
|
||||||
else
|
else
|
||||||
name_="$2"
|
name_="$2"
|
||||||
|
[ -n "$reset_" ] && array_new "$name_"
|
||||||
fi
|
fi
|
||||||
flag_=::
|
flag_=::
|
||||||
elif [[ "$optdesc_" == *: ]]; then
|
elif [[ "$optdesc_" == *: ]]; then
|
||||||
|
@ -2466,13 +2475,16 @@ function __po_parse_optdescs() {
|
||||||
if [[ "$2" == *=* ]]; then
|
if [[ "$2" == *=* ]]; then
|
||||||
# la valeur mentionnée est toujours ignorée
|
# la valeur mentionnée est toujours ignorée
|
||||||
name_="${2%%=*}="
|
name_="${2%%=*}="
|
||||||
|
[ -n "$reset_" ] && eval "$name_="
|
||||||
else
|
else
|
||||||
name_="$2"
|
name_="$2"
|
||||||
|
[ -n "$reset_" ] && array_new "$name_"
|
||||||
fi
|
fi
|
||||||
flag_=:
|
flag_=:
|
||||||
else
|
else
|
||||||
option_="$optdesc_"
|
option_="$optdesc_"
|
||||||
name_="$2"
|
name_="$2"
|
||||||
|
[ -n "$reset_" ] && eval "$name_="
|
||||||
flag_=
|
flag_=
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue