emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Encoding problem with Tramp


From: Stefan Monnier
Subject: Encoding problem with Tramp
Date: Mon, 17 Mar 2008 16:29:32 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)

[ For Kai Großjohann and Michael Albinus, thanks to stupid mailers. ]


        Stefan


--- Begin Message --- Subject: Delivery Status Notification (Failure) Date: 17 Mar 2008 16:15:33 -0400
The following message to <address@hidden> was undeliverable.
The reason for the problem:
5.1.0 - Unknown address error 550-"5.7.1 {mx069} The recipient does not accept 
mails from 'iro.umontreal.ca' over foreign mailservers.\n5.7.1 According to the 
domain's SPF record your host '206.248.154.182' is not a designated 
sender.\n5.7.1 ( http://portal.gmx.net/serverrules )"
Reporting-MTA: dns; ironport2-out.pppoe.ca

Final-Recipient: rfc822;kai.grossjohann@gmx.net
Action: failed
Status: 5.0.0 (permanent failure)
Remote-MTA: dns; [213.165.64.100]
Diagnostic-Code: smtp; 5.1.0 - Unknown address error 550-"5.7.1 {mx069} The 
recipient does not accept mails from 'iro.umontreal.ca' over foreign 
mailservers.\n5.7.1 According to the domain's SPF record your host 
'206.248.154.182' is not a designated sender.\n5.7.1 ( 
http://portal.gmx.net/serverrules )" (delivery attempts: 0)
--- Begin Message --- Subject: Encoding problem with Tramp Date: Mon, 17 Mar 2008 16:15:32 -0400 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)
I recently noticed that my home page has emacs-mule encoding, even tho
it specifies latin-1.  It turns out that it's because I was editing it
via Tramp and that Tramp has a bug in this regard.
Using good ol' print statements, it turns out that
last-coding-system-used is modified in tramp-handle-write-region *after*
tramp-handle-write-region was careful to save&set it.

More specifically the code does:

          ;; Make `last-coding-system-used' have the right value.
          (when coding-system-used
            (set 'last-coding-system-used coding-system-used))))

      ;; Set file modification time.
      (when (or (eq visit t) (stringp visit))
        (set-visited-file-modtime
         ;; We must pass modtime explicitely, because filename can
         ;; be different from (buffer-file-name), f.e. if
         ;; `file-precious-flag' is set.
         (nth 5 (file-attributes filename))))

so while the first 3 lines DTRT, the subsequent 7 lines (probably just
the call to file-attributes) set the last-coding-system-used back to
raw-text-unix.

I suggest to fix Tramp's file-attributes by wrapping a let around it
that preserves the value of last-coding-system-used.

If I fix it, then I get the same problem with the subsequent call to
tramp-set-file-uid-gid.

Maybe another way to fix those problem is to move the above 3 lines that
reset last-coding-system-used to the end of tramp-handle-write-region.

Although, the let-binding around tramp-handle-file-attributes seem to be
good in general, since file-attributes is normally not expected to
modify last-coding-system-used.


        Stefan

--- End Message ---

--- End Message ---

reply via email to

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