fd0e91029ff9c6a9110a3f97de39e4b8d4f896b8
[elpher.git] / elopher.el
1 ;;; elopher.el --- gopher client
2
3 ;;; Commentary:
4
5 ;; Simple gopher client in elisp.
6
7 ;;; Code:
8
9 ;; (defvar elopher-mode-map nil "Keymap for gopher client.")
10 ;; (define-key elopher-mode-map (kbd "p") 'elopher-quit)
11
12 ;; (define-derived-mode elopher-mode special-mode "elopher"
13 ;;   "Major mode for elopher, an elisp gopher client.")
14
15 (defvar my-marker nil)
16
17 (defun my-filter (proc string)
18   (with-current-buffer (get-buffer "*elopher*")
19     (let ((marker (process-mark proc)))
20       (if (not (marker-position marker))
21           (set-marker marker 0 (current-buffer)))
22       (save-excursion
23         (goto-char marker)
24         (insert (propertize string 'face '(foreground-color . "yellow")))
25         (set-marker marker (point))))))
26     
27
28 (defun elopher ()
29   "Start gopher client."
30   (interactive)
31   (switch-to-buffer-other-window "*elopher*")
32   (setq my-marker (make-marker))
33   (erase-buffer)
34   (make-process
35    :name "date"
36    :command (list "/bin/ls" "-l" "/")
37    :filter #'my-filter))
38
39 (elopher)
40   
41   ;; (address (read-from-minibuffer "Address of gopher server: ")))
42   ;; (message "Connecting to '%s' ..." address)
43   ;; (erase-buffer)
44   ;; (insert (propertize "Hello, world." 'face '(foreground-color . "red")))
45   ;; (newline)
46   ;; (insert (propertize "Hello, Tim." 'face '(foreground-color . "yellow"))))
47
48 (defun elopher-quit ()
49   (interactive)
50   (kill-buffer "*elopher*"))
51
52 (start-process "ls" "*elopher*" "/bin/date")
53
54 ;;; elopher.el ends here
55
56 (list-processes)