| 109 |
109 |
| 110 return ret; |
110 return ret; |
| 111 } |
111 } |
| 112 |
112 |
| 113 gboolean |
113 gboolean |
| 114 purple_util_write_data_to_file(const char *filename, const char *data, gssize size) |
|
| 115 { |
|
| 116 G_GNUC_BEGIN_IGNORE_DEPRECATIONS |
|
| 117 const char *user_dir = purple_user_dir(); |
|
| 118 G_GNUC_END_IGNORE_DEPRECATIONS |
|
| 119 gboolean ret = purple_util_write_data_to_file_common(user_dir, filename, data, size); |
|
| 120 |
|
| 121 return ret; |
|
| 122 } |
|
| 123 |
|
| 124 gboolean |
|
| 125 purple_util_write_data_to_cache_file(const char *filename, const char *data, gssize size) |
114 purple_util_write_data_to_cache_file(const char *filename, const char *data, gssize size) |
| 126 { |
115 { |
| 127 const char *cache_dir = purple_cache_dir(); |
116 const char *cache_dir = purple_cache_dir(); |
| 128 gboolean ret = purple_util_write_data_to_file_common(cache_dir, filename, data, size); |
117 gboolean ret = purple_util_write_data_to_file_common(cache_dir, filename, data, size); |
| 129 |
118 |
| 144 { |
133 { |
| 145 const char *data_dir = purple_data_dir(); |
134 const char *data_dir = purple_data_dir(); |
| 146 gboolean ret = purple_util_write_data_to_file_common(data_dir, filename, data, size); |
135 gboolean ret = purple_util_write_data_to_file_common(data_dir, filename, data, size); |
| 147 |
136 |
| 148 return ret; |
137 return ret; |
| 149 } |
|
| 150 |
|
| 151 gboolean |
|
| 152 purple_util_write_data_to_file_absolute(const char *filename_full, const char *data, gssize size) |
|
| 153 { |
|
| 154 GFile *file; |
|
| 155 GError *err = NULL; |
|
| 156 |
|
| 157 g_return_val_if_fail(size >= -1, FALSE); |
|
| 158 |
|
| 159 if (size == -1) { |
|
| 160 size = strlen(data); |
|
| 161 } |
|
| 162 |
|
| 163 file = g_file_new_for_path(filename_full); |
|
| 164 |
|
| 165 if (!g_file_replace_contents(file, data, size, NULL, FALSE, |
|
| 166 G_FILE_CREATE_PRIVATE, NULL, NULL, &err)) { |
|
| 167 purple_debug_error("util", "Error writing file: %s: %s\n", |
|
| 168 filename_full, err->message); |
|
| 169 g_clear_error(&err); |
|
| 170 g_object_unref(file); |
|
| 171 return FALSE; |
|
| 172 } |
|
| 173 |
|
| 174 g_object_unref(file); |
|
| 175 return TRUE; |
|
| 176 } |
|
| 177 |
|
| 178 PurpleXmlNode * |
|
| 179 purple_util_read_xml_from_file(const char *filename, const char *description) |
|
| 180 { |
|
| 181 G_GNUC_BEGIN_IGNORE_DEPRECATIONS |
|
| 182 return purple_xmlnode_from_file(purple_user_dir(), filename, description, "util"); |
|
| 183 G_GNUC_END_IGNORE_DEPRECATIONS |
|
| 184 } |
138 } |
| 185 |
139 |
| 186 PurpleXmlNode * |
140 PurpleXmlNode * |
| 187 purple_util_read_xml_from_cache_file(const char *filename, const char *description) |
141 purple_util_read_xml_from_cache_file(const char *filename, const char *description) |
| 188 { |
142 { |