[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#6136: Emerge doesn't handle file names with spaces on MS Windows
From: |
Joakim Hårsman |
Subject: |
bug#6136: Emerge doesn't handle file names with spaces on MS Windows |
Date: |
Fri, 7 May 2010 21:19:36 +0200 |
If any of the file names supplied to Emerge (e.g to
emerge-files-with-ancestor) has spaces in in its path and Emacs is
running on MS Windows, the merge fails.
The problem is the way Emerge passes the file names to diff, it tries
to escape spaces (and other metchars) with backslashes, but that
doesn't work on MS Windows since the backslash is a path separator
there.
If I change the definition of emerge-protect-metachars to the
following it works:
(defun emerge-protect-metachars (s)
(if (member system-type '(windows-nt ms-dos))
(emerge-protect-metachars-win s)
(emerge-protect-metachars-nix s)))
(defun emerge-protect-metachars-nix (s)
(let ((limit 0))
(while (string-match emerge-metachars s limit)
(setq s (concat (substring s 0 (match-beginning 0))
"\\"
(substring s (match-beginning 0))))
(setq limit (1+ (match-end 0)))))
s)
(defun emerge-protect-metachars-win (s)
(concat "\"" s "\""))
Here's some output which might be useful:
GNU Emacs 23.1.1 (i386-mingw-nt5.1.2600) of 2009-07-30 on SOFT-MJASON
- bug#6136: Emerge doesn't handle file names with spaces on MS Windows,
Joakim Hårsman <=