summaryrefslogtreecommitdiff
path: root/inc/parser/handler.php
diff options
context:
space:
mode:
authorAndreas Gohr <gohr@cosmocode.de>2007-01-24 11:13:06 +0100
committerAndreas Gohr <gohr@cosmocode.de>2007-01-24 11:13:06 +0100
commitda9f31c579b1d16d9a1a27ff627fa4e68a70531f (patch)
treea6f24a27727725bc935294b529fdfa89787e73f4 /inc/parser/handler.php
parent2ea4044fe6adc821853ef4f360c95a6f97df0558 (diff)
downloadrpg-da9f31c579b1d16d9a1a27ff627fa4e68a70531f.tar.gz
rpg-da9f31c579b1d16d9a1a27ff627fa4e68a70531f.tar.bz2
moved simple URL handling from renderer to handler
darcs-hash:20070124101306-6e07b-f3b325915c5b379c5ec8ae3bcf21943be1942e83.gz
Diffstat (limited to 'inc/parser/handler.php')
-rw-r--r--inc/parser/handler.php23
1 files changed, 14 insertions, 9 deletions
diff --git a/inc/parser/handler.php b/inc/parser/handler.php
index 20c01b1eb..18ec004d3 100644
--- a/inc/parser/handler.php
+++ b/inc/parser/handler.php
@@ -534,15 +534,20 @@ class Doku_Handler {
}
function externallink($match, $state, $pos) {
- // Prevent use of multibyte strings in URLs
- // See: http://www.boingboing.net/2005/02/06/shmoo_group_exploit_.html
- // Not worried about other charsets so long as page is output as UTF-8
- /*if ( strlen($match) != utf8_strlen($match) ) {
- $this->_addCall('cdata',array($match), $pos);
- } else {*/
-
- $this->_addCall('externallink',array($match, NULL), $pos);
- //}
+ $url = $match;
+ $title = null;
+
+ // add protocol on simple short URLs
+ if(substr($url,0,3) == 'ftp' && (substr($url,0,6) != 'ftp://')){
+ $title = $url;
+ $url = 'ftp://'.$url;
+ }
+ if(substr($url,0,3) == 'www' && (substr($url,0,7) != 'http://')){
+ $title = $url;
+ $url = 'http://'.$url;
+ }
+
+ $this->_addCall('externallink',array($url, $title), $pos);
return true;
}