[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: file storage in IMAP (eventually for Tramp) working and needs testin
From: |
Michael Albinus |
Subject: |
Re: file storage in IMAP (eventually for Tramp) working and needs testing |
Date: |
Sat, 25 Apr 2009 19:25:58 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (gnu/linux) |
Ted Zlatanov <address@hidden> writes:
> I made many other fixes so please use the attached file as a baseline if
> you want to submit patches for any of the issues I listed before, or any
> new issues you notice. It's getting close to usable.
I've started to play with it. First error:
Debugger entered--Lisp error: (wrong-number-of-arguments #[nil "dbÀÁÂÃ#
" nil t delete-char 1] 4
("/usr/local/share/emacs/23.0.92/lisp/gnus/nnheader.elc" . 25599)] 1)
nnheader-ms-strip-cr("X-Tramp-Imap: *scratch*
\nFrom: Tramp-Imap <address@hidden>
\nTo: Tramp-Imap <address@hidden>
\nSubject: tramp-imap-subject-marker fstab
\nDate: Sat, 25 Apr 2009 19:08:13 +0200
\nMessage-ID: <address@hidden>
\n
\n")
tramp-imap-get-message-headers(1)
(nnheader-ms-strip-cr (tramp-imap-get-message-headers msgs))
(let ((headers ...)) (when (string-match "^X-Tramp-IMAP: \\(.+\\)" headers)
(match-string 1 headers)))
tramp-imap-get-message-x-tramp-imap(1)
(setq sname (tramp-imap-get-message-x-tramp-imap msg))
(while --cl-dolist-temp-- (setq msg (car --cl-dolist-temp--)) (setq sname
(tramp-imap-get-message-x-tramp-imap msg)) (when (and sname ...) (push ... res)
(tramp-debug-message vec "found message %s: %s" msg ...)) (setq
--cl-dolist-temp-- (cdr --cl-dolist-temp--)))
(let ((--cl-dolist-temp-- ...) msg) (while --cl-dolist-temp-- (setq msg ...)
(setq sname ...) (when ... ... ...) (setq --cl-dolist-temp-- ...)) nil)
(catch (quote --cl-block-nil--) (let (... msg) (while --cl-dolist-temp-- ...
... ... ...) nil))
(cl-block-wrapper (catch (quote --cl-block-nil--) (let ... ... nil)))
(block nil (let (... msg) (while --cl-dolist-temp-- ... ... ... ...) nil))
(dolist (msg (imap-search ...)) (setq sname
(tramp-imap-get-message-x-tramp-imap msg)) (when (and sname ...) (push ... res)
(tramp-debug-message vec "found message %s: %s" msg ...)))
(let (sname) (tramp-debug-message vec "looking for '%s'" search-name) (dolist
(msg ...) (setq sname ...) (when ... ... ...)))
(if (and name (imap-mailbox-select mbox)) (let (sname) (tramp-debug-message
vec "looking for '%s'" search-name) (dolist ... ... ...)) (tramp-error vec
(quote none) "bad name %s or mailbox %s" name mbox))
(let* ((mbox ...) (name ...) (truename ...) (search-name ...) res)
(tramp-debug-message vec "selecting mbox %s" mbox) (if (and name ...) (let ...
... ...) (tramp-error vec ... "bad name %s or mailbox %s" name mbox)) res)
(save-current-buffer (set-buffer (tramp-imap-buffer vec)) (let* (... ... ...
... res) (tramp-debug-message vec "selecting mbox %s" mbox) (if ... ... ...)
res))
(with-current-buffer (tramp-imap-buffer vec) (let* (... ... ... ... res)
(tramp-debug-message vec "selecting mbox %s" mbox) (if ... ... ...) res))
tramp-imap-get-file-entries(["imap" "albinus" "localhost" "/INBOX.test"])
(car (tramp-imap-get-file-entries v))
(cdr (car (tramp-imap-get-file-entries v)))
(progn (cdr (car ...)))
(setq value (progn (cdr ...)))
(progn (setq value (progn ...)) (tramp-set-file-property v localname (format
"file-attributes-%s" id-format) value))
(if (eq value (quote undef)) (progn (setq value ...) (tramp-set-file-property
v localname ... value)))
(when (eq value (quote undef)) (setq value (progn ...))
(tramp-set-file-property v localname (format "file-attributes-%s" id-format)
value))
(let ((value ...)) (when (eq value ...) (setq value ...)
(tramp-set-file-property v localname ... value)) value)
(if (file-name-absolute-p localname) (let (...) (when ... ... ...) value)
(cdr (car ...)))
(with-file-property v localname (format "file-attributes-%s" id-format) (cdr
(car ...)))
(let* ((v ...) (method ...) (user ...) (host ...) (localname ...))
(with-file-property v localname (format "file-attributes-%s" id-format) (cdr
...)))
(with-parsed-tramp-file-name (expand-file-name filename) nil
(with-file-property v localname (format "file-attributes-%s" id-format) (cdr
...)))
tramp-imap-handle-file-attributes("/imap:address@hidden:/INBOX.test")
apply(tramp-imap-handle-file-attributes "/imap:address@hidden:/INBOX.test")
(progn (apply (cdr fn) args))
(unwind-protect (progn (apply ... args)) (set-match-data
save-match-data-internal (quote evaporate)))
(let ((save-match-data-internal ...)) (unwind-protect (progn ...)
(set-match-data save-match-data-internal ...)))
(save-match-data (apply (cdr fn) args))
(if fn (save-match-data (apply ... args)) (tramp-run-real-handler operation
args))
(let ((fn ...)) (if fn (save-match-data ...) (tramp-run-real-handler
operation args)))
tramp-imap-file-name-handler(file-attributes
"/imap:address@hidden:/INBOX.test")
apply(tramp-imap-file-name-handler file-attributes
"/imap:address@hidden:/INBOX.test")
(cond ((and completion ... ...) t) ((and completion ... ...) filename)
(foreign (apply foreign operation args)) (t (tramp-run-real-handler operation
args)))
(let* ((v ...) (method ...) (user ...) (host ...) (localname ...)) (cond (...
t) (... filename) (foreign ...) (t ...)))
(with-parsed-tramp-file-name filename nil (cond (... t) (... filename)
(foreign ...) (t ...)))
(let* ((filename ...) (completion ...) (foreign ...))
(with-parsed-tramp-file-name filename nil (cond ... ... ... ...)))
(progn (let* (... ... ...) (with-parsed-tramp-file-name filename nil ...)))
(unwind-protect (progn (let* ... ...)) (set-match-data
save-match-data-internal (quote evaporate)))
(let ((save-match-data-internal ...)) (unwind-protect (progn ...)
(set-match-data save-match-data-internal ...)))
(save-match-data (let* (... ... ...) (with-parsed-tramp-file-name filename
nil ...)))
(if tramp-mode (save-match-data (let* ... ...)) (tramp-run-real-handler
operation args))
tramp-file-name-handler(file-attributes "/imap:address@hidden:/INBOX.test")
file-attributes("/imap:address@hidden:/INBOX.test")
(car (file-attributes filename))
(let ((x ...)) (when (stringp x) (if ... ... x)))
(let* ((v ...) (method ...) (user ...) (host ...) (localname ...)) (let (...)
(when ... ...)))
(with-parsed-tramp-file-name filename nil (let (...) (when ... ...)))
tramp-handle-file-symlink-p("/imap:address@hidden:/INBOX.test")
apply(tramp-handle-file-symlink-p "/imap:address@hidden:/INBOX.test")
(progn (apply (cdr fn) args))
(unwind-protect (progn (apply ... args)) (set-match-data
save-match-data-internal (quote evaporate)))
(let ((save-match-data-internal ...)) (unwind-protect (progn ...)
(set-match-data save-match-data-internal ...)))
(save-match-data (apply (cdr fn) args))
(if fn (save-match-data (apply ... args)) (tramp-run-real-handler operation
args))
(let ((fn ...)) (if fn (save-match-data ...) (tramp-run-real-handler
operation args)))
tramp-imap-file-name-handler(file-symlink-p
"/imap:address@hidden:/INBOX.test")
apply(tramp-imap-file-name-handler file-symlink-p
"/imap:address@hidden:/INBOX.test")
(cond ((and completion ... ...) t) ((and completion ... ...) filename)
(foreign (apply foreign operation args)) (t (tramp-run-real-handler operation
args)))
(let* ((v ...) (method ...) (user ...) (host ...) (localname ...)) (cond (...
t) (... filename) (foreign ...) (t ...)))
(with-parsed-tramp-file-name filename nil (cond (... t) (... filename)
(foreign ...) (t ...)))
(let* ((filename ...) (completion ...) (foreign ...))
(with-parsed-tramp-file-name filename nil (cond ... ... ... ...)))
(progn (let* (... ... ...) (with-parsed-tramp-file-name filename nil ...)))
(unwind-protect (progn (let* ... ...)) (set-match-data
save-match-data-internal (quote evaporate)))
(let ((save-match-data-internal ...)) (unwind-protect (progn ...)
(set-match-data save-match-data-internal ...)))
(save-match-data (let* (... ... ...) (with-parsed-tramp-file-name filename
nil ...)))
(if tramp-mode (save-match-data (let* ... ...)) (tramp-run-real-handler
operation args))
tramp-file-name-handler(file-symlink-p "/imap:address@hidden:/INBOX.test")
file-symlink-p("/imap:address@hidden:/INBOX.test")
file-truename("/imap:address@hidden:/INBOX.test" (98) (nil))
file-truename("/imap:address@hidden:/INBOX.test/bbb")
apply(file-truename "/imap:address@hidden:/INBOX.test/bbb")
(let* ((inhibit-file-name-handlers ...) (inhibit-file-name-operation
operation)) (apply operation args))
tramp-run-real-handler(file-truename ("/imap:address@hidden:/INBOX.test/bbb"))
(if fn (save-match-data (apply ... args)) (tramp-run-real-handler operation
args))
(let ((fn ...)) (if fn (save-match-data ...) (tramp-run-real-handler
operation args)))
tramp-imap-file-name-handler(file-truename
"/imap:address@hidden:/INBOX.test/bbb")
apply(tramp-imap-file-name-handler file-truename
"/imap:address@hidden:/INBOX.test/bbb")
(cond ((and completion ... ...) t) ((and completion ... ...) filename)
(foreign (apply foreign operation args)) (t (tramp-run-real-handler operation
args)))
(let* ((v ...) (method ...) (user ...) (host ...) (localname ...)) (cond (...
t) (... filename) (foreign ...) (t ...)))
(with-parsed-tramp-file-name filename nil (cond (... t) (... filename)
(foreign ...) (t ...)))
(let* ((filename ...) (completion ...) (foreign ...))
(with-parsed-tramp-file-name filename nil (cond ... ... ... ...)))
(progn (let* (... ... ...) (with-parsed-tramp-file-name filename nil ...)))
(unwind-protect (progn (let* ... ...)) (set-match-data
save-match-data-internal (quote evaporate)))
(let ((save-match-data-internal ...)) (unwind-protect (progn ...)
(set-match-data save-match-data-internal ...)))
(save-match-data (let* (... ... ...) (with-parsed-tramp-file-name filename
nil ...)))
(if tramp-mode (save-match-data (let* ... ...)) (tramp-run-real-handler
operation args))
tramp-file-name-handler(file-truename "/imap:address@hidden:/INBOX.test/bbb")
file-truename("/imap:address@hidden:/INBOX.test/bbb")
set-visited-file-name("/imap:localhost:INBOX.test/bbb" nil)
write-file("/imap:localhost:INBOX.test/bbb" t)
call-interactively(write-file nil nil)
I'm using gnus as built in GNU Emacs 23.0.92. `nnheader-ms-strip-cr'
has no argument there.
You use by default 'ssl for connection. Can we expect this to be the
standard? Or shall we let the user decide, for example by two methods
"imap" and "imaps"?
I've also applied some few patches, you might check. See appended.
> Thanks
> Ted
Best regards, Michael.
txtSuH5U8xiZ2.txt
Description: Text Data
- Re: file storage in IMAP (eventually for Tramp) working and needs testing, (continued)
- Re: file storage in IMAP (eventually for Tramp) working and needs testing, Daiki Ueno, 2009/04/23
- Re: file storage in IMAP (eventually for Tramp) working and needs testing, Ted Zlatanov, 2009/04/23
- Re: file storage in IMAP (eventually for Tramp) working and needs testing, Daiki Ueno, 2009/04/23
- Re: file storage in IMAP (eventually for Tramp) working and needs testing, Ted Zlatanov, 2009/04/23
- Re: file storage in IMAP (eventually for Tramp) working and needs testing, Daiki Ueno, 2009/04/23
- Re: file storage in IMAP (eventually for Tramp) working and needs testing, Daiki Ueno, 2009/04/23
- Re: file storage in IMAP (eventually for Tramp) working and needs testing, Ted Zlatanov, 2009/04/23
- Re: file storage in IMAP (eventually for Tramp) working and needs testing, Daiki Ueno, 2009/04/24
- Re: file storage in IMAP (eventually for Tramp) working and needs testing, Ted Zlatanov, 2009/04/23
- Re: file storage in IMAP (eventually for Tramp) working and needs testing, Ted Zlatanov, 2009/04/24
- Re: file storage in IMAP (eventually for Tramp) working and needs testing,
Michael Albinus <=