Hello community,

here is the log from the commit of package enigmail for openSUSE:Factory 
checked in at 2016-11-14 20:15:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/enigmail (Old)
 and      /work/SRC/openSUSE:Factory/.enigmail.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "enigmail"

Changes:
--------
--- /work/SRC/openSUSE:Factory/enigmail/enigmail.changes        2016-09-27 
13:43:45.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.enigmail.new/enigmail.changes   2016-11-14 
20:15:37.000000000 +0100
@@ -1,0 +2,8 @@
+Sun Nov 13 12:02:26 UTC 2016 - [email protected]
+
+- enigmail 1.9.6:
+  * Better detection is decrypted message is displayed
+  * New variant of PGP/MIME messages broken by MS-Exchange
+  * Make key importing more robust
+
+-------------------------------------------------------------------

Old:
----
  enigmail-1.9.5.tar.gz
  enigmail-1.9.5.tar.gz.asc

New:
----
  enigmail-1.9.6.tar.gz
  enigmail-1.9.6.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ enigmail.spec ++++++
--- /var/tmp/diff_new_pack.ZyANoe/_old  2016-11-14 20:15:38.000000000 +0100
+++ /var/tmp/diff_new_pack.ZyANoe/_new  2016-11-14 20:15:38.000000000 +0100
@@ -18,7 +18,7 @@
 
 
 Name:           enigmail
-Version:        1.9.5
+Version:        1.9.6
 Release:        0
 Summary:        OpenPGP addon for Thunderbird and SeaMonkey
 License:        MPL-2.0

++++++ enigmail-1.9.5.tar.gz -> enigmail-1.9.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/Makefile new/enigmail/Makefile
--- old/enigmail/Makefile       2016-08-20 16:02:21.000000000 +0200
+++ new/enigmail/Makefile       2016-11-02 18:05:38.000000000 +0100
@@ -3,7 +3,7 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPI_MODULE     = enigmail
-XPI_MODULE_VERS = 1.9.4
+XPI_MODULE_VERS = 1.9.6
 
 DEPTH          = .
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/ipc/modules/subprocess.jsm 
new/enigmail/ipc/modules/subprocess.jsm
--- old/enigmail/ipc/modules/subprocess.jsm     2016-08-20 16:02:21.000000000 
+0200
+++ new/enigmail/ipc/modules/subprocess.jsm     2016-11-02 18:05:38.000000000 
+0100
@@ -1123,7 +1123,6 @@
     active = true,
     done = false,
     exitCode = -1,
-    workerExitCode = 0,
     child = {},
     pid = -1,
     writeWorker = [],
@@ -1657,7 +1656,7 @@
           break;
         case "done":
           debugLog("Pipe " + name + " closed\n");
-          if (event.data.data !== 0) workerExitCode = event.data.data;
+          updateExitCode(event.data.data);
           --readers;
           if (readers === 0) cleanup();
           break;
@@ -1737,6 +1736,13 @@
     }
   }
 
+  function updateExitCode(code) {
+    if (exitCode > -2 && code >= 0) {
+      exitCode = code;
+    }
+    exitCode = exitCode % 0xFF;
+  }
+
   function cleanup() {
     debugLog("Cleanup called\n");
 
@@ -1753,18 +1759,10 @@
       var result, status = ctypes.int();
       result = waitpid(child.pid, status.address(), 0);
 
-      if (exitCode > -2) {
-        if (result > 0)
-          exitCode = status.value;
-        else
-        if (workerExitCode >= 0)
-          exitCode = workerExitCode;
-        else
-          exitCode = status.value;
+      if (exitCode > -2 && result > 0) {
+        updateExitCode((status.value & 0xff00) >> 8);
       }
 
-      exitCode = exitCode % 0xFF;
-
       for (i = 0; i < writeWorker.length; i++) {
         if (writeWorker[i])
           writeWorker[i].postMessage({
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/ipc/modules/subprocess_worker_unix.js 
new/enigmail/ipc/modules/subprocess_worker_unix.js
--- old/enigmail/ipc/modules/subprocess_worker_unix.js  2016-08-20 
16:02:21.000000000 +0200
+++ new/enigmail/ipc/modules/subprocess_worker_unix.js  2016-11-02 
18:05:38.000000000 +0100
@@ -252,10 +252,10 @@
       result = libcFunc.waitpid(pid, status.address(), WNOHANG);
       if (result > 0) {
         pollTimeout = NOWAIT;
-        exitCode = parseInt(status.value, 10);
+        exitCode = (parseInt(status.value, 10) & 0xff00) >> 8;
         postMessage({
           msg: "debug",
-          data: "waitpid signaled subprocess stop, exitcode=" + status.value
+          data: "waitpid signaled subprocess stop, exitcode=" + exitCode
         });
       }
       else if (result < 0) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/package/fixExchangeMsg.jsm 
new/enigmail/package/fixExchangeMsg.jsm
--- old/enigmail/package/fixExchangeMsg.jsm     2016-08-20 16:02:21.000000000 
+0200
+++ new/enigmail/package/fixExchangeMsg.jsm     2016-11-02 18:05:38.000000000 
+0100
@@ -252,7 +252,7 @@
       return null;
     }
 
-    mimeHdr.initialize(bodyData.substr(encData, 500));
+    mimeHdr.initialize(bodyData.substr(encData, 5000));
     ct = mimeHdr.extractHeader("content-type", false);
     if (!ct || ct.search(/application\/octet-stream/i) < 0) {
       EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectedExchangeBodyData: 
wrong content-type of PGP/MIME data\n");
@@ -295,7 +295,7 @@
 
     let mimeHdr = 
Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders);
 
-    mimeHdr.initialize(bodyData.substr(encData, 500));
+    mimeHdr.initialize(bodyData.substr(encData, 5000));
     let ct = mimeHdr.extractHeader("content-type", false);
     if (!ct || ct.search(/application\/pgp-encrypted/i) < 0) {
       EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectediPGMailBodyData: 
wrong content-type of PGP/MIME data\n");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/package/install.rdf 
new/enigmail/package/install.rdf
--- old/enigmail/package/install.rdf    2016-08-20 16:02:21.000000000 +0200
+++ new/enigmail/package/install.rdf    2016-11-02 18:05:38.000000000 +0100
@@ -5,7 +5,7 @@
 
   <Description about="urn:mozilla:install-manifest">
     <em:id>{847b3a00-7ab1-11d4-8f02-006008948af5}</em:id>
-    <em:version>1.9.5</em:version>
+    <em:version>1.9.6</em:version>
     <em:type>2</em:type> <!-- type = extension -->
     <em:unpack>true</em:unpack>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/package/key.jsm new/enigmail/package/key.jsm
--- old/enigmail/package/key.jsm        2016-08-20 16:02:21.000000000 +0200
+++ new/enigmail/package/key.jsm        2016-11-02 18:05:38.000000000 +0100
@@ -156,18 +156,29 @@
       let key = getKeyRing().getKeyById(keyId);
 
       if (key) {
-        let userId = key.userId + " - 0x" + key.keyId.substr(-8, 8);
-        if (!getDialog().confirmDlg(null,
-            EnigmailLocale.getString("revokeKeyQuestion", userId),
-            EnigmailLocale.getString("keyMan.button.revokeKey"))) {
-          return;
+        if (key.keyTrust === "r") {
+          // Key has already been revoked
+          getDialog().alert(null, 
EnigmailLocale.getString("revokeKeyAlreadyRevoked", keyId.substr(-8, 8)));
         }
+        else {
 
-        let errorMsgObj = {};
-        if (getKeyRing().importKey(null, false, keyBlockStr, keyId, 
errorMsgObj) > 0) {
-          getDialog().alert(errorMsgObj.value);
+          let userId = key.userId + " - 0x" + key.keyId.substr(-8, 8);
+          if (!getDialog().confirmDlg(null,
+              EnigmailLocale.getString("revokeKeyQuestion", userId),
+              EnigmailLocale.getString("keyMan.button.revokeKey"))) {
+            return;
+          }
+
+          let errorMsgObj = {};
+          if (getKeyRing().importKey(null, false, keyBlockStr, keyId, 
errorMsgObj) > 0) {
+            getDialog().alert(null, errorMsgObj.value);
+          }
         }
       }
+      else {
+        // Suitable key for revocation certificate is not present in keyring
+        getDialog().alert(null, 
EnigmailLocale.getString("revokeKeyNotPresent", keyId.substr(-8, 8)));
+      }
     }
   },
 
@@ -184,7 +195,7 @@
    *    - packetStr - String: the packet list as received from GnuPG
    */
   getKeyFileType: function(keyBlockStr) {
-    let args = EnigmailGpg.getStandardArgs(true).concat("--list-packets");
+    let args = EnigmailGpg.getStandardArgs(true).concat(["--no-verbose", 
"--list-packets"]);
     const exitCodeObj = {};
     const statusMsgObj = {};
     const errorMsgObj = {};
@@ -242,7 +253,7 @@
       return ret;
     }
 
-    const tempDir = EnigmailFiles.createTempSubDir("enigmail_import");
+    const tempDir = EnigmailFiles.createTempSubDir("enigmail_import", true);
     const tempPath = EnigmailFiles.getFilePath(tempDir);
     const args = EnigmailGpg.getStandardArgs(true).concat([
       "--import",
@@ -266,20 +277,19 @@
     var keyexpired;
 
     while (state != "end") {
+
+      // Ignore all irrelevant lines
+      while 
(lines[idx].search(/^(IMPORTED|IMPORT_OK|IMPORT_RES|IMPORT_PROBLEM) /) < 0 &&
+        idx < lines.length) {
+        EnigmailLog.DEBUG("Ignoring line: '" + lines[idx] + "'\n");
+        ++idx;
+      }
+
       if (idx >= lines.length) {
         errorMsgObj.value = EnigmailLocale.getString("cantImport");
         return [];
       }
 
-      // Ignore all lines starting with "KEYEXPIRED"
-      keyexpired = lines[idx].match(/^KEYEXPIRED/);
-
-      while (keyexpired && (keyexpired.length > 0) && (idx < (lines.length - 
1))) {
-        EnigmailLog.DEBUG("Ignoring KEYEXPIRED line: '" + lines[idx] + "'\n");
-        idx += 1;
-        keyexpired = lines[idx].match(/^KEYEXPIRED/);
-      }
-
       EnigmailLog.DEBUG("state: '" + state + "', line: '" + lines[idx] + 
"'\n");
 
       switch (state) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/package/mimeDecrypt.jsm 
new/enigmail/package/mimeDecrypt.jsm
--- old/enigmail/package/mimeDecrypt.jsm        2016-08-20 16:02:21.000000000 
+0200
+++ new/enigmail/package/mimeDecrypt.jsm        2016-11-02 18:05:38.000000000 
+0100
@@ -439,17 +439,28 @@
       if (proto && proto.search(/application\/(pgp|pkcs7|x-pkcs7)-signature/i) 
>= 0) {
         EnigmailLog.DEBUG("mimeDecrypt.jsm: returnData: using direct 
verification\n");
         this.mimeSvc.contentType = ct;
-        this.mimeSvc.mimePart = this.mimeSvc.mimePart + ".1";
+        if ("mimePart" in this.mimeSvc) {
+          this.mimeSvc.mimePart = this.mimeSvc.mimePart + ".1";
+        }
         let proto = EnigmailMime.getProtocol(ct);
         let veri = EnigmailVerify.newVerifier(proto);
         veri.onStartRequest(this.mimeSvc, this.uri);
-        veri.onDataAvailable(null, null, gConv, 0, data.length + 1);
+        try {
+          veri.onDataAvailable(null, null, gConv, 0, data.length + 1);
+        }
+        catch (ex) {
+          EnigmailLog.ERROR("mimeDecrypt.jsm: returnData(): 
mimeSvc.onDataAvailable failed:\n" + ex.toString());
+        }
         veri.onStopRequest(null, null, 0);
       }
       else {
-        gConv.setData(data, data.length);
         this.mimeSvc.onStartRequest(null, null);
-        this.mimeSvc.onDataAvailable(null, null, gConv, 0, data.length);
+        try {
+          this.mimeSvc.onDataAvailable(null, null, gConv, 0, data.length);
+        }
+        catch (ex) {
+          EnigmailLog.ERROR("mimeDecrypt.jsm: returnData(): 
mimeSvc.onDataAvailable failed:\n" + ex.toString());
+        }
         this.mimeSvc.onStopRequest(null, null, 0);
       }
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/package/mimeVerify.jsm 
new/enigmail/package/mimeVerify.jsm
--- old/enigmail/package/mimeVerify.jsm 2016-08-20 16:02:21.000000000 +0200
+++ new/enigmail/package/mimeVerify.jsm 2016-11-02 18:05:38.000000000 +0100
@@ -313,6 +313,9 @@
       start = 0;
     }
     let end = this.keepData.indexOf("--" + this.boundary + "--") - 1;
+    if (end < 0) {
+      end = this.keepData.length;
+    }
 
     return {
       start: start,
@@ -369,9 +372,17 @@
 
     this.backgroundJob = false;
 
+
     // don't try to verify if no message found
     // if (this.verifyEmbedded && (!this.foundMsg)) return; // TODO - check
 
+    if (this.readMode < 4) {
+      // we got incomplete data; simply return what we got
+      this.returnData(this.signedData.length > 0 ? this.signedData : 
this.keepData);
+
+      return;
+    }
+
     this.protectedHeaders = 
EnigmailMime.extractProtectedHeaders(this.signedData);
 
     if (this.protectedHeaders && this.protectedHeaders.startPos >= 0 && 
this.protectedHeaders.endPos > this.protectedHeaders.startPos) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/package/pgpmimeHandler.js 
new/enigmail/package/pgpmimeHandler.js
--- old/enigmail/package/pgpmimeHandler.js      2016-08-20 16:02:21.000000000 
+0200
+++ new/enigmail/package/pgpmimeHandler.js      2016-11-02 18:05:38.000000000 
+0100
@@ -125,12 +125,20 @@
   inStream: 
Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream),
 
   onStartRequest: function(request, uri) {
-    if (!EnigmailCore.getService()) // Ensure Enigmail is initialized
+    let mimeSvc = request.QueryInterface(Ci.nsIPgpMimeProxy);
+    let ct = mimeSvc.contentType;
+
+    if (!EnigmailCore.getService()) {
+      // Ensure Enigmail is initialized
+      if (ct.search(/application\/(x-)?pkcs7-signature/i) > 0) {
+        return this.handleSmime(uri);
+      }
       return null;
+    }
+
     EnigmailLog.DEBUG("pgpmimeHandler.js: onStartRequest\n");
+    EnigmailLog.DEBUG("pgpmimeHandler.js: ct= " + ct + "\n");
 
-    let mimeSvc = request.QueryInterface(Ci.nsIPgpMimeProxy);
-    let ct = mimeSvc.contentType;
     let cth = null;
 
     if (ct.search(/^multipart\/encrypted/i) === 0) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/ui/content/enigmailKeyImportInfo.xul 
new/enigmail/ui/content/enigmailKeyImportInfo.xul
--- old/enigmail/ui/content/enigmailKeyImportInfo.xul   2016-08-20 
16:02:21.000000000 +0200
+++ new/enigmail/ui/content/enigmailKeyImportInfo.xul   2016-11-02 
18:05:38.000000000 +0100
@@ -31,7 +31,7 @@
 
   <vbox align="center" flex="1" style="overflow:auto" id="outerbox">
     <hbox align="center" flex="1">
-      <description flex="1" id="keyInfo" style="plain;white-space: pre"/>
+      <description flex="1" id="keyInfo" class="plain" style="white-space: 
pre"/>
     </hbox>
   </vbox>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/ui/content/enigmailKeyManager.xul 
new/enigmail/ui/content/enigmailKeyManager.xul
--- old/enigmail/ui/content/enigmailKeyManager.xul      2016-08-20 
16:02:21.000000000 +0200
+++ new/enigmail/ui/content/enigmailKeyManager.xul      2016-11-02 
18:05:38.000000000 +0100
@@ -453,9 +453,5 @@
   <hbox id="statusLine">
     <label id="statusText" value=" "/>
     <progressmeter id="progressBar" mode="undetermined" value="0" 
collapsed="true"/>
-    <description id="cancelBox" collapsed="true">
-      <a class="enigmailLink" href=""
-         id="cancelButton" 
onclick="enigSendKeyCancel()">&enigmail.keyMan.stopTransfer.label;</a>
-    </description>
   </hbox>
 </window>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/ui/content/enigmailMessengerOverlay.js 
new/enigmail/ui/content/enigmailMessengerOverlay.js
--- old/enigmail/ui/content/enigmailMessengerOverlay.js 2016-08-20 
16:02:21.000000000 +0200
+++ new/enigmail/ui/content/enigmailMessengerOverlay.js 2016-11-02 
18:05:38.000000000 +0100
@@ -704,7 +704,7 @@
           
mimeMsg.parts[0].parts[0].headers["content-type"][0].indexOf("text/plain") >= 0 
&&
           
mimeMsg.parts[0].parts[1].headers["content-type"][0].indexOf("application/pgp-encrypted")
 >= 0) {
           if 
(mimeMsg.parts[0].parts[1].headers["content-type"][0].search(/multipart\/encrypted/i)
 < 0 &&
-            
mimeMsg.parts[0].parts[1].headers["content-type"][0].search(/PGPMIME Versions? 
Identification/i) >= 0 &&
+            
mimeMsg.parts[0].parts[1].headers["content-type"][0].search(/PGP\/?MIME 
Versions? Identification/i) >= 0 &&
             
mimeMsg.parts[0].parts[2].headers["content-type"][0].indexOf("application/octet-stream")
 >= 0 &&
             
mimeMsg.parts[0].parts[2].headers["content-type"][0].indexOf("encrypted.asc") 
>= 0) {
             this.buggyMailType = "exchange";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/ui/content/enigmailMsgHdrViewOverlay.js 
new/enigmail/ui/content/enigmailMsgHdrViewOverlay.js
--- old/enigmail/ui/content/enigmailMsgHdrViewOverlay.js        2016-08-20 
16:02:21.000000000 +0200
+++ new/enigmail/ui/content/enigmailMsgHdrViewOverlay.js        2016-11-02 
18:05:38.000000000 +0100
@@ -981,37 +981,98 @@
         throw Components.results.NS_NOINTERFACE;
       },
 
+      /**
+       * Determine message number and folder from mailnews URI
+       *
+       * @param url - nsIURI object
+       *
+       * @return Object:
+       *    - msgNum: String - the message number, or "" if no URI Scheme fits
+       *    - folder: String - the folder (or newsgroup) name
+       */
+      msgIdentificationFromUrl: function(url) {
+
+        // sample URLs in Thunderbird
+        // Local folder: mailbox:///some/path/to/folder?number=359360
+        // IMAP: imap://user@host:port/fetch>some>path>111
+        // NNTP: 
news://some.host/some.service.com?group=some.group.name&key=3510
+        // also seen: e.g. 
mailbox:///som/path/to/folder?number=4455522&part=1.1.2&filename=test.eml
+        // 
mailbox:///...?number=4455522&part=1.1.2&filename=test.eml&type=application/x-message-display&filename=test.eml
+        // 
imap://user@host:port>UID>some>path>10?header=filter&emitter=js&examineEncryptedParts=true
+
+        EnigmailLog.DEBUG("enigmailMsgHdrViewOverlay.js: 
msgIdentificationFromUrl: url.path=" + url.path + "\n");
+
+        let msgNum = "";
+        let msgFolder = "";
+
+        if (url.schemeIs("mailbox")) {
+          msgNum = url.path.replace(/(.*[?&]number=)([0-9]+)([^0-9].*)?/, 
"$2");
+          msgFolder = url.path.replace(/\?.*/, "");
+        }
+        else if (url.schemeIs("imap")) {
+          let p = unescape(url.path);
+          msgNum = p.replace(/(.*>)([0-9]+)([^0-9].*)?/, "$2");
+          msgFolder = p.replace(/\?.*$/, "").replace(/>[^>]+$/, "");
+        }
+        else if (url.schemeIs("news")) {
+          msgNum = url.path.replace(/(.*[\?&]key=)([0-9]+)([^0-9].*)?/, "$2");
+          msgFolder = url.path.replace(/(.*[\?&]group=)([^&]+)(&.*)?/, "$2");
+        }
+
+        EnigmailLog.DEBUG("enigmailMsgHdrViewOverlay.js: 
msgIdentificationFromUrl: msgNum=" + msgNum + " / folder=" + msgFolder + "\n");
+
+        return {
+          msgNum: msgNum,
+          folder: msgFolder.toLowerCase()
+        };
+      },
+
+
       isCurrentMessage: function(uri) {
         let uriSpec = (uri ? uri.spec : null);
 
         EnigmailLog.DEBUG("enigmailMsgHdrViewOverlay.js: 
EnigMimeHeaderSink.isCurrentMessage: uri.spec=" + uriSpec + "\n");
 
+        if (!uriSpec || uriSpec.search(/^enigmail:/) === 0) {
+          // we cannot compare if no URI given or if URI is Enigmail-internal;
+          // therefore assuming it's the current message
+          return true;
+        }
+
         let msgUriSpec = Enigmail.msg.getCurrentMsgUriSpec();
 
-        let url = {};
+        let currUrl = {};
         try {
           let messenger = 
Components.classes["@mozilla.org/messenger;1"].getService(Components.interfaces.nsIMessenger);
           let msgSvc = messenger.messageServiceFromURI(msgUriSpec);
-          msgSvc.GetUrlForUri(msgUriSpec, url, null);
+          msgSvc.GetUrlForUri(msgUriSpec, currUrl, null);
         }
         catch (ex) {
           EnigmailLog.DEBUG("enigmailMsgHdrViewOverlay.js: 
EnigMimeHeaderSink.isCurrentMessage: could not determine URL\n");
-          url.value = {
+          currUrl.value = {
             host: "invalid",
             path: "/message",
             scheme: "enigmail",
-            spec: "enigmail://invalid/message"
+            spec: "enigmail://invalid/message",
+            schemeIs: function(s) {
+              return s === this.scheme;
+            }
           };
         }
 
-        EnigmailLog.DEBUG("enigmailMsgHdrViewOverlay.js: 
EnigMimeHeaderSink.isCurrentMessage: url=" + url.value.spec + "\n");
+        let currMsgId = this.msgIdentificationFromUrl(currUrl.value);
+        let gotMsgId = this.msgIdentificationFromUrl(uri);
+
+        EnigmailLog.DEBUG("enigmailMsgHdrViewOverlay.js: 
EnigMimeHeaderSink.isCurrentMessage: url=" + currUrl.value.spec + "\n");
 
-        if (!uriSpec || uriSpec.search(/^enigmail:/) === 0 ||
-          (uri.host == url.value.host &&
-            uri.path.substr(url.value.path.length).search(/([\?&].*)?$/) === 
0)) {
+        if (uri.host == currUrl.value.host &&
+          currMsgId.folder === gotMsgId.folder &&
+          currMsgId.msgNum === gotMsgId.msgNum) {
+          EnigmailLog.DEBUG("enigmailMsgHdrViewOverlay.js: 
EnigMimeHeaderSink.isCurrentMessage: true\n");
           return true;
         }
 
+        EnigmailLog.DEBUG("enigmailMsgHdrViewOverlay.js: 
EnigMimeHeaderSink.isCurrentMessage: false\n");
         return false;
       },
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/enigmail/ui/locale/en-US/enigmail.properties 
new/enigmail/ui/locale/en-US/enigmail.properties
--- old/enigmail/ui/locale/en-US/enigmail.properties    2016-08-20 
16:02:21.000000000 +0200
+++ new/enigmail/ui/locale/en-US/enigmail.properties    2016-11-02 
18:05:38.000000000 +0100
@@ -472,6 +472,8 @@
 revokeKeyQuestion=You are about to revoke the key '%S'.\n\nYou will no longer 
be able to sign with this key, and once distributed, others will no longer be 
able to encrypt with that key. You can still use the key to decrypt old 
messages.\n\nDo you want to proceed?
 revokeKeyOk=The key has been revoked. If your key is available on a key 
server, it is recommended to re-upload it, so that others can see the 
revocation.
 revokeKeyFailed=The key could not be revoked.
+revokeKeyAlreadyRevoked=This key has already been revoked.
+revokeKeyNotPresent=No suitable key available for revocation certificate.
 refreshAllQuestion=You did not select any key. Would you like to refresh ALL 
keys?
 refreshKey.warn=Warning: depending on the number of keys and the connection 
speed, refreshing all keys could be quite a lengthy process!
 downloadContactsKeys.warn=Warning: depending on the number of contacts and the 
connection speed, downloading all keys could be quite a lengthy process!



Reply via email to