Ticket #233: xapian_omegascript_addfilter_lower.diff

File xapian_omegascript_addfilter_lower.diff, 2.2 KB (added by tv+xapian.org, 17 years ago)

patch as described

  • query.cc

     
    712712enum tagval {
    713713CMD_,
    714714CMD_add,
     715CMD_addfilter,
    715716CMD_allterms,
    716717CMD_and,
    717718CMD_cgi,
     
    753754CMD_list,
    754755CMD_log,
    755756CMD_lookup,
     757CMD_lower,
    756758CMD_lt,
    757759CMD_map,
    758760CMD_max,
     
    824826//name minargs maxargs evalargs ensure
    825827{"",{CMD_,         N, N, 0, 0}},// commented out code
    826828T(add,             0, N, N, 0), // add a list of numbers
     829T(addfilter,       1, 1, N, 0), // add filter term
    827830T(allterms,        0, 1, N, 0), // list of all terms matching document
    828831T(and,             1, N, 0, 0), // logical shortcutting and of a list of values
    829832T(cgi,             1, 1, N, 0), // return cgi parameter value
     
    867870T(list,            2, 5, N, 0), // pretty print list
    868871T(log,             1, 2, 1, 0), // create a log entry
    869872T(lookup,          2, 2, N, 0), // lookup in named cdb file
     873T(lower,           1, 1, N, 0), // convert string to lower case
    870874T(lt,              2, 2, N, 0), // test <
    871875T(map,             1, 2, 1, 0), // map a list into another list
    872876T(max,             1, N, N, 0), // maximum of a list of values
     
    10501054                value = int_to_string(total);
    10511055                break;
    10521056            }
     1057            case CMD_addfilter: {
     1058                add_bterm(args[0]);
     1059                break;
     1060            }
    10531061            case CMD_allterms: {
    10541062                // list of all terms indexing document
    10551063                int id = q0;
     
    14491457                close(fd); // FIXME: cache fds?
    14501458                break;
    14511459            }
     1460            case CMD_lower: {
     1461                value = Xapian::Unicode::tolower(args[0]);
     1462                break;
     1463            }
    14521464            case CMD_lt:
    14531465                if (string_to_int(args[0]) < string_to_int(args[1]))
    14541466                    value = "true";
  • docs/omegascript.rst

     
    5959${...}
    6060        commented out code
    6161
     62$addfilter{term}
     63        add a filter term, similar to passing a B CGI variable
     64
    6265$allterms{docid}
    6366        list of all terms matching document
    6467
     
    241244        "tld_en" with "tld_$or{$opt{lang},en}" and automatically translate
    242245        into the currently set language, or English if no language is set.
    243246
     247$lower{STUFF}
     248        return stuff converted to lower case
     249
    244250$map{LIST,STUFF)
    245251        map a list into the evaluated argument. If "LIST" is
    246252        1, 2 then::