blob: a59e4df3890ff4044fb410f843e25b40f84902ba (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
;; filename: figlet.el
;; Kirby Files, 9/18/94. kfiles@bbn.com
;; add font completion: James LewisMoss 27 Oct 2000, dres@debian.org
;; feel free to modify and distribute; there's not a lot here.
;; call M-x figlet-message to insert a large ascii text in your buffer.
;; Current option is to center text. Feel free to change this if you'd
;; like.
(defvar fig-options "-c")
(setq save-eval-depth max-lisp-eval-depth)
(setq max-lisp-eval-depth 1000)
(defun collapse-lists (da-list)
(cond ((stringp da-list) (list da-list))
((null da-list) nil)
(t (append (collapse-lists (car da-list))
(collapse-lists (cdr da-list))))))
(defun generate-figlet-font-list (loc-list)
"Generate a list of figlet fonts."
(mapcar
'(lambda (element)
(cons element nil))
(mapcar
'(lambda (one-file)
(let ((point (string-match ".flf" one-file)))
(substring one-file 0 point)))
(collapse-lists
(mapcar
'(lambda (dir-string)
(directory-files (expand-file-name dir-string)
nil ".*\.flf"))
loc-list)))))
;; replace this with "figlet -I2" to get the default font dir
(defvar fig-font-locations '("/usr/share/figlet"))
(defvar fig-font-list (generate-figlet-font-list fig-font-locations))
(defun figlet-message ()
"Inserts large message of text in ASCII font into current buffer"
(interactive "*")
(setq str (read-from-minibuffer "Enter message: "))
(setq font
(completing-read "Which font: " fig-font-list nil t))
;; If the user enters nothing then font is empty string "".
;; Omit the -f option in that case, giving figlet's default font.
(let ((args (append (and (not (equal font "")) (list "-f" font))
(list fig-options str))))
(apply 'call-process "figlet" nil t t args))
(message "Done printing"))
(setq max-lisp-eval-depth save-eval-depth)
(provide 'figlet)
|