From: "Vida Gábor" <vidagabor@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 19701-done@debbugs.gnu.org
Subject: bug#19701: 24.3; directory-files platform-dependent behaviour when directory doesn't exist
Date: Wed, 28 Jan 2015 12:45:53 +0100 [thread overview]
Message-ID: <yeq7a913ruvi.fsf@gmail.com> (raw)
In-Reply-To: <8361bsoxez.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 27 Jan 2015 21:07:00 +0200")
> This was never a problem, though. What exactly does Gnus do that this
> subtlety gets in the way?
I'm migrating from Windows to GNU/Linux, and while I'm doing this Gnus didn't start
properly with my old configuration. I use %F in gnus-group-line-format, which ends up
calling gnus-total-fetched-for. This function calculates the total amount of disk
space used by cache and agent. I use Gnus agent but don't use cache (gnus-use-cache
is nil).
Later, gnus-cache-update-file-total-fetched-for iterates over the files that belong
to the cahe of the group. This list in nil on Windows, so I had no problem, but on
GNU/Linux, it raises an error, because I have no cache directory.
I replaced some parts of the call stack below with ellipsis.
Debugger entered--Lisp error: (file-error "Opening directory" "no such file or directory" "/home/evidgbo/config/emacs.d/gnus-cache/nntp+gmane:gmane.announce")
directory-files("/home/evidgbo/config/emacs.d/gnus-cache/nntp+gmane:gmane.announce" t nil t)
gnus-cache-update-file-total-fetched-for("nntp+gmane:gmane.announce" nil)
gnus-cache-total-fetched-for("nntp+gmane:gmane.announce")
gnus-total-fetched-for("nntp+gmane:gmane.announce")
(format " %5s U, %3d T, %3d D, %s L:%d %s %s\n" gnus-tmp-number-of-unread (gnus-range-length (cdr (assq (quote tick) gnus-tmp-marked))) (gnus-range-length (cdr (assq (quote dormant) gnus-tmp-marked))) (gnus-total-fetched-for gnus-tmp-group) gnus-tmp-level (gnus-user-format-function-t gnus-tmp-header) (if (boundp (quote gnus-tmp-decoded-group)) gnus-tmp-decoded-group gnus-tmp-group))
(insert (format " %5s U, %3d T, %3d D, %s L:%d %s %s\n" gnus-tmp-number-of-unread (gnus-range-length (cdr (assq (quote tick) gnus-tmp-marked))) (gnus-range-length (cdr (assq (quote dormant) gnus-tmp-marked))) (gnus-total-fetched-for gnus-tmp-group) gnus-tmp-level (gnus-user-format-function-t gnus-tmp-header) (if (boundp (quote gnus-tmp-decoded-group)) gnus-tmp-decoded-group gnus-tmp-group)))
(let (gnus-position) (insert (format "%c%s %c%c %5s " gnus-tmp-process-marked gnus-group-indentation gnus-tmp-summary-live (gnus-group-new-mail gnus-tmp-group) (if (gnus-active gnus-tmp-group) (gnus-number-of-unseen-articles-in-group gnus-tmp-group) "*"))) (setq gnus-position (point)) (gnus-put-text-property (point) (progn (insert gnus-tmp-qualified-group) (point)) gnus-mouse-face-prop gnus-mouse-face) (if (> (current-column) 35) (let ((end (point))) (if (= (move-to-column 35) 35) (delete-region (point) end) (delete-region (1- (point)) end) (insert " "))) (insert-char 32 (max (- 35 (current-column)) 0))) (insert (format " %5s U, %3d T, %3d D, %s L:%d %s %s\n" gnus-tmp-number-of-unread (gnus-range-length (cdr (assq (quote tick) gnus-tmp-marked))) (gnus-range-length (cdr (assq (quote dormant) gnus-tmp-marked))) (gnus-total-fetched-for gnus-tmp-group) gnus-tmp-level (gnus-user-format-function-t gnus-tmp-header) (if (boundp (quote gnus-tmp-decoded-group)) gnus-tmp-decoded-group gnus-tmp-group))) (if gnus-position (gnus-put-text-property gnus-position (1+ gnus-position) (quote gnus-position) t)))
eval((let (gnus-position) (insert (format "%c%s %c%c %5s " gnus-tmp-process-marked gnus-group-indentation gnus-tmp-summary-live (gnus-group-new-mail gnus-tmp-group) (if (gnus-active gnus-tmp-group) (gnus-number-of-unseen-articles-in-group gnus-tmp-group) "*"))) (setq gnus-position (point)) (gnus-put-text-property (point) (progn (insert gnus-tmp-qualified-group) (point)) gnus-mouse-face-prop gnus-mouse-face) (if (> (current-column) 35) (let ((end (point))) (if (= (move-to-column 35) 35) (delete-region (point) end) (delete-region (1- (point)) end) (insert " "))) (insert-char 32 (max (- 35 (current-column)) 0))) (insert (format " %5s U, %3d T, %3d D, %s L:%d %s %s\n" gnus-tmp-number-of-unread (gnus-range-length (cdr (assq (quote tick) gnus-tmp-marked))) (gnus-range-length (cdr (assq (quote dormant) gnus-tmp-marked))) (gnus-total-fetched-for gnus-tmp-group) gnus-tmp-level (gnus-user-format-function-t gnus-tmp-header) (if (boundp (quote gnus-tmp-decoded-group)) gnus-tmp-decoded-group gnus-tmp-group))) (if gnus-position (gnus-put-text-property gnus-position (1+ gnus-position) (quote gnus-position) t))))
gnus-group-insert-group-line("nntp+gmane:gmane.announce" 3 ((seen (1 . 18742) (18916 . 19115))) 3948 "nntp:gmane")
gnus-topic-prepare-topic((("announcements" visible nil nil)) 2 5 nil nil 1 nil)
gnus-topic-prepare-topic((("gmane" visible nil ((subscribe . "^nntp\\+gmane:") (gcc-self . "nnimap+nedu:incoming") (agent-predicate and (not my-article-old-p)))) (("announcements" visible nil nil))) 1 5 nil nil 1 nil)
gnus-topic-prepare-topic(...)
gnus-group-prepare-topics(5 nil nil)
gnus-group-list-groups(nil)
byte-code("..." [dont-connect did-connect gnus-startup-file gnus-current-startup-file gnus-slave gnus-use-dribble-file gnus-group-quit gnus-run-hooks gnus-startup-hook gnus-make-newsrc-file gnus-dribble-read-file gnus-setup-news nil gnus-setup-news-hook gnus-request-create-group "queue" (nndraft "") gnus-start-draft-setup gnus-group-list-groups gnus-group-first-unread-group gnus-configure-windows group gnus-group-set-mode-line gnus-started-hook level gnus-agent] 4)
gnus-1(nil nil nil)
gnus(nil)
call-interactively(gnus record nil)
command-execute(gnus record)
execute-extended-command(nil "gnus")
call-interactively(execute-extended-command nil nil)
But I had no time so far to do a clean reproduction. As a workaround, I removed %F
from gnus-group-line-format temporary.
next prev parent reply other threads:[~2015-01-28 11:45 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-27 12:55 bug#19701: 24.3; directory-files platform-dependent behaviour when directory doesn't exist VIDA Gábor
2015-01-27 19:07 ` Eli Zaretskii
2015-01-27 20:14 ` Drew Adams
2015-01-28 11:45 ` Vida Gábor [this message]
2015-01-28 15:37 ` Eli Zaretskii
2015-01-29 11:56 ` Vida Gábor
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=yeq7a913ruvi.fsf@gmail.com \
--to=vidagabor@gmail.com \
--cc=19701-done@debbugs.gnu.org \
--cc=eliz@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.