git.annexia.org
/
cocanwiki.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Script for rebuilding the links table from scratch.
[cocanwiki.git]
/
scripts
/
page.ml
diff --git
a/scripts/page.ml
b/scripts/page.ml
index
f9bb380
..
a98e688
100644
(file)
--- 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 <rich@merjis.com>.
* Copyright (C) 2004 Merjis Ltd.
(* COCANWIKI - a wiki written in Objective CAML.
* Written by Richard W.M. Jones <rich@merjis.com>.
* Copyright (C) 2004 Merjis Ltd.
- * $Id: page.ml,v 1.2
3 2004/09/27 16:21:09
rich Exp $
+ * $Id: page.ml,v 1.2
4 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
*
* 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_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 =
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 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
let argname =
List.find (fun argname -> List.mem_assoc argname args) argnames in
let search_string = List.assoc argname args in