#!/usr/bin/awk -f BEGIN { XMLFILE=ARGV[2] delete ARGV[2] while (getline < XMLFILE) { if (/<\/vuxml>/) break print } XML=$0 FS="|" } /^(#|$)/ { next } { if (PKG[$4]) PKG[$4]=PKG[$4] FS $1 else PKG[$4]=$1 gsub(//, ">") gsub(/&/, "&") URL[$4]=$2 TOPIC[$4]=$3 } END { OPN["<"]="lt" OPN["<="]="le" OPN["="]="eq" OPN[">="]="ge" OPN[">"]="gt" for (UUID in PKG) { print " " print " " TOPIC[UUID] "" print " " split(PKG[UUID], APKG) for (TPKG in APKG) { VERS=APKG[TPKG] print " " if (match(VERS, /(<|>)=?|=/) > 0) { print " " substr(VERS, 1, RSTART-1) "" printf " " do { OP=substr(VERS, RSTART, RLENGTH) LEN=length(VERS) VERS=substr(VERS, RSTART+RLENGTH, LEN+1-RSTART-RLENGTH) NEXTRANGE=match(VERS, /(<|>)=?|=/) if (NEXTRANGE > 0) printf "<%s>%s", OPN[OP], substr(VERS, 1, RSTART-1), OPN[OP] else printf "<%s>%s", OPN[OP], VERS, OPN[OP] } while (NEXTRANGE > 0) printf "\n" } else { print " " VERS "" } print " " } print " " print " " print " " print "

Please contact" print " the FreeBSD Security Team for more information.

" print " " print "
" print " " split(URL[UUID], URLS, / /) for (U in URLS) { if (!URLS[U]) continue print " " URLS[U] "" } print " " print " " print " 2000-00-00" print " 2000-00-00" print " " print "
" print "" } print XML while (getline < XMLFILE) { print } close(XMLFILE) }