aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriendika <info@friendika.com>2011-06-29 18:59:05 -0700
committerFriendika <info@friendika.com>2011-06-29 18:59:05 -0700
commitad5b976978011e2bf16fea5537af5b211e8e65eb (patch)
tree312714e2a62a8932efe24747e60d0c3f234f1810
parentf73bc7f010e98b078542869cf130dc2c6d7abb25 (diff)
downloadvolse-hubzilla-ad5b976978011e2bf16fea5537af5b211e8e65eb.tar.gz
volse-hubzilla-ad5b976978011e2bf16fea5537af5b211e8e65eb.tar.bz2
volse-hubzilla-ad5b976978011e2bf16fea5537af5b211e8e65eb.zip
allow spaces in @ tags
-rw-r--r--boot.php16
-rw-r--r--mod/item.php20
-rw-r--r--mod/photos.php4
3 files changed, 31 insertions, 9 deletions
diff --git a/boot.php b/boot.php
index 54206d7fe..f66cf4bc0 100644
--- a/boot.php
+++ b/boot.php
@@ -4,7 +4,7 @@ set_time_limit(0);
ini_set('pcre.backtrack_limit', 250000);
-define ( 'FRIENDIKA_VERSION', '2.2.1025' );
+define ( 'FRIENDIKA_VERSION', '2.2.1026' );
define ( 'DFRN_PROTOCOL_VERSION', '2.21' );
define ( 'DB_UPDATE_VERSION', 1070 );
@@ -2017,7 +2017,7 @@ function get_tags($s) {
$s = preg_replace('/\[code\](.*?)\[\/code\]/sm','',$s);
- if(preg_match_all('/([@#][^ \x0D\x0A,:?]+)([ \x0D\x0A,:?]|$)/',$s,$match)) {
+ if(preg_match_all('/([@#][^ \x0D\x0A,:?]+ [^ \x0D\x0A,:?]+)([ \x0D\x0A,:?]|$)/',$s,$match)) {
foreach($match[1] as $mtch) {
if(strstr($mtch,"]")) {
// we might be inside a bbcode color tag - leave it alone
@@ -2030,6 +2030,18 @@ function get_tags($s) {
}
}
+ if(preg_match_all('/([@#][^ \x0D\x0A,:?]+)([ \x0D\x0A,:?]|$)/',$s,$match)) {
+ foreach($match[1] as $mtch) {
+ if(strstr($mtch,"]")) {
+ // we might be inside a bbcode color tag - leave it alone
+ continue;
+ }
+ if(substr($mtch,-1,1) === '.')
+ $ret[] = substr($mtch,0,-1);
+ else
+ $ret[] = $mtch;
+ }
+ }
return $ret;
}}
diff --git a/mod/item.php b/mod/item.php
index f87b6074a..8a4f8293c 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -244,6 +244,10 @@ function item_post(&$a) {
}
+ /**
+ * Next link in any attachment references we find in the post.
+ */
+
$match = false;
if(preg_match_all("/\[attachment\](.*?)\[\/attachment\]/",$body,$match)) {
@@ -265,10 +269,6 @@ function item_post(&$a) {
}
}
-
-
-
-
/**
* Fold multi-line [code] sequences
*/
@@ -285,13 +285,21 @@ function item_post(&$a) {
$tags = get_tags($body);
- if(($parent_contact) && ($parent_contact['network'] === 'stat') && ($parent_contact['nick']) && (! in_array('@' . $parent_contact['nick'],$tags))) {
+ /**
+ * add a statusnet style reply tag if the original post was from there
+ * and we are replying, and there isn't one already
+ */
+
+ if(($parent_contact) && ($parent_contact['network'] === 'stat')
+ && ($parent_contact['nick']) && (! in_array('@' . $parent_contact['nick'],$tags))) {
$body = '@' . $parent_contact['nick'] . ' ' . $body;
$tags[] = '@' . $parent_contact['nick'];
}
if(count($tags)) {
foreach($tags as $tag) {
+ if(isset($profile))
+ unset($profile);
if(strpos($tag,'#') === 0) {
if(strpos($tag,'[url='))
continue;
@@ -325,7 +333,7 @@ function item_post(&$a) {
else {
$newname = $name;
$alias = '';
- if(strstr($name,'_')) {
+ if(strstr($name,'_') || strstr($name,' ')) {
$newname = str_replace('_',' ',$name);
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
dbesc($newname),
diff --git a/mod/photos.php b/mod/photos.php
index 2cd4e2622..187eb154c 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -380,6 +380,8 @@ function photos_post(&$a) {
if(count($tags)) {
foreach($tags as $tag) {
+ if(isset($profile))
+ unset($profile);
if(strpos($tag,'@') === 0) {
$name = substr($tag,1);
if((strpos($name,'@')) || (strpos($name,'http://'))) {
@@ -401,7 +403,7 @@ function photos_post(&$a) {
}
else {
$newname = $name;
- if(strstr($name,'_')) {
+ if(strstr($name,'_') || strstr($name,' ')) {
$newname = str_replace('_',' ',$name);
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
dbesc($newname),