From 8bf0176e8ce10708a520e744f45897770a1b850b Mon Sep 17 00:00:00 2001
From: "Jose A. Ortega Ruiz" <jao@gnu.org>
Date: Mon, 12 Jan 2009 03:09:50 +0100
Subject: [PATCH 1/4] FUEL: Typo.

---
 misc/fuel/fuel-debug-uses.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/misc/fuel/fuel-debug-uses.el b/misc/fuel/fuel-debug-uses.el
index d37cf7b58d..af4f2ae60b 100644
--- a/misc/fuel/fuel-debug-uses.el
+++ b/misc/fuel/fuel-debug-uses.el
@@ -72,7 +72,7 @@
  (defvar fuel-debug--uses-restarts nil))
 
 (defsubst fuel-debug--uses-insert-title ()
-  (insert "Infering USING: stanza for " fuel-debug--uses-file ".\n\n"))
+  (insert "Inferring USING: stanza for " fuel-debug--uses-file ".\n\n"))
 
 (defun fuel-debug--uses-prepare (file)
   (fuel--with-popup (fuel-debug--uses-buffer)
@@ -173,7 +173,7 @@
     map))
 
 (defconst fuel-debug--uses-header-regex
-  (format "^%s.*$" (regexp-opt '("Infering USING: stanza for "
+  (format "^%s.*$" (regexp-opt '("Inferring USING: stanza for "
                                  "Current USING: is already fine!"
                                  "Current vocabulary list:"
                                  "Correct vocabulary list:"

From fb98eaf9905126006e8c9e45ea1a29d175096c18 Mon Sep 17 00:00:00 2001
From: "Jose A. Ortega Ruiz" <jao@gnu.org>
Date: Mon, 12 Jan 2009 03:16:56 +0100
Subject: [PATCH 2/4] FUEL: Fix stack effect font-lock.

---
 misc/fuel/fuel-font-lock.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/misc/fuel/fuel-font-lock.el b/misc/fuel/fuel-font-lock.el
index b12be1eac7..7b129eef2a 100644
--- a/misc/fuel/fuel-font-lock.el
+++ b/misc/fuel/fuel-font-lock.el
@@ -72,10 +72,10 @@
 ;;; Font lock:
 
 (defconst fuel-font-lock--font-lock-keywords
-  `((,fuel-syntax--parsing-words-regex . 'factor-font-lock-parsing-word)
+  `((,fuel-syntax--stack-effect-regex . 'factor-font-lock-stack-effect)
+    (,fuel-syntax--parsing-words-regex . 'factor-font-lock-parsing-word)
     (,fuel-syntax--brace-words-regex 1 'factor-font-lock-parsing-word)
     ("\\(P\\|SBUF\\)\"" 1 'factor-font-lock-parsing-word)
-    (,fuel-syntax--stack-effect-regex . 'factor-font-lock-stack-effect)
     (,fuel-syntax--vocab-ref-regexp  2 'factor-font-lock-vocabulary-name)
     (,fuel-syntax--declaration-words-regex . 'factor-font-lock-declaration)
     (,fuel-syntax--word-definition-regex 2 'factor-font-lock-word)

From 093c615dfae113bd4539057534c0104eb3111e50 Mon Sep 17 00:00:00 2001
From: "Jose A. Ortega Ruiz" <jao@gnu.org>
Date: Mon, 12 Jan 2009 10:35:59 +0100
Subject: [PATCH 3/4] FUEL: Use better defaults for factor's binary and image
 file.

---
 extra/fuel/authors.txt     | 1 -
 misc/fuel/README           | 6 ++++++
 misc/fuel/fu.el            | 6 +++++-
 misc/fuel/fuel-listener.el | 6 ++++--
 4 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/extra/fuel/authors.txt b/extra/fuel/authors.txt
index ecfb757fd2..43ae04c322 100644
--- a/extra/fuel/authors.txt
+++ b/extra/fuel/authors.txt
@@ -1,2 +1 @@
 Jose Antonio Ortega Ruiz
-Eduardo Cavazos
diff --git a/misc/fuel/README b/misc/fuel/README
index 678bd25365..41dabe564e 100644
--- a/misc/fuel/README
+++ b/misc/fuel/README
@@ -41,6 +41,12 @@ beast.
 
   To start the listener, try M-x run-factor.
 
+  By default, FUEL will try to use the binary and image files in the
+  factor installation directory. You can customize them with:
+
+    (setq fuel-listener-factor-binary <full path to factor>)
+    (setq fuel-listener-factor-image <full path to factor image>)
+
   Many aspects of the environment can be customized:
   M-x customize-group fuel will show you how many.
 
diff --git a/misc/fuel/fu.el b/misc/fuel/fu.el
index e78502a6ee..95365964ab 100644
--- a/misc/fuel/fu.el
+++ b/misc/fuel/fu.el
@@ -8,7 +8,11 @@
 
 ;;; Code:
 
-(add-to-list 'load-path (file-name-directory load-file-name))
+(setq fuel-factor-fuel-dir (file-name-directory load-file-name))
+
+(setq fuel-factor-root-dir (expand-file-name "../../" fuel-factor-fuel-dir))
+
+(add-to-list 'load-path fuel-factor-fuel-dir)
 
 (add-to-list 'auto-mode-alist '("\\.factor\\'" . factor-mode))
 (autoload 'factor-mode "factor-mode.el"
diff --git a/misc/fuel/fuel-listener.el b/misc/fuel/fuel-listener.el
index 3ad1b77978..66034225f1 100644
--- a/misc/fuel/fuel-listener.el
+++ b/misc/fuel/fuel-listener.el
@@ -30,12 +30,14 @@
   "Interacting with a Factor listener inside Emacs."
   :group 'fuel)
 
-(defcustom fuel-listener-factor-binary "~/factor/factor"
+(defcustom fuel-listener-factor-binary
+  (expand-file-name "factor" fuel-factor-root-dir)
   "Full path to the factor executable to use when starting a listener."
   :type '(file :must-match t)
   :group 'fuel-listener)
 
-(defcustom fuel-listener-factor-image "~/factor/factor.image"
+(defcustom fuel-listener-factor-image
+  (expand-file-name "factor.image" fuel-factor-root-dir)
   "Full path to the factor image to use when starting a listener."
   :type '(file :must-match t)
   :group 'fuel-listener)

From 18c2c9cf033a6d0937afde322e789eae5278f1c2 Mon Sep 17 00:00:00 2001
From: "Jose A. Ortega Ruiz" <jao@gnu.org>
Date: Mon, 12 Jan 2009 12:13:21 +0100
Subject: [PATCH 4/4] FUEL: Fix indentation of multiline TUPLE:, SYMBOLS: &
 similar forms.

---
 misc/fuel/factor-mode.el |  3 +--
 misc/fuel/fuel-syntax.el | 33 ++++++++++++++++++++++++---------
 2 files changed, 25 insertions(+), 11 deletions(-)

diff --git a/misc/fuel/factor-mode.el b/misc/fuel/factor-mode.el
index 4164e14c5e..ba9be2edd3 100644
--- a/misc/fuel/factor-mode.el
+++ b/misc/fuel/factor-mode.el
@@ -144,8 +144,7 @@ code in the buffer."
     (cond ((or (fuel-syntax--at-end-of-def)
                (fuel-syntax--at-setter-line))
            (fuel-syntax--decreased-indentation))
-          ((and (fuel-syntax--at-begin-of-def)
-                (not (fuel-syntax--at-using)))
+          ((fuel-syntax--at-begin-of-indent-def)
            (fuel-syntax--increased-indentation))
           (t (current-indentation)))))
 
diff --git a/misc/fuel/fuel-syntax.el b/misc/fuel/fuel-syntax.el
index 6b93787a50..be7293f181 100644
--- a/misc/fuel/fuel-syntax.el
+++ b/misc/fuel/fuel-syntax.el
@@ -132,16 +132,28 @@
 
 (defconst fuel-syntax--sub-vocab-regex "^<\\([^ \n]+\\) *$")
 
+(defconst fuel-syntax--indent-def-starts '("" ":"
+                                           "FROM"
+                                           "INTERSECTION:"
+                                           "M" "MACRO" "MACRO:"
+                                           "MEMO" "MEMO:" "METHOD"
+                                           "PREDICATE" "PRIMITIVE"
+                                           "UNION"))
+
+(defconst fuel-syntax--no-indent-def-starts '("SINGLETONS"
+                                              "SYMBOLS"
+                                              "TUPLE"
+                                              "VARS"))
+
+(defconst fuel-syntax--indent-def-start-regex
+  (format "^\\(%s:\\) " (regexp-opt fuel-syntax--indent-def-starts)))
+
+(defconst fuel-syntax--no-indent-def-start-regex
+  (format "^\\(%s:\\) " (regexp-opt fuel-syntax--no-indent-def-starts)))
+
 (defconst fuel-syntax--definition-start-regex
-  (format "^\\(%s:\\) " (regexp-opt '("" ":"
-                                      "FROM"
-                                      "INTERSECTION:"
-                                      "MACRO" "MACRO:" "M" "MEMO" "MEMO:" "METHOD"
-                                      "PREDICATE" "PRIMITIVE"
-                                      "SINGLETONS" "SYMBOLS"
-                                      "TUPLE"
-                                      "UNION"
-                                      "VARS"))))
+  (format "^\\(%s:\\) " (regexp-opt (append fuel-syntax--no-indent-def-starts
+                                            fuel-syntax--indent-def-starts))))
 
 (defconst fuel-syntax--definition-end-regex
   (format "\\(\\(^\\| +\\);\\( *%s\\)*\\($\\| +\\)\\)"
@@ -256,6 +268,9 @@
 (defsubst fuel-syntax--at-begin-of-def ()
   (looking-at fuel-syntax--begin-of-def-regex))
 
+(defsubst fuel-syntax--at-begin-of-indent-def ()
+  (looking-at fuel-syntax--indent-def-start-regex))
+
 (defsubst fuel-syntax--at-end-of-def ()
   (looking-at fuel-syntax--end-of-def-regex))