• Paul Eggert's avatar
    Improve performance for rename-file etc. · a56e6e79
    Paul Eggert authored
    Although this does not fix Bug#27986, it is a step forward.
    I plan to propose a more-significant patch later.
    * lisp/files.el (directory-name-p): Move from here ...
    * src/fileio.c (Fdirectory_name_p): ... to here.
    (directory_like, cp_like_target): New static functions.
    (Fcopy_file, Frename_file, Fadd_name_to_file)
    (Fmake_symbolic_link):
    Use them, to avoid directory-testing syscalls on file names that
    must be directories if they exist.  Omit unnecessary
    initializations and CHECK_STRING calls.
    (Frename_file): Don't call file_name_case_insensitive_p
    twice on the same file.  Compare both file names expanded, instead
    of the old name expanded and the new one unexpanded.
    a56e6e79
fileio.c 193 KB