diff --git a/externalLinks b/externalLinks index b400909..992293f 100755 --- a/externalLinks +++ b/externalLinks @@ -4,8 +4,8 @@ version () { echo '$Author: zimoch $' >&2 - echo '$Date: 2018/07/06 09:37:45 $' >&2 - echo '$Revision: 1.24 $' >&2 + echo '$Date: 2018/07/06 09:38:34 $' >&2 + echo '$Revision: 1.25 $' >&2 echo '$Source: /cvs/G/EPICS/App/scripts/externalLinks,v $' >&2 exit 1 } @@ -459,10 +459,12 @@ function expandFile () { fieldvalue[record,field] = value definition[record,field] = filename ":" line if (value == "") next - if (!isfield[rtype,field]) { + knownproblem=known[filename,line,rtype,field,value] + known[filename,line,rtype,field,value]=1 + if (!isfield[rtype,field] && !knownproblem) { printf("%s:%d\n\t%s record \"%s\"\n\tUnknown field %s. Known fields:\n%s", filename, line, rtype, record, field, fields[rtype]) > "/dev/stderr" - } else if (isnoaccess[rtype,field]) { + } else if (isnoaccess[rtype,field] && !knownproblem) { printf("writing \"%s\" to NOACCESS field %s.%s\n", value, record, field) > "/dev/stderr" } else if (islink[rtype,field]) { @@ -477,17 +479,17 @@ function expandFile () { } else if (value ~ /\$\(.*\)/) { } else if (isdevice[rtype,field]) { if (iolink[record]) { - if (!dtyp[record]) { + if (!dtyp[record] && !knownproblem) { printf("%s defined after %s in record %s\n", field, iolink[record], record) > "/dev/stderr" } } - if (!definition[rtype,value]) { + if (!definition[rtype,value] && !knownproblem) { printf("%s:%d\n\t%s record \"%s\" field %s\n\tUnknown device type \"%s\". Known types:\n%s", filename, line, rtype, record, field, value, devices[rtype]) > "/dev/stderr" } else { if (modulename[rtype,value] && !required[modulename[rtype,value]]) { - if (debug) { + if (debug && !knownproblem) { printf ("%s \"%s\" for record type %s requires \"%s\"\n", field, value, rtype, modulename[rtype,value]) > "/dev/stderr" } @@ -496,6 +498,8 @@ function expandFile () { } soft = issoft[rtype,value] dtyp[record] = value + } else if (knownproblem) { + next } else if (menu != "") { if (!ischoice[menu,value]) { if (value != int(value) || value < 0)