mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-17 19:30:00 +08:00
Fix URL generation in headline. Only tag lexeme will be replaced by space.
Per http://archives.postgresql.org/pgsql-bugs/2008-12/msg00013.php
This commit is contained in:
parent
076b64fe93
commit
a82832465b
@ -519,7 +519,7 @@ genhl(HLPRSTEXT * prs)
|
||||
*ptr = ' ';
|
||||
ptr++;
|
||||
}
|
||||
else
|
||||
else if (!wrd->skip)
|
||||
{
|
||||
if (wrd->selected)
|
||||
{
|
||||
|
@ -51,7 +51,8 @@ typedef struct
|
||||
in:1,
|
||||
replace:1,
|
||||
repeated:1,
|
||||
unused:4,
|
||||
skip:1,
|
||||
unused:3,
|
||||
type:8,
|
||||
len:16;
|
||||
char *word;
|
||||
|
@ -72,11 +72,11 @@ prsd_end(PG_FUNCTION_ARGS)
|
||||
#define COMPLEXTOKEN(x) ( (x)==5 || (x)==15 || (x)==16 || (x)==17 )
|
||||
#define ENDPUNCTOKEN(x) ( (x)==12 )
|
||||
|
||||
|
||||
#define TS_IDIGNORE(x) ( (x)==13 || (x)==14 || (x)==12 || (x)==23 )
|
||||
#define HLIDIGNORE(x) ( (x)==5 || (x)==13 || (x)==15 || (x)==16 || (x)==17 )
|
||||
#define HLIDREPLACE(x) ( (x)==13 )
|
||||
#define HLIDSKIP(x) ( (x)==5 || (x)==15 || (x)==16 || (x)==17 )
|
||||
#define HTMLHLIDIGNORE(x) ( (x)==5 || (x)==15 || (x)==16 || (x)==17 )
|
||||
#define NONWORDTOKEN(x) ( (x)==12 || HLIDIGNORE(x) )
|
||||
#define NONWORDTOKEN(x) ( (x)==12 || HLIDREPLACE(x) || HLIDSKIP(x) )
|
||||
#define NOENDTOKEN(x) ( NONWORDTOKEN(x) || (x)==7 || (x)==8 || (x)==20 || (x)==21 || (x)==22 || TS_IDIGNORE(x) )
|
||||
|
||||
typedef struct
|
||||
@ -364,13 +364,15 @@ prsd_headline(PG_FUNCTION_ARGS)
|
||||
prs->words[i].selected = 1;
|
||||
if (highlight == 0)
|
||||
{
|
||||
if (HLIDIGNORE(prs->words[i].type))
|
||||
if (HLIDREPLACE(prs->words[i].type))
|
||||
prs->words[i].replace = 1;
|
||||
else if (HLIDSKIP(prs->words[i].type))
|
||||
prs->words[i].skip = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (HTMLHLIDIGNORE(prs->words[i].type))
|
||||
prs->words[i].replace = 1;
|
||||
prs->words[i].skip = 1;
|
||||
}
|
||||
|
||||
prs->words[i].in = (prs->words[i].repeated) ? 0 : 1;
|
||||
|
Loading…
Reference in New Issue
Block a user