--- trunk/bfilter.pl 2004/09/15 15:30:04 25 +++ trunk/bfilter.pl 2004/09/15 16:48:24 26 @@ -36,8 +36,11 @@ my $max_elements = 0; sub escape_js { - my $t = shift || return; + my $t = shift || return 'undef'; + # escape single quote and backspace $t =~ s/(['\\])/\\$1/g && print STDERR "ESCAPED '$t'\n"; + # quote string if not number + $t = "'$t'" unless ($t =~ m/^\d+$/); return $t; } @@ -71,18 +74,18 @@ if ($part ne $last_part) { print STDERR $last_part,"\t",$#part_arr+1,"\n" if ($debug && $#part_arr > $increase_at); $max_elements = $#part_arr if ($#part_arr > $max_elements); - print "${headlines}['",escape_js($last_part),"'] = [\n ",join(",\n ",@part_arr),"];\n" if (@part_arr); + print "${headlines}[",escape_js($last_part),"] = [\n ",join(",\n ",@part_arr),"];\n" if (@part_arr); $total += $#part_arr; @part_arr = (); $last_part = $part; } - push @part_arr, "['".escape_js($headline)."','".join("','",map { escape_js($_) } @data)."']"; + push @part_arr, "[".escape_js($headline).",".join(",",map { escape_js($_) } @data)."]"; # break out? last if ($max && $total > $max); } -print "${headlines}['",escape_js($last_part)."'] = [\n ",join(",\n ",@part_arr),"];\n" if (@part_arr); +print "${headlines}[",escape_js($last_part)."] = [\n ",join(",\n ",@part_arr),"];\n" if (@part_arr); print qq{ ${headlines}.min_len = $min_len;