summaryrefslogtreecommitdiff
path: root/libpurple/savedstatuses.c
diff options
context:
space:
mode:
authorAnkit Vani <a@nevitus.org>2014-01-20 07:08:40 +0530
committerAnkit Vani <a@nevitus.org>2014-01-20 07:08:40 +0530
commitf9d143ed730f41ab0e6415c3faf0a1005bf5e98c (patch)
treeff253f5d67807ebb76360e248a1368008d0e8523 /libpurple/savedstatuses.c
parent52673856710abe0d097de77a5159f29d266db266 (diff)
downloadpidgin-f9d143ed730f41ab0e6415c3faf0a1005bf5e98c.tar.gz
Update versions of XML files to "1.1", and warn if reading from a newer version
Diffstat (limited to 'libpurple/savedstatuses.c')
-rw-r--r--libpurple/savedstatuses.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/libpurple/savedstatuses.c b/libpurple/savedstatuses.c
index bc18e03a80..a1090ba5c3 100644
--- a/libpurple/savedstatuses.c
+++ b/libpurple/savedstatuses.c
@@ -35,6 +35,8 @@
#include "util.h"
#include "xmlnode.h"
+#define STATUS_XML_VERSION "1.1"
+
/**
* The maximum number of transient statuses to save. This
* is used during the shutdown process to clean out old
@@ -319,7 +321,7 @@ statuses_to_xmlnode(void)
GList *cur;
node = purple_xmlnode_new("statuses");
- purple_xmlnode_set_attrib(node, "version", "1.0");
+ purple_xmlnode_set_attrib(node, "version", STATUS_XML_VERSION);
for (cur = saved_statuses; cur != NULL; cur = cur->next)
{
@@ -530,6 +532,7 @@ static void
load_statuses(void)
{
PurpleXmlNode *statuses, *status;
+ const char *version;
statuses_loaded = TRUE;
@@ -538,6 +541,11 @@ load_statuses(void)
if (statuses == NULL)
return;
+ version = purple_xmlnode_get_attrib(statuses, "version");
+ if (purple_version_strcmp(version, STATUS_XML_VERSION) > 0)
+ purple_debug_warning("savedstatuses", "status.xml on disk is for a "
+ "newer version of libpurple");
+
for (status = purple_xmlnode_get_child(statuses, "status"); status != NULL;
status = purple_xmlnode_get_next_twin(status))
{