* Add enclair_db option to UserDB.pm. Allows logging of enclair password
[interchange.git] / code / Filter / option_format.filter
1 # Copyright 2002-2007 Interchange Development Group and others
2 # Copyright 1996-2002 Red Hat, Inc.
3
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2 of the License, or
7 # (at your option) any later version.  See the LICENSE file for details.
8
9 # $Id: option_format.filter,v 1.4 2007-03-30 23:40:45 pajamian Exp $
10
11 CodeDef option_format Filter
12 CodeDef option_format Description Option format
13 CodeDef option_format Routine <<EOR
14 sub {
15         my ($value, $tag, $delim) = @_;
16
17         return $value unless $value =~ /\0.*\0/s;
18
19         my $scrubcommas;
20         if(! length($delim) ) {
21                 $delim = ',';
22                 $scrubcommas = 1;
23         }
24         else {
25                 $delim =~ /pipe/i and $delim = '|' 
26                         or
27                         $delim =~ /semicolon/i and $delim = ';'  
28                         or
29                         $delim =~ /colon/i and $delim = ':'  
30                         or
31                         $delim =~ /null/i and $delim = "\0"
32                         ;
33         }
34
35         my @opts = split /\0/, $value;
36         my @out;
37
38         while(@opts) {
39                 my ($v, $l, $d) = splice @opts, 0, 3;
40                 $l = length($l) ? "=$l" : '';
41                 $l =~ s/,/&#44;/g if $scrubcommas;
42                 $d = $d ? '*' : '';
43                 next unless length("$v$l");
44                 push @out, "$v$l$d";
45         }
46         return join $delim, @out;
47 }
48 EOR