Commits


fix pipe usage for linux This uses the correct read and write ends of the fds returned by pipe(2) on linux. It also moves away from creating FILE* streams with fdopen and reading the stream with buf_load (which performs a fstat, and breaks due to a zero length file size on linux) by instead reading from the fd itself. Reported by abieber@, with assistance from stsp@ ok stsp@


fix buf_alloca error handling Left-over from how OpenRCS/OpenCVS do error handling. OK stsp@


add O_CLOEXEC (close-on-exec) flag to open(2) calls suggested by millert ok thomas_adam


make merge_file() accept FILEs instead of paths for orig and deriv inputs


make close(2) failure checks consistent; check 'close() == -1' everywhere ok millert, naddy


kn@ and stsp@ suggested changes


remove worklist code; it was only used to unlink files which we already unlink


more mechanical conversions to struct got_error: buf_load() and buf_alloc()


buf_alloc: free whole BUF* in allocation failure path


fix some more occurrences of potential errno clobbering


rename got_error_prefix_errno() to got_error_from_errno()


got_error_from_errno -> got_error_prefix_errno also add got_error_prefix_errno2 and got_error_prefix_errno3 which should hopefully all be merged into a single function with variadic args (but can't alloc mem)


check for errors from close(2)


get rid of xmalloc and err functions in buf.c


add unmodified buf.c, buf.h, and diff3.c from OpenRCS