aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libibex/ChangeLog5
-rw-r--r--libibex/file.c16
-rw-r--r--libibex/ibex.h3
3 files changed, 24 insertions, 0 deletions
diff --git a/libibex/ChangeLog b/libibex/ChangeLog
index 016416574f..27661d3012 100644
--- a/libibex/ChangeLog
+++ b/libibex/ChangeLog
@@ -1,3 +1,8 @@
+2000-05-07 NotZed <NotZed@HelixCode.com>
+
+ * file.c (ibex_save): New function, only write out the ibex if it
+ has changed.
+
2000-05-07 <notzed@helixcode.com>
* file.c (ibex_open): Also close the fd after we're done.
diff --git a/libibex/file.c b/libibex/file.c
index 462fbec3d4..c419360e26 100644
--- a/libibex/file.c
+++ b/libibex/file.c
@@ -347,6 +347,22 @@ lose:
}
/**
+ * ibex_save:
+ * @ib:
+ *
+ * Only write out an ibex if it is dirty.
+ *
+ * Return value: Same as ibex_write.
+ **/
+int
+ibex_save (ibex *ib)
+{
+ if (ib->dirty)
+ return ibex_write(ib);
+ return 0;
+}
+
+/**
* ibex_close: Write out the ibex file (if it has changed) and free
* the data associated with it.
* @ib: the ibex
diff --git a/libibex/ibex.h b/libibex/ibex.h
index 646853b120..03635e275d 100644
--- a/libibex/ibex.h
+++ b/libibex/ibex.h
@@ -41,6 +41,9 @@ ibex *ibex_open (char *file, int flags, int mode);
/* Write the ibex to disk. */
int ibex_write (ibex *ib);
+/* only save if ibex has changed. */
+int ibex_save (ibex *ib);
+
/* Write the ibex to disk if it has changed, and free all memory
* associated with it.
*/