/* Wrapper to successive call of fclose() from function called "f" on "file",
* then unlink() on file at "p2" if it exists, then rename() on "p1" to "p2".
* Used for handling atomic saving of files via temp files.
*/
extern void try_fclose_unlink_rename(FILE * file, char * p1, char * p2,
/* Wrapper to successive call of fclose() from function called "f" on "file",
* then unlink() on file at "p2" if it exists, then rename() on "p1" to "p2".
* Used for handling atomic saving of files via temp files.
*/
extern void try_fclose_unlink_rename(FILE * file, char * p1, char * p2,