code: func PropValStrs(reply *xproto.GetPropertyReply, err error) ([]string, error) {
  	if err != nil {
  		return nil, err
  	}
  	if reply.Format != 8 {
  		return nil, fmt.Errorf("PropValStrs: Expected format 8 but got %d",
  			reply.Format)
  	}
  
  	var strs []string
  	sstart := 0
  	for i, c := range reply.Value {
  		if c == 0 {
  			strs = append(strs, string(reply.Value[sstart:i]))
  			sstart = i + 1
  		}
  	}
  	if sstart < int(reply.ValueLen) {
  		strs = append(strs, string(reply.Value[sstart:]))
  	}
  	return strs, nil
  }
docs: // PropValStrs is the same as PropValStr, except that it returns a slice
  // of strings. The raw byte string is a sequence of null terminated strings,
  // which is translated into a slice of strings.