[interchange-cvs] interchange - docelic modified 76 files

interchange-cvs at icdevgroup.org interchange-cvs at icdevgroup.org
Tue Oct 19 06:03:54 EDT 2004


User:      docelic
Date:      2004-10-19 10:03:54 GMT
Modified:  lib/Vend Interpolate.pm
Modified:  code/Filter convert_date.filter date2time.filter
Modified:           encrypt.filter lc.filter line.filter
Modified:           linkdecode.filter md5.filter next_sequential.filter
Modified:           qb_safe.filter
Added:     code/Filter alpha.filter alphanumeric.filter
Added:              backslash.filter bold.filter calculated.filter
Added:              cgi.filter checkbox.filter colons_to_null.filter
Added:              commify.filter compress_space.filter crypt.filter
Added:              currency.filter date_change.filter
Added:              decode_entities.filter digits.filter
Added:              digits_dot.filter dos.filter encode_entities.filter
Added:              filesafe.filter gate.filter html2text.filter
Added:              integer.filter italics.filter large.filter
Added:              last_non_null.filter line2options.filter loc.filter
Added:              lookup.filter mac.filter mailto.filter
Added:              mime_type.filter name.filter namecase.filter
Added:              no_white.filter null_to_colons.filter
Added:              null_to_comma.filter null_to_space.filter
Added:              nullselect.filter option_format.filter
Added:              options2line.filter pagefile.filter pgbool.filter
Added:              pgbooln.filter pre.filter restrict_html.filter
Added:              show_null.filter small.filter space_to_null.filter
Added:              sql.filter strftime.filter strikeout.filter
Added:              strip.filter tabbed.filter text2html.filter
Added:              textarea_get.filter textarea_put.filter tt.filter
Added:              uc.filter unix.filter upload.filter
Added:              urldecode.filter urlencode.filter value.filter
Added:              word.filter yesno.filter zerofix.filter
Log:
* The great filter breakout!

* All filters are now CodeDef definitions in code/Filter/*.

* Besides plain move from Interpolate.pm, changes made to Filter/* include:

	* Adding/fixing header/license/cvsid line (all files)
  * Indenting (where needed)
  * Lowercasing output html (where needed)

* Changes to Interpolate.pm:

  * Removed whole %Filter = ( ... )

I tested everything with the new eg/pcode script, and tried re-starting
Interchange and running few filters on test page. Seems OK.

Revision  Changes    Path
2.224     +2 -415    interchange/lib/Vend/Interpolate.pm


rev 2.224, prev_rev 2.223
Index: Interpolate.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/Interpolate.pm,v
retrieving revision 2.223
retrieving revision 2.224
diff -u -r2.223 -r2.224
--- Interpolate.pm	15 Oct 2004 18:35:02 -0000	2.223
+++ Interpolate.pm	19 Oct 2004 10:03:50 -0000	2.224
@@ -1,6 +1,6 @@
 # Vend::Interpolate - Interpret Interchange tags
 # 
-# $Id: Interpolate.pm,v 2.223 2004/10/15 18:35:02 racke Exp $
+# $Id: Interpolate.pm,v 2.224 2004/10/19 10:03:50 docelic Exp $
 #
 # Copyright (C) 2002-2003 Interchange Development Group
 # Copyright (C) 1996-2002 Red Hat, Inc.
@@ -28,7 +28,7 @@
 require Exporter;
 @ISA = qw(Exporter);
 
-$VERSION = substr(q$Revision: 2.223 $, 10);
+$VERSION = substr(q$Revision: 2.224 $, 10);
 
 @EXPORT = qw (
 
@@ -872,419 +872,6 @@
 	#The most common , don't enter a block, no accoutrements
 	return ed(database_field($selector,$key,$field,$opt->{foreign}));
 }
-
-%Filter = (
-	
-	'value' =>	sub { return $::Values->{$_[0]}; },
-	'cgi' =>	sub { return $CGI::values{$_[0]}; },
-	'filesafe' =>	sub {
-						return Vend::Util::escape_chars(shift);
-				},
-	'calculated' =>	sub {
-						my ($val, $tag, $table, $column, $key, $indirect) = @_;
-						$key = $CGI::values{$indirect}
-							if $indirect;
-						my $code = tag_data($table, $column, $key);
-						$code =~ s/\r/\n/g;
-#::logDebug("calculated code=$code");
-						$s = $val;
-						my $result = $ready_safe->reval($code);
-#::logDebug("calculated result='$result'");
-						return $result;
-				},
-	'mime_type' =>	sub {
-						return Vend::Util::mime_type(shift);
-				},
-	'currency' =>	sub {
-						my ($val, $tag, $locale) = @_;
-						my $convert = $locale ? 1 : 0;
-						return Vend::Util::currency(
-								$val,
-								0,
-								$convert,
-								{ locale => $locale }
-							);
-				},
-	'mailto' =>	sub {
-						my ($val,$tag, at arg) = @_;
-						my $out = qq{<A HREF="mailto:$val">};
-						my $anchor = $val;
-						if(@arg) {
-							$anchor = join " ", @arg;
-						}
-						$out .= "$anchor</A>";
-				},
-	'tt' =>			sub { return '<TT>' . shift(@_) . '</TT>'; },
-	'pre' =>		sub { return '<PRE>' . shift(@_) . '</PRE>'; },
-	'bold' =>		sub { return '<B>' . shift(@_) . '</B>'; },
-	'italics' =>	sub { return '<I>' . shift(@_) . '</I>'; },
-	'strikeout' =>	sub { return '<strike>' . shift(@_) . '</strike>'; },
-	'small' =>		sub { return '<small>' . shift(@_) . '</small>'; },
-	'large' =>		sub { return '<large>' . shift(@_) . '</large>'; },
-	'commify' =>	sub {
-						my ($val, $tag, $places) = @_;
-						$places = 2 unless defined $places;
-						$val = sprintf("%.${places}f", $val) if $places;
-						return Vend::Util::commify($val);
-				},
-	'integer' => sub { return int(shift); },
-	'lookup' =>	sub {
-						my ($val, $tag, $table, $column) = @_;
-						return tag_data($table, $column, $val) || $val;
-				},
-	'lc' =>		sub {
-					use locale;
-					return lc(shift);
-				},
-	'uc' =>		sub {
-					use locale;
-					return uc(shift);
-				},
-	'date_change' =>		sub {
-					my $val = shift;
-					$val =~ s/\0+//g;
-					return $val 
-						unless $val =~ m:(\d+)[-/]+(\d+)[-/]+(\d+):;
-					my ($yr, $mon, $day);
-
-					if (length($1) == 4) {
-						# MySQL date style 2003-03-20
-						($yr, $mon, $day) = ($1, $2, $3);
-					} else {
-						($yr, $mon, $day) = ($3, $1, $2);
-					}
-					
-					my $time;
-					$val =~ /:(\d+)$/
-						and $time = $1;
-					if(length($yr) < 4) {
-						$yr =~ s/^0//;
-						$yr = $yr < 50 ? $yr + 2000 : $yr + 1900;
-					}
-					$mon =~ s/^0//;
-					$day =~ s/^0//;
-					$val = sprintf("%04d%02d%02d", $yr, $mon, $day);
-					return $val unless $time;
-					$val .= sprintf('%04d', $time);
-					return $val;
-				},
-	'checkbox' =>		sub {
-					my $val = shift;
-					return length($val) ? $val : '';
-				},
-	'compress_space' =>		sub {
-					my $val = shift;
-					$val =~ s/\s+$//g;
-					$val =~ s/^\s+//g;
-					$val =~ s/\s+/ /g;
-					return $val;
-				},
-	'null_to_space' =>		sub {
-					my $val = shift;
-					$val =~ s/\0+/ /g;
-					return $val;
-				},
-	'null_to_comma' =>		sub {
-					my $val = shift;
-					$val =~ s/\0+/,/g;
-					return $val;
-				},
-	'null_to_colons' =>		sub {
-					my $val = shift;
-					$val =~ s/\0+/::/g;
-					return $val;
-				},
-	'space_to_null' =>		sub {
-					my $val = shift;
-					$val =~ s/\s+/\0/g;
-					return $val;
-				},
-	'colons_to_null' =>		sub {
-					my $val = shift;
-					$val =~ s/::/\0/g;
-					return $val;
-				},
-	'last_non_null' =>		sub {
-					my @some = reverse split /\0+/, shift;
-					for(@some) {
-						return $_ if length $_;
-					}
-					return '';
-				},
-	'line2options' =>		sub {
-					my ($value, $tag, $delim) = @_;
-					return $value unless length $value;
-					$value =~ s/\s+$//;
-					$value =~ s/^\s+//;
-					my @opts = split /[\r\n]+/, $value;
-					for(@opts) {
-						s/^\s+//;
-						s/[,\s]+$//;
-						s/,/&#44;/g;
-					}
-					return join ",", @opts;
-				},
-	'options2line' =>		sub {
-					my ($value, $tag, $delim) = @_;
-					return $value unless length $value;
-					$value =~ s/\s+$//;
-					$value =~ s/^\s+//;
-					my @opts = split /\s*,\s*/, $value;
-					for(@opts) {
-						s/&#44;/,/g;
-					}
-					$value = return join "\n", @opts;
-					return $value;
-				},
-	'option_format' =>		sub {
-					my ($value, $tag, $delim) = @_;
-
-					return $value unless $value =~ /\0.*\0/s;
-
-					my $scrubcommas;
-					if(! length($delim) ) {
-						$delim = ',';
-						$scrubcommas = 1;
-					}
-					else {
-						$delim =~ /pipe/i and $delim = '|' 
-						 or
-						$delim =~ /semicolon/i and $delim = ';'  
-						 or
-						$delim =~ /colon/i and $delim = ':'  
-						 or
-						$delim =~ /null/i and $delim = "\0"
-						;
-					}
-
-					my @opts = split /\0/, $value;
-					my @out;
-
-					while(@opts) {
-						my ($v, $l, $d) = splice @opts, 0, 3;
-						$l = length($l) ? "=$l" : '';
-						$l =~ s/,/&#44;/g if $scrubcommas;
-						$d = $d ? '*' : '';
-						next unless length("$v$l");
-						push @out, "$v$l$d";
-					}
-					return join $delim, @out;
-				},
-	'nullselect' =>		sub {
-					my @some = split /\0+/, shift;
-					for(@some) {
-						return $_ if length $_;
-					}
-					return '';
-				},
-	'tabbed' =>		sub {
-						my @items = split /\r?\n/, shift;
-						return join "\t", @items;
-				},
-	'digits_dot' => sub {
-					my $val = shift;
-					$val =~ s/[^\d.]+//g;
-					return $val;
-				},
-	'backslash' => sub {
-					my $val = shift;
-					$val =~ s/\\+//g;
-					return $val;
-				},
-	'crypt' => sub {
-					my $val = shift;
-					return crypt($val, random_string(2));
-				},
-	'html2text' => sub {
-					my $val = shift;
-					$val =~ s|\s*<BR>\s*|\n|gi;
-					$val =~ s|\s*<P>\s*|\n|gi;
-					$val =~ s|\s*</P>\s*||gi;
-					return $val;
-				},
-	'upload' => sub {
-					my ($fn, $vn) = @_;
-					if( tag_value_extended($vn, { test => 'isfile', })) {
-						return tag_value_extended($vn, { file_contents => 1 });
-					}
-					else {
-						return $fn;
-					}
-				},
-	'namecase' => sub {
-					use locale;
-					my $val = shift;
-					$val =~ s/([A-Z]\w+)/\L\u$1/g;
-					return $val;
-				},
-	'name' => sub {
-					my $val = shift;
-					return $val unless $val =~ /,/;
-					my($last, $first) = split /\s*,\s*/, $val, 2;
-					return "$first $last";
-				},
-	'digits' => sub {
-					my $val = shift;
-					$val =~ s/\D+//g;
-					return $val;
-				},
-	'alpha' =>	sub {
-					my $val = shift;
-					$val =~ s/[^A-Za-z]+//g;
-					return $val;
-				},
-	'alphanumeric' =>	sub {
-					my $val = shift;
-					$val =~ s/[^A-Za-z0-9]+//g;
-					return $val;
-				},
-	'word' =>	sub {
-					my $val = shift;
-					$val =~ s/\W+//g;
-					return $val;
-				},
-	'unix' =>	sub {
-					my $val = shift;
-					$val =~ s/\r\n|\r/\n/g;
-					return $val;
-				},
-	'dos' =>	sub {
-					my $val = shift;
-					$val =~ s/\r?\n/\r\n/g;
-					return $val;
-				},
-	'mac' =>	sub {
-					my $val = shift;
-					$val =~ s/\r?\n|\r\n?/\r/g;
-					return $val;
-				},
-	'gate' =>	sub {
-					my ($val, $var) = @_;
-					return '' unless $::Scratch->{$var};
-					return $val;
-				},
-	'no_white' =>	sub {
-					my $val = shift;
-					$val =~ s/\s+//g;
-					return $val;
-				},
-	'strip' =>	sub {
-					my $val = shift;
-					$val =~ s/^\s+//;
-					$val =~ s/\s+$//;
-					return $val;
-				},
-	'sql'		=> sub {
-					my $val = shift;
-					$val =~ s:':'':g; # '
-					return $val;
-				},
-	'textarea_put' => sub {
-					my $val = shift;
-					$val =~ s/\&/\&amp;/g;
-					$val =~ s/\[/&#91;/g;
-					$val =~ s/</&lt;/g;
-					return $val;
-				},
-	'textarea_get' => sub {
-					my $val = shift;
-					$val =~ s/\&amp;/\&/g;
-					return $val;
-				},
-	'text2html' => sub {
-					my $val = shift;
-					$val =~ s!\r?\n\r?\n!<P>!g;
-					$val =~ s!\r\r!<P>!g;
-					$val =~ s!\r?\n!<BR>!g;
-					$val =~ s!\r!<BR>!g;
-					return $val;
-				},
-	'urldecode' => sub {
-					my $val = shift;
-					$val =~ s|\%([a-fA-F0-9][a-fA-F0-9])|chr(hex($1))|eg;
-					return $val;
-				},
-	'urlencode' => sub {
-					my $val = shift;
-					$val =~ s|([^\w:])|sprintf "%%%02x", ord $1|eg;
-					return $val;
-				},
-	'pagefile' => sub {
-					$_[0] =~ s:^[./]+::;
-					return $_[0];
-				},
-	'strftime' => sub {
-					my $time = shift(@_);
-					shift(@_);
-					my $fmt = shift(@_);
-					while(my $add = shift(@_)) {
-						$fmt .= " $add";
-					}
-					if($fmt) {
-						return POSIX::strftime($fmt, localtime($time));
-					}
-					else {
-						return scalar localtime($time);
-					}
-				},
-	'encode_entities' => sub {
-					return HTML::Entities::encode(shift, $ESCAPE_CHARS::std);
-				},
-	'decode_entities' => sub {
-					return HTML::Entities::decode(shift);
-				},
-	encrypt => sub {
-					my ($val, $tag, $key) = @_;
-					return Vend::Order::pgp_encrypt($val, $key);
-				},
-	'yesno' => sub {
-					my $val = shift(@_) ? 'Yes' : 'No';
-					return $val unless $Vend::Cfg->{Locale};
-					return $val unless defined $Vend::Cfg->{Locale}{$val};
-					return $Vend::Cfg->{Locale}{$val};
-				},
-
-	show_null => sub {
-					my $val = shift;
-					$val =~ s/\0/\\0/g;
-					return $val;
-				},
-
-	loc => sub {
-					my $val = shift;
-					return errmsg($val);
-				},
-
-	restrict_html => sub {
-					my $val = shift;
-					shift;
-					my %allowed;
-					$allowed{lc $_} = 1 for @_;
-					$val =~ s{<(/?(\w[-\w]*)[\s>])}
-						     { ($allowed{lc $2} ? '<' : '&lt;') . $1 }ge;
-					return $val;
-				},
-
-	zerofix => sub {
-					$_[0] =~ /^0*(.*)/; return $1;
-				},
-
-	pgbool => sub {
-					my $val = shift;
-					return 'f' if ! defined($val);
-					$val =~ s/\s+//g;
-					return 'f' if $val =~ /^(?:0|f(?:alse)?)?$/i;
-					return 't';
-				},
-
-	pgbooln => sub {
-					my $val = shift;
-					return if ! defined($val);
-					$val =~ s/\s+//g;
-					return 'f' if $val =~ /^(?:0|f(?:alse)?)?$/i;
-					return 't';
-				},
-	);
 
 $Filter{upper} = $Filter{uc};
 $Filter{lower} = $Filter{lc};



1.3       +5 -0      interchange/code/Filter/convert_date.filter


rev 1.3, prev_rev 1.2
Index: convert_date.filter
===================================================================
RCS file: /var/cvs/interchange/code/Filter/convert_date.filter,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- convert_date.filter	22 Feb 2004 19:56:25 -0000	1.2
+++ convert_date.filter	19 Oct 2004 10:03:51 -0000	1.3
@@ -1,3 +1,8 @@
+# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
+# Copyright 1996-2002 Red Hat, Inc.
+# Licensed under the GNU GPL v2. See file LICENSE for details.
+# $Id: convert_date.filter,v 1.3 2004/10/19 10:03:51 docelic Exp $
+
 CodeDef convert_date Filter
 CodeDef convert_date Routine <<EOR
 sub {



1.2       +5 -0      interchange/code/Filter/date2time.filter


rev 1.2, prev_rev 1.1
Index: date2time.filter
===================================================================
RCS file: /var/cvs/interchange/code/Filter/date2time.filter,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- date2time.filter	1 Feb 2002 04:21:46 -0000	1.1
+++ date2time.filter	19 Oct 2004 10:03:51 -0000	1.2
@@ -1,3 +1,8 @@
+# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
+# Copyright 1996-2002 Red Hat, Inc.
+# Licensed under the GNU GPL v2. See file LICENSE for details.
+# $Id: date2time.filter,v 1.2 2004/10/19 10:03:51 docelic Exp $
+
 CodeDef date2time Filter
 CodeDef date2time Routine <<EOR
 sub {



1.2       +5 -0      interchange/code/Filter/encrypt.filter


rev 1.2, prev_rev 1.1
Index: encrypt.filter
===================================================================
RCS file: /var/cvs/interchange/code/Filter/encrypt.filter,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- encrypt.filter	13 Jan 2003 23:16:14 -0000	1.1
+++ encrypt.filter	19 Oct 2004 10:03:51 -0000	1.2
@@ -1,3 +1,8 @@
+# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
+# Copyright 1996-2002 Red Hat, Inc.
+# Licensed under the GNU GPL v2. See file LICENSE for details.
+# $Id: encrypt.filter,v 1.2 2004/10/19 10:03:51 docelic Exp $
+
 CodeDef encrypt Filter
 CodeDef encrypt Routine <<EOR
 sub {



1.2       +5 -0      interchange/code/Filter/lc.filter


rev 1.2, prev_rev 1.1
Index: lc.filter
===================================================================
RCS file: /var/cvs/interchange/code/Filter/lc.filter,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- lc.filter	29 Jan 2002 05:52:37 -0000	1.1
+++ lc.filter	19 Oct 2004 10:03:51 -0000	1.2
@@ -1,3 +1,8 @@
+# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
+# Copyright 1996-2002 Red Hat, Inc.
+# Licensed under the GNU GPL v2. See file LICENSE for details.
+# $Id: lc.filter,v 1.2 2004/10/19 10:03:51 docelic Exp $
+
 CodeDef lc Filter
 CodeDef lc Routine <<EOR
 sub {



1.2       +5 -0      interchange/code/Filter/line.filter


rev 1.2, prev_rev 1.1
Index: line.filter
===================================================================
RCS file: /var/cvs/interchange/code/Filter/line.filter,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- line.filter	7 Mar 2003 12:57:30 -0000	1.1
+++ line.filter	19 Oct 2004 10:03:51 -0000	1.2
@@ -1,3 +1,8 @@
+# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
+# Copyright 1996-2002 Red Hat, Inc.
+# Licensed under the GNU GPL v2. See file LICENSE for details.
+# $Id: line.filter,v 1.2 2004/10/19 10:03:51 docelic Exp $
+
 CodeDef line Filter
 CodeDef line Routine <<EOR
 sub {



1.2       +5 -0      interchange/code/Filter/linkdecode.filter


rev 1.2, prev_rev 1.1
Index: linkdecode.filter
===================================================================
RCS file: /var/cvs/interchange/code/Filter/linkdecode.filter,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linkdecode.filter	13 Jan 2003 23:16:14 -0000	1.1
+++ linkdecode.filter	19 Oct 2004 10:03:51 -0000	1.2
@@ -1,3 +1,8 @@
+# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
+# Copyright 1996-2002 Red Hat, Inc.
+# Licensed under the GNU GPL v2. See file LICENSE for details.
+# $Id: linkdecode.filter,v 1.2 2004/10/19 10:03:51 docelic Exp $
+
 CodeDef linkdecode Filter
 CodeDef linkdecode Routine <<EOR
 sub {



1.2       +5 -0      interchange/code/Filter/md5.filter


rev 1.2, prev_rev 1.1
Index: md5.filter
===================================================================
RCS file: /var/cvs/interchange/code/Filter/md5.filter,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- md5.filter	10 Dec 2003 03:30:56 -0000	1.1
+++ md5.filter	19 Oct 2004 10:03:51 -0000	1.2
@@ -1,3 +1,8 @@
+# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
+# Copyright 1996-2002 Red Hat, Inc.
+# Licensed under the GNU GPL v2. See file LICENSE for details.
+# $Id: md5.filter,v 1.2 2004/10/19 10:03:51 docelic Exp $
+
 CodeDef md5 Filter
 CodeDef md5 Routine <<EOR
 



1.2       +5 -1      interchange/code/Filter/next_sequential.filter


rev 1.2, prev_rev 1.1
Index: next_sequential.filter
===================================================================
RCS file: /var/cvs/interchange/code/Filter/next_sequential.filter,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- next_sequential.filter	14 Oct 2002 21:35:02 -0000	1.1
+++ next_sequential.filter	19 Oct 2004 10:03:51 -0000	1.2
@@ -1,4 +1,8 @@
-## $Id: next_sequential.filter,v 1.1 2002/10/14 21:35:02 mheins Exp $
+# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
+# Copyright 1996-2002 Red Hat, Inc.
+# Licensed under the GNU GPL v2. See file LICENSE for details.
+# $Id: next_sequential.filter,v 1.2 2004/10/19 10:03:51 docelic Exp $
+
 CodeDef next_sequential Filter
 CodeDef next_sequential Routine <<EOR
 sub {



1.3       +6 -0      interchange/code/Filter/qb_safe.filter


rev 1.3, prev_rev 1.2
Index: qb_safe.filter
===================================================================
RCS file: /var/cvs/interchange/code/Filter/qb_safe.filter,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- qb_safe.filter	3 Jul 2003 02:24:07 -0000	1.2
+++ qb_safe.filter	19 Oct 2004 10:03:51 -0000	1.3
@@ -1,6 +1,12 @@
+# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
+# Copyright 1996-2002 Red Hat, Inc.
+# Licensed under the GNU GPL v2. See file LICENSE for details.
+# $Id: qb_safe.filter,v 1.3 2004/10/19 10:03:51 docelic Exp $
+
 # QuickBooks Safe: make data safe for quickbooks
 # QB will crash at the drop of a hat, so don't forget to remove 
 # any unfriendly characters.
+
 CodeDef qb_safe Filter
 CodeDef qb_safe Routine <<EOR
 sub {



1.1                  interchange/code/Filter/alpha.filter


rev 1.1, prev_rev 1.0
Index: alpha.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: alpha.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef alpha Filter
CodeDef alpha Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/[^A-Za-z]+//g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/alphanumeric.filter


rev 1.1, prev_rev 1.0
Index: alphanumeric.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: alphanumeric.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef alphanumeric Filter
CodeDef alphanumeric Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/[^A-Za-z0-9]+//g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/backslash.filter


rev 1.1, prev_rev 1.0
Index: backslash.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: backslash.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef backslash Filter
CodeDef backslash Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/\\+//g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/bold.filter


rev 1.1, prev_rev 1.0
Index: bold.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: bold.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef bold Filter
CodeDef bold Routine <<EOR
sub {
	return '<b>' . shift(@_) . '</b>'; 
}
EOR



1.1                  interchange/code/Filter/calculated.filter


rev 1.1, prev_rev 1.0
Index: calculated.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: calculated.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef calculated Filter
CodeDef calculated Routine <<EOR
sub {
	my ($val, $tag, $table, $column, $key, $indirect) = @_;
	$key = $CGI::values{$indirect}
	if $indirect;
	my $code = tag_data($table, $column, $key);
	$code =~ s/\r/\n/g;
#::logDebug("calculated code=$code");
	$s = $val;
	my $result = $ready_safe->reval($code);
#::logDebug("calculated result='$result'");
	return $result;
}
EOR



1.1                  interchange/code/Filter/cgi.filter


rev 1.1, prev_rev 1.0
Index: cgi.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: cgi.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef cgi Filter
CodeDef cgi Routine <<EOR
sub {
	return $CGI::values{$_[0]};
}
EOR



1.1                  interchange/code/Filter/checkbox.filter


rev 1.1, prev_rev 1.0
Index: checkbox.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: checkbox.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef checkbox Filter
CodeDef checkbox Routine <<EOR
sub {
	my $val = shift;
	return length($val) ? $val : '';
}
EOR



1.1                  interchange/code/Filter/colons_to_null.filter


rev 1.1, prev_rev 1.0
Index: colons_to_null.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: colons_to_null.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef colons_to_null Filter
CodeDef colons_to_null Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/::/\0/g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/commify.filter


rev 1.1, prev_rev 1.0
Index: commify.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: commify.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef commify Filter
CodeDef commify Routine <<EOR
sub {
	my ($val, $tag, $places) = @_;
	$places = 2 unless defined $places;
	$val = sprintf("%.${places}f", $val) if $places;
	return Vend::Util::commify($val);
}
EOR



1.1                  interchange/code/Filter/compress_space.filter


rev 1.1, prev_rev 1.0
Index: compress_space.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: compress_space.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef compress_space Filter
CodeDef compress_space Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/\s+$//g;
	$val =~ s/^\s+//g;
	$val =~ s/\s+/ /g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/crypt.filter


rev 1.1, prev_rev 1.0
Index: crypt.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: crypt.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef crypt Filter
CodeDef crypt Routine <<EOR
sub {
	my $val = shift;
	return crypt($val, random_string(2));
}
EOR



1.1                  interchange/code/Filter/currency.filter


rev 1.1, prev_rev 1.0
Index: currency.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: currency.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef currency Filter
CodeDef currency Routine <<EOR
sub {
	my ($val, $tag, $locale) = @_;
	my $convert = $locale ? 1 : 0;
	return Vend::Util::currency($val, 0, $convert, { locale => $locale });
}
EOR



1.1                  interchange/code/Filter/date_change.filter


rev 1.1, prev_rev 1.0
Index: date_change.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: date_change.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef date_change Filter
CodeDef date_change Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/\0+//g;
	return $val 
		unless $val =~ m:(\d+)[-/]+(\d+)[-/]+(\d+):;
	my ($yr, $mon, $day);

	if (length($1) == 4) {
	# MySQL date style 2003-03-20
		($yr, $mon, $day) = ($1, $2, $3);
	} else {
		($yr, $mon, $day) = ($3, $1, $2);
	}

	my $time;
	$val =~ /:(\d+)$/
		and $time = $1;
	if(length($yr) < 4) {
		$yr =~ s/^0//;
		$yr = $yr < 50 ? $yr + 2000 : $yr + 1900;
	}
	$mon =~ s/^0//;
	$day =~ s/^0//;
	$val = sprintf("%04d%02d%02d", $yr, $mon, $day);
	return $val unless $time;
	$val .= sprintf('%04d', $time);
	return $val;
}
EOR



1.1                  interchange/code/Filter/decode_entities.filter


rev 1.1, prev_rev 1.0
Index: decode_entities.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: decode_entities.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef decode_entities Filter
CodeDef decode_entities Routine <<EOR
sub {
	return HTML::Entities::decode(shift);
}
EOR



1.1                  interchange/code/Filter/digits.filter


rev 1.1, prev_rev 1.0
Index: digits.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: digits.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef digits Filter
CodeDef digits Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/\D+//g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/digits_dot.filter


rev 1.1, prev_rev 1.0
Index: digits_dot.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: digits_dot.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef digits_dot Filter
CodeDef digits_dot Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/[^\d.]+//g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/dos.filter


rev 1.1, prev_rev 1.0
Index: dos.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: dos.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef dos Filter
CodeDef dos Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/\r?\n/\r\n/g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/encode_entities.filter


rev 1.1, prev_rev 1.0
Index: encode_entities.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: encode_entities.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef encode_entities Filter
CodeDef encode_entities Routine <<EOR
sub {
	return HTML::Entities::encode(shift, $ESCAPE_CHARS::std);
}
EOR



1.1                  interchange/code/Filter/filesafe.filter


rev 1.1, prev_rev 1.0
Index: filesafe.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: filesafe.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef filesafe Filter
CodeDef filesafe Routine <<EOR
sub {
	return Vend::Util::escape_chars(shift);
}
EOR



1.1                  interchange/code/Filter/gate.filter


rev 1.1, prev_rev 1.0
Index: gate.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: gate.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef gate Filter
CodeDef gate Routine <<EOR
sub {
	my ($val, $var) = @_;
	return '' unless $::Scratch->{$var};
	return $val;
}
EOR



1.1                  interchange/code/Filter/html2text.filter


rev 1.1, prev_rev 1.0
Index: html2text.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: html2text.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef html2text Filter
CodeDef html2text Routine <<EOR
sub {
	my $val = shift;
	$val =~ s|\s*<BR>\s*|\n|gi;
	$val =~ s|\s*<P>\s*|\n|gi;
	$val =~ s|\s*</P>\s*||gi;
	return $val;
}
EOR



1.1                  interchange/code/Filter/integer.filter


rev 1.1, prev_rev 1.0
Index: integer.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: integer.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef integer Filter
CodeDef integer Routine <<EOR
sub {
	return int(shift);
}
EOR



1.1                  interchange/code/Filter/italics.filter


rev 1.1, prev_rev 1.0
Index: italics.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: italics.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef italics Filter
CodeDef italics Routine <<EOR
sub {
	return '<i>' . shift(@_) . '</i>';
}
EOR



1.1                  interchange/code/Filter/large.filter


rev 1.1, prev_rev 1.0
Index: large.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: large.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef large Filter
CodeDef large Routine <<EOR
sub {
	return '<large>' . shift(@_) . '</large>';
}
EOR



1.1                  interchange/code/Filter/last_non_null.filter


rev 1.1, prev_rev 1.0
Index: last_non_null.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: last_non_null.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef last_non_null Filter
CodeDef last_non_null Routine <<EOR
sub {
	my @some = reverse split /\0+/, shift;
	for(@some) {
		return $_ if length $_;
	}
	return '';
}
EOR



1.1                  interchange/code/Filter/line2options.filter


rev 1.1, prev_rev 1.0
Index: line2options.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: line2options.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef line2options Filter
CodeDef line2options Routine <<EOR
sub {
	my ($value, $tag, $delim) = @_;
	return $value unless length $value;
	$value =~ s/\s+$//;
	$value =~ s/^\s+//;
	my @opts = split /[\r\n]+/, $value;
	for(@opts) {
		s/^\s+//;
		s/[,\s]+$//;
		s/,/&#44;/g;
	}
	return join ",", @opts;
}
EOR



1.1                  interchange/code/Filter/loc.filter


rev 1.1, prev_rev 1.0
Index: loc.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: loc.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef loc Filter
CodeDef loc Routine <<EOR
sub {
	my $val = shift;
	return errmsg($val);
}
EOR



1.1                  interchange/code/Filter/lookup.filter


rev 1.1, prev_rev 1.0
Index: lookup.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: lookup.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef lookup Filter
CodeDef lookup Routine <<EOR
sub {
	my ($val, $tag, $table, $column) = @_;
	return tag_data($table, $column, $val) || $val;
}
EOR



1.1                  interchange/code/Filter/mac.filter


rev 1.1, prev_rev 1.0
Index: mac.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: mac.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef mac Filter
CodeDef mac Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/\r?\n|\r\n?/\r/g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/mailto.filter


rev 1.1, prev_rev 1.0
Index: mailto.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: mailto.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef mailto Filter
CodeDef mailto Routine <<EOR
sub {
	my ($val,$tag, at arg) = @_;
	my $out = qq{<A HREF="mailto:$val">};
	my $anchor = $val;
	if(@arg) {
		$anchor = join " ", @arg;
	}
	$out .= "$anchor</A>";
}
EOR



1.1                  interchange/code/Filter/mime_type.filter


rev 1.1, prev_rev 1.0
Index: mime_type.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: mime_type.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef mime_type Filter
CodeDef mime_type Routine <<EOR
sub {
	return Vend::Util::mime_type(shift);
}
EOR



1.1                  interchange/code/Filter/name.filter


rev 1.1, prev_rev 1.0
Index: name.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: name.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef name Filter
CodeDef name Routine <<EOR
sub {
	my $val = shift;
	return $val unless $val =~ /,/;
	my($last, $first) = split /\s*,\s*/, $val, 2;
	return "$first $last";
}
EOR



1.1                  interchange/code/Filter/namecase.filter


rev 1.1, prev_rev 1.0
Index: namecase.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: namecase.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef namecase Filter
CodeDef namecase Routine <<EOR
sub {
	use locale;
	my $val = shift;
	$val =~ s/([A-Z]\w+)/\L\u$1/g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/no_white.filter


rev 1.1, prev_rev 1.0
Index: no_white.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: no_white.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef no_white Filter
CodeDef no_white Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/\s+//g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/null_to_colons.filter


rev 1.1, prev_rev 1.0
Index: null_to_colons.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: null_to_colons.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef null_to_colons Filter
CodeDef null_to_colons Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/\0+/::/g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/null_to_comma.filter


rev 1.1, prev_rev 1.0
Index: null_to_comma.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: null_to_comma.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef null_to_comma Filter
CodeDef null_to_comma Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/\0+/,/g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/null_to_space.filter


rev 1.1, prev_rev 1.0
Index: null_to_space.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: null_to_space.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef null_to_space Filter
CodeDef null_to_space Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/\0+/ /g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/nullselect.filter


rev 1.1, prev_rev 1.0
Index: nullselect.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: nullselect.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef nullselect Filter
CodeDef nullselect Routine <<EOR
sub {
	my @some = split /\0+/, shift;
	for(@some) {
		return $_ if length $_;
	}
	return '';
}
EOR



1.1                  interchange/code/Filter/option_format.filter


rev 1.1, prev_rev 1.0
Index: option_format.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: option_format.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef option_format Filter
CodeDef option_format Routine <<EOR
sub {
	my ($value, $tag, $delim) = @_;

	return $value unless $value =~ /\0.*\0/s;

	my $scrubcommas;
	if(! length($delim) ) {
		$delim = ',';
		$scrubcommas = 1;
	}
	else {
		$delim =~ /pipe/i and $delim = '|' 
			or
			$delim =~ /semicolon/i and $delim = ';'  
			or
			$delim =~ /colon/i and $delim = ':'  
			or
			$delim =~ /null/i and $delim = "\0"
			;
	}

	my @opts = split /\0/, $value;
	my @out;

	while(@opts) {
		my ($v, $l, $d) = splice @opts, 0, 3;
		$l = length($l) ? "=$l" : '';
		$l =~ s/,/&#44;/g if $scrubcommas;
		$d = $d ? '*' : '';
		next unless length("$v$l");
		push @out, "$v$l$d";
	}
	return join $delim, @out;
}
EOR



1.1                  interchange/code/Filter/options2line.filter


rev 1.1, prev_rev 1.0
Index: options2line.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: options2line.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef options2line Filter
CodeDef options2line Routine <<EOR
sub {
	my ($value, $tag, $delim) = @_;
	return $value unless length $value;
	$value =~ s/\s+$//;
	$value =~ s/^\s+//;
	my @opts = split /\s*,\s*/, $value;
	for(@opts) {
		s/&#44;/,/g;
	}
	$value = return join "\n", @opts;
	return $value;
}
EOR



1.1                  interchange/code/Filter/pagefile.filter


rev 1.1, prev_rev 1.0
Index: pagefile.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: pagefile.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef pagefile Filter
CodeDef pagefile Routine <<EOR
sub {
	$_[0] =~ s:^[./]+::;
	return $_[0];
}
EOR



1.1                  interchange/code/Filter/pgbool.filter


rev 1.1, prev_rev 1.0
Index: pgbool.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: pgbool.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef pgbool Filter
CodeDef pgbool Routine <<EOR
sub {
	my $val = shift;
	return 'f' if ! defined($val);
	$val =~ s/\s+//g;
	return 'f' if $val =~ /^(?:0|f(?:alse)?)?$/i;
	return 't';
}
EOR



1.1                  interchange/code/Filter/pgbooln.filter


rev 1.1, prev_rev 1.0
Index: pgbooln.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: pgbooln.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef pgbooln Filter
CodeDef pgbooln Routine <<EOR
sub {
	my $val = shift;
	return if ! defined($val);
	$val =~ s/\s+//g;
	return 'f' if $val =~ /^(?:0|f(?:alse)?)?$/i;
	return 't';
}
EOR



1.1                  interchange/code/Filter/pre.filter


rev 1.1, prev_rev 1.0
Index: pre.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: pre.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef pre Filter
CodeDef pre Routine <<EOR
sub {
	return '<pre>' . shift(@_) . '</pre>';
}
EOR



1.1                  interchange/code/Filter/restrict_html.filter


rev 1.1, prev_rev 1.0
Index: restrict_html.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: restrict_html.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef restrict_html Filter
CodeDef restrict_html Routine <<EOR
sub {
	my $val = shift;
	shift;
	my %allowed;
	$allowed{lc $_} = 1 for @_;
	$val =~ s{<(/?(\w[-\w]*)[\s>])}{ ($allowed{lc $2} ? '<' : '&lt;') . $1 }ge;
	return $val;
}
EOR



1.1                  interchange/code/Filter/show_null.filter


rev 1.1, prev_rev 1.0
Index: show_null.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: show_null.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef show_null Filter
CodeDef show_null Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/\0/\\0/g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/small.filter


rev 1.1, prev_rev 1.0
Index: small.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: small.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef small Filter
CodeDef small Routine <<EOR
sub {
	return '<small>' . shift(@_) . '</small>';
}
EOR



1.1                  interchange/code/Filter/space_to_null.filter


rev 1.1, prev_rev 1.0
Index: space_to_null.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: space_to_null.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef space_to_null Filter
CodeDef space_to_null Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/\s+/\0/g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/sql.filter


rev 1.1, prev_rev 1.0
Index: sql.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: sql.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef sql Filter
CodeDef sql Routine <<EOR
sub {
	my $val = shift;
	$val =~ s:':'':g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/strftime.filter


rev 1.1, prev_rev 1.0
Index: strftime.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: strftime.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef strftime Filter
CodeDef strftime Routine <<EOR
sub {
	my $time = shift(@_);
	shift(@_);
	my $fmt = shift(@_);
	while(my $add = shift(@_)) {
		$fmt .= " $add";
	}
	if($fmt) {
		return POSIX::strftime($fmt, localtime($time));
	}
	else {
		return scalar localtime($time);
	}
}
EOR



1.1                  interchange/code/Filter/strikeout.filter


rev 1.1, prev_rev 1.0
Index: strikeout.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: strikeout.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef strikeout Filter
CodeDef strikeout Routine <<EOR
sub {
	return '<strike>' . shift(@_) . '</strike>';
}
EOR



1.1                  interchange/code/Filter/strip.filter


rev 1.1, prev_rev 1.0
Index: strip.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: strip.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef strip Filter
CodeDef strip Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/^\s+//;
	$val =~ s/\s+$//;
	return $val;
}
EOR



1.1                  interchange/code/Filter/tabbed.filter


rev 1.1, prev_rev 1.0
Index: tabbed.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: tabbed.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef tabbed Filter
CodeDef tabbed Routine <<EOR
sub {
	my @items = split /\r?\n/, shift;
	return join "\t", @items;
}
EOR



1.1                  interchange/code/Filter/text2html.filter


rev 1.1, prev_rev 1.0
Index: text2html.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: text2html.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef text2html Filter
CodeDef text2html Routine <<EOR
sub {
	my $val = shift;
	$val =~ s!\r?\n\r?\n!<p>!g;
	$val =~ s!\r\r!<p>!g;
	$val =~ s!\r?\n!<br>!g;
	$val =~ s!\r!<br>!g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/textarea_get.filter


rev 1.1, prev_rev 1.0
Index: textarea_get.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: textarea_get.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef textarea_get Filter
CodeDef textarea_get Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/\&amp;/\&/g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/textarea_put.filter


rev 1.1, prev_rev 1.0
Index: textarea_put.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: textarea_put.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef textarea_put Filter
CodeDef textarea_put Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/\&/\&amp;/g;
	$val =~ s/\[/&#91;/g;
	$val =~ s/</&lt;/g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/tt.filter


rev 1.1, prev_rev 1.0
Index: tt.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: tt.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef tt Filter
CodeDef tt Routine <<EOR
sub {
	return '<tt>' . shift(@_) . '</tt>';
}
EOR



1.1                  interchange/code/Filter/uc.filter


rev 1.1, prev_rev 1.0
Index: uc.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: uc.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef uc Filter
CodeDef uc Routine <<EOR
sub {
	use locale;
	return uc(shift);
}
EOR



1.1                  interchange/code/Filter/unix.filter


rev 1.1, prev_rev 1.0
Index: unix.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: unix.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef unix Filter
CodeDef unix Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/\r\n|\r/\n/g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/upload.filter


rev 1.1, prev_rev 1.0
Index: upload.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: upload.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef upload Filter
CodeDef upload Routine <<EOR
sub {
	my ($fn, $vn) = @_;
	if( tag_value_extended($vn, { test => 'isfile', })) {
		return tag_value_extended($vn, { file_contents => 1 });
	}
	else {
		return $fn;
	}
}
EOR



1.1                  interchange/code/Filter/urldecode.filter


rev 1.1, prev_rev 1.0
Index: urldecode.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: urldecode.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef urldecode Filter
CodeDef urldecode Routine <<EOR
sub {
	my $val = shift;
	$val =~ s|\%([a-fA-F0-9][a-fA-F0-9])|chr(hex($1))|eg;
	return $val;
}
EOR



1.1                  interchange/code/Filter/urlencode.filter


rev 1.1, prev_rev 1.0
Index: urlencode.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: urlencode.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef urlencode Filter
CodeDef urlencode Routine <<EOR
sub {
	my $val = shift;
	$val =~ s|([^\w:])|sprintf "%%%02x", ord $1|eg;
	return $val;
}
EOR



1.1                  interchange/code/Filter/value.filter


rev 1.1, prev_rev 1.0
Index: value.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: value.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef value Filter
CodeDef value Routine <<EOR
sub {
	return $::Values->{$_[0]};
}
EOR



1.1                  interchange/code/Filter/word.filter


rev 1.1, prev_rev 1.0
Index: word.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: word.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef word Filter
CodeDef word Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/\W+//g;
	return $val;
}
EOR



1.1                  interchange/code/Filter/yesno.filter


rev 1.1, prev_rev 1.0
Index: yesno.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: yesno.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef yesno Filter
CodeDef yesno Routine <<EOR
sub {
	my $val = shift(@_) ? 'Yes' : 'No';
	return $val unless $Vend::Cfg->{Locale};
	return $val unless defined $Vend::Cfg->{Locale}{$val};
	return $Vend::Cfg->{Locale}{$val};
}
EOR



1.1                  interchange/code/Filter/zerofix.filter


rev 1.1, prev_rev 1.0
Index: zerofix.filter
===================================================================
# Copyright 2002-2004 Interchange Development Group (http://www.icdevgroup.org/)
# Copyright 1996-2002 Red Hat, Inc.
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: zerofix.filter,v 1.1 2004/10/19 10:03:51 docelic Exp $

CodeDef zerofix Filter
CodeDef zerofix Routine <<EOR
sub {
	$_[0] =~ /^0*(.*)/; return $1;
}
EOR








More information about the interchange-cvs mailing list