diff --git a/classes/Notice.php b/classes/Notice.php
index a25991fa32..141ae8fd44 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -1072,6 +1072,7 @@ class Notice extends Memcached_DataObject
$reply->notice_id = $this->id;
$reply->profile_id = $profile->id;
+ $reply->modified = $this->created;
common_log(LOG_INFO, __METHOD__ . ": saving reply: notice $this->id to profile $profile->id");
@@ -1132,6 +1133,7 @@ class Notice extends Memcached_DataObject
$reply->notice_id = $this->id;
$reply->profile_id = $mentioned->id;
+ $reply->modified = $this->created;
$id = $reply->insert();
diff --git a/classes/statusnet.ini b/classes/statusnet.ini
index ef631e28d3..1916c25139 100644
--- a/classes/statusnet.ini
+++ b/classes/statusnet.ini
@@ -502,7 +502,8 @@ uri = U
[reply]
notice_id = 129
profile_id = 129
-modified = 384
+modified = 142
+;modified = 384 ; skipping the mysql_timestamp mode so we can override its setting
replied_id = 1
[reply__keys]
diff --git a/lib/util.php b/lib/util.php
index f734062ece..e5b0c86e06 100644
--- a/lib/util.php
+++ b/lib/util.php
@@ -925,11 +925,11 @@ function common_linkify($url) {
// functions
$url = htmlspecialchars_decode($url);
- if(strpos($url, '@') !== false && strpos($url, ':') === false) {
- //url is an email address without the mailto: protocol
- $canon = "mailto:$url";
- $longurl = "mailto:$url";
- }else{
+ if (strpos($url, '@') !== false && strpos($url, ':') === false && Validate::email($url)) {
+ //url is an email address without the mailto: protocol
+ $canon = "mailto:$url";
+ $longurl = "mailto:$url";
+ } else {
$canon = File_redirection::_canonUrl($url);
diff --git a/plugins/TwitterBridge/twitterimport.php b/plugins/TwitterBridge/twitterimport.php
index 5ddf5380d7..0eacfcd62c 100644
--- a/plugins/TwitterBridge/twitterimport.php
+++ b/plugins/TwitterBridge/twitterimport.php
@@ -675,6 +675,7 @@ class TwitterImport
$reply = new Reply();
$reply->notice_id = $notice->id;
$reply->profile_id = $user->id;
+ $reply->modified = $notice->created;
common_log(LOG_INFO, __METHOD__ . ": saving reply: notice {$notice->id} to profile {$user->id}");
$id = $reply->insert();
}
diff --git a/tests/URLDetectionTest.php b/tests/URLDetectionTest.php
index eac7ba3f5c..dc017ac616 100644
--- a/tests/URLDetectionTest.php
+++ b/tests/URLDetectionTest.php
@@ -20,6 +20,8 @@ class URLDetectionTest extends PHPUnit_Framework_TestCase
public function testProduction($content, $expected)
{
$rendered = common_render_text($content);
+ // hack!
+ $rendered = preg_replace('/id="attachment-\d+"/', 'id="attachment-XXX"', $rendered);
$this->assertEquals($expected, $rendered);
}
@@ -269,7 +271,13 @@ class URLDetectionTest extends PHPUnit_Framework_TestCase
array('file.html',
'file.html'),
array('file.php',
- 'file.php')
+ 'file.php'),
+
+ // scheme-less HTTP URLs with @ in the path: http://status.net/open-source/issues/2248
+ array('http://flickr.com/photos/34807140@N05/3838905434',
+ 'http://flickr.com/photos/34807140@N05/3838905434'),
+ array('flickr.com/photos/34807140@N05/3838905434',
+ 'flickr.com/photos/34807140@N05/3838905434'),
);
}
}