emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/lisp/net/tramp-smb.el


From: Michael Albinus
Subject: [Emacs-diffs] Changes to emacs/lisp/net/tramp-smb.el
Date: Sun, 20 Mar 2005 15:00:22 -0500

Index: emacs/lisp/net/tramp-smb.el
diff -c emacs/lisp/net/tramp-smb.el:1.15 emacs/lisp/net/tramp-smb.el:1.16
*** emacs/lisp/net/tramp-smb.el:1.15    Wed Feb  9 15:50:37 2005
--- emacs/lisp/net/tramp-smb.el Sun Mar 20 20:00:20 2005
***************
*** 1,8 ****
  ;;; tramp-smb.el --- Tramp access functions for SMB servers -*- coding: 
iso-8859-1; -*-
  
! ;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
  
! ;; Author: Michael Albinus <address@hidden>
  ;; Keywords: comm, processes
  
  ;; This file is part of GNU Emacs.
--- 1,8 ----
  ;;; tramp-smb.el --- Tramp access functions for SMB servers -*- coding: 
iso-8859-1; -*-
  
! ;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
  
! ;; Author: Michael Albinus <address@hidden>
  ;; Keywords: comm, processes
  
  ;; This file is part of GNU Emacs.
***************
*** 75,81 ****
    :group 'tramp
    :type 'string)
  
! (defconst tramp-smb-prompt "^smb: \\S-+> \\|^\\s-+Server\\s-+Comment$"
    "Regexp used as prompt in smbclient.")
  
  (defconst tramp-smb-errors
--- 75,81 ----
    :group 'tramp
    :type 'string)
  
! (defconst tramp-smb-prompt "^smb: .+> \\|^\\s-+Server\\s-+Comment$"
    "Regexp used as prompt in smbclient.")
  
  (defconst tramp-smb-errors
***************
*** 235,244 ****
                 (file-exists-p newname))
        (error "copy-file: file %s already exists" newname))
  
! ;      (with-parsed-tramp-file-name newname nil
!       (let (user host localname)
!       (with-parsed-tramp-file-name newname l
!         (setq user l-user host l-host localname l-localname))
        (save-excursion
          (let ((share (tramp-smb-get-share localname))
                (file (tramp-smb-get-localname localname t)))
--- 235,241 ----
                 (file-exists-p newname))
        (error "copy-file: file %s already exists" newname))
  
!       (with-parsed-tramp-file-name newname nil
        (save-excursion
          (let ((share (tramp-smb-get-share localname))
                (file (tramp-smb-get-localname localname t)))
***************
*** 258,316 ****
  (defun tramp-smb-handle-delete-directory (directory)
    "Like `delete-directory' for tramp files."
    (setq directory (directory-file-name (expand-file-name directory)))
!   (unless (file-exists-p directory)
!     (error "Cannot delete non-existing directory `%s'" directory))
! ;  (with-parsed-tramp-file-name directory nil
!   (let (user host localname)
!     (with-parsed-tramp-file-name directory l
!       (setq user l-user host l-host localname l-localname))
!     (save-excursion
!       (let ((share (tramp-smb-get-share localname))
!           (dir (tramp-smb-get-localname (file-name-directory localname) t))
!           (file (file-name-nondirectory localname)))
!       (tramp-smb-maybe-open-connection user host share)
!       (if (and
!            (tramp-smb-send-command user host (format "cd \"%s\"" dir))
!            (tramp-smb-send-command user host (format "rmdir \"%s\"" file)))
!           ;; Go Home
            (tramp-smb-send-command user host (format "cd \\"))
!         ;; Error
!         (tramp-smb-send-command user host (format "cd \\"))
!         (error "Cannot delete directory `%s'" directory))))))
  
  (defun tramp-smb-handle-delete-file (filename)
    "Like `delete-file' for tramp files."
    (setq filename (expand-file-name filename))
!   (unless (file-exists-p filename)
!     (error "Cannot delete non-existing file `%s'" filename))
! ;  (with-parsed-tramp-file-name filename nil
!   (let (user host localname)
!     (with-parsed-tramp-file-name filename l
!       (setq user l-user host l-host localname l-localname))
!     (save-excursion
!       (let ((share (tramp-smb-get-share localname))
!           (dir (tramp-smb-get-localname (file-name-directory localname) t))
!           (file (file-name-nondirectory localname)))
!       (unless (file-exists-p filename)
!         (error "Cannot delete non-existing file `%s'" filename))
!       (tramp-smb-maybe-open-connection user host share)
!       (if (and
!            (tramp-smb-send-command user host (format "cd \"%s\"" dir))
!            (tramp-smb-send-command user host (format "rm \"%s\"" file)))
!           ;; Go Home
            (tramp-smb-send-command user host (format "cd \\"))
!         ;; Error
!         (tramp-smb-send-command user host (format "cd \\"))
!         (error "Cannot delete file `%s'" filename))))))
  
  (defun tramp-smb-handle-directory-files
    (directory &optional full match nosort)
    "Like `directory-files' for tramp files."
    (setq directory (directory-file-name (expand-file-name directory)))
! ;  (with-parsed-tramp-file-name directory nil
!   (let (user host localname)
!     (with-parsed-tramp-file-name directory l
!       (setq user l-user host l-host localname l-localname))
      (save-excursion
        (let* ((share (tramp-smb-get-share localname))
             (file (tramp-smb-get-localname localname nil))
--- 255,300 ----
  (defun tramp-smb-handle-delete-directory (directory)
    "Like `delete-directory' for tramp files."
    (setq directory (directory-file-name (expand-file-name directory)))
!   (when (file-exists-p directory)
!     (with-parsed-tramp-file-name directory nil
!       (save-excursion
!       (let ((share (tramp-smb-get-share localname))
!             (dir (tramp-smb-get-localname (file-name-directory localname) t))
!             (file (file-name-nondirectory localname)))
!         (tramp-smb-maybe-open-connection user host share)
!         (if (and
!              (tramp-smb-send-command user host (format "cd \"%s\"" dir))
!              (tramp-smb-send-command user host (format "rmdir \"%s\"" file)))
!             ;; Go Home
!             (tramp-smb-send-command user host (format "cd \\"))
!           ;; Error
            (tramp-smb-send-command user host (format "cd \\"))
!           (error "Cannot delete directory `%s'" directory)))))))
  
  (defun tramp-smb-handle-delete-file (filename)
    "Like `delete-file' for tramp files."
    (setq filename (expand-file-name filename))
!   (when (file-exists-p filename)
!     (with-parsed-tramp-file-name filename nil
!       (save-excursion
!       (let ((share (tramp-smb-get-share localname))
!             (dir (tramp-smb-get-localname (file-name-directory localname) t))
!             (file (file-name-nondirectory localname)))
!         (tramp-smb-maybe-open-connection user host share)
!         (if (and
!              (tramp-smb-send-command user host (format "cd \"%s\"" dir))
!              (tramp-smb-send-command user host (format "rm \"%s\"" file)))
!             ;; Go Home
!             (tramp-smb-send-command user host (format "cd \\"))
!           ;; Error
            (tramp-smb-send-command user host (format "cd \\"))
!           (error "Cannot delete file `%s'" filename)))))))
  
  (defun tramp-smb-handle-directory-files
    (directory &optional full match nosort)
    "Like `directory-files' for tramp files."
    (setq directory (directory-file-name (expand-file-name directory)))
!   (with-parsed-tramp-file-name directory nil
      (save-excursion
        (let* ((share (tramp-smb-get-share localname))
             (file (tramp-smb-get-localname localname nil))
***************
*** 340,356 ****
    (mapcar
     (lambda (x)
       ;; We cannot call `file-attributes' for backward compatibility reasons.
!      ;; Its optional parameter ID-FORMAT is introduced with Emacs 22.1.
       (cons x (tramp-smb-handle-file-attributes
        (if full x (concat (file-name-as-directory directory) x)) id-format)))
     (directory-files directory full match nosort)))
  
  (defun tramp-smb-handle-file-attributes (filename &optional id-format)
    "Like `file-attributes' for tramp files."
! ;  (with-parsed-tramp-file-name filename nil
!   (let (user host localname)
!     (with-parsed-tramp-file-name filename l
!       (setq user l-user host l-host localname l-localname))
      (save-excursion
        (let* ((share (tramp-smb-get-share localname))
             (file (tramp-smb-get-localname localname nil))
--- 324,337 ----
    (mapcar
     (lambda (x)
       ;; We cannot call `file-attributes' for backward compatibility reasons.
!      ;; Its optional parameter ID-FORMAT is introduced with Emacs 22.
       (cons x (tramp-smb-handle-file-attributes
        (if full x (concat (file-name-as-directory directory) x)) id-format)))
     (directory-files directory full match nosort)))
  
  (defun tramp-smb-handle-file-attributes (filename &optional id-format)
    "Like `file-attributes' for tramp files."
!   (with-parsed-tramp-file-name filename nil
      (save-excursion
        (let* ((share (tramp-smb-get-share localname))
             (file (tramp-smb-get-localname localname nil))
***************
*** 380,389 ****
  
  (defun tramp-smb-handle-file-directory-p (filename)
    "Like `file-directory-p' for tramp files."
! ;  (with-parsed-tramp-file-name filename nil
!   (let        (user host localname)
!     (with-parsed-tramp-file-name filename l
!       (setq user l-user host l-host localname l-localname))
      (save-excursion
        (let* ((share (tramp-smb-get-share localname))
             (file (tramp-smb-get-localname localname nil))
--- 361,367 ----
  
  (defun tramp-smb-handle-file-directory-p (filename)
    "Like `file-directory-p' for tramp files."
!   (with-parsed-tramp-file-name filename nil
      (save-excursion
        (let* ((share (tramp-smb-get-share localname))
             (file (tramp-smb-get-localname localname nil))
***************
*** 396,405 ****
  
  (defun tramp-smb-handle-file-exists-p (filename)
    "Like `file-exists-p' for tramp files."
! ;  (with-parsed-tramp-file-name filename nil
!   (let        (user host localname)
!     (with-parsed-tramp-file-name filename l
!       (setq user l-user host l-host localname l-localname))
      (save-excursion
        (let* ((share (tramp-smb-get-share localname))
             (file (tramp-smb-get-localname localname nil))
--- 374,380 ----
  
  (defun tramp-smb-handle-file-exists-p (filename)
    "Like `file-exists-p' for tramp files."
!   (with-parsed-tramp-file-name filename nil
      (save-excursion
        (let* ((share (tramp-smb-get-share localname))
             (file (tramp-smb-get-localname localname nil))
***************
*** 433,442 ****
  ;; files.
  (defun tramp-smb-handle-file-name-all-completions (filename directory)
    "Like `file-name-all-completions' for tramp files."
! ;  (with-parsed-tramp-file-name directory nil
!   (let (user host localname)
!     (with-parsed-tramp-file-name directory l
!       (setq user l-user host l-host localname l-localname))
      (save-match-data
        (save-excursion
        (let* ((share (tramp-smb-get-share localname))
--- 408,414 ----
  ;; files.
  (defun tramp-smb-handle-file-name-all-completions (filename directory)
    "Like `file-name-all-completions' for tramp files."
!   (with-parsed-tramp-file-name directory nil
      (save-match-data
        (save-excursion
        (let* ((share (tramp-smb-get-share localname))
***************
*** 467,476 ****
        (let ((dir (file-name-directory filename)))
        (and (file-exists-p dir)
             (file-writable-p dir)))
! ;    (with-parsed-tramp-file-name filename nil
!     (let (user host localname)
!       (with-parsed-tramp-file-name filename l
!       (setq user l-user host l-host localname l-localname))
        (save-excursion
        (let* ((share (tramp-smb-get-share localname))
               (file (tramp-smb-get-localname localname nil))
--- 439,445 ----
        (let ((dir (file-name-directory filename)))
        (and (file-exists-p dir)
             (file-writable-p dir)))
!     (with-parsed-tramp-file-name filename nil
        (save-excursion
        (let* ((share (tramp-smb-get-share localname))
               (file (tramp-smb-get-localname localname nil))
***************
*** 490,499 ****
      ;; This check is a little bit strange, but in `dired-add-entry'
      ;; this function is called with a non-directory ...
      (setq filename (file-name-as-directory filename)))
! ;  (with-parsed-tramp-file-name filename nil
!   (let        (user host localname)
!     (with-parsed-tramp-file-name filename l
!       (setq user l-user host l-host localname l-localname))
      (save-match-data
        (let* ((share (tramp-smb-get-share localname))
             (file (tramp-smb-get-localname localname nil))
--- 459,465 ----
      ;; This check is a little bit strange, but in `dired-add-entry'
      ;; this function is called with a non-directory ...
      (setq filename (file-name-as-directory filename)))
!   (with-parsed-tramp-file-name filename nil
      (save-match-data
        (let* ((share (tramp-smb-get-share localname))
             (file (tramp-smb-get-localname localname nil))
***************
*** 543,552 ****
    (setq dir (directory-file-name (expand-file-name dir)))
    (unless (file-name-absolute-p dir)
      (setq dir (concat default-directory dir)))
! ;  (with-parsed-tramp-file-name dir nil
!   (let        (user host localname)
!     (with-parsed-tramp-file-name dir l
!       (setq user l-user host l-host localname l-localname))
      (save-match-data
        (let* ((share (tramp-smb-get-share localname))
             (ldir (file-name-directory dir)))
--- 509,515 ----
    (setq dir (directory-file-name (expand-file-name dir)))
    (unless (file-name-absolute-p dir)
      (setq dir (concat default-directory dir)))
!   (with-parsed-tramp-file-name dir nil
      (save-match-data
        (let* ((share (tramp-smb-get-share localname))
             (ldir (file-name-directory dir)))
***************
*** 564,573 ****
    (setq directory (directory-file-name (expand-file-name directory)))
    (unless (file-name-absolute-p directory)
      (setq directory (concat default-directory directory)))
! ;  (with-parsed-tramp-file-name directory nil
!   (let        (user host localname)
!     (with-parsed-tramp-file-name directory l
!       (setq user l-user host l-host localname l-localname))
      (save-match-data
        (let* ((share (tramp-smb-get-share localname))
             (file (tramp-smb-get-localname localname nil)))
--- 527,533 ----
    (setq directory (directory-file-name (expand-file-name directory)))
    (unless (file-name-absolute-p directory)
      (setq directory (concat default-directory directory)))
!   (with-parsed-tramp-file-name directory nil
      (save-match-data
        (let* ((share (tramp-smb-get-share localname))
             (file (tramp-smb-get-localname localname nil)))
***************
*** 597,606 ****
                 (file-exists-p newname))
          (error "rename-file: file %s already exists" newname))
  
! ;      (with-parsed-tramp-file-name newname nil
!       (let (user host localname)
!       (with-parsed-tramp-file-name newname l
!         (setq user l-user host l-host localname l-localname))
        (save-excursion
          (let ((share (tramp-smb-get-share localname))
                (file (tramp-smb-get-localname localname t)))
--- 557,563 ----
                 (file-exists-p newname))
          (error "rename-file: file %s already exists" newname))
  
!       (with-parsed-tramp-file-name newname nil
        (save-excursion
          (let ((share (tramp-smb-get-share localname))
                (file (tramp-smb-get-localname localname t)))
***************
*** 636,645 ****
      (unless (y-or-n-p (format "File %s exists; overwrite anyway? "
                                filename))
        (error "File not overwritten")))
! ;  (with-parsed-tramp-file-name filename nil
!   (let (user host localname)
!     (with-parsed-tramp-file-name filename l
!       (setq user l-user host l-host localname l-localname))
      (save-excursion
        (let ((share (tramp-smb-get-share localname))
            (file (tramp-smb-get-localname localname t))
--- 593,599 ----
      (unless (y-or-n-p (format "File %s exists; overwrite anyway? "
                                filename))
        (error "File not overwritten")))
!   (with-parsed-tramp-file-name filename nil
      (save-excursion
        (let ((share (tramp-smb-get-share localname))
            (file (tramp-smb-get-localname localname t))
***************
*** 969,974 ****
--- 923,932 ----
  
  Domain names in USER and port numbers in HOST are acknowledged."
  
+   (when (and (fboundp 'executable-find)
+            (not (funcall 'executable-find tramp-smb-program)))
+     (error "Cannot find command %s in %s" tramp-smb-program exec-path))
+ 
    (save-match-data
      (let* ((buffer (tramp-get-buffer nil tramp-smb-method user host))
           (real-user user)




reply via email to

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