Overview
Comment: | check if buffer still exists in url-retrieve callbacks |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | master | trunk |
Files: | files | file ages | folders |
SHA3-256: |
93642cb1401885fa78f63e84bc593228 |
User & Date: | philip@warpmail.net on 2020-02-22 21:16:50 |
Other Links: | branch diff | manifest | tags |
Context
2020-02-24
| ||
16:19 | removed sbbs--ornamentum variable check-in: 06efb04e61 user: philip@warpmail.net tags: master, trunk | |
2020-02-22
| ||
21:16 | check if buffer still exists in url-retrieve callbacks check-in: 93642cb140 user: philip@warpmail.net tags: master, trunk | |
20:22 | added usage section to readme check-in: f0432e6d61 user: philip@warpmail.net tags: master, trunk | |
Changes
Modified sbbs.el from [689d8c2215] to [97ee81d344].
︙ | ︙ | |||
226 227 228 229 230 231 232 | ;; URL.EL CALLBACKS (defun sbbs--board-loader (status buf) "Callback function for `url-retrieve' when loading board. Load results into buffer BUF. STATUS is used to check for errors." | > | | | | | | | | | | | | | | | | | | | | > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 | ;; URL.EL CALLBACKS (defun sbbs--board-loader (status buf) "Callback function for `url-retrieve' when loading board. Load results into buffer BUF. STATUS is used to check for errors." (when (buffer-live-p buf) (when (plist-get status :error) (error "Error while loading: %s" (cdr (plist-get status :error)))) (forward-paragraph) (let ((list (read (current-buffer)))) (kill-buffer) (with-current-buffer buf (let (ent) (dolist (thread list) (push (list (car thread) (vector (substring (cdr (assq 'date (cdr thread))) 0 16) (number-to-string (cdr (assq 'messages (cdr thread)))) (propertize (cdr (assq 'headline (cdr thread))) 'face 'variable-pitch))) ent)) (setq-local tabulated-list-entries ent) (tabulated-list-print t t) (hl-line-highlight)))))) (defun sbbs--thread-loader (status board id buf) "Callback function for `url-retrieve' when loading thread. The attribute ID determines what thread from board BOARD to load. STATUS is used to check for errors." (when (buffer-live-p buf) (when (plist-get status :error) (error "Error while loading: %s" (cdr (plist-get status :error)))) (prog-mode) (forward-paragraph) (save-excursion (save-match-data (while (search-forward "#f" nil t) (unless (cadddr (syntax-ppss)) (replace-match "nil"))))) (save-excursion (save-match-data (while (search-forward "#f" nil t) (unless (cadddr (syntax-ppss)) (replace-match "t"))))) (let ((thread (read (current-buffer)))) (kill-buffer) (with-current-buffer buf (sbbs-read-mode) (setq sbbs--board board sbbs--thread-id id) (let ((buffer-read-only nil)) (erase-buffer) (setq header-line-format (format "Thread %d: %s" id (cdr (assq 'headline thread)))) (dolist (post (cadr (assq 'posts thread))) (sbbs--thread-insert-post post)) (delete-blank-lines) (goto-char (point-min))) (rename-buffer (format "*reading /%s/%d*" (sbbs--board-name board) id)))))) ;; INTERACTIVE FUNCTIONS (defun sbbs-view-open (id) "Open thread ID in new buffer." (interactive (list (tabulated-list-get-id))) (let ((url (sbbs--board-url (format "/%d" id) t)) |
︙ | ︙ |