+int getFileVersion(FILE *file)
+{
+ int version_major, version_minor, version_patch;
+
+ version_major = fgetc(file);
+ version_minor = fgetc(file);
+ version_patch = fgetc(file);
+ fgetc(file); /* not used */
+
+ return VERSION_IDENT(version_major, version_minor, version_patch);
+}
+
+void putFileVersion(FILE *file, int version)
+{
+ int version_major = VERSION_MAJOR(version);
+ int version_minor = VERSION_MINOR(version);
+ int version_patch = VERSION_PATCH(version);
+
+ fputc(version_major, file);
+ fputc(version_minor, file);
+ fputc(version_patch, file);
+ fputc(0, file); /* not used */
+}
+
+void ReadUnusedBytesFromFile(FILE *file, unsigned long bytes)
+{
+ while (bytes-- && !feof(file))
+ fgetc(file);
+}
+
+void WriteUnusedBytesToFile(FILE *file, unsigned long bytes)
+{
+ while (bytes--)
+ fputc(0, file);
+}
+
+
+/* ------------------------------------------------------------------------- */
+/* functions to translate key identifiers between different format */
+/* ------------------------------------------------------------------------- */
+