use takebuf_string