Lines 25-35
Link Here
|
25 |
|
25 |
|
26 |
$version = "4.2"; |
26 |
$version = "4.2"; |
27 |
|
27 |
|
|
|
28 |
sub shell_escape { |
29 |
my $input = shift; |
30 |
my $result = ''; |
31 |
|
32 |
foreach my $i (split //, $input) { |
33 |
if ($i eq "'") { |
34 |
$result .= "'\\''"; |
35 |
} else { |
36 |
$result .= $i; |
37 |
} |
38 |
} |
39 |
return $result; |
40 |
} |
41 |
|
28 |
sub plussifyaddress { |
42 |
sub plussifyaddress { |
29 |
($p_ver = @_[0]) =~ tr/ /+/; |
43 |
($p_ver = @_[0]) =~ tr/ /+/; |
30 |
$p_newline = "<a href=\"$scriptname?verse=$p_ver&@_[1]=on\">"; |
44 |
$p_newline = "<a href=\"$scriptname?verse=$p_ver&@_[1]=on\">"; |
31 |
return $p_newline; |
45 |
return $p_newline; |
32 |
} |
46 |
} |
|
|
47 |
$locale = shell_escape($locale); |
33 |
|
48 |
|
34 |
sub urlvers { |
49 |
sub urlvers { |
35 |
$u_verse = @_[0]; |
50 |
$u_verse = @_[0]; |
Lines 85-93
Link Here
|
85 |
$verse = $mydata; |
100 |
$verse = $mydata; |
86 |
$verse =~ tr/+/ /; |
101 |
$verse =~ tr/+/ /; |
87 |
$verse =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; |
102 |
$verse =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; |
|
|
103 |
$verse = shell_escape($verse); |
88 |
} |
104 |
} |
89 |
elsif ($varname eq "search" && $mydata ne "" && $mydata ne "off") { |
105 |
elsif ($varname eq "search" && $mydata ne "" && $mydata ne "off") { |
90 |
$search = "-s $mydata"; |
106 |
$search = "-s '" . shell_escape($mydata) . "'"; |
91 |
} |
107 |
} |
92 |
elsif ($varname eq "range" && $mydata ne "" && $mydata ne "off") { |
108 |
elsif ($varname eq "range" && $mydata ne "" && $mydata ne "off") { |
93 |
$range = $mydata; |
109 |
$range = $mydata; |
Lines 141-153
Link Here
|
141 |
$debug = 1; |
157 |
$debug = 1; |
142 |
} |
158 |
} |
143 |
elsif ($varname eq "locale") { |
159 |
elsif ($varname eq "locale") { |
144 |
$locale = $mydata; |
160 |
$locale = shell_escape($mydata); |
145 |
} |
161 |
} |
146 |
elsif ($varname eq "maxverses") { |
162 |
elsif ($varname eq "maxverses") { |
147 |
$maxverses = $mydata; |
163 |
$maxverses = shell_escape($mydata); |
148 |
} |
164 |
} |
149 |
elsif ($mydata eq "on" || $mydata eq "ON") { |
165 |
elsif ($mydata eq "on" || $mydata eq "ON") { |
150 |
$versions[$n] = $varname; |
166 |
$versions[$n] = shell_escape($varname); |
151 |
$n++; |
167 |
$n++; |
152 |
} |
168 |
} |
153 |
} |
169 |
} |
Lines 431-437
Link Here
|
431 |
} |
447 |
} |
432 |
for ($i = 0; $i < $n; $i++) { |
448 |
for ($i = 0; $i < $n; $i++) { |
433 |
|
449 |
|
434 |
$line = "$diatheke $search $range $optionfilters $latinxlit -l $locale -m $maxverses -f cgi -b $versions[$i] -k \"$verse\" $err"; |
450 |
$line = "$diatheke $search $range $optionfilters $latinxlit -l '$locale' -m '$maxverses' -f cgi -b '$versions[$i]' -k '$verse' $err"; |
435 |
|
451 |
|
436 |
if ($debug) { |
452 |
if ($debug) { |
437 |
print "<br /><i>command line: $line\n</i><br /><br />"; |
453 |
print "<br /><i>command line: $line\n</i><br /><br />"; |
Lines 444-450
Link Here
|
444 |
|
460 |
|
445 |
# Parse and link to Strong's references if present |
461 |
# Parse and link to Strong's references if present |
446 |
|
462 |
|
447 |
$info = `$diatheke -b info -k $versions[$i] $err`; |
463 |
$info = `$diatheke -b info -k '$versions[$i]' $err`; |
448 |
$info =~ /([^\;]+)\;([^\;]+)/; |
464 |
$info =~ /([^\;]+)\;([^\;]+)/; |
449 |
$format = $1; |
465 |
$format = $1; |
450 |
$type = $2; |
466 |
$type = $2; |