aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-util.c
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@helixcode.com>2000-05-23 18:27:16 +0800
committerChris Lahey <clahey@src.gnome.org>2000-05-23 18:27:16 +0800
commitcb227b68b34052c2198cddfece3ee6da81a5e13e (patch)
tree92b59cae6ad2ec1192af87557b6fe847a09449d2 /e-util/e-util.c
parent83dfb929cf4f19ef73767a58e9b968bb6b11e55b (diff)
downloadgsoc2013-evolution-cb227b68b34052c2198cddfece3ee6da81a5e13e.tar.gz
gsoc2013-evolution-cb227b68b34052c2198cddfece3ee6da81a5e13e.tar.zst
gsoc2013-evolution-cb227b68b34052c2198cddfece3ee6da81a5e13e.zip
Added e_write_file.
2000-05-23 Christopher James Lahey <clahey@helixcode.com> * e-util.c, e-util.h: Added e_write_file. svn path=/trunk/; revision=3181
Diffstat (limited to 'e-util/e-util.c')
-rw-r--r--e-util/e-util.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/e-util/e-util.c b/e-util/e-util.c
index fd167599df..cac850b0d5 100644
--- a/e-util/e-util.c
+++ b/e-util/e-util.c
@@ -133,3 +133,29 @@ e_read_file(const char *filename)
g_list_free(lengths);
return ret_val;
}
+
+gint
+e_write_file(const char *filename, const char *data, int flags)
+{
+ int fd;
+ int length = strlen(data);
+ int bytes;
+ fd = open(filename, flags, 0666);
+ if (fd == -1)
+ return errno;
+ while (length > 0) {
+ bytes = write(fd, data, length);
+ if (bytes > 0) {
+ length -= bytes;
+ data += bytes;
+ } else {
+ if (errno != EINTR && errno != EAGAIN) {
+ int save_errno = errno;
+ close(fd);
+ return save_errno;
+ }
+ }
+ }
+ close(fd);
+ return 0;
+}