Added the following three characters to the list of "reserved" regular
exprssion chars: \ " $ . The problem fixes searches for some Chinese
terms that are normalized with ICU. Indeed these terms include one
of the above REGEX_CHARS. If they are not properly escaped it will
reproduce invalid regular expressions.
-/* $Id: rpnsearch.c,v 1.29 2007-12-17 12:24:50 adam Exp $
+/* $Id: rpnsearch.c,v 1.30 2008-01-26 15:32:05 adam Exp $
Copyright (C) 1995-2007
Index Data ApS
Copyright (C) 1995-2007
Index Data ApS
-#define REGEX_CHARS " []()|.*+?!"
+#define REGEX_CHARS " []()|.*+?!\\\"$"
static void add_non_space(const char *start, const char *end,
WRBUF term_dict,
static void add_non_space(const char *start, const char *end,
WRBUF term_dict,
wrbuf_write(display_term, display_buf, display_len);
for (i = 0; i < res_len; i++)
{
wrbuf_write(display_term, display_buf, display_len);
for (i = 0; i < res_len; i++)
{
- if (strchr(REGEX_CHARS "\\", res_buf[i]))
+ if (strchr(REGEX_CHARS, res_buf[i]))
wrbuf_putc(term_dict, '\\');
if (res_buf[i] < 32)
wrbuf_putc(term_dict, 1);
wrbuf_putc(term_dict, '\\');
if (res_buf[i] < 32)
wrbuf_putc(term_dict, 1);