123456789101112131415161718192021222324252627282930313233343536 |
- proc printd(chan out, value fmt[], d)=
- -- Like fprintf(out, fmt, d), with only %d or %<width>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
- :
|