1 ;;; fuel-base.el --- Basic FUEL support code
3 ;; Copyright (C) 2008 Jose Antonio Ortega Ruiz
4 ;; See http://factorcode.org/license.txt for BSD license.
6 ;; Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
7 ;; Keywords: languages, fuel, factor
11 ;; Basic definitions likely to be used by all FUEL modules.
15 (defconst fuel-version "1.1")
18 (defsubst fuel-version ()
19 "Echoes FUEL's version."
21 (message "FUEL %s" fuel-version))
28 "Factor's Ultimate Emacs Library."
34 (unless (fboundp 'setq-local)
35 (defmacro setq-local (var val)
36 (list 'set (list 'make-local-variable (list 'quote var)) val)))
38 (unless (fboundp 'defvar-local)
39 (defmacro defvar-local (var val &optional docstring)
40 (declare (debug defvar) (doc-string 3))
41 (list 'progn (list 'defvar var val docstring)
42 (list 'make-variable-buffer-local (list 'quote var)))))
44 (defun fuel-shorten-str (str len)
45 (let ((sl (length str)))
49 (segl (/ (- len sepl) 2)))
50 (format "%s%s%s" (substring str 0 segl)
51 sep (substring str (- sl segl)))))))
53 (defun fuel-shorten-region (begin end len)
56 (split-string (buffer-substring begin end) nil t) " ") len))
58 (defsubst fuel-region-to-string (begin &optional end)
59 (let ((end (or end (point))))
62 (split-string (buffer-substring-no-properties begin end)
65 (defun fuel-respecting-message (format &rest format-args)
66 "Display TEXT as a message, without hiding any minibuffer contents."
67 (let ((text (format " [%s]" (apply #'format format format-args))))
68 (if (minibuffer-window-active-p (minibuffer-window))
69 (minibuffer-message text)
70 (message "%s" text))))
72 (defun fuel-mode--read-file (arg)
73 (let* ((file (or (and arg (read-file-name "File: " nil (buffer-file-name) t))
75 (file (expand-file-name file))
76 (buffer (find-file-noselect file)))
78 (buffer-modified-p buffer)
79 (y-or-n-p "Save file? "))
86 ;;; fuel-base.el ends here