summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/configparser.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/include/configparser.h b/include/configparser.h
index 478899ed9..4b83d26d7 100644
--- a/include/configparser.h
+++ b/include/configparser.h
@@ -61,13 +61,19 @@ struct ParseStack
struct FileWrapper
{
FILE* const f;
- FileWrapper(FILE* file) : f(file) {}
+ bool close_with_pclose;
+ FileWrapper(FILE* file, bool use_pclose = false) : f(file), close_with_pclose(use_pclose) {}
operator bool() { return f; }
operator FILE*() { return f; }
~FileWrapper()
{
if (f)
- fclose(f);
+ {
+ if (close_with_pclose)
+ pclose(f);
+ else
+ fclose(f);
+ }
}
};