Fixed a bug triggered when the user typed search terms in quotes.
[cocanwiki.git] / scripts / lib / wikilib.ml
index 0ba0425..22f6506 100644 (file)
@@ -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.
- * $Id: wikilib.ml,v 1.1 2004/10/21 11:42:05 rich Exp $
+ * $Id: wikilib.ml,v 1.3 2004/11/01 16:24:50 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
@@ -55,6 +55,9 @@ let generate_url_of_title (dbh : Dbi.connection) hostid title =
   (* URL cannot begin with '_'. *)
   else if url.[0] = '_' then
     GenURL_BadURL
+  (* Titles which begin or end with spaces are probably mistakes. *)
+  else if isspace title.[0] || isspace title.[String.length title - 1] then
+    GenURL_BadURL
   else (
     (* Check that the URL doesn't already exist in the database.  If it does
      * then it probably means that another page exists with similar enough
@@ -103,7 +106,7 @@ let markup_re =
 let link_re = Pcre.regexp "\\[\\[\\s*(.+?)\\s*(?:\\|(.+?)\\s*)?\\]\\]"
 
 let image_re =
-  Pcre.regexp "^(image|thumb(?:nail)?):\\s*([a-z0-9][_a-z0-9]*\\.(?:jpg|jpeg|gif|ico|png))$"
+  Pcre.regexp "^(image|thumb(?:nail)?):\\s*([a-z0-9][-._a-z0-9]*\\.(?:jpg|jpeg|gif|ico|png))$"
 let file_re =
   Pcre.regexp "^file:\\s*([a-z0-9][-._a-z0-9]*)$"