X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=tools%2Ftools.c;h=25917d35289244fa224652ad6f9a787a44f65919;hp=5db43df08b20ed8b45139055ee42c58d463322cc;hb=fb4c4c3ddc24772f71a64ec02d2c9ddaeb6e9f6b;hpb=1d893107b3481639bf1fc6f96972457ac6e828f7 diff --git a/tools/tools.c b/tools/tools.c index 5db43df0..25917d35 100644 --- a/tools/tools.c +++ b/tools/tools.c @@ -199,6 +199,18 @@ char *temp_file(const void *ctx, const char *extension) return talloc_asprintf(ctx, "%s/%u%s", tmpdir, count++, extension); } +char *maybe_temp_file(const void *ctx, const char *extension, bool keep, + const char *srcname) +{ + size_t baselen; + + if (!keep) + return temp_file(ctx, extension); + + baselen = strrchr(srcname, '.') - srcname; + return talloc_asprintf(ctx, "%.*s%s", baselen, srcname, extension); +} + bool move_file(const char *oldname, const char *newname) { char *contents;