proc printd(chan out, value fmt[], d)= -- Like fprintf(out, fmt, d), with only %d or %d in fmt[] def otherwise=true: var i, len: seq len:=fmt[byte 0] i:=1 while i<=len if fmt[byte i] = '%' var w: seq i:=i+1 w:=0 while (i<=len) and ('0'<=fmt[byte i]) and (fmt[byte i]<='9') seq w:=(w*10)+(fmt[byte i]-'0') i:=i+1 if i<=len var key: seq key:=fmt[byte i] if key='d' decout(out, d, w) otherwise out ! key i:=i+1 otherwise seq out ! fmt[byte i] i:=i+1 :