From 2cc5a717993e43c75ab2e6cbda0361d4722d2227 Mon Sep 17 00:00:00 2001 From: rich Date: Mon, 27 Sep 2004 18:08:01 +0000 Subject: [PATCH] Fix search highlighting. --- debian/changelog | 2 +- scripts/page.ml | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 4f91859..40f21f0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -cocanwiki (1.1.2-1) unstable; urgency=low +cocanwiki (1.1.3-1) unstable; urgency=low * Initial Release. diff --git a/scripts/page.ml b/scripts/page.ml index f9bb380..a98e688 100644 --- a/scripts/page.ml +++ b/scripts/page.ml @@ -1,7 +1,7 @@ (* COCANWIKI - a wiki written in Objective CAML. * Written by Richard W.M. Jones . * Copyright (C) 2004 Merjis Ltd. - * $Id: page.ml,v 1.23 2004/09/27 16:21:09 rich Exp $ + * $Id: page.ml,v 1.24 2004/09/27 18:08:02 rich Exp $ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -49,6 +49,8 @@ let search_engines = [ ] let split_words = Pcre.regexp "\\W+" +let split_qs_re = Pcre.regexp "\\?" + let xhtml_re = Pcre.regexp "<.*?>|[^<>]+" let run r (q : cgi) (dbh : Dbi.connection) hostid {edit_anon=edit_anon} user = @@ -87,7 +89,12 @@ let run r (q : cgi) (dbh : Dbi.connection) hostid {edit_anon=edit_anon} user = let search_terms_from_referer referer = let _, argnames = List.find (fun (rex, _) -> Pcre.pmatch ~rex referer) search_engines in - let args = Cgi_args.parse referer in + let url, qs = + match Pcre.split ~rex:split_qs_re ~max:2 referer with + | [url] | [url;""] -> url, "" + | [url;qs] -> url, qs + | _ -> assert false in + let args = Cgi_args.parse qs in let argname = List.find (fun argname -> List.mem_assoc argname args) argnames in let search_string = List.assoc argname args in -- 1.8.3.1