cygwin環境下のemacs22でswi-prologに.proを関連づけしC-cC-lで述語mainを実行するようにする

あとprologモードはswiplを探すらしいのだがplを指定してやる。

(setq auto-mode-alist
      (append '(("\\.pro" . prolog-mode))
       auto-mode-alist))
(setq prolog-program-name "pl")

plが探せないみたいなので.bashrcに以下を追加

PATH=/lib/pl-5.6.36/bin/i686-cygwin/:$PATH

prolog.elに以下のパッチをあたえるとmainを自動で評価する。haskell-modeと同じく編集しているバッファにカーソルは存続する
prolog.elcを消すかバイトコンパイルするのを忘れないように。

$ diff -u prolog.el.orig prolog.el      
--- prolog.el.orig      2007-06-04 09:34:10.000000000 +0900
+++ prolog.el   2007-12-13 18:09:21.000000000 +0900
@@ -384,10 +384,14 @@
   (interactive)
   (save-buffer)
   (let ((file buffer-file-name)
-        (proc (inferior-prolog-process)))
+        (proc (inferior-prolog-process))
+       (file-buffer (current-buffer)))
     (with-current-buffer (process-buffer proc)
       (comint-send-string proc (concat "['" (file-relative-name file) "'].\n"))
-      (pop-to-buffer (current-buffer)))))
+      (comint-send-string proc "main.\n")
+      (pop-to-buffer (current-buffer))
+      (pop-to-buffer file-buffer)
+      )))
 
 (provide 'prolog)