retaining old file if contents are the same

diff --git a/libasn1compiler/asn1c_compat.h b/libasn1compiler/asn1c_compat.h
index 44ac438..8aa3865 100644
--- a/libasn1compiler/asn1c_compat.h
+++ b/libasn1compiler/asn1c_compat.h
@@ -3,8 +3,12 @@
 
 /*
  * Open the arbitrary file by its base name and extension.
+ * If opt_tmpname is given, a temporary file will be created and
+ * its name returned in (*opt_tmpname).
+ * The (*opt_tmpname) should then be subsequently freed by free(3).
  */
-FILE *asn1c_open_file(const char *base_part, const char *extension);
+FILE *asn1c_open_file(const char *base_part, const char *extension,
+	char **opt_tmpname);
 
 /*
  * Obtain base name and directory name of a path.