From f59a4439fe223ecf7f96f3103ae3097eae81fae7 Mon Sep 17 00:00:00 2001 From: Jephte CLAIN Date: Wed, 24 Dec 2014 10:29:35 +0400 Subject: [PATCH] =?UTF-8?q?=5F=5FULIB=5FFORCE=5FRELOAD=20ne=20doit=20pas?= =?UTF-8?q?=20=C3=AAtre=20transitif?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/ulib/.ulibver | 2 +- lib/ulib/ulib | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/ulib/.ulibver b/lib/ulib/.ulibver index 611cc6c..180d6aa 100644 --- a/lib/ulib/.ulibver +++ b/lib/ulib/.ulibver @@ -1 +1 @@ -007013000 +007013001 diff --git a/lib/ulib/ulib b/lib/ulib/ulib index 74069a7..02b44ac 100644 --- a/lib/ulib/ulib +++ b/lib/ulib/ulib @@ -67,7 +67,8 @@ function uprovide() { } # Si cette variable est non vide, urequire recharge toujours le module, même -# s'il a déjà été chargé +# s'il a déjà été chargé. Cette valeur n'est pas transitive: il faut toujours +# recharger explicitement tous les modules désirés __ULIB_FORCE_RELOAD= function urequire() { @@ -77,12 +78,17 @@ function urequire() { # Si un module n'est pas trouvé, quitter le script avec die() local __u_module __u_ulibdir __u_found [ -n "$*" ] || set DEFAULTS + + # garder une copie de la valeur originale et casser la transitivité + local __ulib_force_reload="$__ULIB_FORCE_RELOAD" + local __ULIB_FORCE_RELOAD + for __u_module in "$@"; do __u_found= for __u_ulibdir in "${ULIBDIRS[@]}"; do if [ -f "$__u_ulibdir/$__u_module" ]; then __u_found=1 - if [ -n "$__ULIB_FORCE_RELOAD" ] || ! uprovided "$__u_module"; then + if [ -n "$__ulib_force_reload" ] || ! uprovided "$__u_module"; then uprovide "$__u_module" source "$__u_ulibdir/$__u_module" || die fi @@ -92,7 +98,7 @@ function urequire() { if [ -z "$__u_found" -a "$__u_module" == DEFAULTS ]; then __u_found=1 for __u_module in base pretty sysinfos compat; do - if [ -n "$__ULIB_FORCE_RELOAD" ] || ! uprovided "$__u_module"; then + if [ -n "$__ulib_force_reload" ] || ! uprovided "$__u_module"; then uprovide "$__u_module" source "$__u_ulibdir/$__u_module" || die fi