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
random@happynetbox.com
──────────────────────
Emily Carter
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).
- **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.
- **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`).
- **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.

View file

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