From f5052be33798bef2d4108726038639779b32e613 Mon Sep 17 00:00:00 2001 From: zimoch Date: Fri, 23 Sep 2011 10:04:09 +0000 Subject: [PATCH] warn about wrong order of DTYP and INP/OUT warn when fields are overwritten --- externalLinks | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/externalLinks b/externalLinks index 7a223df..8468cf7 100755 --- a/externalLinks +++ b/externalLinks @@ -4,8 +4,8 @@ version () { echo '$Author: zimoch $' >&2 - echo '$Date: 2011/05/04 12:22:05 $' >&2 - echo '$Revision: 1.8 $' >&2 + echo '$Date: 2011/09/23 10:04:09 $' >&2 + echo '$Revision: 1.9 $' >&2 echo '$Source: /cvs/G/EPICS/App/scripts/externalLinks,v $' >&2 exit 1 } @@ -354,28 +354,44 @@ function expandFile () { value = a[2] target = a[3] menu = menuname[rtype,field] + + if (fieldvalue[record,field] && fieldvalue[record,field] != value) { + printf("%s.%s redefined from \"%s\" to \"%s\"\n", + record, field, fieldvalue[record,field], value) > "/dev/stderr" + } + fieldvalue[record,field] = value if (isnoaccess[rtype,field]) { printf("writing \"%s\" to NOACCESS field %s.%s\n", value, record, field) > "/dev/stderr" } else if (isdevice[rtype,field]) { + if (iolink[record]) { + if (!dtyp[record]) { + printf("%s defined after %s in record %s\n", + field, iolink[record], record) > "/dev/stderr" + } + } if (!isdefined[rtype,value]) { printf("unknown device \"%s\" in %s.%s (%s)\n", value, record, field, rtype) > "/dev/stderr" } else { if (!required[modulename[rtype,value]]) { if (debug) { - printf ("DTYP \"%s\" for record type %s requires \"%s\"\n", - value, rtype, modulename[rtype,value]) > "/dev/stderr" + printf ("%s \"%s\" for record type %s requires \"%s\"\n", + field, value, rtype, modulename[rtype,value]) > "/dev/stderr" } required[modulename[rtype,value]] = 1 } } soft = issoft[rtype,value] + dtyp[record] = value } else if (islink[rtype,field]) { if (target != "" && \ ((field != "INP" && field != "OUT") || soft)) { reference[target] = filename ": "record "." field } + if (field == "INP" || field == "OUT") { + iolink[record] = field + } } else if (menu != "") { if (!ischoice[menu,value]) { if (value != int(value) || value < 0)