code: func (t *Terminfo) TPuts(w io.Writer, s string, baud int) {
  	for {
  		beg := strings.Index(s, "$<")
  		if beg < 0 {
  			// Most strings don't need padding, which is good news!
  			io.WriteString(w, s)
  			return
  		}
  		io.WriteString(w, s[:beg])
  		s = s[beg+2:]
  		end := strings.Index(s, ">")
  		if end < 0 {
  			// unterminated.. just emit bytes unadulterated
  			io.WriteString(w, "$<"+s)
  			return
  		}
  		val := s[:end]
  		s = s[end+1:]
  		padus := 0
  		unit := 1000
  		dot := false
  	loop:
  		for i := range val {
  			switch val[i] {
  			case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
  				padus *= 10
  				padus += int(val[i] - '0')
  				if dot {
  					unit *= 10
  				}
  			case '.':
  				if !dot {
  					dot = true
  				} else {
  					break loop
  				}
  			default:
  				break loop
  			}
  		}
  		cnt := int(((baud / 8) * padus) / unit)
  		for cnt > 0 {
  			io.WriteString(w, t.PadChar)
  			cnt--
  		}
  	}
  }
docs: // TPuts emits the string to the writer, but expands inline padding
  // indications (of the form $<[delay]> where [delay] is msec) to
  // a suitable number of padding characters (usually null bytes) based
  // upon the supplied baud.  At high baud rates, more padding characters
  // will be inserted.  All Terminfo based strings should be emitted using
  // this function.