From 830fd2ecbb67c395617e1cc38f343d12af0a2861 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Fri, 28 Dec 2012 09:33:48 -0500
Subject: [PATCH] Display PGP/MIME signature attachments as "Digital Signature" (#1488570)

---
 CHANGELOG                             |    1 +
 program/steps/mail/func.inc           |    9 ++++++++-
 program/localization/en_US/labels.inc |    1 +
 program/steps/mail/show.inc           |    2 +-
 4 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 5f010ac..687fd89 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Display PGP/MIME signature attachments as "Digital Signature" (#1488570)
 - Workaround UW-IMAP bug where hierarchy separator is added to the shared folder name (#1488879)
 - Fix version comparisons with -stable suffix (#1488876)
 - Add unsupported alternative parts to attachments list (#1488870)
diff --git a/program/localization/en_US/labels.inc b/program/localization/en_US/labels.inc
index fa8f33d..b5fcee4 100644
--- a/program/localization/en_US/labels.inc
+++ b/program/localization/en_US/labels.inc
@@ -378,6 +378,7 @@
 $labels['defaultcharset'] = 'Default Character Set';
 $labels['htmlmessage'] = 'HTML Message';
 $labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
 $labels['dateformat'] = 'Date format';
 $labels['timeformat'] = 'Time format';
 $labels['prettydate'] = 'Pretty dates';
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index bedd3e8..44a1557 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -1838,7 +1838,7 @@
 }
 
 // return attachment filename, handle empty filename case
-function rcmail_attachment_name($attachment)
+function rcmail_attachment_name($attachment, $display = false)
 {
     $filename = $attachment->filename;
 
@@ -1858,6 +1858,13 @@
 
     $filename = preg_replace('[\r\n]', '', $filename);
 
+    // Display smart names for some known mimetypes
+    if ($display) {
+        if (preg_match('/application\/(pgp|pkcs7)-signature/i', $attachment->mimetype)) {
+            $filename = rcube_label('digitalsig');
+        }
+    }
+
     return $filename;
 }
 
diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc
index 22f4ff4..64e6288 100644
--- a/program/steps/mail/show.inc
+++ b/program/steps/mail/show.inc
@@ -150,7 +150,7 @@
 
   if (sizeof($MESSAGE->attachments)) {
     foreach ($MESSAGE->attachments as $attach_prop) {
-      $filename = rcmail_attachment_name($attach_prop);
+      $filename = rcmail_attachment_name($attach_prop, true);
 
       if ($PRINT_MODE) {
         $size = $RCMAIL->message_part_size($attach_prop);

--
Gitblit v1.9.1