From 2e480e42fa59da5d948532b4ebd0e43ef0304bec Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 26 Dec 2008 15:02:47 +0000 Subject: [PATCH] (dosified-file-name): New function. --- lisp/ChangeLog | 8 ++++++++ lisp/dos-fns.el | 19 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 0d00252edde..3a025d5bac9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2008-12-26 Eli Zaretskii + + * dos-fns.el (dosified-file-name): New function. + + * files.el (dir-locals-find-file): Run dir-locals-file through + dosified-file-name. Compare files case-insensitively on systems + whose filesystems are case-insensitive. + 2008-12-25 Martin Rudalics * help.el (help-for-help-internal): Fix entry for "l". diff --git a/lisp/dos-fns.el b/lisp/dos-fns.el index edcebb1306a..c6de5b2868a 100644 --- a/lisp/dos-fns.el +++ b/lisp/dos-fns.el @@ -186,6 +186,25 @@ shell requires it (see `w32-shell-dos-semantics')." (dos-8+3-filename dir)) string)))))) +;; This is for the sake of standard file names elsewhere in Emacs that +;; are defined as constant strings or via defconst, and whose +;; conversion via `convert-standard-filename' does not give good +;; enough results. +(defun dosified-file-name (file-name) + "Return a variant of FILE-NAME that is valid on MS-DOS filesystems. + +This function is for those rare cases where `convert-standard-filename' +does not do a job that is good enough, e.g. if you need to preserve the +file-name extension. It recognizes only certain specific file names +that are used in Emacs Lisp sources; any other file name will be +returned unaltered." + (cond + ;; See files.el:dir-locals-file. + ((string= file-name ".dir-locals.el") + "_dir-locals.el") + (t + file-name))) + ;; See dos-vars.el for defcustom. (defvar msdos-shells) -- 2.39.2