tramp-devel
[Top][All Lists]
Advanced

[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.

Attachment: txtSuH5U8xiZ2.txt
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]