summaryrefslogtreecommitdiff
path: root/lisp/dired-x.el
diff options
context:
space:
mode:
authorStefan Kangas <stefan@marxist.se>2022-07-08 18:31:17 +0200
committerStefan Kangas <stefan@marxist.se>2022-07-08 19:44:05 +0200
commit99c96f50ed2058bec44612134ccaf9aa51c9730e (patch)
tree046215fde6c1348b0e3c1a6fed92ff5548b4c7e9 /lisp/dired-x.el
parent033d370a5140aaba79cbac37399a387390d4c18e (diff)
downloademacs-99c96f50ed2058bec44612134ccaf9aa51c9730e.tar.gz
Move dired-do-relsymlink from dired-x.el to dired.el
* lisp/dired-x.el (dired-do-relsymlink, dired-make-relative-symlink) (dired-do-relsymlink-regexp): Move from here... * lisp/dired-aux.el (dired-do-relsymlink, dired-make-relative-symlink) (dired-do-relsymlink-regexp): ...to here. (Bug#21981) * lisp/dired-x.el: Move keybinding and menu binding from here... * lisp/dired.el (dired-mode-map, dired-mode-regexp-menu): ...to here. * lisp/dired-x.el (dired-keep-marker-relsymlink): Move from here... * lisp/dired.el (dired-keep-marker-relsymlink): ...to here. Improve docstring. * doc/misc/dired-x.texi (Miscellaneous Commands): Move documentation of above commands from here... * doc/emacs/dired.texi (Operating on Files) (Transforming File Names): ...to here.
Diffstat (limited to 'lisp/dired-x.el')
-rw-r--r--lisp/dired-x.el105
1 files changed, 0 insertions, 105 deletions
diff --git a/lisp/dired-x.el b/lisp/dired-x.el
index 1e1bf9efd68..08daef71c6e 100644
--- a/lisp/dired-x.el
+++ b/lisp/dired-x.el
@@ -238,15 +238,11 @@ to nil: a pipe using `zcat' or `gunzip -c' will be used."
(define-key dired-mode-map "*O" 'dired-mark-omitted)
(define-key dired-mode-map "*." 'dired-mark-extension))
-(when (keymapp (lookup-key dired-mode-map "%"))
- (define-key dired-mode-map "%Y" 'dired-do-relsymlink-regexp))
-
(define-key dired-mode-map "\C-x\M-o" 'dired-omit-mode)
(define-key dired-mode-map "\M-(" 'dired-mark-sexp)
(define-key dired-mode-map "\M-!" 'dired-smart-shell-command)
(define-key dired-mode-map "\M-G" 'dired-goto-subdir)
(define-key dired-mode-map "F" 'dired-do-find-marked-files)
-(define-key dired-mode-map "Y" 'dired-do-relsymlink)
(define-key dired-mode-map "V" 'dired-do-run-mail)
@@ -257,12 +253,6 @@ to nil: a pipe using `zcat' or `gunzip -c' will be used."
["Find Files" dired-do-find-marked-files
:help "Find current or marked files"]
"Shell Command...")
- (easy-menu-add-item menu '("Operate")
- ["Relative Symlink to..." dired-do-relsymlink
- :visible (fboundp 'make-symbolic-link)
- :help "Make relative symbolic links for current or \
-marked files"]
- "Hardlink to...")
(easy-menu-add-item menu '("Mark")
["Flag Extension..." dired-flag-extension
:help "Flag files with a certain extension for deletion"]
@@ -276,12 +266,6 @@ marked files"]
:help "Mark files matching `dired-omit-files' \
and `dired-omit-extensions'"]
"Unmark All")
- (easy-menu-add-item menu '("Regexp")
- ["Relative Symlink..." dired-do-relsymlink-regexp
- :visible (fboundp 'make-symbolic-link)
- :help "Make relative symbolic links for files \
-matching regexp"]
- "Hardlink...")
(easy-menu-add-item menu '("Immediate")
["Omit Mode" dired-omit-mode
:style toggle :selected dired-omit-mode
@@ -1045,95 +1029,6 @@ See `dired-guess-shell-alist-user'."
(if (equal val "") default val))))
-;;; Relative symbolic links
-
-(declare-function make-symbolic-link "fileio.c")
-
-(defvar dired-keep-marker-relsymlink ?S
- "See variable `dired-keep-marker-move'.")
-
-(defun dired-make-relative-symlink (file1 file2 &optional ok-if-already-exists)
- "Make a symbolic link (pointing to FILE1) in FILE2.
-The link is relative (if possible), for example
-
- \"/vol/tex/bin/foo\" \"/vol/local/bin/foo\"
-
-results in
-
- \"../../tex/bin/foo\" \"/vol/local/bin/foo\""
- (interactive "FRelSymLink: \nFRelSymLink %s: \np")
- (let (name1 name2 len1 len2 (index 0) sub)
- (setq file1 (expand-file-name file1)
- file2 (expand-file-name file2)
- len1 (length file1)
- len2 (length file2))
- ;; Find common initial file name components:
- (let (next)
- (while (and (setq next (string-search "/" file1 index))
- (< (setq next (1+ next)) (min len1 len2))
- ;; For the comparison, both substrings must end in
- ;; `/', so NEXT is *one plus* the result of the
- ;; string-search.
- ;; E.g., consider the case of linking "/tmp/a/abc"
- ;; to "/tmp/abc" erroneously giving "/tmp/a" instead
- ;; of "/tmp/" as common initial component
- (string-equal (substring file1 0 next)
- (substring file2 0 next)))
- (setq index next))
- (setq name2 file2
- sub (substring file1 0 index)
- name1 (substring file1 index)))
- (if (string-equal sub "/")
- ;; No common initial file name found
- (setq name1 file1)
- ;; Else they have a common parent directory
- (let ((tem (substring file2 index))
- (start 0)
- (count 0))
- ;; Count number of slashes we must compensate for ...
- (while (setq start (string-search "/" tem start))
- (setq count (1+ count)
- start (1+ start)))
- ;; ... and prepend a "../" for each slash found:
- (dotimes (_ count)
- (setq name1 (concat "../" name1)))))
- (make-symbolic-link
- (directory-file-name name1) ; must not link to foo/
- ; (trailing slash!)
- name2 ok-if-already-exists)))
-
-(autoload 'dired-do-create-files "dired-aux")
-
-;;;###autoload
-(defun dired-do-relsymlink (&optional arg)
- "Relative symlink all marked (or next ARG) files into a directory.
-Otherwise make a relative symbolic link to the current file.
-This creates relative symbolic links like
-
- foo -> ../bar/foo
-
-not absolute ones like
-
- foo -> /ugly/file/name/that/may/change/any/day/bar/foo
-
-For absolute symlinks, use \\[dired-do-symlink]."
- (interactive "P")
- (dired-do-create-files 'relsymlink #'dired-make-relative-symlink
- "RelSymLink" arg dired-keep-marker-relsymlink))
-
-(autoload 'dired-mark-read-regexp "dired-aux")
-(autoload 'dired-do-create-files-regexp "dired-aux")
-
-(defun dired-do-relsymlink-regexp (regexp newname &optional arg whole-name)
- "RelSymlink all marked files containing REGEXP to NEWNAME.
-See functions `dired-do-rename-regexp' and `dired-do-relsymlink'
-for more info."
- (interactive (dired-mark-read-regexp "RelSymLink"))
- (dired-do-create-files-regexp
- #'dired-make-relative-symlink
- "RelSymLink" arg regexp newname whole-name dired-keep-marker-relsymlink))
-
-
;;; Visit all marked files simultaneously
;; Brief Description: