diff --git a/lib/Connection.js b/lib/Connection.js index ca0dc78..31c0973 100644 --- a/lib/Connection.js +++ b/lib/Connection.js @@ -37,6 +37,7 @@ var MAX_INT = 9007199254740992, RE_NUM_RANGE = /^(?:[\d]+|\*):(?:[\d]+|\*)$/, RE_BACKSLASH = /\\/g, RE_DBLQUOTE = /"/g, + RE_ESCAPE = /\\\\/g, RE_INTEGER = /^\d+$/; function Connection(config) { @@ -1102,8 +1103,14 @@ Connection.prototype._resUntagged = function(info) { j = keyslen; while (--j >= 0) { if (keys[j].toUpperCase() === toget[i]) { - if (!RE_BODYPART.test(toget[i])) + if (!RE_BODYPART.test(toget[i])) { + if (toget[i] === 'X-GM-LABELS') { + var labels = info.text[keys[j]]; + for (var k = 0, lenk = labels.length; k < lenk; ++k) + labels[k] = (''+labels[k]).replace(RE_ESCAPE, '\\'); + } attrs[FETCH_ATTR_MAP[toget[i]]] = info.text[keys[j]]; + } toget.splice(i, 1); break; }