diff --git a/mozilla/extensions/irc/jar.mn b/mozilla/extensions/irc/jar.mn index a237a515171..4e3f8ff6cfa 100644 --- a/mozilla/extensions/irc/jar.mn +++ b/mozilla/extensions/irc/jar.mn @@ -13,6 +13,7 @@ chatzilla.jar: content/chatzilla/lib/js/irc-debug.js (js/lib/irc-debug.js) content/chatzilla/lib/js/file-utils.js (js/lib/file-utils.js) content/chatzilla/lib/js/dcc.js (js/lib/dcc.js) + content/chatzilla/lib/js/text-serializer.js (js/lib/text-serializer.js) content/chatzilla/lib/xul/munger.js (xul/lib/munger.js) content/chatzilla/lib/xul/tree-utils.js (xul/lib/tree-utils.js) content/chatzilla/chatzilla.xul (xul/content/chatzilla.xul) diff --git a/mozilla/extensions/irc/xul/content/commands.js b/mozilla/extensions/irc/xul/content/commands.js index 07115518594..976807c0cc4 100644 --- a/mozilla/extensions/irc/xul/content/commands.js +++ b/mozilla/extensions/irc/xul/content/commands.js @@ -2572,6 +2572,38 @@ function cmdAway(e) if (!e.reason) e.reason = MSG_AWAY_DEFAULT; + // Update away list (remove from current location). + for (var i = 0; i < client.awayMsgs.length; i++) + { + if (client.awayMsgs[i].message == e.reason) + { + client.awayMsgs.splice(i, 1); + break; + } + } + // Always put new item at start. + var newMsg = { message: e.reason }; + client.awayMsgs.unshift(newMsg); + // Make sure we've not exceeded the limit set. + if (client.awayMsgs.length > client.awayMsgCount) + client.awayMsgs.splice(client.awayMsgCount); + // And now, to save the list! + try + { + var awayFile = new nsLocalFile(client.prefs["profilePath"]); + awayFile.append("awayMsgs.txt"); + var awayLoader = new TextSerializer(awayFile); + if (awayLoader.open(">")) + { + awayLoader.serialize(client.awayMsgs); + awayLoader.close(); + } + } + catch(ex) + { + display(getMsg(MSG_ERR_AWAY_SAVE, formatException(ex)), MT_ERROR); + } + if (e.server) { if (e.network.state == NET_ONLINE) diff --git a/mozilla/extensions/irc/xul/content/scripts.xul b/mozilla/extensions/irc/xul/content/scripts.xul index 45de7e1bfc8..e270b335eaa 100644 --- a/mozilla/extensions/irc/xul/content/scripts.xul +++ b/mozilla/extensions/irc/xul/content/scripts.xul @@ -70,6 +70,7 @@