rem: menuText += msgHdr.mime2DecodedSubject; menuText += ":"; 
add:  var subject = ""; if(msgHdr.flags & MSG_FLAG_HAS_RE) subject = "Re: "; if (msgHdr.mime2DecodedSubject) subject += msgHdr.mime2DecodedSubject; if (subject) menuText += subject + " - ";  
context: function populateHistoryMenu(menuPopup, isBackMenu){  // remove existing entries  while (menuPopup.firstChild)    menuPopup.removeChild(menuPopup.firstChild);  var curPos = new Object;  var numEntries = new Object;  var historyEntries = new Object;  messenger.getNavigateHistory(curPos, numEntries, historyEntries);  curPos.value = curPos.value * 2;  navDebug("curPos = " + curPos.value + " numEntries = " + numEntries.value + "\n");  var historyArray = historyEntries.value;  var folder;  var newMenuItem;  if (GetLoadedMessage())  {    if (!isBackMenu)      curPos.value += 2;    else      curPos.value -= 2;  }  // for populating the back menu, we want the most recently visited  // messages first in the menu. So we go backward from curPos to 0.  // For the forward menu, we want to go forward from curPos to the end.    var relPos = 0;  for (var i = curPos.value; (isBackMenu) ? i >= 0 : i < historyArray.length; i += ((isBackMenu) ? -2 : 2))  {    navDebug("history[" + i + "] = " + historyArray[i] + "\n");    navDebug("history[" + i + "] = " + historyArray[i + 1] + "\n");    folder = RDF.GetResource(historyArray[i + 1]).QueryInterface(Components.interfaces.nsIMsgFolder);    navDebug("folder URI = " + folder.URI + "pretty name " + folder.prettyName + "\n");    var menuText = "";        var msgHdr = messenger.msgHdrFromURI(historyArray[i]);    if (!IsCurrentLoadedFolder(folder))      menuText = folder.prettyName + " - ";    menuText += msgHdr.mime2DecodedSubject;    menuText += ":";    menuText += msgHdr.mime2DecodedAuthor;    newMenuItem = document.createElement('menuitem');    newMenuItem.setAttribute('label', menuText);    relPos += isBackMenu ? -1 : 1;    newMenuItem.setAttribute('value',  relPos);    newMenuItem.setAttribute('oncommand', 'NavigateToUri(event.target); event.stopPropagation();');    menuPopup.appendChild(newMenuItem);    if (! (relPos % 20))      break;  }  }
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/9421/c1607fab6ae9520153d9ce05a9a3d7f1bb379856/mailWindowOverlay.js/buggy/mail/base/content/mailWindowOverlay.js