fix handling of filter plugins without arguments
authorJeremy Laine <jeremy.laine@m4x.org>
Wed, 10 May 2006 21:51:17 +0000 (21:51 +0000)
committerJeremy Laine <jeremy.laine@m4x.org>
Wed, 10 May 2006 21:51:17 +0000 (21:51 +0000)
ChangeLog
Makefile
include/Plugin/Filter.php

index 0b795c1..88dff6b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+Diogenes 0.9.18.1
+ * fixed - fix handling of filter plugins without arguments
+
 Diogenes 0.9.18
  * improved - resync Textile plugin with Textpattern 4.0.2
  * improved - merge page catalog and file browser with slicker layout
 Diogenes 0.9.18
  * improved - resync Textile plugin with Textpattern 4.0.2
  * improved - merge page catalog and file browser with slicker layout
index e51b6ee..5f230f2 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 # definitions
 
 # definitions
 
-VERSION = 0.9.18
+VERSION = 0.9.18.1
 PKG_DIST = diogenes-$(VERSION)
 LIB_DIST = libdiogenes-$(VERSION)
 
 PKG_DIST = diogenes-$(VERSION)
 LIB_DIST = libdiogenes-$(VERSION)
 
index 58dcd85..d9cdf50 100644 (file)
@@ -47,14 +47,21 @@ class Diogenes_Plugin_Filter extends Diogenes_Plugin_Skel
    */
   function filter($input)
   {
    */
   function filter($input)
   {
+    global $page;
     $name = $this->name;
     
     $mask = "/(\{$name(\s+[^\}]*)?\})/";
     $bits = preg_split($mask, $input, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
     $output = "";    
     while($bit = array_shift($bits)) {
     $name = $this->name;
     
     $mask = "/(\{$name(\s+[^\}]*)?\})/";
     $bits = preg_split($mask, $input, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
     $output = "";    
     while($bit = array_shift($bits)) {
-      if (preg_match($mask, $bit)) {
-        $argstr = array_shift($bits);
+      $matches = array();
+      if (preg_match($mask, $bit, $matches)) {
+        if ($matches[2]) 
+        {  
+          $argstr = array_shift($bits);
+        } else {
+          $argstr = "";
+        }
         $argbits = preg_split("/\s/", trim($argstr));
         $args = array();
         foreach($argbits as $argbit)
         $argbits = preg_split("/\s/", trim($argstr));
         $args = array();
         foreach($argbits as $argbit)