finish buf.c ide.c