Re: [PATCH 07/14] register_tempfile(): new function to handle an existing temporary file
From: Junio C Hamano <hidden>
Date: 2016-06-15 23:05:15
Michael Haggerty [off-list ref] writes:
Allow an existing file to be registered with the tempfile-handling infrastructure; in particular, arrange for it to be deleted on program exit. Signed-off-by: Michael Haggerty <redacted> ---
Hmph. Where does such a tempfile that is not on list come from? Puzzled, but let's read on---this could for example become an internal implementation detail for create_tempfile(). Also I cannot tell which one of register_tempfile() and register_tempfile_object() I should be calling when updating the implementation of this API from their names.
quoted hunk
diff --git a/tempfile.c b/tempfile.c index 890075f..235fc85 100644 --- a/tempfile.c +++ b/tempfile.c@@ -82,6 +82,15 @@ int create_tempfile(struct tempfile *tempfile, const char *path) return tempfile->fd; } +void register_tempfile(struct tempfile *tempfile, const char *path) +{ + register_tempfile_object(tempfile, path); + + strbuf_add_absolute_path(&tempfile->filename, path); + tempfile->owner = getpid(); + tempfile->active = 1; +} + int mks_tempfile_sm(struct tempfile *tempfile, const char *template, int suffixlen, int mode) {diff --git a/tempfile.h b/tempfile.h index 6276156..18ff963 100644 --- a/tempfile.h +++ b/tempfile.h@@ -145,6 +145,14 @@ struct tempfile { */ extern int create_tempfile(struct tempfile *tempfile, const char *path); +/* + * Register an existing file as a tempfile, meaning that it will be + * deleted when the program exits. The tempfile is considered closed, + * but it can be worked with like any other closed tempfile (for + * example, it can be opened using reopen_tempfile()). + */ +extern void register_tempfile(struct tempfile *tempfile, const char *path); + /* * mks_tempfile functions