@end example
@end defun
-@defun directory-append directory &rest components
+@defun file-name-concat directory &rest components
Concatenate @var{components} to @var{directory}, inserting a slash
before the components if @var{directory} or the preceding component
didn't end with a slash.
@example
@group
-(directory-append "/tmp" "foo")
+(file-name-concat "/tmp" "foo")
@result{} "/tmp/foo"
@end group
@end example
:eval (file-relative-name "/tmp/foo" "/tmp"))
(make-temp-name
:eval (make-temp-name "/tmp/foo-"))
- (directory-append
- :eval (directory-append "/tmp/" "foo")
- :eval (directory-append "/tmp" "foo")
- :eval (directory-append "/tmp" "foo" "bar/" "zot")
- :eval (directory-append "/tmp" "~"))
+ (file-name-concat
+ :eval (file-name-concat "/tmp/" "foo")
+ :eval (file-name-concat "/tmp" "foo")
+ :eval (file-name-concat "/tmp" "foo" "bar/" "zot")
+ :eval (file-name-concat "/tmp" "~"))
(expand-file-name
:eval (expand-file-name "foo" "/tmp/")
:eval (expand-file-name "foo" "/tmp///")
;; exists, but the file name may exist in the trash
;; directory even if there is no info file for it.
(when (file-exists-p
- (directory-append trash-files-dir files-base))
+ (file-name-concat trash-files-dir files-base))
(setq overwrite t
files-base (file-name-nondirectory
(make-temp-file
- (directory-append
+ (file-name-concat
trash-files-dir files-base)
is-directory))))
- (setq info-fn (directory-append
+ (setq info-fn (file-name-concat
trash-info-dir
(concat files-base ".trashinfo")))
;; Re-check the existence (sort of).
;; like Emacs-style backup file names. E.g.:
;; https://bugs.kde.org/170956
(setq info-fn (make-temp-file
- (directory-append trash-info-dir files-base)
+ (file-name-concat trash-info-dir files-base)
nil ".trashinfo"))
(setq files-base (substring (file-name-nondirectory info-fn)
0 (- (length ".trashinfo"))))
(write-region nil nil info-fn nil 'quiet info-fn)))
;; Finally, try to move the file to the trashcan.
(let ((delete-by-moving-to-trash nil)
- (new-fn (directory-append trash-files-dir files-base)))
+ (new-fn (file-name-concat trash-files-dir files-base)))
(rename-file fn new-fn overwrite)))))))))
(defsubst file-attribute-type (attributes)
empty_unibyte_string, Qnil);
}
-DEFUN ("directory-append", Fdirectory_append, Sdirectory_append, 1, MANY, 0,
+DEFUN ("file-name-concat", Ffile_name_concat, Sfile_name_concat, 1, MANY, 0,
doc: /* Append COMPONENTS to DIRECTORY and return the resulting string.
Elements in COMPONENTS must be a string or nil.
DIRECTORY or the non-final elements in COMPONENTS may or may not end
defsubr (&Sdirectory_file_name);
defsubr (&Smake_temp_file_internal);
defsubr (&Smake_temp_name);
- defsubr (&Sdirectory_append);
+ defsubr (&Sfile_name_concat);
defsubr (&Sexpand_file_name);
defsubr (&Ssubstitute_in_file_name);
defsubr (&Scopy_file);
(should-error (file-exists-p "/foo\0bar")
:type 'wrong-type-argument))
-(ert-deftest fileio-tests/directory-append ()
- (should (equal (directory-append "foo" "bar") "foo/bar"))
- (should (equal (directory-append "foo" "bar") "foo/bar"))
- (should (equal (directory-append "foo" "bar" "zot") "foo/bar/zot"))
- (should (equal (directory-append "foo/" "bar") "foo/bar"))
- (should (equal (directory-append "foo//" "bar") "foo//bar"))
- (should (equal (directory-append "foo/" "bar/" "zot") "foo/bar/zot"))
- (should (equal (directory-append "fóo" "bar") "fóo/bar"))
- (should (equal (directory-append "foo" "bár") "foo/bár"))
- (should (equal (directory-append "fóo" "bár") "fóo/bár"))
+(ert-deftest fileio-tests/file-name-concat ()
+ (should (equal (file-name-concat "foo" "bar") "foo/bar"))
+ (should (equal (file-name-concat "foo" "bar") "foo/bar"))
+ (should (equal (file-name-concat "foo" "bar" "zot") "foo/bar/zot"))
+ (should (equal (file-name-concat "foo/" "bar") "foo/bar"))
+ (should (equal (file-name-concat "foo//" "bar") "foo//bar"))
+ (should (equal (file-name-concat "foo/" "bar/" "zot") "foo/bar/zot"))
+ (should (equal (file-name-concat "fóo" "bar") "fóo/bar"))
+ (should (equal (file-name-concat "foo" "bár") "foo/bár"))
+ (should (equal (file-name-concat "fóo" "bár") "fóo/bár"))
(let ((string (make-string 5 ?a)))
(should (not (multibyte-string-p string)))
(aset string 2 255)
(should (not (multibyte-string-p string)))
- (should (equal (directory-append "fóo" string) "fóo/aa\377aa")))
- (should (equal (directory-append "foo") "foo"))
- (should (equal (directory-append "foo/") "foo/"))
- (should (equal (directory-append "foo" "") "foo"))
- (should (equal (directory-append "foo" "" "" "" nil) "foo"))
- (should (equal (directory-append "" "bar") "bar"))
- (should (equal (directory-append "" "") "")))
+ (should (equal (file-name-concat "fóo" string) "fóo/aa\377aa")))
+ (should (equal (file-name-concat "foo") "foo"))
+ (should (equal (file-name-concat "foo/") "foo/"))
+ (should (equal (file-name-concat "foo" "") "foo"))
+ (should (equal (file-name-concat "foo" "" "" "" nil) "foo"))
+ (should (equal (file-name-concat "" "bar") "bar"))
+ (should (equal (file-name-concat "" "") "")))
;;; fileio-tests.el ends here