diff --git a/externalLinks b/externalLinks index 50afaee..482c563 100755 --- a/externalLinks +++ b/externalLinks @@ -4,8 +4,8 @@ version () { echo '$Author: zimoch $' >&2 - echo '$Date: 2013/02/26 16:47:58 $' >&2 - echo '$Revision: 1.10 $' >&2 + echo '$Date: 2013/02/27 17:49:25 $' >&2 + echo '$Revision: 1.11 $' >&2 echo '$Source: /cvs/G/EPICS/App/scripts/externalLinks,v $' >&2 exit 1 } @@ -35,7 +35,7 @@ INSTBASE=${INSTBASE%/} INSTBASE=${INSTBASE#/import} case "${INSTBASE}" in ( /work|/prod|/devl ) EPICS=3.13.10 ;; - ( * ) EPICS=3.14.8 ;; + ( * ) EPICS=3.14.12 ;; esac while true @@ -47,7 +47,8 @@ do ( -r | ?(-)-require ) REQUIRE=1 ;; ( -w | ?(-)-where ) WHERE=1 ;; ( ?(-)-3.13 ) EPICS=3.13.10 ;; - ( ?(-)-3.14 ) EPICS=3.14.8 ;; + ( ?(-)-3.14 ) EPICS=3.14.12 ;; + ( ?(-)-3.* ) EPICS=${1##*-} ;; ( -- | - ) shift; break ;; ( -* ) echo "unknown option $1 ignored" >&2 ;; ( * ) break ;; @@ -139,7 +140,10 @@ function expandFile () { echo "FILENAME $subs" dbLoadTemplate $subs done -} | awk -v where=$WHERE -v require=$REQUIRE -v debug=$DEBUG ' +} | awk -v where=$WHERE -v require=$REQUIRE -v debug=$DEBUG -v epics=$EPICS ' + BEGIN { + epics3_14ver=gensub(/^3\.14\./,"",1,epics)+0 + } /FILENAME/ { filename = $2 line = 0 @@ -343,12 +347,16 @@ function expandFile () { } } if (length(record)>maxNameLen) { - printf("record name \"%s\" %d chars too long (max %d)\n", - record, length(record)-maxNameLen, maxNameLen) > "/dev/stderr" + printf("record name \"%s\" %d chars too long (max %d)\nmaybe this works with a higher EPICS version (this is %s)\n", + record, length(record)-maxNameLen, maxNameLen, epics) > "/dev/stderr" } soft = 1 } /alias\(".*\",".*\")/ { + if (epics3_14ver < 11) { + printf ("%s requires EPICS version >= 3.14.11 (this is %s)\n", + $0, epics); + } match($0,/\("(.*)","(.*)"/,a) record = a[1] aliasname = a[2] @@ -397,7 +405,7 @@ function expandFile () { } else if (islink[rtype,field]) { if (value != "" && \ ((field != "INP" && field != "OUT") || soft)) { - reference[value] = filename ": "record "." field + reference[gensub(/ .*/,"",1,value)] = filename ": "record "." field } if (field == "INP" || field == "OUT") { iolink[record] = field