chiark / gitweb /
Make shifted keys actually work. Modifier map contains codes, not syms
[ypp-sc-tools.db-test.git] / yarrg / web / qtextstringcheck
index 4adb606ea0b2c3e25dc8251dac335a47ee24e7e6..0a75f8e9b6ae71be9f50117c542733c9ce71e787 100755 (executable)
@@ -65,7 +65,7 @@ my $mydbh;
 $dbh ||= ($mydbh= dbw_connect($ocean));
 
 my $debugf= !$debug ? sub { } : sub {
-    print "@_\n";
+    print escapeHTML("@_")."\n";
 };
 
 $debugf->("QTSC STRING '$string'");
@@ -95,7 +95,7 @@ if ($chk->method_exists('execute')) {
        my $sqlstmt_nqs= @sqlstmt_nqs;
 
        my @specs= $chk->attr('multiple')
-               ? (split m#[/|,]#, $string)
+               ? (split m#\s*[/|,]\s*#, $string)
                : ($string);
 
        foreach my $each (@specs) {
@@ -105,11 +105,12 @@ if ($chk->method_exists('execute')) {
                        $sth, $sqlstmt_nqs,
                        $chk->attr_exists('abbrev_initials'),
                        $chk->attr('maxambig'),
-                       $chk->scall_method("nomatch", spec => $each),
+                       $chk->scall_method("nomatch", specq => escerrq($each)),
                        $chk->scall_method("manyambig"),
                        sub {
                                $chk->scall_method("ambiguous",
-                                       spec => $each, couldbe => $_[0])
+                                       specq => escerrq($each),
+                                       couldbe => $_[1])
                        });
                if (defined $temsg) {
                        $emsg= $temsg;
@@ -129,7 +130,10 @@ $emsg='' if !defined $emsg;
 $debugf->("QTSC EMSG='$emsg' RESULTS='@results'");
 
 if ($format =~ /json/) {
-       $r->content_type($ctype or $format);
+       $ctype ||= $format;
+       die unless grep { $_ eq $ctype }
+               qw(application/json text/plain text/xml);
+       $r->content_type($ctype);
        my $jobj= {
                success => 1*!length $emsg,
                show => (length $emsg      ? $emsg                       :