+ new_fd <- throwErrnoIfMinus1 "dupHandle" $
+ c_dup (fromIntegral (haFD h_))
+ dupHandle_ other_side h_ new_fd
+
+dupHandleTo other_side hto_ h_ = do
+ flushBuffer h_
+ new_fd <- throwErrnoIfMinus1 "dupHandleTo" $
+ c_dup2 (fromIntegral (haFD h_)) (fromIntegral (haFD hto_))
+ dupHandle_ other_side h_ new_fd
+
+dupHandle_ other_side h_ new_fd = do