@program bbfix.muf 1 1000 d i $include $lib/alynna $include $muf/cp-mv2 lvar param $def WALL me @ swap { "!wc #" rot }cat force $def BOARDNUM param @ $def BBOARD "+bbread" match getlink $def BBPROP "/@boards/num/" BOARDNUM "/" strcat strcat $def ALLBOARDS : main var item var value var item2 var value2 var inc $ifdef ALLBOARDS toint dup not if pop 1 then BBOARD "@boards" getprop toint 1 for tostr $endif param ! param @ not if "Board number required" tellme exit then param @ atoi not if "Board number required" tellme exit then ( clear null posts ) 0 inc ! { "Washing board " BOARDNUM "..." }cat WALL BBOARD { BBPROP "msgs/" }cat array_get_propdirs foreach value ! item ! BBOARD { BBPROP "msgs/" value @ "/msg#" }cat getprop not BBOARD { BBPROP "msgs/" value @ "/exist?" }cat getprop tostr "no" smatch or if BBOARD { BBPROP "msgs/" value @ "/" }cat array_get_propvals foreach value2 ! item2 ! BBOARD { BBPROP "msgs/" value @ "/" item2 @ }cat 0 setprop repeat { "Dirty message " value @ " washed..." }cat WALL then repeat ( Compress boards ) 0 inc ! { "Rinsing board " BOARDNUM "..." }cat WALL 1 BBOARD { BBPROP "nummsgs" }cat getprop toint 1 for intostr value2 ! BBOARD { BBPROP "msgs/" value2 @ "/msg#" }cat getprop if inc @ 1 + inc ! BBOARD { BBPROP "msgs/" value2 @ "/" }cat BBOARD { BBPROP "xmsgs/" inc @ "/" }cat mv-prop pop { "Clean message " value2 @ " renumbered to " inc @ "..." }cat WALL then repeat { "Restoring board..." }cat WALL ( Move boards back ) BBOARD { BBPROP "xmsgs/" }cat BBOARD { BBPROP "msgs/" }cat mv-prop pop { "Done..." }cat tellme ( Renumber ) BBOARD { BBPROP "msgs/" }cat array_get_propdirs foreach value2 ! item2 ! BBOARD { BBPROP "msgs/" value2 @ "/num" }cat value2 @ tostr setprop repeat { "Renumbered messages internally..." }cat WALL ( Rewrite VTOC ) { "Drying board " BOARDNUM "..." }cat WALL BBOARD { BBPROP "mesgs/" }cat array_get_propvals foreach value2 ! item2 ! BBOARD { BBPROP "mesgs/" item2 @ }cat 0 setprop repeat BBOARD { BBPROP "msgs/" }cat array_get_propdirs foreach value2 ! item2 ! BBOARD { BBPROP "mesgs/" value2 @ }cat value2 @ tostr setprop repeat { "VTOC entries rewritten..." }cat WALL ( Rewrite BoardCount ) 0 inc ! { "Folding board " BOARDNUM "..." }cat WALL BBOARD { BBPROP "msgs/" }cat array_get_propdirs foreach value2 ! item2 ! inc @ 1 + inc ! repeat BBOARD { BBPROP "nummsgs" }cat inc @ tostr setprop BBOARD { BBPROP "mesgs" }cat inc @ tostr setprop { "MSGCOUNT props set." }cat WALL { "Board #" BOARDNUM " washed." }cat WALL prog "D" set prog "!D" set $ifdef ALLBOARDS repeat $endif ; . c q