Bump version to 1.0.0 and show efinger-finger output raw

Add an optional RAW argument to efinger--start so efinger-finger
streams the server reply verbatim, without the title header.
This commit is contained in:
Andros Fenollosa 2026-08-18 12:50:20 +02:00
parent 324cef61d5
commit d1b6664a2a
2 changed files with 10 additions and 10 deletions

View file

@ -55,9 +55,6 @@ Finger, born at Stanford in 1971, is arguably the first social network: your who
``` ```
.plan — l back · n/p next/prev · g refresh · q quit .plan — l back · n/p next/prev · g refresh · q quit
random@happynetbox.com
──────────────────────
Emily Carter Emily Carter
Marine biologist. Coffee, kayaks and old maps. Marine biologist. Coffee, kayaks and old maps.
@ -73,7 +70,7 @@ Back from sampling on the coast. Three jars of plankton to review.
- **Asynchronous connections**: connections use `:nowait`, so Emacs never freezes even when a host resolves but never answers on port 79 (the common case today). - **Asynchronous connections**: connections use `:nowait`, so Emacs never freezes even when a host resolves but never answers on port 79 (the common case today).
- **Connection timeout**: a stalled connection is abandoned after `efinger-connection-timeout` seconds with a clear message, instead of hanging. - **Connection timeout**: a stalled connection is abandoned after `efinger-connection-timeout` seconds with a clear message, instead of hanging.
- **Graceful errors**: refused or timed-out connections are reported in the content pane, never as a backtrace. - **Graceful errors**: refused or timed-out connections are reported in the content pane, never as a backtrace.
- **One-off finger**: `M-x efinger-finger` fingers a single `user@host` in its own buffer. - **One-off finger**: `M-x efinger-finger` fingers a single `user@host` in its own buffer, showing the server reply raw, with no title header.
- **Configurable layout**: list on the left and content on the right (`horizontal`), or list on top and content below (`vertical`). - **Configurable layout**: list on the left and content on the right (`horizontal`), or list on top and content below (`vertical`).
- **Ports and listing**: targets accept an optional `:port`; omitting the user (`host` or `@host`) asks the server to list every user. - **Ports and listing**: targets accept an optional `:port`; omitting the user (`host` or `@host`) asks the server to list every user.
- **UTF-8**: replies are decoded as UTF-8, so accents and box drawing render correctly. - **UTF-8**: replies are decoded as UTF-8, so accents and box drawing render correctly.

View file

@ -4,7 +4,7 @@
;; Author: Andros Fenollosa <hi@andros.dev> ;; Author: Andros Fenollosa <hi@andros.dev>
;; Maintainer: Andros Fenollosa <hi@andros.dev> ;; Maintainer: Andros Fenollosa <hi@andros.dev>
;; Version: 0.1.0 ;; Version: 1.0.0
;; Package-Requires: ((emacs "28.1")) ;; Package-Requires: ((emacs "28.1"))
;; Keywords: comm ;; Keywords: comm
;; URL: https://git.andros.dev/andros/efinger.el ;; URL: https://git.andros.dev/andros/efinger.el
@ -287,8 +287,10 @@ Emacs never blocks while the handshake is retried."
#'efinger--timeout process))) #'efinger--timeout process)))
process)) process))
(defun efinger--start (buffer account) (defun efinger--start (buffer account &optional raw)
"Finger ACCOUNT and render the reply into BUFFER." "Finger ACCOUNT and render the reply into BUFFER.
When RAW is non-nil, stream the reply verbatim without the title
header, so the buffer shows exactly what the server sent."
(with-current-buffer buffer (with-current-buffer buffer
(when (process-live-p efinger--owner) (when (process-live-p efinger--owner)
(efinger--cancel-timer efinger--owner) (efinger--cancel-timer efinger--owner)
@ -297,8 +299,9 @@ Emacs never blocks while the handshake is retried."
(let ((inhibit-read-only t) (let ((inhibit-read-only t)
(title (efinger--account-title account))) (title (efinger--account-title account)))
(erase-buffer) (erase-buffer)
(insert (propertize title 'face 'efinger-header-face) "\n") (unless raw
(insert (make-string (max 12 (length title)) ?─) "\n\n") (insert (propertize title 'face 'efinger-header-face) "\n")
(insert (make-string (max 12 (length title)) ?─) "\n\n"))
(setq efinger--received nil) (setq efinger--received nil)
(setq efinger--body-start (copy-marker (point))) (setq efinger--body-start (copy-marker (point)))
(insert (propertize "Fingering…" 'face 'efinger-status-face)) (insert (propertize "Fingering…" 'face 'efinger-status-face))
@ -528,7 +531,7 @@ Emacs never blocks while the handshake is retried."
(with-current-buffer buffer (with-current-buffer buffer
(unless (derived-mode-p 'efinger-plan-mode) (unless (derived-mode-p 'efinger-plan-mode)
(efinger-plan-mode))) (efinger-plan-mode)))
(efinger--start buffer account) (efinger--start buffer account t)
(pop-to-buffer buffer))) (pop-to-buffer buffer)))
(provide 'efinger) (provide 'efinger)