bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#6019: 23.3; Can't visit VMS file from Windows Emacs 23.3.1


From: Michael Albinus
Subject: bug#6019: 23.3; Can't visit VMS file from Windows Emacs 23.3.1
Date: Wed, 31 Aug 2011 13:39:14 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

Alan.Grunwald@tatasteel.com writes:

> Michael,

Hi Alan,

> Please find attached the contents of the *trace-output* and *ftp
> grunwald@confid* buffers afetr I executed
>
> C-x C-f /grunwald@confid:login.com
>
> Best of luck :-)

Thanks, it helps :-)

The following call is guilty:

8 -> ange-ftp-fix-name-for-vms: name="\"/$DISK1!/GRUNWALD/\"" reverse=nil
8 <- ange-ftp-fix-name-for-vms: "[.\".$DISK1!.GRUNWALD]\""

This reminds me, that we have changed the quoting for file names a while
ago. This results in surrounding a file name under Windows by '"', like
"/$DISK1!/GRUNWALD/".  Obviously, ange-ftp-fix-name-for-vms must be
aware of it.

Could you, please, check whether the following patch helps?

--8<---------------cut here---------------start------------->8---
*** /home/albinus/src/emacs-23/lisp/net/ange-ftp.el.~100624~    2011-08-31 
13:30:47.905559520 +0200
--- /home/albinus/src/emacs-23/lisp/net/ange-ftp.el     2011-08-31 
13:28:25.395350494 +0200
***************
*** 5017,5023 ****
                      dir (and dir "/")
                      file))
          (error "name %s didn't match" name))
!       (let (drive dir file tmp)
        (if (string-match "\\`/[^:]+:/" name)
            (setq drive (substring name 1
                                   (1- (match-end 0)))
--- 5017,5027 ----
                      dir (and dir "/")
                      file))
          (error "name %s didn't match" name))
!       (let (drive dir file tmp quote)
!       (if (string-match "\\`\".+\"\\'" name)
!           (setq name (substring name 1 -1)
!                 quote "\"")
!         (setq quote ""))
        (if (string-match "\\`/[^:]+:/" name)
            (setq drive (substring name 1
                                   (1- (match-end 0)))
***************
*** 5026,5034 ****
        (if tmp
            (setq dir (subst-char-in-string ?/ ?. (substring tmp 0 -1) t)))
        (setq file (file-name-nondirectory name))
!       (concat drive
                (and dir (concat "[" (if drive nil ".") dir "]"))
!               file)))))
  
  ;; (ange-ftp-fix-name-for-vms "/PUB$:/ANONYMOUS/SDSCPUB/NEXT/Readme.txt;1")
  ;; (ange-ftp-fix-name-for-vms "/PUB$:[ANONYMOUS.SDSCPUB.NEXT]Readme.txt;1" t)
--- 5030,5038 ----
        (if tmp
            (setq dir (subst-char-in-string ?/ ?. (substring tmp 0 -1) t)))
        (setq file (file-name-nondirectory name))
!       (concat quote drive
                (and dir (concat "[" (if drive nil ".") dir "]"))
!               file quote)))))
  
  ;; (ange-ftp-fix-name-for-vms "/PUB$:/ANONYMOUS/SDSCPUB/NEXT/Readme.txt;1")
  ;; (ange-ftp-fix-name-for-vms "/PUB$:[ANONYMOUS.SDSCPUB.NEXT]Readme.txt;1" t)
--8<---------------cut here---------------end--------------->8---

> Alan

Best regards, Michael.





reply via email to

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