Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src Make resolvepath and resolvepaths slightly less magic. They...



details:   https://anonhg.NetBSD.org/src/rev/1f668b68671e
branches:  trunk
changeset: 747695:1f668b68671e
user:      apb <apb%NetBSD.org@localhost>
date:      Sun Sep 27 17:25:01 2009 +0000

description:
Make resolvepath and resolvepaths slightly less magic.  They now take
a variable name as an arg unstead of always working on $OPTARG,
and resolveepaths is now a wrapper around resolvepath instead of
duplicating code.

diffstat:

 build.sh |  58 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 29 insertions(+), 29 deletions(-)

diffs (146 lines):

diff -r e14614d76175 -r 1f668b68671e build.sh
--- a/build.sh  Sun Sep 27 17:24:31 2009 +0000
+++ b/build.sh  Sun Sep 27 17:25:01 2009 +0000
@@ -1,5 +1,5 @@
 #! /usr/bin/env sh
-#      $NetBSD: build.sh,v 1.207 2009/09/07 04:14:17 jnemeth Exp $
+#      $NetBSD: build.sh,v 1.208 2009/09/27 17:25:01 apb Exp $
 #
 # Copyright (c) 2001-2009 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -499,41 +499,41 @@
        makeenv="${makeenv} $1"
 }
 
-# Convert possibly-relative paths to absolute paths by prepending
-# ${TOP} if necessary.  Also delete trailing "/", if any.
+# Given a variable name in $1, modify the variable in place as follows:
+# For each space-separated word in the variable, call resolvepath.
 resolvepaths()
 {
-       _OPTARG=
-       for oa in ${OPTARG}; do
-               case "${oa}" in
-               /)
-                       ;;
-               /*)
-                       oa="${oa%/}"
-                       ;;
-               *)
-                       oa="${TOP}/${oa%/}"
-                       ;;
-               esac
-               _OPTARG="${_OPTARG} ${oa}"
+       local var="$1"
+       local val
+       eval val=\"\${${var}}\"
+       local newval=''
+       local word
+       for word in ${val}; do
+               resolvepath word
+               newval="${newval}${newval:+ }${word}"
        done
-       OPTARG="${_OPTARG}"
+       eval ${var}=\"\${newval}\"
 }
 
+# Given a variable name in $1, modify the variable in place as follows:
 # Convert possibly-relative path to absolute path by prepending
 # ${TOP} if necessary.  Also delete trailing "/", if any.
 resolvepath()
 {
-       case "${OPTARG}" in
+       local var="$1"
+       local val
+       eval val=\"\${${var}}\"
+       case "${val}" in
        /)
                ;;
        /*)
-               OPTARG="${OPTARG%/}"
+               val="${val%/}"
                ;;
        *)
-               OPTARG="${TOP}/${OPTARG%/}"
+               val="${TOP}/${val%/}"
                ;;
        esac
+       eval ${var}=\"\${val}\"
 }
 
 usage()
@@ -663,12 +663,12 @@
                        ;;
 
                -C)
-                       eval ${optargcmd}; resolvepaths
+                       eval ${optargcmd}; resolvepaths OPTARG
                        iso_dir=${OPTARG}
                        ;;
 
                -D)
-                       eval ${optargcmd}; resolvepath
+                       eval ${optargcmd}; resolvepath OPTARG
                        setmakeenv DESTDIR "${OPTARG}"
                        ;;
 
@@ -682,7 +682,7 @@
                        ;;
 
                -M)
-                       eval ${optargcmd}; resolvepath
+                       eval ${optargcmd}; resolvepath OPTARG
                        TOP_objdir="${OPTARG}${TOP}"
                        unsetmakeenv MAKEOBJDIR
                        setmakeenv MAKEOBJDIRPREFIX "${OPTARG}"
@@ -712,7 +712,7 @@
                        ;;
 
                -O)
-                       eval ${optargcmd}; resolvepath
+                       eval ${optargcmd}; resolvepath OPTARG
                        TOP_objdir="${OPTARG}"
                        unsetmakeenv MAKEOBJDIRPREFIX
                        setmakeenv MAKEOBJDIR "\${.CURDIR:C,^$TOP,$OPTARG,}"
@@ -723,7 +723,7 @@
                        ;;
 
                -R)
-                       eval ${optargcmd}; resolvepath
+                       eval ${optargcmd}; resolvepath OPTARG
                        setmakeenv RELEASEDIR "${OPTARG}"
                        ;;
 
@@ -738,7 +738,7 @@
                        ;;
 
                -T)
-                       eval ${optargcmd}; resolvepath
+                       eval ${optargcmd}; resolvepath OPTARG
                        TOOLDIR="${OPTARG}"
                        export TOOLDIR
                        ;;
@@ -765,12 +765,12 @@
                        ;;
 
                -w)
-                       eval ${optargcmd}; resolvepath
+                       eval ${optargcmd}; resolvepath OPTARG
                        makewrapper="${OPTARG}"
                        ;;
 
                -X)
-                       eval ${optargcmd}; resolvepath
+                       eval ${optargcmd}; resolvepath OPTARG
                        setmakeenv X11SRCDIR "${OPTARG}"
                        ;;
 
@@ -1223,7 +1223,7 @@
        eval cat <<EOF ${makewrapout}
 #! ${HOST_SH}
 # Set proper variables to allow easy "make" building of a NetBSD subtree.
-# Generated from:  \$NetBSD: build.sh,v 1.207 2009/09/07 04:14:17 jnemeth Exp $
+# Generated from:  \$NetBSD: build.sh,v 1.208 2009/09/27 17:25:01 apb Exp $
 # with these arguments: ${_args}
 #
 



Home | Main Index | Thread Index | Old Index