| 3891 | | (when tramp-auto-save-directory |
|---|
| 3892 | | (unless (file-exists-p tramp-auto-save-directory) |
|---|
| 3893 | | (make-directory tramp-auto-save-directory t))) |
|---|
| 3894 | | ;; jka-compr doesn't like auto-saving, so by appending "~" to the |
|---|
| 3895 | | ;; file name we make sure that jka-compr isn't used for the |
|---|
| 3896 | | ;; auto-save file. |
|---|
| 3897 | | (let ((buffer-file-name |
|---|
| 3898 | | (if tramp-auto-save-directory |
|---|
| 3899 | | (expand-file-name |
|---|
| 3900 | | (tramp-subst-strs-in-string |
|---|
| 3901 | | '(("_" . "|") |
|---|
| 3902 | | ("/" . "_a") |
|---|
| 3903 | | (":" . "_b") |
|---|
| 3904 | | ("|" . "__") |
|---|
| 3905 | | ("[" . "_l") |
|---|
| 3906 | | ("]" . "_r")) |
|---|
| 3907 | | (buffer-file-name)) |
|---|
| 3908 | | tramp-auto-save-directory) |
|---|
| 3909 | | (buffer-file-name)))) |
|---|
| 3910 | | ;; Run plain `make-auto-save-file-name'. There might be an advice when |
|---|
| 3911 | | ;; it is not a magic file name operation (since Emacs 22). |
|---|
| 3912 | | ;; We must deactivate it temporarily. |
|---|
| 3913 | | (if (not (ad-is-active 'make-auto-save-file-name)) |
|---|
| 3914 | | (tramp-run-real-handler |
|---|
| 3915 | | 'make-auto-save-file-name nil) |
|---|
| 3916 | | ;; else |
|---|
| 3917 | | (ad-deactivate 'make-auto-save-file-name) |
|---|
| 3918 | | (prog1 |
|---|
| 3919 | | (tramp-run-real-handler |
|---|
| 3920 | | 'make-auto-save-file-name nil) |
|---|
| 3921 | | (ad-activate 'make-auto-save-file-name))))) |
|---|
| | 3891 | (let ((tramp-auto-save-directory tramp-auto-save-directory)) |
|---|
| | 3892 | ;; File name must be unique. This is ensured with Emacs 22 (see |
|---|
| | 3893 | ;; UNIQUIFY element of `auto-save-file-name-transforms'); but for |
|---|
| | 3894 | ;; all other cases we must do it ourselves. |
|---|
| | 3895 | (when (boundp 'auto-save-file-name-transforms) |
|---|
| | 3896 | (mapcar |
|---|
| | 3897 | '(lambda (x) |
|---|
| | 3898 | (when (and (string-match (car x) buffer-file-name) |
|---|
| | 3899 | (not (car (cddr x)))) |
|---|
| | 3900 | (setq tramp-auto-save-directory |
|---|
| | 3901 | (or tramp-auto-save-directory temporary-file-directory)))) |
|---|
| | 3902 | (symbol-value 'auto-save-file-name-transforms))) |
|---|
| | 3903 | ;; Create directory. |
|---|
| | 3904 | (when tramp-auto-save-directory |
|---|
| | 3905 | (unless (file-exists-p tramp-auto-save-directory) |
|---|
| | 3906 | (make-directory tramp-auto-save-directory t))) |
|---|
| | 3907 | ;; jka-compr doesn't like auto-saving, so by appending "~" to the |
|---|
| | 3908 | ;; file name we make sure that jka-compr isn't used for the |
|---|
| | 3909 | ;; auto-save file. |
|---|
| | 3910 | (let ((buffer-file-name |
|---|
| | 3911 | (if tramp-auto-save-directory |
|---|
| | 3912 | (expand-file-name |
|---|
| | 3913 | (tramp-subst-strs-in-string |
|---|
| | 3914 | '(("_" . "|") |
|---|
| | 3915 | ("/" . "_a") |
|---|
| | 3916 | (":" . "_b") |
|---|
| | 3917 | ("|" . "__") |
|---|
| | 3918 | ("[" . "_l") |
|---|
| | 3919 | ("]" . "_r")) |
|---|
| | 3920 | (buffer-file-name)) |
|---|
| | 3921 | tramp-auto-save-directory) |
|---|
| | 3922 | (buffer-file-name)))) |
|---|
| | 3923 | ;; Run plain `make-auto-save-file-name'. There might be an advice when |
|---|
| | 3924 | ;; it is not a magic file name operation (since Emacs 22). |
|---|
| | 3925 | ;; We must deactivate it temporarily. |
|---|
| | 3926 | (if (not (ad-is-active 'make-auto-save-file-name)) |
|---|
| | 3927 | (tramp-run-real-handler |
|---|
| | 3928 | 'make-auto-save-file-name nil) |
|---|
| | 3929 | ;; else |
|---|
| | 3930 | (ad-deactivate 'make-auto-save-file-name) |
|---|
| | 3931 | (prog1 |
|---|
| | 3932 | (tramp-run-real-handler |
|---|
| | 3933 | 'make-auto-save-file-name nil) |
|---|
| | 3934 | (ad-activate 'make-auto-save-file-name)))))) |
|---|