[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/djvu a3267e0 6/9: djvu.el: be compatible with uniquify
From: |
Stefan Monnier |
Subject: |
[elpa] externals/djvu a3267e0 6/9: djvu.el: be compatible with uniquify |
Date: |
Sun, 29 Nov 2020 17:09:33 -0500 (EST) |
branch: externals/djvu
commit a3267e026e13913be396a3db63f319fee06ee585
Author: Roland Winkler <winkler@gnu.org>
Commit: Roland Winkler <winkler@gnu.org>
djvu.el: be compatible with uniquify
---
djvu.el | 44 +++++++++++++++++++++++++-------------------
1 file changed, 25 insertions(+), 19 deletions(-)
diff --git a/djvu.el b/djvu.el
index ee56292..098a1dc 100644
--- a/djvu.el
+++ b/djvu.el
@@ -4,7 +4,7 @@
;; Author: Roland Winkler <winkler@gnu.org>
;; Keywords: files, wp
-;; Version: 1.0
+;; Version: 1.0.1
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
@@ -149,6 +149,10 @@
;;; News:
+;; v1.0.1:
+;; - Use `create-file-buffer' instead of `generate-new-buffer'
+;; for compatibility with uniquify.
+;;
;; v1.0:
;; - New commands `djvu-revert-buffer', `djvu-re-search-forward',
;; `djvu-re-search-forward-continue', `djvu-history-backward',
@@ -167,14 +171,6 @@
;;
;; - Font locking.
-;;; To do:
-;;
-;; - Use uniquify instead of `generate-new-buffer' if we visit multiple
-;; djvu documents in different directories but with the same nondirectory
-;; file name. However, uniquify's usual machinery based on advicing
-;; `create-file-buffer' does not work for us because we never visit a file
-;; in the ordinary emacs sense.
-
;;; Code:
;;; Djvu internals (see Sec. 8.3.4.2.3.1 of djvu3spec.djvu)
@@ -479,7 +475,8 @@ DOC defaults to `djvu-doc'."
(defun djvu-header-line (identifier)
(list (propertize " " 'display '(space :align-to 0))
;; Emacs >= 26: compare `proced-header-line'
- (format "-- %s: %s" identifier buffer-file-truename)))
+ (format "%s -- %s (p%d)" (buffer-name (djvu-ref read-buf))
+ identifier (djvu-ref page))))
(defsubst djvu-substring-number (string &optional from to base)
"Parse substring of STRING as a decimal number and return the number.
@@ -1042,8 +1039,7 @@ This is a child of `special-mode-map'.")
(setq djvu-buffer 'read
buffer-undo-list t
mode-line-buffer-identification
- (list 24 (buffer-name)
- '(:eval (format " p%d" (djvu-ref page)))))
+ (list 24 '(:eval (format "%s p%d" (buffer-name) (djvu-ref page)))))
(set (make-local-variable 'revert-buffer-function) 'djvu-revert-buffer))
(defvar djvu-script-mode-map
@@ -1124,8 +1120,9 @@ This is a child of `lisp-mode-map'.")
(define-derived-mode djvu-script-mode lisp-mode "Djvu Script"
"Mode for editing Djvu scripts."
(setq mode-line-buffer-identification
- (list 24 (buffer-name)
- '(:eval (if djvu-doc (format " p%d" (djvu-ref page)) "")))
+ (list 24 '(:eval (if djvu-doc
+ (format "%s p%d" (buffer-name)
+ (djvu-ref page)) "")))
fill-column djvu-fill-column
font-lock-defaults '(djvu-font-lock-keywords))
(set (make-local-variable 'revert-buffer-function) 'djvu-revert-buffer))
@@ -1192,8 +1189,7 @@ This is a child of `special-mode-map'.")
(setq djvu-buffer 'outline
buffer-undo-list t
mode-line-buffer-identification
- (list 24 (buffer-name)
- '(:eval (format " p%d" (djvu-ref page)))))
+ (list 24 '(:eval (format "%s p%d" (buffer-name) (djvu-ref page)))))
(set (make-local-variable 'revert-buffer-function) 'djvu-revert-buffer))
;;; General Setup
@@ -1257,9 +1253,17 @@ from file."
(djvu-ref file doc)))))))
(unless old-bufs
(cl-flet ((fun (n)
- (generate-new-buffer
- (concat buf-basename
- (nth n djvu-buffer-name-extensions)))))
+ ;; Instead of `generate-new-buffer', we take a detour
+ ;; via `create-file-buffer' so that uniquify can do
+ ;; its job, too. It does not matter that the arg of
+ ;; `create-file-buffer' does not match
`buffer-file-name'
+ ;; because `uniquify-buffer-file-name' only cares
+ ;; about DIR.
+ (create-file-buffer ; needed by uniquify
+ (expand-file-name
+ (concat buf-basename
+ (nth n djvu-buffer-name-extensions))
+ dir))))
(setq doc (fun 0))
(djvu-set read-buf doc doc)
(djvu-set text-buf (fun 1) doc)
@@ -1299,6 +1303,8 @@ from file."
(djvu-all-buffers doc
(setq djvu-doc doc ; propagate DOC to all buffers
buffer-file-name file
+ ;; A non-nil value of `buffer-file-truename' enables
file-locking,
+ ;; see call of `lock_file' in `prepare_to_modify_buffer_1'
buffer-file-truename file-truename
buffer-file-number file-number
buffer-file-read-only read-only
- [elpa] branch externals/djvu created (now 6d534f7), Stefan Monnier, 2020/11/29
- [elpa] externals/djvu d50e254 3/9: Commentary fix for quarter-plane.el., Stefan Monnier, 2020/11/29
- [elpa] externals/djvu 759975e 4/9: Fix some quoting problems in doc strings, Stefan Monnier, 2020/11/29
- [elpa] externals/djvu a3267e0 6/9: djvu.el: be compatible with uniquify,
Stefan Monnier <=
- [elpa] externals/djvu 9b70279 1/9: new package djvu.el, Stefan Monnier, 2020/11/29
- [elpa] externals/djvu 0611484 2/9: Small bugfixes, Stefan Monnier, 2020/11/29
- [elpa] externals/djvu 7c4cb61 5/9: Release djvu.el v1.0, Stefan Monnier, 2020/11/29
- [elpa] externals/djvu 0b89a32 7/9: * packages/djvu/djvu.el: Release v1.1., Stefan Monnier, 2020/11/29
- [elpa] externals/djvu 6d534f7 9/9: * .gitignore: New file, Stefan Monnier, 2020/11/29
- [elpa] externals/djvu 0bb3aa3 8/9: [djvu] Version 1.1.1, Stefan Monnier, 2020/11/29