[balsa/64-save-empty-attachment] libbalsa-vfs: Ensure that a file exists
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa/64-save-empty-attachment] libbalsa-vfs: Ensure that a file exists
- Date: Fri, 14 Jan 2022 18:21:16 +0000 (UTC)
commit 708d01dfb57d7d3f4b3e6da4c7a9a3e21c907813
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Fri Jan 14 12:57:11 2022 -0500
libbalsa-vfs: Ensure that a file exists
Implement libbalsa_vfs_ensure_file_exists(). It opens a
GFileOutputStream to append to the file and immediately unrefs it if
successful.
Helps #64
libbalsa/libbalsa-vfs.c | 25 +++++++++++++++++++++++++
libbalsa/libbalsa-vfs.h | 2 ++
2 files changed, 27 insertions(+)
---
diff --git a/libbalsa/libbalsa-vfs.c b/libbalsa/libbalsa-vfs.c
index 49efc57ab..06020d24b 100644
--- a/libbalsa/libbalsa-vfs.c
+++ b/libbalsa/libbalsa-vfs.c
@@ -529,6 +529,31 @@ libbalsa_vfs_file_unlink(LibbalsaVfs * file, GError **err)
}
+/*
+ * Make sure the passed file exists
+ */
+gboolean
+libbalsa_vfs_ensure_file_exists(LibbalsaVfs *file, GError **err)
+{
+ GFileOutputStream *stream;
+ gboolean result;
+
+ g_return_val_if_fail(LIBBALSA_IS_VFS(file), FALSE);
+ g_return_val_if_fail(file->file_uri != NULL, FALSE);
+ g_return_val_if_fail(file->gio_gfile != NULL, FALSE);
+
+ stream = g_file_append_to(file->gio_gfile, G_FILE_CREATE_NONE, NULL, err);
+ if (stream != NULL) {
+ g_object_unref(stream);
+ result = TRUE;
+ } else {
+ result = FALSE;
+ }
+
+ return result;
+}
+
+
gboolean
libbalsa_vfs_launch_app(LibbalsaVfs * file, GObject * object, GError **err)
{
diff --git a/libbalsa/libbalsa-vfs.h b/libbalsa/libbalsa-vfs.h
index e2b71cda3..51e973841 100644
--- a/libbalsa/libbalsa-vfs.h
+++ b/libbalsa/libbalsa-vfs.h
@@ -66,6 +66,8 @@ gboolean libbalsa_vfs_is_regular_file(LibbalsaVfs * file,
GError **err);
gint libbalsa_vfs_file_unlink(LibbalsaVfs * file,
GError **err);
+gboolean libbalsa_vfs_ensure_file_exists(LibbalsaVfs *file,
+ GError **err);
/* application launch helpers */
gboolean libbalsa_vfs_launch_app(LibbalsaVfs * file,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]