bug-gnu-emacs
[Top][All Lists]
Advanced

[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







reply via email to

[Prev in Thread] Current Thread [Next in Thread]