diff -uNr a/vtools/manifest b/vtools/manifest --- a/vtools/manifest ae142381984d8c6c3b1834e0b9ddc18662ee8c7b5e159ff531f375646d942891e8dbd0911258d1d85804d2aa187e7b510a3a3a938f6c664418d69261e7fd16e5 +++ b/vtools/manifest 9154db7429944ffdc445ef2912e410da839c38e43a4abf67a6c4a12a2f493a988713d4f5074d5bbf1267fd068204a5d18ed01bb62e5a35fe9ae0b94993a34f89 @@ -20,3 +20,4 @@ 621251 bvt vtools_vsh_ascii_fix2 vflow: remove early exit, DFS-based toposorting; v.sh: correct error checking and reporting in v.sh, fix vtree indentation, better error reporting in case of conflicts; makefile: remove. 621530 bvt vtools_vsh_orphans Handle vpatches without antecedents without crashing. 622175 bvt vtools_update_keccak Use latest SMG_Keccak version (2x speed improvement). +626734 bvt vtools_vsh_fix_awk Use multiple indices instead of nested arrays in v.sh awk. diff -uNr a/vtools/v.sh b/vtools/v.sh --- a/vtools/v.sh 91559c9818cadf7a6409f1c873759f1ef370edd0f9d9627e534105f1a3e6c4119f552142121143bfa808516cf2abb58d7df9ef07b883322e01b78dbaf1fc0ad2 +++ b/vtools/v.sh c721afeabff22cf592fb28dc0702497cf380276486ec9e14d0abb74ae319093e9ed63e20c6662e720a572f8d977bb39e829e9a8cc984468b18eaee3723b910ea @@ -298,12 +298,12 @@ FILENAME==VF {names[$2]=$1} FILENAME=="-" && ($1 == "O") {print "Orphan:", names[$2]; orphans[$2]=1;} FILENAME=="-" && ($1 == "H" ) {heads[$2]=1;} -FILENAME=="-" && ($1 == "d") {if (!($2 in n_ante)) n_ante[$2] = 0; dir_ante[$2][n_ante[$2]] = $3; n_ante[$2]++;} +FILENAME=="-" && ($1 == "d") {if (!($2 in n_ante)) n_ante[$2] = 0; dir_ante[$2, n_ante[$2]] = $3; n_ante[$2]++;} FILENAME=="-" && ($1 == "P" || $1 == "p" || $1 == "E" || $1 == "e") { level[$2] = 0; if ($2 in n_ante) { for (i = 0; i < n_ante[$2]; i++) { - level[$2] = max(level[$2], level[dir_ante[$2][i]]+1); + level[$2] = max(level[$2], level[dir_ante[$2, i]]+1); } } repeat(" ", level[$2]);