Corrected a crashing bug in mail threading.
authorrich <rich>
Thu, 21 Oct 2004 11:42:04 +0000 (11:42 +0000)
committerrich <rich>
Thu, 21 Oct 2004 11:42:04 +0000 (11:42 +0000)
Added mail_rebuild script, which rebuilds the indexes.

Wider filename field in mail import form.

Don't allow ? characters in URLs.

Imported around 1,500 mail messages successfully to test.

Changed the build system to use ocamldsort to produce the correct
build order.  Moved the library code into lib/ so that it is
conveniently separate from the script code.  Scripts and library
modules no longer need to be listed in the Makefile.

Debian: Build-depends on ocamldsort.

33 files changed:
debian/control
scripts/.cvsignore
scripts/.depend
scripts/00-TEMPLATE.ml. [moved from scripts/00-TEMPLATE.ml with 95% similarity]
scripts/Makefile
scripts/lib/.cvsignore [new file with mode: 0644]
scripts/lib/cocanwiki.ml [moved from scripts/cocanwiki.ml with 99% similarity]
scripts/lib/cocanwiki_create_host.ml [moved from scripts/cocanwiki_create_host.ml with 98% similarity]
scripts/lib/cocanwiki_create_host.mli [moved from scripts/cocanwiki_create_host.mli with 94% similarity]
scripts/lib/cocanwiki_date.ml [moved from scripts/cocanwiki_date.ml with 96% similarity]
scripts/lib/cocanwiki_diff.ml [moved from scripts/cocanwiki_diff.ml with 98% similarity]
scripts/lib/cocanwiki_emailnotify.ml [moved from scripts/cocanwiki_emailnotify.ml with 96% similarity]
scripts/lib/cocanwiki_ext_calendar.ml [moved from scripts/cocanwiki_ext_calendar.ml with 99% similarity]
scripts/lib/cocanwiki_files.ml [moved from scripts/cocanwiki_files.ml with 97% similarity]
scripts/lib/cocanwiki_images.ml [moved from scripts/cocanwiki_images.ml with 98% similarity]
scripts/lib/cocanwiki_images.mli [moved from scripts/cocanwiki_images.mli with 94% similarity]
scripts/lib/cocanwiki_links.ml [moved from scripts/cocanwiki_links.ml with 98% similarity]
scripts/lib/cocanwiki_links.mli [moved from scripts/cocanwiki_links.mli with 94% similarity]
scripts/lib/cocanwiki_mail.ml [moved from scripts/cocanwiki_mail.ml with 92% similarity]
scripts/lib/cocanwiki_mail.mli [moved from scripts/cocanwiki_mail.mli with 94% similarity]
scripts/lib/cocanwiki_ok.ml [moved from scripts/cocanwiki_ok.ml with 96% similarity]
scripts/lib/cocanwiki_pages.ml [moved from scripts/cocanwiki_pages.ml with 99% similarity]
scripts/lib/cocanwiki_pages.mli [moved from scripts/cocanwiki_pages.mli with 97% similarity]
scripts/lib/cocanwiki_server_settings.ml [moved from scripts/cocanwiki_server_settings.ml with 97% similarity]
scripts/lib/cocanwiki_strings.ml [moved from scripts/cocanwiki_strings.ml with 97% similarity]
scripts/lib/cocanwiki_template.ml [moved from scripts/cocanwiki_template.ml with 98% similarity]
scripts/lib/cocanwiki_template.mli [moved from scripts/cocanwiki_template.mli with 95% similarity]
scripts/lib/cocanwiki_version.ml.in [new file with mode: 0644]
scripts/lib/wikilib.ml [moved from scripts/wikilib.ml with 99% similarity]
scripts/lib/wikilib.mli [moved from scripts/wikilib.mli with 95% similarity]
scripts/mail_rebuild.ml [new file with mode: 0644]
scripts/visualise_links.ml. [moved from scripts/visualise_links.ml with 98% similarity]
templates/mail_import_form.html

index 7556950..6036d0e 100644 (file)
@@ -1,7 +1,7 @@
 Source: cocanwiki
 Priority: optional
 Maintainer: Richard W.M. Jones <rich@annexia.org>
-Build-Depends: debhelper (>= 4.0.0), libpcre-ocaml-dev, libpgsql-ocaml-dev, libextlib-ocaml-dev, ocaml-findlib, ocaml-nox-3.08, libapache-mod-caml, libtemplate-ocaml-dev
+Build-Depends: debhelper (>= 4.0.0), libpcre-ocaml-dev, libpgsql-ocaml-dev, libextlib-ocaml-dev, ocaml-findlib, ocaml-nox-3.08, libapache-mod-caml, libtemplate-ocaml-dev, ocamldsort (>= 0.14.2)
 Standards-Version: 3.6.1
 
 Package: cocanwiki
index 9ef5875..7d64c79 100644 (file)
@@ -1,4 +1,2 @@
 *.cmo
 *.cmi
-*.cma
-cocanwiki_version.ml
index e29f997..6f9188f 100644 (file)
-cocanwiki_pages.cmi: cocanwiki.cmo 
-00-TEMPLATE.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-00-TEMPLATE.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-broken_links.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-broken_links.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-change_password.cmo: cocanwiki.cmo cocanwiki_ok.cmo 
-change_password.cmx: cocanwiki.cmx cocanwiki_ok.cmx 
-change_password_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-change_password_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-cocanwiki.cmo: cocanwiki_ok.cmo cocanwiki_strings.cmo 
-cocanwiki.cmx: cocanwiki_ok.cmx cocanwiki_strings.cmx 
-cocanwiki_create_host.cmo: cocanwiki_create_host.cmi 
-cocanwiki_create_host.cmx: cocanwiki_create_host.cmi 
-cocanwiki_diff.cmo: cocanwiki_files.cmo 
-cocanwiki_diff.cmx: cocanwiki_files.cmx 
-cocanwiki_ext_calendar.cmo: cocanwiki.cmo cocanwiki_date.cmo \
-    cocanwiki_strings.cmo cocanwiki_template.cmi 
-cocanwiki_ext_calendar.cmx: cocanwiki.cmx cocanwiki_date.cmx \
-    cocanwiki_strings.cmx cocanwiki_template.cmx 
-cocanwiki_images.cmo: cocanwiki_files.cmo cocanwiki_strings.cmo \
-    cocanwiki_images.cmi 
-cocanwiki_images.cmx: cocanwiki_files.cmx cocanwiki_strings.cmx \
-    cocanwiki_images.cmi 
-cocanwiki_links.cmo: cocanwiki.cmo wikilib.cmi cocanwiki_links.cmi 
-cocanwiki_links.cmx: cocanwiki.cmx wikilib.cmx cocanwiki_links.cmi 
-cocanwiki_mail.cmo: cocanwiki_mail.cmi 
-cocanwiki_mail.cmx: cocanwiki_mail.cmi 
-cocanwiki_ok.cmo: cocanwiki_template.cmi 
-cocanwiki_ok.cmx: cocanwiki_template.cmx 
-cocanwiki_pages.cmo: cocanwiki.cmo cocanwiki_links.cmi cocanwiki_strings.cmo \
-    wikilib.cmi cocanwiki_pages.cmi 
-cocanwiki_pages.cmx: cocanwiki.cmx cocanwiki_links.cmx cocanwiki_strings.cmx \
-    wikilib.cmx cocanwiki_pages.cmi 
-cocanwiki_template.cmo: cocanwiki.cmo cocanwiki_files.cmo \
-    cocanwiki_strings.cmo cocanwiki_version.cmo cocanwiki_template.cmi 
-cocanwiki_template.cmx: cocanwiki.cmx cocanwiki_files.cmx \
-    cocanwiki_strings.cmx cocanwiki_version.cmx cocanwiki_template.cmi 
-contact.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_template.cmi 
-contact.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_template.cmx 
-contact_show.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-contact_show.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-contacts.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-contacts.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-crash.cmo: cocanwiki.cmo cocanwiki_server_settings.cmo cocanwiki_template.cmi 
-crash.cmx: cocanwiki.cmx cocanwiki_server_settings.cmx cocanwiki_template.cmx 
-create_contact.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_strings.cmo 
-create_contact.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_strings.cmx 
-create_contact_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-create_contact_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-create_user.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_strings.cmo 
-create_user.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_strings.cmx 
-create_user_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-create_user_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-dead_ends.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-dead_ends.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-delete_contact.cmo: cocanwiki.cmo cocanwiki_ok.cmo 
-delete_contact.cmx: cocanwiki.cmx cocanwiki_ok.cmx 
-delete_contact_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-delete_contact_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-delete_file.cmo: cocanwiki.cmo cocanwiki_emailnotify.cmo cocanwiki_ok.cmo 
-delete_file.cmx: cocanwiki.cmx cocanwiki_emailnotify.cmx cocanwiki_ok.cmx 
-delete_file_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-delete_file_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-delete_image.cmo: cocanwiki.cmo cocanwiki_emailnotify.cmo cocanwiki_ok.cmo 
-delete_image.cmx: cocanwiki.cmx cocanwiki_emailnotify.cmx cocanwiki_ok.cmx 
-delete_image_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-delete_image_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-delete_user.cmo: cocanwiki.cmo cocanwiki_ok.cmo 
-delete_user.cmx: cocanwiki.cmx cocanwiki_ok.cmx 
-delete_user_form.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_template.cmi 
-delete_user_form.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_template.cmx 
-diff.cmo: cocanwiki.cmo cocanwiki_diff.cmo cocanwiki_template.cmi 
-diff.cmx: cocanwiki.cmx cocanwiki_diff.cmx cocanwiki_template.cmx 
-edit.cmo: cocanwiki.cmo cocanwiki_diff.cmo cocanwiki_emailnotify.cmo \
-    cocanwiki_ok.cmo cocanwiki_pages.cmi cocanwiki_strings.cmo \
-    cocanwiki_template.cmi wikilib.cmi 
-edit.cmx: cocanwiki.cmx cocanwiki_diff.cmx cocanwiki_emailnotify.cmx \
-    cocanwiki_ok.cmx cocanwiki_pages.cmx cocanwiki_strings.cmx \
-    cocanwiki_template.cmx wikilib.cmx 
-edit_contact.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_strings.cmo 
-edit_contact.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_strings.cmx 
-edit_contact_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-edit_contact_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-edit_host_css.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_strings.cmo 
-edit_host_css.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_strings.cmx 
-edit_host_css_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-edit_host_css_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-edit_host_settings.cmo: cocanwiki.cmo cocanwiki_ok.cmo 
-edit_host_settings.cmx: cocanwiki.cmx cocanwiki_ok.cmx 
-edit_host_settings_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-edit_host_settings_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-edit_page_css.cmo: cocanwiki.cmo cocanwiki_diff.cmo cocanwiki_emailnotify.cmo \
-    cocanwiki_ok.cmo cocanwiki_strings.cmo 
-edit_page_css.cmx: cocanwiki.cmx cocanwiki_diff.cmx cocanwiki_emailnotify.cmx \
-    cocanwiki_ok.cmx cocanwiki_strings.cmx 
-edit_page_css_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-edit_page_css_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-edit_page_title.cmo: cocanwiki.cmo cocanwiki_emailnotify.cmo cocanwiki_ok.cmo \
-    cocanwiki_strings.cmo wikilib.cmi 
-edit_page_title.cmx: cocanwiki.cmx cocanwiki_emailnotify.cmx cocanwiki_ok.cmx \
-    cocanwiki_strings.cmx wikilib.cmx 
-edit_page_title_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-edit_page_title_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-edit_sitemenu.cmo: cocanwiki.cmo cocanwiki_emailnotify.cmo cocanwiki_ok.cmo \
-    cocanwiki_strings.cmo cocanwiki_template.cmi 
-edit_sitemenu.cmx: cocanwiki.cmx cocanwiki_emailnotify.cmx cocanwiki_ok.cmx \
-    cocanwiki_strings.cmx cocanwiki_template.cmx 
-edit_user.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_strings.cmo 
-edit_user.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_strings.cmx 
-edit_user_form.cmo: cocanwiki.cmo cocanwiki_date.cmo cocanwiki_template.cmi 
-edit_user_form.cmx: cocanwiki.cmx cocanwiki_date.cmx cocanwiki_template.cmx 
-file.cmo: cocanwiki.cmo 
-file.cmx: cocanwiki.cmx 
-files.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-files.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-forgot_password.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_strings.cmo 
-forgot_password.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_strings.cmx 
-forgot_password_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-forgot_password_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-history.cmo: cocanwiki.cmo cocanwiki_date.cmo cocanwiki_template.cmi 
-history.cmx: cocanwiki.cmx cocanwiki_date.cmx cocanwiki_template.cmx 
-host_menu.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-host_menu.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-hoststyle.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-hoststyle.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-image.cmo: cocanwiki.cmo 
-image.cmx: cocanwiki.cmx 
-images.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-images.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-invite_user.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_template.cmi 
-invite_user.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_template.cmx 
-invite_user_confirm.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_strings.cmo \
-    cocanwiki_template.cmi 
-invite_user_confirm.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_strings.cmx \
-    cocanwiki_template.cmx 
-invite_user_confirm_form.cmo: cocanwiki.cmo cocanwiki_ok.cmo \
-    cocanwiki_strings.cmo cocanwiki_template.cmi 
-invite_user_confirm_form.cmx: cocanwiki.cmx cocanwiki_ok.cmx \
-    cocanwiki_strings.cmx cocanwiki_template.cmx 
-invite_user_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-invite_user_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-largest_pages.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-largest_pages.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-login.cmo: cocanwiki.cmo cocanwiki_ok.cmo 
-login.cmx: cocanwiki.cmx cocanwiki_ok.cmx 
-login_form.cmo: cocanwiki.cmo cocanwiki_strings.cmo cocanwiki_template.cmi 
-login_form.cmx: cocanwiki.cmx cocanwiki_strings.cmx cocanwiki_template.cmx 
-logout.cmo: cocanwiki.cmo cocanwiki_ok.cmo 
-logout.cmx: cocanwiki.cmx cocanwiki_ok.cmx 
-mail_import.cmo: cocanwiki.cmo cocanwiki_date.cmo cocanwiki_mail.cmi \
-    cocanwiki_ok.cmo cocanwiki_pages.cmi cocanwiki_strings.cmo \
-    cocanwiki_template.cmi wikilib.cmi 
-mail_import.cmx: cocanwiki.cmx cocanwiki_date.cmx cocanwiki_mail.cmx \
-    cocanwiki_ok.cmx cocanwiki_pages.cmx cocanwiki_strings.cmx \
-    cocanwiki_template.cmx wikilib.cmx 
-mail_import_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-mail_import_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-mailing_list_confirm.cmo: cocanwiki.cmo cocanwiki_ok.cmo 
-mailing_list_confirm.cmx: cocanwiki.cmx cocanwiki_ok.cmx 
-mailing_list_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-mailing_list_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-mailing_list_send.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_strings.cmo \
-    cocanwiki_template.cmi 
-mailing_list_send.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_strings.cmx \
-    cocanwiki_template.cmx 
-mailing_list_unsubscribe.cmo: cocanwiki.cmo cocanwiki_ok.cmo 
-mailing_list_unsubscribe.cmx: cocanwiki.cmx cocanwiki_ok.cmx 
-mailing_list_view.cmo: cocanwiki.cmo cocanwiki_date.cmo \
-    cocanwiki_template.cmi 
-mailing_list_view.cmx: cocanwiki.cmx cocanwiki_date.cmx \
-    cocanwiki_template.cmx 
-page.cmo: cocanwiki.cmo cocanwiki_date.cmo cocanwiki_links.cmi \
-    cocanwiki_ok.cmo cocanwiki_server_settings.cmo cocanwiki_template.cmi \
-    wikilib.cmi 
-page.cmx: cocanwiki.cmx cocanwiki_date.cmx cocanwiki_links.cmx \
-    cocanwiki_ok.cmx cocanwiki_server_settings.cmx cocanwiki_template.cmx \
-    wikilib.cmx 
-page_email_confirm.cmo: cocanwiki.cmo cocanwiki_ok.cmo 
-page_email_confirm.cmx: cocanwiki.cmx cocanwiki_ok.cmx 
-page_email_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-page_email_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-page_email_send.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_strings.cmo \
-    cocanwiki_template.cmi 
-page_email_send.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_strings.cmx \
-    cocanwiki_template.cmx 
-page_email_unsubscribe.cmo: cocanwiki.cmo cocanwiki_ok.cmo 
-page_email_unsubscribe.cmx: cocanwiki.cmx cocanwiki_ok.cmx 
-pagestyle.cmo: cocanwiki.cmo 
-pagestyle.cmx: cocanwiki.cmx 
-preview.cmo: cocanwiki.cmo wikilib.cmi 
-preview.cmx: cocanwiki.cmx wikilib.cmx 
-rebuild_links.cmo: cocanwiki.cmo cocanwiki_links.cmi cocanwiki_template.cmi 
-rebuild_links.cmx: cocanwiki.cmx cocanwiki_links.cmx cocanwiki_template.cmx 
-recent.cmo: cocanwiki.cmo cocanwiki_date.cmo cocanwiki_template.cmi 
-recent.cmx: cocanwiki.cmx cocanwiki_date.cmx cocanwiki_template.cmx 
-recently_visited.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-recently_visited.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-restore.cmo: cocanwiki.cmo cocanwiki_diff.cmo cocanwiki_emailnotify.cmo \
-    cocanwiki_links.cmi cocanwiki_ok.cmo 
-restore.cmx: cocanwiki.cmx cocanwiki_diff.cmx cocanwiki_emailnotify.cmx \
-    cocanwiki_links.cmx cocanwiki_ok.cmx 
-restore_form.cmo: cocanwiki.cmo cocanwiki_diff.cmo cocanwiki_ok.cmo \
-    cocanwiki_template.cmi 
-restore_form.cmx: cocanwiki.cmx cocanwiki_diff.cmx cocanwiki_ok.cmx \
-    cocanwiki_template.cmx 
-rss.cmo: cocanwiki.cmo cocanwiki_template.cmi wikilib.cmi 
-rss.cmx: cocanwiki.cmx cocanwiki_template.cmx wikilib.cmx 
-search.cmo: cocanwiki.cmo 
-search.cmx: cocanwiki.cmx 
-send_feedback.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_template.cmi 
-send_feedback.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_template.cmx 
-send_feedback_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-send_feedback_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-set_password.cmo: cocanwiki.cmo cocanwiki_ok.cmo 
-set_password.cmx: cocanwiki.cmx cocanwiki_ok.cmx 
-set_password_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-set_password_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-signup.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_strings.cmo 
-signup.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_strings.cmx 
-sitemap.cmo: cocanwiki.cmo cocanwiki_date.cmo cocanwiki_strings.cmo \
-    cocanwiki_template.cmi wikilib.cmi 
-sitemap.cmx: cocanwiki.cmx cocanwiki_date.cmx cocanwiki_strings.cmx \
-    cocanwiki_template.cmx wikilib.cmx 
-stats.cmo: cocanwiki.cmo cocanwiki_server_settings.cmo cocanwiki_template.cmi 
-stats.cmx: cocanwiki.cmx cocanwiki_server_settings.cmx cocanwiki_template.cmx 
-stats_top.cmo: cocanwiki.cmo cocanwiki_server_settings.cmo \
-    cocanwiki_template.cmi 
-stats_top.cmx: cocanwiki.cmx cocanwiki_server_settings.cmx \
-    cocanwiki_template.cmx 
-undelete_file.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_template.cmi 
-undelete_file.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_template.cmx 
-undelete_file_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-undelete_file_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-undelete_image.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_template.cmi 
-undelete_image.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_template.cmx 
-undelete_image_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-undelete_image_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-upload_file.cmo: cocanwiki.cmo cocanwiki_emailnotify.cmo cocanwiki_images.cmi \
-    cocanwiki_ok.cmo cocanwiki_template.cmi 
-upload_file.cmx: cocanwiki.cmx cocanwiki_emailnotify.cmx cocanwiki_images.cmx \
-    cocanwiki_ok.cmx cocanwiki_template.cmx 
-upload_file_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-upload_file_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-upload_image.cmo: cocanwiki.cmo cocanwiki_emailnotify.cmo \
-    cocanwiki_images.cmi cocanwiki_ok.cmo 
-upload_image.cmx: cocanwiki.cmx cocanwiki_emailnotify.cmx \
-    cocanwiki_images.cmx cocanwiki_ok.cmx 
-upload_image_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-upload_image_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-users.cmo: cocanwiki.cmo cocanwiki_date.cmo cocanwiki_template.cmi 
-users.cmx: cocanwiki.cmx cocanwiki_date.cmx cocanwiki_template.cmx 
-visualise_links.cmo: cocanwiki.cmo cocanwiki_files.cmo cocanwiki_template.cmi 
-visualise_links.cmx: cocanwiki.cmx cocanwiki_files.cmx cocanwiki_template.cmx 
-what_links_here.cmo: cocanwiki.cmo cocanwiki_links.cmi cocanwiki_template.cmi 
-what_links_here.cmx: cocanwiki.cmx cocanwiki_links.cmx cocanwiki_template.cmx 
-wikilib.cmo: cocanwiki_strings.cmo wikilib.cmi 
-wikilib.cmx: cocanwiki_strings.cmx wikilib.cmi 
-admin/admin.cmo: cocanwiki.cmo cocanwiki_date.cmo cocanwiki_template.cmi 
-admin/admin.cmx: cocanwiki.cmx cocanwiki_date.cmx cocanwiki_template.cmx 
-admin/create_host.cmo: cocanwiki.cmo cocanwiki_create_host.cmi \
-    cocanwiki_ok.cmo cocanwiki_strings.cmo 
-admin/create_host.cmx: cocanwiki.cmx cocanwiki_create_host.cmx \
-    cocanwiki_ok.cmx cocanwiki_strings.cmx 
-admin/create_host_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-admin/create_host_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-admin/edit_emails.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_strings.cmo 
-admin/edit_emails.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_strings.cmx 
-admin/edit_emails_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-admin/edit_emails_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-admin/edit_host_css.cmo: cocanwiki.cmo cocanwiki_ok.cmo cocanwiki_strings.cmo 
-admin/edit_host_css.cmx: cocanwiki.cmx cocanwiki_ok.cmx cocanwiki_strings.cmx 
-admin/edit_host_css_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-admin/edit_host_css_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-admin/edit_hostnames.cmo: cocanwiki.cmo cocanwiki_ok.cmo \
-    cocanwiki_strings.cmo 
-admin/edit_hostnames.cmx: cocanwiki.cmx cocanwiki_ok.cmx \
-    cocanwiki_strings.cmx 
-admin/edit_hostnames_form.cmo: cocanwiki.cmo cocanwiki_template.cmi 
-admin/edit_hostnames_form.cmx: cocanwiki.cmx cocanwiki_template.cmx 
-admin/host.cmo: cocanwiki.cmo cocanwiki_date.cmo cocanwiki_template.cmi 
-admin/host.cmx: cocanwiki.cmx cocanwiki_date.cmx cocanwiki_template.cmx 
+lib/cocanwiki.cmo: lib/cocanwiki_ok.cmo lib/cocanwiki_strings.cmo 
+lib/cocanwiki.cmx: lib/cocanwiki_ok.cmx lib/cocanwiki_strings.cmx 
+lib/cocanwiki_create_host.cmo: lib/cocanwiki_create_host.cmi 
+lib/cocanwiki_create_host.cmx: lib/cocanwiki_create_host.cmi 
+lib/cocanwiki_diff.cmo: lib/cocanwiki_files.cmo 
+lib/cocanwiki_diff.cmx: lib/cocanwiki_files.cmx 
+lib/cocanwiki_ext_calendar.cmo: lib/cocanwiki.cmo lib/cocanwiki_date.cmo \
+    lib/cocanwiki_strings.cmo lib/cocanwiki_template.cmi 
+lib/cocanwiki_ext_calendar.cmx: lib/cocanwiki.cmx lib/cocanwiki_date.cmx \
+    lib/cocanwiki_strings.cmx lib/cocanwiki_template.cmx 
+lib/cocanwiki_images.cmo: lib/cocanwiki_files.cmo lib/cocanwiki_strings.cmo \
+    lib/cocanwiki_images.cmi 
+lib/cocanwiki_images.cmx: lib/cocanwiki_files.cmx lib/cocanwiki_strings.cmx \
+    lib/cocanwiki_images.cmi 
+lib/cocanwiki_links.cmo: lib/cocanwiki.cmo lib/wikilib.cmi \
+    lib/cocanwiki_links.cmi 
+lib/cocanwiki_links.cmx: lib/cocanwiki.cmx lib/wikilib.cmx \
+    lib/cocanwiki_links.cmi 
+lib/cocanwiki_mail.cmo: lib/cocanwiki_date.cmo lib/cocanwiki_pages.cmi \
+    lib/cocanwiki_template.cmi lib/wikilib.cmi lib/cocanwiki_mail.cmi 
+lib/cocanwiki_mail.cmx: lib/cocanwiki_date.cmx lib/cocanwiki_pages.cmx \
+    lib/cocanwiki_template.cmx lib/wikilib.cmx lib/cocanwiki_mail.cmi 
+lib/cocanwiki_ok.cmo: lib/cocanwiki_template.cmi 
+lib/cocanwiki_ok.cmx: lib/cocanwiki_template.cmx 
+lib/cocanwiki_pages.cmo: lib/cocanwiki.cmo lib/cocanwiki_links.cmi \
+    lib/cocanwiki_strings.cmo lib/wikilib.cmi lib/cocanwiki_pages.cmi 
+lib/cocanwiki_pages.cmx: lib/cocanwiki.cmx lib/cocanwiki_links.cmx \
+    lib/cocanwiki_strings.cmx lib/wikilib.cmx lib/cocanwiki_pages.cmi 
+lib/cocanwiki_template.cmo: lib/cocanwiki_files.cmo lib/cocanwiki_strings.cmo \
+    lib/cocanwiki_version.cmo lib/cocanwiki_template.cmi 
+lib/cocanwiki_template.cmx: lib/cocanwiki_files.cmx lib/cocanwiki_strings.cmx \
+    lib/cocanwiki_version.cmx lib/cocanwiki_template.cmi 
+lib/wikilib.cmo: lib/cocanwiki_strings.cmo lib/wikilib.cmi 
+lib/wikilib.cmx: lib/cocanwiki_strings.cmx lib/wikilib.cmi 
+lib/cocanwiki_mail.cmi: lib/cocanwiki.cmo 
+lib/cocanwiki_pages.cmi: lib/cocanwiki.cmo 
+broken_links.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+broken_links.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+change_password.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo 
+change_password.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx 
+change_password_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+change_password_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+contact.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_template.cmi 
+contact.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_template.cmx 
+contact_show.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+contact_show.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+contacts.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+contacts.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+crash.cmo: lib/cocanwiki.cmo lib/cocanwiki_server_settings.cmo \
+    lib/cocanwiki_template.cmi 
+crash.cmx: lib/cocanwiki.cmx lib/cocanwiki_server_settings.cmx \
+    lib/cocanwiki_template.cmx 
+create_contact.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_strings.cmo 
+create_contact.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_strings.cmx 
+create_contact_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+create_contact_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+create_user.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_strings.cmo 
+create_user.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_strings.cmx 
+create_user_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+create_user_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+dead_ends.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+dead_ends.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+delete_contact.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo 
+delete_contact.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx 
+delete_contact_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+delete_contact_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+delete_file.cmo: lib/cocanwiki.cmo lib/cocanwiki_emailnotify.cmo \
+    lib/cocanwiki_ok.cmo 
+delete_file.cmx: lib/cocanwiki.cmx lib/cocanwiki_emailnotify.cmx \
+    lib/cocanwiki_ok.cmx 
+delete_file_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+delete_file_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+delete_image.cmo: lib/cocanwiki.cmo lib/cocanwiki_emailnotify.cmo \
+    lib/cocanwiki_ok.cmo 
+delete_image.cmx: lib/cocanwiki.cmx lib/cocanwiki_emailnotify.cmx \
+    lib/cocanwiki_ok.cmx 
+delete_image_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+delete_image_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+delete_user.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo 
+delete_user.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx 
+delete_user_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_template.cmi 
+delete_user_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_template.cmx 
+diff.cmo: lib/cocanwiki.cmo lib/cocanwiki_diff.cmo lib/cocanwiki_template.cmi 
+diff.cmx: lib/cocanwiki.cmx lib/cocanwiki_diff.cmx lib/cocanwiki_template.cmx 
+edit.cmo: lib/cocanwiki.cmo lib/cocanwiki_diff.cmo \
+    lib/cocanwiki_emailnotify.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_pages.cmi lib/cocanwiki_strings.cmo \
+    lib/cocanwiki_template.cmi lib/wikilib.cmi 
+edit.cmx: lib/cocanwiki.cmx lib/cocanwiki_diff.cmx \
+    lib/cocanwiki_emailnotify.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_pages.cmx lib/cocanwiki_strings.cmx \
+    lib/cocanwiki_template.cmx lib/wikilib.cmx 
+edit_contact.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_strings.cmo 
+edit_contact.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_strings.cmx 
+edit_contact_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+edit_contact_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+edit_host_css.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_strings.cmo 
+edit_host_css.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_strings.cmx 
+edit_host_css_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+edit_host_css_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+edit_host_settings.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo 
+edit_host_settings.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx 
+edit_host_settings_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+edit_host_settings_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+edit_page_css.cmo: lib/cocanwiki.cmo lib/cocanwiki_diff.cmo \
+    lib/cocanwiki_emailnotify.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_strings.cmo 
+edit_page_css.cmx: lib/cocanwiki.cmx lib/cocanwiki_diff.cmx \
+    lib/cocanwiki_emailnotify.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_strings.cmx 
+edit_page_css_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+edit_page_css_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+edit_page_title.cmo: lib/cocanwiki.cmo lib/cocanwiki_emailnotify.cmo \
+    lib/cocanwiki_ok.cmo lib/cocanwiki_strings.cmo lib/wikilib.cmi 
+edit_page_title.cmx: lib/cocanwiki.cmx lib/cocanwiki_emailnotify.cmx \
+    lib/cocanwiki_ok.cmx lib/cocanwiki_strings.cmx lib/wikilib.cmx 
+edit_page_title_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+edit_page_title_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+edit_sitemenu.cmo: lib/cocanwiki.cmo lib/cocanwiki_emailnotify.cmo \
+    lib/cocanwiki_ok.cmo lib/cocanwiki_strings.cmo lib/cocanwiki_template.cmi 
+edit_sitemenu.cmx: lib/cocanwiki.cmx lib/cocanwiki_emailnotify.cmx \
+    lib/cocanwiki_ok.cmx lib/cocanwiki_strings.cmx lib/cocanwiki_template.cmx 
+edit_user.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_strings.cmo 
+edit_user.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_strings.cmx 
+edit_user_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_date.cmo \
+    lib/cocanwiki_template.cmi 
+edit_user_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_date.cmx \
+    lib/cocanwiki_template.cmx 
+file.cmo: lib/cocanwiki.cmo 
+file.cmx: lib/cocanwiki.cmx 
+files.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+files.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+forgot_password.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_strings.cmo 
+forgot_password.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_strings.cmx 
+forgot_password_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+forgot_password_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+history.cmo: lib/cocanwiki.cmo lib/cocanwiki_date.cmo \
+    lib/cocanwiki_template.cmi 
+history.cmx: lib/cocanwiki.cmx lib/cocanwiki_date.cmx \
+    lib/cocanwiki_template.cmx 
+host_menu.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+host_menu.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+hoststyle.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+hoststyle.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+image.cmo: lib/cocanwiki.cmo 
+image.cmx: lib/cocanwiki.cmx 
+images.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+images.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+invite_user.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_template.cmi 
+invite_user.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_template.cmx 
+invite_user_confirm.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_strings.cmo lib/cocanwiki_template.cmi 
+invite_user_confirm.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_strings.cmx lib/cocanwiki_template.cmx 
+invite_user_confirm_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_strings.cmo lib/cocanwiki_template.cmi 
+invite_user_confirm_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_strings.cmx lib/cocanwiki_template.cmx 
+invite_user_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+invite_user_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+largest_pages.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+largest_pages.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+login.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo 
+login.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx 
+login_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_strings.cmo \
+    lib/cocanwiki_template.cmi 
+login_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_strings.cmx \
+    lib/cocanwiki_template.cmx 
+logout.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo 
+logout.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx 
+mail_import.cmo: lib/cocanwiki.cmo lib/cocanwiki_date.cmo \
+    lib/cocanwiki_mail.cmi lib/cocanwiki_ok.cmo lib/cocanwiki_pages.cmi \
+    lib/cocanwiki_strings.cmo lib/cocanwiki_template.cmi lib/wikilib.cmi 
+mail_import.cmx: lib/cocanwiki.cmx lib/cocanwiki_date.cmx \
+    lib/cocanwiki_mail.cmx lib/cocanwiki_ok.cmx lib/cocanwiki_pages.cmx \
+    lib/cocanwiki_strings.cmx lib/cocanwiki_template.cmx lib/wikilib.cmx 
+mail_import_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+mail_import_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+mail_rebuild.cmo: lib/cocanwiki.cmo lib/cocanwiki_mail.cmi \
+    lib/cocanwiki_ok.cmo 
+mail_rebuild.cmx: lib/cocanwiki.cmx lib/cocanwiki_mail.cmx \
+    lib/cocanwiki_ok.cmx 
+mailing_list_confirm.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo 
+mailing_list_confirm.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx 
+mailing_list_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+mailing_list_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+mailing_list_send.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_strings.cmo lib/cocanwiki_template.cmi 
+mailing_list_send.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_strings.cmx lib/cocanwiki_template.cmx 
+mailing_list_unsubscribe.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo 
+mailing_list_unsubscribe.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx 
+mailing_list_view.cmo: lib/cocanwiki.cmo lib/cocanwiki_date.cmo \
+    lib/cocanwiki_template.cmi 
+mailing_list_view.cmx: lib/cocanwiki.cmx lib/cocanwiki_date.cmx \
+    lib/cocanwiki_template.cmx 
+page.cmo: lib/cocanwiki.cmo lib/cocanwiki_date.cmo lib/cocanwiki_links.cmi \
+    lib/cocanwiki_ok.cmo lib/cocanwiki_server_settings.cmo \
+    lib/cocanwiki_template.cmi lib/wikilib.cmi 
+page.cmx: lib/cocanwiki.cmx lib/cocanwiki_date.cmx lib/cocanwiki_links.cmx \
+    lib/cocanwiki_ok.cmx lib/cocanwiki_server_settings.cmx \
+    lib/cocanwiki_template.cmx lib/wikilib.cmx 
+page_email_confirm.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo 
+page_email_confirm.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx 
+page_email_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+page_email_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+page_email_send.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_strings.cmo lib/cocanwiki_template.cmi 
+page_email_send.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_strings.cmx lib/cocanwiki_template.cmx 
+page_email_unsubscribe.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo 
+page_email_unsubscribe.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx 
+pagestyle.cmo: lib/cocanwiki.cmo 
+pagestyle.cmx: lib/cocanwiki.cmx 
+preview.cmo: lib/cocanwiki.cmo lib/wikilib.cmi 
+preview.cmx: lib/cocanwiki.cmx lib/wikilib.cmx 
+rebuild_links.cmo: lib/cocanwiki.cmo lib/cocanwiki_links.cmi \
+    lib/cocanwiki_template.cmi 
+rebuild_links.cmx: lib/cocanwiki.cmx lib/cocanwiki_links.cmx \
+    lib/cocanwiki_template.cmx 
+recent.cmo: lib/cocanwiki.cmo lib/cocanwiki_date.cmo \
+    lib/cocanwiki_template.cmi 
+recent.cmx: lib/cocanwiki.cmx lib/cocanwiki_date.cmx \
+    lib/cocanwiki_template.cmx 
+recently_visited.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+recently_visited.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+restore.cmo: lib/cocanwiki.cmo lib/cocanwiki_diff.cmo \
+    lib/cocanwiki_emailnotify.cmo lib/cocanwiki_links.cmi \
+    lib/cocanwiki_ok.cmo 
+restore.cmx: lib/cocanwiki.cmx lib/cocanwiki_diff.cmx \
+    lib/cocanwiki_emailnotify.cmx lib/cocanwiki_links.cmx \
+    lib/cocanwiki_ok.cmx 
+restore_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_diff.cmo \
+    lib/cocanwiki_ok.cmo lib/cocanwiki_template.cmi 
+restore_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_diff.cmx \
+    lib/cocanwiki_ok.cmx lib/cocanwiki_template.cmx 
+rss.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi lib/wikilib.cmi 
+rss.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx lib/wikilib.cmx 
+search.cmo: lib/cocanwiki.cmo 
+search.cmx: lib/cocanwiki.cmx 
+send_feedback.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_template.cmi 
+send_feedback.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_template.cmx 
+send_feedback_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+send_feedback_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+set_password.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo 
+set_password.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx 
+set_password_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+set_password_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+signup.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo lib/cocanwiki_strings.cmo 
+signup.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx lib/cocanwiki_strings.cmx 
+sitemap.cmo: lib/cocanwiki.cmo lib/cocanwiki_date.cmo \
+    lib/cocanwiki_strings.cmo lib/cocanwiki_template.cmi lib/wikilib.cmi 
+sitemap.cmx: lib/cocanwiki.cmx lib/cocanwiki_date.cmx \
+    lib/cocanwiki_strings.cmx lib/cocanwiki_template.cmx lib/wikilib.cmx 
+stats.cmo: lib/cocanwiki.cmo lib/cocanwiki_server_settings.cmo \
+    lib/cocanwiki_template.cmi 
+stats.cmx: lib/cocanwiki.cmx lib/cocanwiki_server_settings.cmx \
+    lib/cocanwiki_template.cmx 
+stats_top.cmo: lib/cocanwiki.cmo lib/cocanwiki_server_settings.cmo \
+    lib/cocanwiki_template.cmi 
+stats_top.cmx: lib/cocanwiki.cmx lib/cocanwiki_server_settings.cmx \
+    lib/cocanwiki_template.cmx 
+undelete_file.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_template.cmi 
+undelete_file.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_template.cmx 
+undelete_file_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+undelete_file_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+undelete_image.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_template.cmi 
+undelete_image.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_template.cmx 
+undelete_image_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+undelete_image_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+upload_file.cmo: lib/cocanwiki.cmo lib/cocanwiki_emailnotify.cmo \
+    lib/cocanwiki_images.cmi lib/cocanwiki_ok.cmo lib/cocanwiki_template.cmi 
+upload_file.cmx: lib/cocanwiki.cmx lib/cocanwiki_emailnotify.cmx \
+    lib/cocanwiki_images.cmx lib/cocanwiki_ok.cmx lib/cocanwiki_template.cmx 
+upload_file_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+upload_file_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+upload_image.cmo: lib/cocanwiki.cmo lib/cocanwiki_emailnotify.cmo \
+    lib/cocanwiki_images.cmi lib/cocanwiki_ok.cmo 
+upload_image.cmx: lib/cocanwiki.cmx lib/cocanwiki_emailnotify.cmx \
+    lib/cocanwiki_images.cmx lib/cocanwiki_ok.cmx 
+upload_image_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+upload_image_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+users.cmo: lib/cocanwiki.cmo lib/cocanwiki_date.cmo \
+    lib/cocanwiki_template.cmi 
+users.cmx: lib/cocanwiki.cmx lib/cocanwiki_date.cmx \
+    lib/cocanwiki_template.cmx 
+what_links_here.cmo: lib/cocanwiki.cmo lib/cocanwiki_links.cmi \
+    lib/cocanwiki_template.cmi 
+what_links_here.cmx: lib/cocanwiki.cmx lib/cocanwiki_links.cmx \
+    lib/cocanwiki_template.cmx 
+admin/admin.cmo: lib/cocanwiki.cmo lib/cocanwiki_date.cmo \
+    lib/cocanwiki_template.cmi 
+admin/admin.cmx: lib/cocanwiki.cmx lib/cocanwiki_date.cmx \
+    lib/cocanwiki_template.cmx 
+admin/create_host.cmo: lib/cocanwiki.cmo lib/cocanwiki_create_host.cmi \
+    lib/cocanwiki_ok.cmo lib/cocanwiki_strings.cmo 
+admin/create_host.cmx: lib/cocanwiki.cmx lib/cocanwiki_create_host.cmx \
+    lib/cocanwiki_ok.cmx lib/cocanwiki_strings.cmx 
+admin/create_host_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+admin/create_host_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+admin/edit_emails.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_strings.cmo 
+admin/edit_emails.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_strings.cmx 
+admin/edit_emails_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+admin/edit_emails_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+admin/edit_host_css.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_strings.cmo 
+admin/edit_host_css.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_strings.cmx 
+admin/edit_host_css_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+admin/edit_host_css_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+admin/edit_hostnames.cmo: lib/cocanwiki.cmo lib/cocanwiki_ok.cmo \
+    lib/cocanwiki_strings.cmo 
+admin/edit_hostnames.cmx: lib/cocanwiki.cmx lib/cocanwiki_ok.cmx \
+    lib/cocanwiki_strings.cmx 
+admin/edit_hostnames_form.cmo: lib/cocanwiki.cmo lib/cocanwiki_template.cmi 
+admin/edit_hostnames_form.cmx: lib/cocanwiki.cmx lib/cocanwiki_template.cmx 
+admin/host.cmo: lib/cocanwiki.cmo lib/cocanwiki_date.cmo \
+    lib/cocanwiki_template.cmi 
+admin/host.cmx: lib/cocanwiki.cmx lib/cocanwiki_date.cmx \
+    lib/cocanwiki_template.cmx 
similarity index 95%
rename from scripts/00-TEMPLATE.ml
rename to scripts/00-TEMPLATE.ml.
index e2be28f..3047aeb 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: 00-TEMPLATE.ml,v 1.4 2004/09/28 11:51:38 rich Exp $
+ * $Id: 00-TEMPLATE.ml.,v 1.1 2004/10/21 11:42:04 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
index 92ab906..277aaf6 100644 (file)
@@ -1,5 +1,5 @@
 # Makefile for COCANWIKI.
-# $Id: Makefile,v 1.42 2004/10/20 15:17:18 rich Exp $
+# $Id: Makefile,v 1.43 2004/10/21 11:42:04 rich Exp $
 
 include ../Makefile.config
 
@@ -7,156 +7,39 @@ OCAMLC := ocamlc
 # XXX Move GregorianDate out of +merjis.
 OCAMLCFLAGS := -w s \
        -I +apache -I +pcre -I +dbi -I +extlib -I +netstring \
-       -I +merjis
+       -I +merjis -I lib
 CPP := cpp
 
-LIB_OBJS := \
-       cocanwiki_date.cmo \
-       cocanwiki_version.cmo \
-       cocanwiki_files.cmo \
-       cocanwiki_strings.cmo \
-       cocanwiki_images.cmo \
-       cocanwiki_server_settings.cmo \
-       cocanwiki_template.cmo \
-       cocanwiki_ok.cmo \
-       cocanwiki.cmo \
-       cocanwiki_diff.cmo \
-       cocanwiki_emailnotify.cmo \
-       wikilib.cmo \
-       cocanwiki_links.cmo \
-       cocanwiki_pages.cmo \
-       cocanwiki_create_host.cmo \
-       cocanwiki_ext_calendar.cmo \
-       cocanwiki_mail.cmo
-
-OBJS := \
-       broken_links.cmo \
-       change_password.cmo \
-       change_password_form.cmo \
-       contact.cmo \
-       contact_show.cmo \
-       contacts.cmo \
-       crash.cmo \
-       create_contact.cmo \
-       create_contact_form.cmo \
-       create_user.cmo \
-       create_user_form.cmo \
-       dead_ends.cmo \
-       delete_contact.cmo \
-       delete_contact_form.cmo \
-       delete_file.cmo \
-       delete_file_form.cmo \
-       delete_image.cmo \
-       delete_image_form.cmo \
-       delete_user.cmo \
-       delete_user_form.cmo \
-       diff.cmo \
-       edit.cmo \
-       edit_contact.cmo \
-       edit_contact_form.cmo \
-       edit_host_css.cmo \
-       edit_host_css_form.cmo \
-       edit_host_settings.cmo \
-       edit_host_settings_form.cmo \
-       edit_page_css.cmo \
-       edit_page_css_form.cmo \
-       edit_page_title.cmo \
-       edit_page_title_form.cmo \
-       edit_sitemenu.cmo \
-       edit_user.cmo \
-       edit_user_form.cmo \
-       file.cmo \
-       files.cmo \
-       forgot_password.cmo \
-       forgot_password_form.cmo \
-       history.cmo \
-       hoststyle.cmo \
-       host_menu.cmo \
-       image.cmo \
-       images.cmo \
-       invite_user.cmo \
-       invite_user_form.cmo \
-       invite_user_confirm.cmo \
-       invite_user_confirm_form.cmo \
-       largest_pages.cmo \
-       login.cmo \
-       login_form.cmo \
-       logout.cmo \
-       mail_import.cmo \
-       mail_import_form.cmo \
-       mailing_list_confirm.cmo \
-       mailing_list_form.cmo \
-       mailing_list_send.cmo \
-       mailing_list_unsubscribe.cmo \
-       mailing_list_view.cmo \
-       page.cmo \
-       page_email_confirm.cmo \
-       page_email_form.cmo \
-       page_email_send.cmo \
-       page_email_unsubscribe.cmo \
-       pagestyle.cmo \
-       preview.cmo \
-       rebuild_links.cmo \
-       recent.cmo \
-       recently_visited.cmo \
-       restore.cmo \
-       restore_form.cmo \
-       rss.cmo \
-       search.cmo \
-       send_feedback.cmo \
-       send_feedback_form.cmo \
-       set_password.cmo \
-       set_password_form.cmo \
-       signup.cmo \
-       sitemap.cmo \
-       stats.cmo \
-       stats_top.cmo \
-       undelete_file.cmo \
-       undelete_file_form.cmo \
-       undelete_image.cmo \
-       undelete_image_form.cmo \
-       upload_file.cmo \
-       upload_file_form.cmo \
-       upload_image.cmo \
-       upload_image_form.cmo \
-       users.cmo \
-       what_links_here.cmo
-
-# Not working:
-#      visualise_links.cmo
-
-ADMIN_OBJS := \
-       admin/admin.cmo \
-       admin/create_host.cmo \
-       admin/create_host_form.cmo \
-       admin/edit_emails.cmo \
-       admin/edit_emails_form.cmo \
-       admin/edit_host_css.cmo \
-       admin/edit_host_css_form.cmo \
-       admin/edit_hostnames.cmo \
-       admin/edit_hostnames_form.cmo \
-       admin/host.cmo
+SRCS := $(wildcard *.ml)
+ADMINS_SRCS := $(wildcard admin/*.ml)
+
+OBJS := $(SRCS:.ml=.cmo)
+ADMIN_OBJS := $(ADMIN_SRCS:.ml=.cmo)
+
+LIB_OBJS := $(patsubst %,lib/%,$(shell cd lib && ocamldsort -byte *.ml *.mli))
 
 INSTDIR := ../html/_bin
 
-all: cocanwiki.cma $(OBJS) $(ADMIN_OBJS)
+all: lib/cocanwiki.cma $(OBJS) $(ADMIN_OBJS)
 
-cocanwiki.cma: $(LIB_OBJS)
+lib/cocanwiki.cma: $(LIB_OBJS)
        $(OCAMLC) $(OCAMLCFLAGS) -a -o $@ $^
 
-cocanwiki_version.ml: cocanwiki_version.ml.in ../Makefile.config
+lib/cocanwiki_version.ml: lib/cocanwiki_version.ml.in ../Makefile.config
        $(CPP) -P -DPACKAGE="$(PACKAGE)" -DVERSION="$(VERSION)" $< > $@
 
 clean:
-       rm -f *~ *.bak core *.cmi *.cmo *.cma cocanwiki_version.ml
+       rm -f *~ *.bak core *.cmi *.cmo *.cma lib/cocanwiki_version.ml
+       rm -f lib/*~ lib/*.bak lib/core lib/*.cmi lib/*.cmo lib/*.cma
        rm -f admin/*~ admin/*.bak admin/core admin/*.cmi admin/*.cmo
 
 install:
-       install -d -m 0755 $(INSTDIR)
-       install -c -m 0555 cocanwiki.cma $(OBJS) $(INSTDIR)
-
-       install -d -m 0755 $(INSTDIR)/admin
-       install -c -m 0555 $(ADMIN_OBJS) $(INSTDIR)/admin
+       exit 1
+#      install -d -m 0755 $(INSTDIR)
+#      install -c -m 0555 cocanwiki.cma $(OBJS) $(INSTDIR)
+#
+#      install -d -m 0755 $(INSTDIR)/admin
+#      install -c -m 0555 $(ADMIN_OBJS) $(INSTDIR)/admin
 
 %.cmi: %.mli
        $(OCAMLC) $(OCAMLCFLAGS) -c $<
@@ -168,8 +51,7 @@ dep:    .depend
 depend: .depend
 
 .depend:
-       rm -f .depend
-       ocamldep *.mli *.ml admin/*.ml > $@
+       ocamldep -I lib lib/*.ml lib/*.mli *.ml admin/*.ml > $@
 
 ifeq ($(wildcard .depend),.depend)
 include .depend
diff --git a/scripts/lib/.cvsignore b/scripts/lib/.cvsignore
new file mode 100644 (file)
index 0000000..a2d3153
--- /dev/null
@@ -0,0 +1,4 @@
+*.cmi
+*.cmo
+*.cma
+cocanwiki_version.ml
\ No newline at end of file
similarity index 99%
rename from scripts/cocanwiki.ml
rename to scripts/lib/cocanwiki.ml
index 8bd50b8..dfa44eb 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: cocanwiki.ml,v 1.18 2004/10/14 18:04:56 rich Exp $
+ * $Id: cocanwiki.ml,v 1.1 2004/10/21 11:42:05 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
similarity index 98%
rename from scripts/cocanwiki_create_host.ml
rename to scripts/lib/cocanwiki_create_host.ml
index 981f978..cfc1819 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: cocanwiki_create_host.ml,v 1.2 2004/10/09 12:24:47 rich Exp $
+ * $Id: cocanwiki_create_host.ml,v 1.1 2004/10/21 11:42:05 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
similarity index 94%
rename from scripts/cocanwiki_create_host.mli
rename to scripts/lib/cocanwiki_create_host.mli
index 3eb7a58..f4ed7f7 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: cocanwiki_create_host.mli,v 1.2 2004/10/09 12:24:48 rich Exp $
+ * $Id: cocanwiki_create_host.mli,v 1.1 2004/10/21 11:42:05 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
similarity index 96%
rename from scripts/cocanwiki_date.ml
rename to scripts/lib/cocanwiki_date.ml
index 42edc44..ac63b2e 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: cocanwiki_date.ml,v 1.5 2004/10/07 16:54:24 rich Exp $
+ * $Id: cocanwiki_date.ml,v 1.1 2004/10/21 11:42:05 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
similarity index 98%
rename from scripts/cocanwiki_diff.ml
rename to scripts/lib/cocanwiki_diff.ml
index 97f4b65..849a818 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: cocanwiki_diff.ml,v 1.4 2004/09/20 10:56:47 rich Exp $
+ * $Id: cocanwiki_diff.ml,v 1.1 2004/10/21 11:42:05 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
similarity index 96%
rename from scripts/cocanwiki_emailnotify.ml
rename to scripts/lib/cocanwiki_emailnotify.ml
index bd9ec98..ef844a8 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: cocanwiki_emailnotify.ml,v 1.4 2004/09/24 15:53:57 rich Exp $
+ * $Id: cocanwiki_emailnotify.ml,v 1.1 2004/10/21 11:42:05 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
similarity index 99%
rename from scripts/cocanwiki_ext_calendar.ml
rename to scripts/lib/cocanwiki_ext_calendar.ml
index c1df9f9..61fab34 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: cocanwiki_ext_calendar.ml,v 1.3 2004/10/09 08:33:02 rich Exp $
+ * $Id: cocanwiki_ext_calendar.ml,v 1.1 2004/10/21 11:42:05 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
similarity index 97%
rename from scripts/cocanwiki_files.ml
rename to scripts/lib/cocanwiki_files.ml
index 0837911..2c41442 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: cocanwiki_files.ml,v 1.2 2004/09/09 12:21:22 rich Exp $
+ * $Id: cocanwiki_files.ml,v 1.1 2004/10/21 11:42:05 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
similarity index 98%
rename from scripts/cocanwiki_images.ml
rename to scripts/lib/cocanwiki_images.ml
index 983b15f..0ebdb1a 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: cocanwiki_images.ml,v 1.2 2004/09/09 12:21:22 rich Exp $
+ * $Id: cocanwiki_images.ml,v 1.1 2004/10/21 11:42:05 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
similarity index 94%
rename from scripts/cocanwiki_images.mli
rename to scripts/lib/cocanwiki_images.mli
index 5525ad0..cb34dba 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: cocanwiki_images.mli,v 1.2 2004/09/09 12:21:22 rich Exp $
+ * $Id: cocanwiki_images.mli,v 1.1 2004/10/21 11:42:05 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
similarity index 98%
rename from scripts/cocanwiki_links.ml
rename to scripts/lib/cocanwiki_links.ml
index 0cfcd82..89d6621 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: cocanwiki_links.ml,v 1.6 2004/10/17 20:03:23 rich Exp $
+ * $Id: cocanwiki_links.ml,v 1.1 2004/10/21 11:42:05 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
similarity index 94%
rename from scripts/cocanwiki_links.mli
rename to scripts/lib/cocanwiki_links.mli
index de2b615..59d0c0c 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: cocanwiki_links.mli,v 1.3 2004/10/10 14:44:50 rich Exp $
+ * $Id: cocanwiki_links.mli,v 1.1 2004/10/21 11:42:05 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
similarity index 92%
rename from scripts/cocanwiki_mail.ml
rename to scripts/lib/cocanwiki_mail.ml
index 108cd1d..6ac57f2 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: cocanwiki_mail.ml,v 1.2 2004/10/20 15:17:18 rich Exp $
+ * $Id: cocanwiki_mail.ml,v 1.1 2004/10/21 11:42:05 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
@@ -126,6 +126,7 @@ struct
     match n_data.parent with
       | None -> ()
       | Some p ->
+         Hashtbl.replace f n { n_data with parent = None };
          let p_data = Hashtbl.find f p in
          Hashtbl.replace f p
            { p_data with
@@ -282,29 +283,32 @@ let thread_mail (dbh : Dbi.connection) hostid ?user ?r year month =
 
   (* Step 4B: Promote children of (some) empty containers. *)
   let threads =
-    let promote (Tree (message, children)) =
-      (* Find the grandchildren to promote. *)
-      let children, grandchildren =
-       List.partition (function
-                         | Tree (Some _, _) -> true
-                         | Tree (None, _) -> false) children in
-      let grandchildren = List.map (fun (Tree (_, c)) -> c) grandchildren in
-      let grandchildren = List.concat grandchildren in
-      let children = children @ grandchildren in
-      Tree (message, children) in
-    let threads = List.map promote threads in
-
-    (* At the top level, find any empty containers with exactly one child
-     * and promote those children to top-level threads.
+    (* Below the top level there should be no empty containers after
+     * this.  Any empty container with children has those children
+     * promoted up.
      *)
-    let threads, new_threads =
-      List.partition (function
-                       | Tree (None, [child]) -> false
-                       | _ -> true) threads in
-    let new_threads = List.map (function
-                                 | Tree (_, [child]) -> child
-                                 | _ -> assert false) new_threads in
-    threads @ new_threads in
+    let rec promote = function
+       [] -> []
+      | Tree (None, children) :: xs ->
+         let children = promote children in
+         children @ promote xs
+      | Tree (message, children) :: xs ->
+         let children = promote children in
+         Tree (message, children) :: promote xs
+    in
+    let threads = List.map (fun (Tree (message, children)) ->
+                             let children = promote children in
+                             Tree (message, children)) threads in
+
+    (* At the top level we're allowed to have empty containers.  However
+     * if we have an empty container with just a single child, then
+     * promote that child.
+     *)
+    let threads = List.map (function
+                               Tree (None, [child]) -> child
+                             | message -> message) threads in
+
+    threads in
 
   (* Step 5: Group root set by subject. *)
   (* Couldn't be arsed to implement this.  If someone really cares about
@@ -382,7 +386,8 @@ let thread_mail (dbh : Dbi.connection) hostid ?user ?r year month =
                      failwith ("error finding URL for message: " ^ title) in
 
              let html = markup children in
-             sprintf "<li> <a href=\"/%s\">%s</a>\n" url subject
+             sprintf "<li> <a href=\"/%s\" class=\"internal\">%s</a>\n"
+               url (Cgi_escape.escape_html subject)
              :: html @ [ "</li>\n" ]
        in
        "<ul>\n" :: List.concat (List.map f threads) @ ["</ul>\n"]
similarity index 94%
rename from scripts/cocanwiki_mail.mli
rename to scripts/lib/cocanwiki_mail.mli
index e97aed5..93c7b00 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: cocanwiki_mail.mli,v 1.2 2004/10/20 15:17:18 rich Exp $
+ * $Id: cocanwiki_mail.mli,v 1.1 2004/10/21 11:42:05 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
similarity index 96%
rename from scripts/cocanwiki_ok.ml
rename to scripts/lib/cocanwiki_ok.ml
index 6067197..70ac52f 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: cocanwiki_ok.ml,v 1.6 2004/10/12 10:00:38 rich Exp $
+ * $Id: cocanwiki_ok.ml,v 1.1 2004/10/21 11:42:05 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
similarity index 99%
rename from scripts/cocanwiki_pages.ml
rename to scripts/lib/cocanwiki_pages.ml
index b3bf2a8..2530688 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: cocanwiki_pages.ml,v 1.1 2004/10/11 14:13:04 rich Exp $
+ * $Id: cocanwiki_pages.ml,v 1.1 2004/10/21 11:42:05 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
similarity index 97%
rename from scripts/cocanwiki_pages.mli
rename to scripts/lib/cocanwiki_pages.mli
index fc1dc71..92c6809 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: cocanwiki_pages.mli,v 1.1 2004/10/11 14:13:04 rich Exp $
+ * $Id: cocanwiki_pages.mli,v 1.1 2004/10/21 11:42:05 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
similarity index 97%
rename from scripts/cocanwiki_server_settings.ml
rename to scripts/lib/cocanwiki_server_settings.ml
index f8a7898..40a7ad8 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: cocanwiki_server_settings.ml,v 1.3 2004/10/09 15:01:58 rich Exp $
+ * $Id: cocanwiki_server_settings.ml,v 1.1 2004/10/21 11:42:05 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
similarity index 97%
rename from scripts/cocanwiki_strings.ml
rename to scripts/lib/cocanwiki_strings.ml
index 8504f1a..a2071a8 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: cocanwiki_strings.ml,v 1.2 2004/09/09 12:21:22 rich Exp $
+ * $Id: cocanwiki_strings.ml,v 1.1 2004/10/21 11:42:05 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
similarity index 98%
rename from scripts/cocanwiki_template.ml
rename to scripts/lib/cocanwiki_template.ml
index 1ad7695..c647845 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: cocanwiki_template.ml,v 1.6 2004/10/17 19:43:19 rich Exp $
+ * $Id: cocanwiki_template.ml,v 1.1 2004/10/21 11:42:05 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
@@ -27,7 +27,6 @@ open Unix
 
 open Cocanwiki_files
 open Cocanwiki_strings
-open Cocanwiki
 
 (* This is used to generate the id fields from URLs on the site menu. *)
 let id_of_url str =
similarity index 95%
rename from scripts/cocanwiki_template.mli
rename to scripts/lib/cocanwiki_template.mli
index 782b4f7..21ebef2 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: cocanwiki_template.mli,v 1.3 2004/10/17 19:43:19 rich Exp $
+ * $Id: cocanwiki_template.mli,v 1.1 2004/10/21 11:42:05 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
diff --git a/scripts/lib/cocanwiki_version.ml.in b/scripts/lib/cocanwiki_version.ml.in
new file mode 100644 (file)
index 0000000..c0197ea
--- /dev/null
@@ -0,0 +1,4 @@
+#define xstr(s) str(s)
+#define str(s) #s
+let package = xstr(PACKAGE)
+let version = xstr(VERSION)
similarity index 99%
rename from scripts/wikilib.ml
rename to scripts/lib/wikilib.ml
index 58ba0e5..0ba0425 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.15 2004/10/17 17:29:48 rich Exp $
+ * $Id: wikilib.ml,v 1.1 2004/10/21 11:42:05 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
@@ -44,7 +44,8 @@ let generate_url_of_title (dbh : Dbi.connection) hostid title =
   (* Create a suitable URL from this title. *)
   let url =
     String.map (function
-                   '\000' .. ' ' | '<' | '>' | '&' | '"' | '+' | '#' | '%'
+                 | '\000' .. ' ' | '<' | '>' | '&' | '"'
+                 | '+' | '#' | '%' | '?'
                      -> '_'
                  | c -> Char.lowercase c) title in
 
similarity index 95%
rename from scripts/wikilib.mli
rename to scripts/lib/wikilib.mli
index 96ee7e1..17ce9c8 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.mli,v 1.2 2004/09/09 12:21:22 rich Exp $
+ * $Id: wikilib.mli,v 1.1 2004/10/21 11:42:05 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
diff --git a/scripts/mail_rebuild.ml b/scripts/mail_rebuild.ml
new file mode 100644 (file)
index 0000000..cb5ba0e
--- /dev/null
@@ -0,0 +1,45 @@
+(* COCANWIKI - a wiki written in Objective CAML.
+ * Written by Richard W.M. Jones <rich@merjis.com>.
+ * Copyright (C) 2004 Merjis Ltd.
+ * $Id: mail_rebuild.ml,v 1.1 2004/10/21 11:42:04 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; see the file COPYING.  If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *)
+
+open Apache
+open Registry
+open Cgi
+open Printf
+
+open Cocanwiki
+open Cocanwiki_ok
+open Cocanwiki_mail
+
+let run r (q : cgi) (dbh : Dbi.connection) hostid _ user =
+  let year = int_of_string (q#param "year") in
+  let month = int_of_string (q#param "month") in
+
+  thread_mail dbh hostid ~user ~r year month;
+
+  (* Commit to the database. *)
+  dbh#commit ();
+
+  (* Finish off. *)
+  ok ~title:"Rebuilt"
+    q ("Thread index rebuilt.")
+
+let () =
+  register_script ~restrict:[CanImportMail] run
similarity index 98%
rename from scripts/visualise_links.ml
rename to scripts/visualise_links.ml.
index fe5de8d..54e0460 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: visualise_links.ml,v 1.1 2004/09/29 09:44:52 rich Exp $
+ * $Id: visualise_links.ml.,v 1.1 2004/10/21 11:42:04 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
index 5432b9e..260ebf7 100644 (file)
@@ -13,7 +13,7 @@
 <table class="left_table">
 <tr>
 <th> File: </th>
-<td> <input type="file" name="file" value=""/> </td>
+<td> <input type="file" name="file" value="" size="60"/> </td>
 </tr>
 <tr>
 <th> Flags: </th>