[docs] xmldocs - docelic modified 27 files

docs at icdevgroup.org docs at icdevgroup.org
Fri Dec 16 08:24:46 EST 2005


User:      docelic
Date:      2005-12-16 13:24:45 GMT
Modified:  .        Makefile
Modified:  bin      coup refs-autogen stattree
Modified:  glossary profile
Modified:  refs     decode_entities.filter urldecode.filter
Added:     refs     checkbox.filter filter_select.filter
Added:              line2options.filter linkdecode.filter loc.filter
Added:              mime_type.filter null_to_colons.filter
Added:              null_to_comma.filter null_to_space.filter
Added:              nullselect.filter oneline.filter
Added:              options2line.filter pgbool.filter pgbooln.filter
Added:              restrict_html.filter roman.filter
Added:              space_to_null.filter strftime.filter
Added:              textarea_get.filter textarea_put.filter
Log:
- Makefile:
 - bump XMLDOCS_CUR_DEVEL version to 5.3.3
 - add bin/stattree as dependency for cache target. (This was natural to do,
   but I kept it disabled in times where statree was often modified in a
   compatible way so no cache regeneration was needed).
 - remove out of date todo notes

- bin/coup:
 - make it update CVS recursively (-d)

- bin/refs-autogen:
 - add "ordercheck" hash key in preamble list (was causing perl warnings)
 - small spell fix
 - REPLACE ctxpre and ctxpost hash keys with names ctx_p and ctx_n!
   Basically, I had used both so it was the cause of inconsistencies. I'll
   have to see if this distinction was in fact needed and I was aware of it
   when I wrote the code.

- bin/stattree:
 - Make WHATSNEW without version number recognized as release helpfile
 - Added some comments as I went over the source
 - Same as in bin/refs-autogen, s/ctxpre/ctx_p/g, s/ctxpost/ctx_n/g.

- glossary/profile: added part to properly integrate into docs later

- refs/*: A number of filters documented. We now have all filters documented
  except maybe 5.

Revision  Changes    Path
1.81      +3 -10     xmldocs/Makefile


rev 1.81, prev_rev 1.80
Index: Makefile
===================================================================
RCS file: /var/cvs/xmldocs/Makefile,v
retrieving revision 1.80
retrieving revision 1.81
diff -u -r1.80 -r1.81
--- Makefile	14 Dec 2005 23:10:59 -0000	1.80
+++ Makefile	16 Dec 2005 13:24:43 -0000	1.81
@@ -7,7 +7,7 @@
 #
 
 # Those two need to be adjusted with time
-export XMLDOCS_CUR_DEVEL = 5.3.2
+export XMLDOCS_CUR_DEVEL = 5.3.3
 IC_VERSIONS = 4.6.0 4.8.0 5.0.0 5.2.0 cvs-head
 
 #############################################################
@@ -48,7 +48,7 @@
 
 #############################################################
 # Complete build
-all: skel cache refxmls                                        \
+all: skel cache refxmls                                            \
      olinkdbs-nc olinkdbs-c                                        \
 		 glossary symbols guides howtos
 
@@ -233,7 +233,7 @@
 #############################################################
 # Cache files
 cache caches: $(foreach icver,$(IC_VERSIONS),cache/$(icver)/.cache.bin) $T
-cache/%/.cache.bin: sources/%
+cache/%/.cache.bin: sources/% bin/stattree
 	echo "C     $@"
 	bin/stattree $<
 
@@ -284,13 +284,6 @@
 #	make $(patsubst refs/%.xml,$(LTMPDIR)/%-c.db,$(wildcard refs/*.xml))
 #	make $(patsubst refs/%.xml,$(LTMPDIR)/%-nc.db,$(wildcard refs/*.xml))
 #	touch $(LTMPDIR)/olinkdbs
-#
-#	TODO:
-#	- make cache
-#	- make sources <-- sources as phony, sources-dir creates source/
-#	- s/U/C/ when files are overriden unconditionally
-#	- why make $O/iccattut.html goes some things twice
-#	- make guides/refs/howtos doesn't see proper deps
 #
 
 # Not needed right now



1.5       +2 -2      xmldocs/bin/coup


rev 1.5, prev_rev 1.4
Index: coup
===================================================================
RCS file: /var/cvs/xmldocs/bin/coup,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- coup	14 Dec 2005 23:10:59 -0000	1.4
+++ coup	16 Dec 2005 13:24:44 -0000	1.5
@@ -34,8 +34,8 @@
 	if ( $update ) {
 		chdir $_;
 		print STDERR "CUP   $rev\n";
-		DEBUG and print "DBG $ENV{PWD}: cvs -z9 update >& ../../tmp/cup.$rev\n";
-		system("cvs -z9 update >& ../../tmp/cup.$rev");
+		DEBUG and print "DBG $ENV{PWD}: cvs -z9 update -d >& ../../tmp/cup.$rev\n";
+		system("cvs -z9 update -d >& ../../tmp/cup.$rev");
 	}
 }
 else { # Need to perform checkout



1.101     +5 -4      xmldocs/bin/refs-autogen


rev 1.101, prev_rev 1.100
Index: refs-autogen
===================================================================
RCS file: /var/cvs/xmldocs/bin/refs-autogen,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -r1.100 -r1.101
--- refs-autogen	26 Nov 2005 13:32:07 -0000	1.100
+++ refs-autogen	16 Dec 2005 13:24:44 -0000	1.101
@@ -168,6 +168,7 @@
 	"please see the &glos-filter; glossary entry.",
 	var => "For a complete introduction to &IC; variables, " .
 	"please see the &glos-variable; glossary entry.",
+	ordercheck => "",
 );
 
 my @paths = @ARGV; # Versions for which documentation build is requested
@@ -198,7 +199,7 @@
 	$dumppath .= "/.cache.bin";    # "5.2.0/.cache.bin"
 
 	# Load %hash with the cache for particular version (replaces previous one).
-	# (which is OK since the data was extraced and we need previous cache
+	# (which is OK since the data was extracted and we need previous cache
 	# no more).
 	loaddb( "$cachedir/$dumppath" );
 
@@ -464,9 +465,9 @@
 
 					if ( $gkey !~ /(tag|filter)$/ ) {
 						# WE SHOW ONLY PART OF CONTEXT FOR THOSE
-						$$ctx{ctxpre} ||= 0; $$ctx{ctxpost} ||= 0; # *confs don't have it
-						$cstart = $$ctx{lnum}-$$ctx{ctxpre};
-						$cend = $cstart+$$ctx{lnum}+$$ctx{ctxpost};
+						$$ctx{ctx_p} ||= 0; $$ctx{ctx_n} ||= 0; # *confs don't have it
+						$cstart = $$ctx{lnum}-$$ctx{ctx_p};
+						$cend = $cstart+$$ctx{lnum}+$$ctx{ctx_n};
 
 					} else {
 						# WE SHOW ALL FOR THOSE



1.49      +56 -39    xmldocs/bin/stattree


rev 1.49, prev_rev 1.48
Index: stattree
===================================================================
RCS file: /var/cvs/xmldocs/bin/stattree,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- stattree	15 Oct 2005 12:24:48 -0000	1.48
+++ stattree	16 Dec 2005 13:24:44 -0000	1.49
@@ -51,7 +51,7 @@
 my %ascii_types = (
 	database => [qw|\.(..)?sql \.ora \..?dbm \.notes \.csv
 		/products/\S+\.txt \.asc|],
-	release_helpfile => [qw/^WHATSNEW-\d+\.\d+ README(\..+)? TODO
+	release_helpfile => [qw/^WHATSNEW(-\d+\.\d+)? README(\..+)? TODO
 		^LICENSE ^MANIFEST(\.skip)? ^UPGRADE \.cvsignore \.append/],
 	build_helpfile => [qw/configure ^debian.* ^SPECS.*/],
 	catalog_helpfile => [qw/\.access \.log \.error \.(auto)?number \.empty/],
@@ -79,7 +79,7 @@
 
 # A general overview: how many different contents do we have
 # This part of the statistic ( $hash{total} ) should be processed by
-# bin/mkreport once.
+# bin/mkreport once in the future. Well, that future is near I suppose.
 my $binary_types;
 my $ascii_types;
 for ( keys %binary_types ) { $binary_types += scalar @{ $binary_types{$_} } }
@@ -96,8 +96,8 @@
 
 @ARGV == 1 or die "Usage: $0 path[/] \n";
 
-# $path is the directory to process, $dumppath is relocated name, say
-# sources/cvs-head becomes cache/cvs-head/.cache.bin
+# $path is the directory to process, $dumppath is relocated filename of the
+# Storable dump, say sources/cvs-head becomes cache/cvs-head/.cache.bin
 my $path = shift;
 ( my $dumppath = $path ) =~ s#.+?/##;
 my $dumpdir = $dumppath; # Directory to dump to, without file name
@@ -135,8 +135,12 @@
 }, ".");
 
 
-# Copy MANIFEST to "cache":
-
+# Copy MANIFEST to "cache". Note that we copy to tmp/, but we refer
+# to that file later in other scripts so it must be there. In fact, we
+# use this in bin/refs-autogen to generate entities for pointing to files
+# in CVS. Like, if you say &cvsfile4.8-README;, it will point to 
+# icdevgroup.org/cgi-bin/cvsweb/interchange/README?TAG_REL=4.8 or something
+# like that...
 `cp MANIFEST "$cpath/tmp/$i{ver}.MANIFEST"`;
 print "GEN: tmp/$i{ver}.MANIFEST\n";
 
@@ -146,7 +150,8 @@
 # Dump
 dumpdb( "$cachedir/$dumppath" );
 
-# Save human-readable %hash ?
+# Save human-readable %hash ? Great for catch-the-problem and see if
+# everything looks halfway healthy.
 if ( $verbose ) {
 	#print STDERR Dumper \%hash;
 	open OUT, "> tmp/$i{ver}.hash" or die "Can't open tmp/$i{ver}.hash ($!)\n";
@@ -211,7 +216,8 @@
 			}
 		}
 	}
-	# Unknown // pay more attention to this, this should rarely happen,
+	# If we reach here, the file is unknown.
+	# Pay more attention to this, this should rarely happen, because
 	# even if we're not interested in some files, they *should* be matched
 	# in %ascii_types/%binary_types above to provide accurate statistics.
 	print STDERR "$file UNKNOWN\n" if $verbose;
@@ -242,7 +248,8 @@
 	return if $file =~ m#^(eg|extra|SPECS|debian|scripts|extensions)/#;
 
 
-	# Open text file, parse contents
+	# Here, we know it's a file, and a text file in fact
+	# So open the file and parse contents
 	open IN, "< $file" or die "Can't open $file ($!)\n";
 	my @filedata = <IN>;
 	unshift @filedata, ""; # Match index numbers with line numbers # MINUS
@@ -307,7 +314,7 @@
 			if ( $c{line} =~ /^\s*#/ ) {         # commented line
 				$hash{tree}{$c{file}}{comments}++ ;
 				$hash{total}{perl_comments}++;
-				# PLANNED check if the comment contains ::log[A-Z]\w+
+				# PLANNED TODO check if the comment contains ::log[A-Z]\w+
 				# to discover calls to logGlobal/logDebug/logError.
 				# I don't plan this anymore since wasn't there some talk
 				# on replacing those hack routines with some formal logging?
@@ -340,9 +347,9 @@
 
 				line_findFunctionName(\%c); # See if a function begins on that line
 
-				line_findPragmas(\%c);
-				line_findGlobVars(\%c);
-				line_findCatVars(\%c);
+				line_findPragmas(\%c); # See if there's a pragma on the line
+				line_findGlobVars(\%c); # See if there's a global var on the line
+				line_findCatVars(\%c); # You get the point ....
 
 			} else {
 				die "IMPOSSIBLE case in $file:$c{file}:$c{lnum} -- $c{line}\n";
@@ -351,7 +358,8 @@
 		##########################################################
 		# Found a tag
 		} elsif ( $c{fsubtype} =~ /^(user|ui|system)tag$/ )  {
-			#$hash{total}{$fsubtype . "s"}++;
+			#$hash{total}{$fsubtype . "s"}++; # Done below now. Had to do this
+			# to support multiple tag definitions within the same file.
 
 			# Skip this simple sanity check for 4.6.0 - those files do not
 			# have .(core)?tag ending.
@@ -381,18 +389,21 @@
 				# dash-insensitive anyway).
 				my $tn = shift @lis;
 
+				# Extract tagCanon field, it's just the next field
 				my $tagopt = lc(shift @lis);
-				# Check if there's a sub defined for this $tagopt (if it is, it
-				# would be above in %tagCanon hash).
+
+				# Check if there's a sub defined for this tagCanon (if it is, it
+				# would be defined at the top in %tagCanon hash). If there really
+				# is, call that trigger function.
 				$tagCanon{lc $tagopt} and &{ $tagCanon{lc $tagopt} }(\%c);
 				
 				next if $tagopt =~ /^documentation$/; # Docs inside this section
 				# are ignored by a "side-effect": namely, all lines not matching
-				# /^UserTag/ are ignored...
+				# /^UserTag/ are ignored, as you see at the beginning of for() loop...
 
 
 				#
-				# Now follows a SWITCH series, based on value of $tagopt.
+				# Now follows a SWITCH series, based on value of $tagopt (tagCanon).
 
 				# See if it's a routine and parse routine lines as usual perl lines
 				if ( $tagopt =~ /^routine$/ and "@lis" =~ /\s*<<(\S+)\s*$/i ) {
@@ -404,6 +415,8 @@
 						$c{line} = $_t;
 						$c{lnum} = $lnum2;
 
+						# TODO move those in a discover_everything() wrapper, since we
+						# call it from multiple places
 						line_findPragmas(\%c, {group =>$c{fsubtype}, name=>$tn});
 						# For example, this should find PGP_HOME
 						line_findGlobVars(\%c, {group => $c{fsubtype}, name=>$tn});
@@ -415,7 +428,7 @@
 				} elsif ( $tagopt =~ /^maproutine$/ ) {
 
 					@lis == 1 or die "$tn MapRoutines, but argc != 1 ?\n";
-					next if "@lis" =~ /^::/; # TODO
+					next if "@lis" =~ /^::/;
 					# TODO : Functions don't end up having proper Line: x-y in source
 					# contexts but have Lines: as if the whole file was shown.
 					file_extractSub($tn, "@lis", \%c, {group => $c{fsubtype},name=>$tn});
@@ -430,7 +443,7 @@
 				# New tag name we didn't see yet
 				# (either first run or another tag definition in the same file).
 				# We'll record all of them in @tags, then create appropriate records
-				# for each. Body will be shared, this just ensures that they are
+				# for each. File body will be shared, this just ensures that they are
 				# recognized under different names (that no tags 'slip through' as
 				# being undetected if they disguise themselves inside a "host" file).
 				{ no warnings;
@@ -446,8 +459,8 @@
 					%c,
 					file => "$i{ver}/$c{file}",
 					lnum => scalar @filedata,
-					ctxpre => $ctx_p,
-					ctxpost => $ctx_n,
+					ctx_p => $ctx_p,
+					ctx_n => $ctx_n,
 					ctxs => 1,
 					ctxe => scalar @filedata,
 					ctx => [ format_ctx(@filedata) ]
@@ -465,8 +478,8 @@
 				if ( $resolver_path{$c{fsubtype}}{$tagname} ) {
 					while (my $spath=shift @{ $resolver_path{$c{fsubtype}}{$tagname}}){
 						push @{ $hash{symbols}{$c{fsubtype}}{$tagname} }, {
-							ctxpre => 0,
-							ctxpost => 0,
+							ctx_p => 0,
+							ctx_n => 0,
 							%$spath,
 						};
 					}
@@ -484,8 +497,8 @@
 				%c,
 				file => "$i{ver}/$c{file}",
 				lnum => scalar @filedata,
-				ctxpre => $ctx_p,
-				ctxpost => $ctx_n,
+				ctx_p => $ctx_p,
+				ctx_n => $ctx_n,
 				ctxs => 1,
 				ctxe => scalar @filedata,
 				ctx => [ format_ctx(@filedata) ]
@@ -504,8 +517,8 @@
 				%c,
 				file => "$i{ver}/$c{file}",
 				lnum => scalar @filedata,
-				ctxpre => $ctx_p,
-				ctxpost => $ctx_n,
+				ctx_p => $ctx_p,
+				ctx_n => $ctx_n,
 				ctxs => 1,
 				ctxe => scalar @filedata,
 				ctx => [ format_ctx(@filedata) ]
@@ -559,7 +572,11 @@
 	}
 }
 
-# Format the context lines before saving to the db
+# Format the context lines before saving to the db.
+# There's been some discussion around this. I still think that, since
+# context reports in xmldocs are NOT verbatim copies of the source,
+# they should be adjusted for display as we do here. Anyway, with time
+# we'll see what's better and I can adjust, no probs.
 sub format_ctx {
 	for $_ ( @_ ) { s/\t/  /g; chomp };
 
@@ -622,8 +639,8 @@
 		lnum => $c{lnum},
 		func => ${$c{gfunc}}[0],
 		funclnum => ${$c{gfunc}}[1],
-		ctxpre => $c{ctx_p},
-		ctxpost => $c{ctx_n},
+		ctx_p => $c{ctx_p},
+		ctx_n => $c{ctx_n},
 		ctxs => $c{lnum} - $c{ctx_p},
 		ctxe => $c{lnum} + $c{ctx_n},
 		ctx => [format_ctx(@{$c{filedata}}[$c{lnum}-$c{ctx_p}..$c{lnum}+$c{ctx_n}])]
@@ -668,8 +685,8 @@
 			lnum => $c{lnum},
 			func => ${$c{gfunc}}[0],
 			funclnum => ${$c{gfunc}}[1],
-			ctxpre => $c{ctx_p},
-			ctxpost => $c{ctx_n},
+			ctx_p => $ctx_p,
+			ctx_n => $ctx_n,
 			ctxs => $c{lnum} - $c{ctx_p},
 			ctxe => $c{lnum} + $c{ctx_n},
 			ctx => [format_ctx(@{$c{filedata}}[$c{lnum}-$c{ctx_p}..$c{lnum}+$c{ctx_n}])]
@@ -710,8 +727,8 @@
 			lnum => $c{lnum},
 			func => ${$c{gfunc}}[0],
 			funclnum => ${$c{gfunc}}[1],
-			ctxpre => $c{ctx_p},
-			ctxpost => $c{ctx_n},
+			ctx_p => $c{ctx_p},
+			ctx_n => $c{ctx_n},
 			ctxs => $c{lnum} - $c{ctx_p},
 			ctxe => $c{lnum} + $c{ctx_n},
 			ctx => [format_ctx(@{$c{filedata}}[$c{lnum}-$c{ctx_p}..$c{lnum}+$c{ctx_n}])]
@@ -859,8 +876,8 @@
 					   $resolver_path{catconf}{$1}->[0]->{ctx}->[0]))) {
 				while (my $spath=shift @{ $resolver_path{globconf}{$1}}){
 					push @{ $hash{symbols}{globconf}{$1} }, {
-						ctxpre => 0,
-						ctxpost => 0,
+						ctx_p => 0,
+						ctx_n => 0,
 						%$spath,
 				};
 			}
@@ -880,8 +897,8 @@
 		if ( $resolver_path{catconf}{$1} ) {
 			while (my $spath=shift @{ $resolver_path{catconf}{$1}}){
 				push @{ $hash{symbols}{catconf}{$1} }, {
-					ctxpre => 0,
-					ctxpost => 0,
+					ctx_p => 0,
+					ctx_n => 0,
 					%$spath,
 				};
 			}



1.6       +25 -1     xmldocs/glossary/profile


rev 1.6, prev_rev 1.5
Index: profile
===================================================================
RCS file: /var/cvs/xmldocs/glossary/profile,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- profile	19 Nov 2005 22:37:41 -0000	1.5
+++ profile	16 Dec 2005 13:24:44 -0000	1.6
@@ -171,6 +171,30 @@
 
 <!-- TODO 
  Multiple profiles can reside in the same file, if separated by C<__END__> tokens, which must be on a line by themselves.
--->
 
+!block example
+ __NAME__ dict_search
+ mv_search_file=dict.product
+ mv_return_fields=1
+ [if value fast_search]
+   mv_dict_limit=-1
+   mv_last=1
+ [/if]
+ __END__
+!endblock
+
+
+The C<__NAME__> is the value to be specified in the C<mv_profile> variable on the search form, as in
+
+!block example
+ <INPUT TYPE=hidden NAME=mv_profile VALUE="dict_search">
+ !endblock
+
+ or with mp=profile in the one-click search.
+
+ !block example
+  [page scan se=Renaissance/mp=dict_search]Renaissance Art</a>
+	!endblock
+
+-->
 



1.2       +2 -2      xmldocs/refs/decode_entities.filter


rev 1.2, prev_rev 1.1
Index: decode_entities.filter
===================================================================
RCS file: /var/cvs/xmldocs/refs/decode_entities.filter,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- decode_entities.filter	29 May 2005 15:01:39 -0000	1.1
+++ decode_entities.filter	16 Dec 2005 13:24:44 -0000	1.2
@@ -1,9 +1,9 @@
 __NAME__ purpose
-decode encoded HTML characters back to their normal representation
+decode encoded HTML characters back to their unencoded representation
 __END__
 
 __NAME__ description
-The filter decodes encoded &glos-HTML; characters back to their normal 
+The filter decodes encoded &glos-HTML; characters back to their unencoded 
 representation.
 __END__
 



1.2       +2 -2      xmldocs/refs/urldecode.filter


rev 1.2, prev_rev 1.1
Index: urldecode.filter
===================================================================
RCS file: /var/cvs/xmldocs/refs/urldecode.filter,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- urldecode.filter	22 Dec 2004 22:58:12 -0000	1.1
+++ urldecode.filter	16 Dec 2005 13:24:44 -0000	1.2
@@ -1,9 +1,9 @@
 __NAME__ purpose
-replace encoded (hex) characters with their normal representation
+replace encoded (hex) characters with their unencoded representation
 __END__
 
 __NAME__ description
-The filter replaces encoded (hex) characters with their normal 
+The filter replaces encoded (hex) characters with their unencoded 
 representation.
 __END__
 



1.1                  xmldocs/refs/checkbox.filter


rev 1.1, prev_rev 1.0
Index: checkbox.filter
===================================================================
__NAME__ purpose
return user-supplied value if its length is 1 or more, an empty string otherwise
__END__

__NAME__ description
The filter checks for the length of input. In case the input contains one or
more characters (a &glos-true; number, in fact), it returns the input itself.
If the length is zero, an empty string is returned.
</para><para>
The filter is suitable for retrieving values out of &glos-HTML; checkboxes.
__END__





1.1                  xmldocs/refs/filter_select.filter


rev 1.1, prev_rev 1.0
Index: filter_select.filter
===================================================================
__NAME__ purpose
automatically select filter based on HTML widget type
__END__

__NAME__ description
The filter identifies the widget type and returns the name of the 
corresponding suitable filter for it.
__END__

__NAME__ notes
Keep in mind that you <emphasis role='bold'>can</emphasis> specify 
&filter-filter_select; along with your custom filters in the same call.
__END__

TODO: clarify notes, show example



1.1                  xmldocs/refs/line2options.filter


rev 1.1, prev_rev 1.0
Index: line2options.filter
===================================================================
__NAME__ purpose
replace newlines in input with commas
__END__

__NAME__ description
The filter replaces newlines in input (any combination of 
<literal>\r</literal> and <literal>\n</literal>) with commas.
It also takes care of removing trailing whitespace along the way.
__END__

__NAME__ online: Filter example
<programlisting>
[filter line2options]
one
two
three
[/filter]
</programlisting>
__END__



1.1                  xmldocs/refs/linkdecode.filter


rev 1.1, prev_rev 1.0
Index: linkdecode.filter
===================================================================
__NAME__ purpose
decode hex-encoded entities found within URLs
__END__

__NAME__ description
The filter decodes hex-encoded entities found within URLs.
</para><para>
The filter is explicitly called <literal>linkdecode</literal> because it
only operates on <literal>&lt;form action=&gt;</literal>, 
<literal>href=</literal> and <literal>src=</literal> contents.
Therefore, it is likely to be useful only when passed lines containing
&glos-HTML; URLs or source specifiers (such as &lt;a&gt; or &lt;img&gt; tags).
__END__

__NAME__ online: Filter example
<programlisting>
[filter linkdecode][/filter]
</programlisting>
__END__
TODO EXAMPLE!



1.1                  xmldocs/refs/loc.filter


rev 1.1, prev_rev 1.0
Index: loc.filter
===================================================================
__NAME__ purpose
localize provided input
__END__

__NAME__ description
The filter uses Interchange &glos-locale; features to localize 
received input text.
__END__

__NAME__ online: Filter example
<programlisting>
[filter loc.fr_FR]January[/filter]
</programlisting>
__END__
TODO Make sure it says Janvier. fr locale



1.1                  xmldocs/refs/mime_type.filter


rev 1.1, prev_rev 1.0
Index: mime_type.filter
===================================================================
__NAME__ purpose
print file MIME type, based on file extension
__END__

__NAME__ description
The filter takes a filename as input, determines file extension and
returns the appropriate &glos-MIME; type for it.
__END__

__NAME__ online: Filter example
<programlisting>
[filter mime_type]image.jpg[/filter]
</programlisting>
__END__



1.1                  xmldocs/refs/null_to_colons.filter


rev 1.1, prev_rev 1.0
Index: null_to_colons.filter
===================================================================
__NAME__ purpose
replace \0 (null) characters with double colon "::"
__END__


__NAME__ see also
colons_to_null
__END__


__NAME__ description
The filter replaces <literal>\0</literal> (null) characters
with a double colon (<literal>::</literal>).
__END__


__NAME__ notes
For more information on &PERL; Regular Expressions, pattern matching and
character classes, see
<citerefentry><refentrytitle>perlre</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
__END__




1.1                  xmldocs/refs/null_to_comma.filter


rev 1.1, prev_rev 1.0
Index: null_to_comma.filter
===================================================================
__NAME__ purpose
replace \0 (null) characters with coma ","
__END__


__NAME__ see also
null_to_colons,null_to_space
__END__


__NAME__ description
The filter replaces <literal>\0</literal> (null) characters
with a comma (<literal>,</literal>).
__END__


__NAME__ notes
For more information on &PERL; Regular Expressions, pattern matching and
character classes, see
<citerefentry><refentrytitle>perlre</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
__END__




1.1                  xmldocs/refs/null_to_space.filter


rev 1.1, prev_rev 1.0
Index: null_to_space.filter
===================================================================
__NAME__ purpose
replace \0 (null) characters with space " "
__END__


__NAME__ see also
null_to_colons,null_to_space
__END__


__NAME__ description
The filter replaces <literal>\0</literal> (null) characters
with a space ("<literal> </literal>").
__END__


__NAME__ notes
For more information on &PERL; Regular Expressions, pattern matching and
character classes, see
<citerefentry><refentrytitle>perlre</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
__END__




1.1                  xmldocs/refs/nullselect.filter


rev 1.1, prev_rev 1.0
Index: nullselect.filter
===================================================================
__NAME__ purpose
split input on \0 (null) characters and return first non-empty string
__END__


__NAME__ see also
checkbox
__END__


__NAME__ description
The filter splits input on <literal>\0</literal> (null) characters
and returns the first non-empty string found.
</para><para>
The filter is suitable for retrieving values out of &glos-HTML; Combo
boxes.
__END__


__NAME__ notes
For more information on &PERL; Regular Expressions, pattern matching and
character classes, see
<citerefentry><refentrytitle>perlre</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
__END__




1.1                  xmldocs/refs/oneline.filter


rev 1.1, prev_rev 1.0
Index: oneline.filter
===================================================================
__NAME__ purpose
delete everything after first null or newline character, effectively "onelining" the input
__END__


__NAME__ see also
__END__


__NAME__ description
The filter deletes everything after the first null (<literal>\0</literal>)
or newline (<literal>\r</literal> or <literal>\n</literal>) character.
Effectively, it only preserves and returns the first line of input.
__END__


__NAME__ notes
For more information on &PERL; Regular Expressions, pattern matching and
character classes, see
<citerefentry><refentrytitle>perlre</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
__END__

__NAME__ online: Filter example
<programlisting>
[filter oneline]
Have no fear,
for the first line is dear!
[/filter]
</programlisting>
__END__



1.1                  xmldocs/refs/options2line.filter


rev 1.1, prev_rev 1.0
Index: options2line.filter
===================================================================
__NAME__ purpose
replace commas in input with newlines
__END__

__NAME__ see also
line2options
__END__

__NAME__ description
The filter replaces commas in input with newlines (<literal>\n</literal>).
It also takes care of removing trailing whitespace along the way.
__END__

__NAME__ online: Filter example
<programlisting>
[filter options2line]one,two,three[/filter]
</programlisting>
__END__



1.1                  xmldocs/refs/pgbool.filter


rev 1.1, prev_rev 1.0
Index: pgbool.filter
===================================================================
__NAME__ purpose
return "f" (false) or "t" (true), depending on input data
__END__


__NAME__ see also
pgbooln
__END__


__NAME__ description
The filter returns "<literal>f</literal>" (false) if the input is
undefined, <literal>0</literal>, <literal>f</literal> or 
<literal>false</literal> (in a case-insensitive manner).
If the said are not met, the filter returns "<literal>t</literal>"
(true).
__END__


__NAME__ notes
For more information on &PERL; Regular Expressions, pattern matching and
character classes, see
<citerefentry><refentrytitle>perlre</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
__END__




1.1                  xmldocs/refs/pgbooln.filter


rev 1.1, prev_rev 1.0
Index: pgbooln.filter
===================================================================
__NAME__ purpose
return undef (NULL), "f" (false) or "t" (true), depending on input data
__END__


__NAME__ see also
pgbool
__END__


__NAME__ description
The filter returns undefined value (NULL) if the input is
undefined. It returns "<literal>f</literal>" (false) if the input is
<literal>0</literal>, <literal>f</literal> or 
<literal>false</literal> (in a case-insensitive manner).
If the said are not met, the filter returns "<literal>t</literal>"
(true).
__END__


__NAME__ notes
For more information on &PERL; Regular Expressions, pattern matching and
character classes, see
<citerefentry><refentrytitle>perlre</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
__END__




1.1                  xmldocs/refs/restrict_html.filter


rev 1.1, prev_rev 1.0
Index: restrict_html.filter
===================================================================
__NAME__ purpose
filter out all but the restricted set of allowed HTML tags in input
__END__


__NAME__ see also
restrict
__END__


__NAME__ description
The filter restricts the set of HTML tags that can appear in the input.
Tags not found among the allowed ones are filtered out.
__END__


__NAME__ notes
For more information on &PERL; Regular Expressions, pattern matching and
character classes, see
<citerefentry><refentrytitle>perlre</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
__END__

__NAME__ online: Filter example
<programlisting><![CDATA[
[filter restrict_html.p.br.ul.li.b]
<ul>
<li> Item lists are allowed.
</ul>
<p>
As well as paragraphs and<br>
newlines.
</p>
Links, such as <a href="http://www.icdevgroup.org">ICDEVGROUP</a> are
<b>not</b> allowed.
[/filter]
]]></programlisting>
__END__



1.1                  xmldocs/refs/roman.filter


rev 1.1, prev_rev 1.0
Index: roman.filter
===================================================================
__NAME__ purpose
transform input integer to Roman numerals
__END__


__NAME__ see also
__END__


__NAME__ description
The filter transforms input integer to Roman numerals.
__END__


__NAME__ online: Filter example
<programlisting>
[filter roman]2005[/filter]
</programlisting>
__END__

__NAME__ author
__kwalsh__
__END__



1.1                  xmldocs/refs/space_to_null.filter


rev 1.1, prev_rev 1.0
Index: space_to_null.filter
===================================================================
__NAME__ purpose
replace space " " with \0 (null) character
__END__


__NAME__ see also
colons_to_null
__END__


__NAME__ description
The filter replaces space ("<literal> </literal>") characters
with a <literal>\0</literal> (null) character.
__END__


__NAME__ notes
For more information on &PERL; Regular Expressions, pattern matching and
character classes, see
<citerefentry><refentrytitle>perlre</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
__END__




1.1                  xmldocs/refs/strftime.filter


rev 1.1, prev_rev 1.0
Index: strftime.filter
===================================================================
__NAME__ purpose
transform UNIX time (number of seconds) to a date/time string, according to specified format
__END__


__NAME__ see also
time
__END__


__NAME__ description
The filter transforms UNIX time (measured in a number of seconds since the
&glos-epoch;) to human-readable date/time string, according to the specified
format.
</para><para>
If the format is unspecified, the system outputs time in the default format,
such as <literal>Fri Dec 16 15:04:33 2005</literal>.
__END__


__NAME__ online: Filter example
<programlisting>
</programlisting>
__END__
TODO EXAMPLE! Why IC goes nuts when I run an example?



1.1                  xmldocs/refs/textarea_get.filter


rev 1.1, prev_rev 1.0
Index: textarea_get.filter
===================================================================
__NAME__ purpose
replace &amp;amp; (ampersand) entities in input with literal &amp;
__END__


__NAME__ see also
textarea_put
__END__


__NAME__ description
The filter replaces &amp;amp; entities in input with literal &amp;.
__END__


__NAME__ notes
For more information on &PERL; Regular Expressions, pattern matching and
character classes, see
<citerefentry><refentrytitle>perlre</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
__END__




1.1                  xmldocs/refs/textarea_put.filter


rev 1.1, prev_rev 1.0
Index: textarea_put.filter
===================================================================
__NAME__ purpose
replace &amp;, &lt; and &#91; characters with their encoded representation
__END__


__NAME__ see also
textarea_get
__END__


__NAME__ description
The filter replaces &amp; characters with &amp;amp;, 
&#91; with &amp;#91; and &lt; with &amp;lt; entities.
__END__


__NAME__ notes
For more information on &PERL; Regular Expressions, pattern matching and
character classes, see
<citerefentry><refentrytitle>perlre</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
__END__









More information about the docs mailing list