From 2f2528a4db50970cddb803b25f9862c30f0864e4 Mon Sep 17 00:00:00 2001 From: "Pierre Habouzit (MadCoder" Date: Sat, 8 Jan 2005 15:12:16 +0000 Subject: [PATCH] trim spaces and void blanks we now trim redoundant blanks from templates if they come (out of
, !is", $source, $match);
+    $_script_blocks = $match[0];
+    $source = preg_replace("!]+>.*?!is", '@@@SMARTY:TRIM:SCRIPT@@@', $source);
+
+    // Pull out the pre blocks
+    preg_match_all("!
.*?
!is", $source, $match); + $_pre_blocks = $match[0]; + $source = preg_replace("!
.*?
!is", '@@@SMARTY:TRIM:PRE@@@', $source); + + // Pull out the textarea blocks + preg_match_all("!]+>.*?!is", $source, $match); + $_textarea_blocks = $match[0]; + $source = preg_replace("!]+>.*?!is", '@@@SMARTY:TRIM:TEXTAREA@@@', $source); + + // remove all leading spaces, tabs and carriage returns NOT + // preceeded by a php close tag. + $source = preg_replace('/((?)\n)[\s]+/m', '\1', $source); + + // replace script blocks + foreach($_script_blocks as $curr_block) { + $source = preg_replace("!@@@SMARTY:TRIM:SCRIPT@@@!", $curr_block, $source, 1); + } + // replace pre blocks + foreach($_pre_blocks as $curr_block) { + $source = preg_replace("!@@@SMARTY:TRIM:PRE@@@!",$curr_block,$source,1); + } + // replace textarea blocks + foreach($_textarea_blocks as $curr_block) { + $source = preg_replace("!@@@SMARTY:TRIM:TEXTAREA@@@!",$curr_block,$source,1); + } + + return $source; +} + +// }}} // vim:set et sw=4 sts=4 sws=4 foldmethod=marker: ?> -- 2.1.4