mirror of
https://github.com/postgres/postgres.git
synced 2025-08-12 15:23:02 +03: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:
@@ -2150,14 +2150,14 @@ ff-bg
|
|||||||
</html>',
|
</html>',
|
||||||
to_tsquery('sea&foo'), 'HighlightAll=true');
|
to_tsquery('sea&foo'), 'HighlightAll=true');
|
||||||
headline
|
headline
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
<html>
|
<html>
|
||||||
<!-- some comment -->
|
<!-- some comment -->
|
||||||
<body>
|
<body>
|
||||||
<b>Sea</b> view wow <u><b>foo</b> bar</u> <i>qq</i>
|
<b>Sea</b> view wow <u><b>foo</b> bar</u> <i>qq</i>
|
||||||
<a href="http://www.google.com/foo.bar.html" target="_blank">YES </a>
|
<a href="http://www.google.com/foo.bar.html" target="_blank">YES </a>
|
||||||
ff-bg
|
ff-bg
|
||||||
<script>
|
<script>
|
||||||
document.write(15);
|
document.write(15);
|
||||||
</script>
|
</script>
|
||||||
|
@@ -520,7 +520,7 @@ genhl(HLPRSTEXT * prs)
|
|||||||
*ptr = ' ';
|
*ptr = ' ';
|
||||||
ptr++;
|
ptr++;
|
||||||
}
|
}
|
||||||
else
|
else if (!wrd->skip)
|
||||||
{
|
{
|
||||||
if (wrd->selected)
|
if (wrd->selected)
|
||||||
{
|
{
|
||||||
|
@@ -50,7 +50,8 @@ typedef struct
|
|||||||
in:1,
|
in:1,
|
||||||
replace:1,
|
replace:1,
|
||||||
repeated:1,
|
repeated:1,
|
||||||
unused:4,
|
skip:1,
|
||||||
|
unused:3,
|
||||||
type:8,
|
type:8,
|
||||||
len:16;
|
len:16;
|
||||||
char *word;
|
char *word;
|
||||||
|
@@ -72,11 +72,11 @@ prsd_end(PG_FUNCTION_ARGS)
|
|||||||
#define COMPLEXTOKEN(x) ( (x)==5 || (x)==15 || (x)==16 || (x)==17 )
|
#define COMPLEXTOKEN(x) ( (x)==5 || (x)==15 || (x)==16 || (x)==17 )
|
||||||
#define ENDPUNCTOKEN(x) ( (x)==12 )
|
#define ENDPUNCTOKEN(x) ( (x)==12 )
|
||||||
|
|
||||||
|
|
||||||
#define TS_IDIGNORE(x) ( (x)==13 || (x)==14 || (x)==12 || (x)==23 )
|
#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 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) )
|
#define NOENDTOKEN(x) ( NONWORDTOKEN(x) || (x)==7 || (x)==8 || (x)==20 || (x)==21 || (x)==22 || TS_IDIGNORE(x) )
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
@@ -366,13 +366,15 @@ prsd_headline(PG_FUNCTION_ARGS)
|
|||||||
prs->words[i].selected = 1;
|
prs->words[i].selected = 1;
|
||||||
if (highlight == 0)
|
if (highlight == 0)
|
||||||
{
|
{
|
||||||
if (HLIDIGNORE(prs->words[i].type))
|
if (HLIDREPLACE(prs->words[i].type))
|
||||||
prs->words[i].replace = 1;
|
prs->words[i].replace = 1;
|
||||||
|
else if (HLIDSKIP(prs->words[i].type))
|
||||||
|
prs->words[i].skip = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (HTMLHLIDIGNORE(prs->words[i].type))
|
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;
|
prs->words[i].in = (prs->words[i].repeated) ? 0 : 1;
|
||||||
|
Reference in New Issue
Block a user