[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#8321: 23.1; emerge error diff extra operand
From: |
Eli Zaretskii |
Subject: |
bug#8321: 23.1; emerge error diff extra operand |
Date: |
Tue, 22 Mar 2011 21:48:27 +0200 |
> Date: Tue, 22 Mar 2011 15:31:43 -0400
> From: "Mark H. David" <mhd@yv.org>
>
> Thanks for checking on this so fast!
>
> Wow, actually having a full pathname with no spaces worked.
If so, I think this is already fixed in the development sources. Can
you try the patch below?
--- lisp/emerge.el~0 2011-03-10 19:56:29.093750000 +0200
+++ lisp/emerge.el 2011-03-18 23:48:44.187500000 +0200
@@ -3187,21 +3187,26 @@
;; Metacharacters that have to be protected from the shell when executing
;; a diff/diff3 command.
-(defcustom emerge-metachars "[ \t\n!\"#$&'()*;<=>?[\\^`{|~]"
- "Characters that must be quoted with \\ when used in a shell command line.
+(defcustom emerge-metachars
+ (if (memq system-type '(ms-dos windows-nt))
+ "[ \t\"<>|?*^&=]"
+ "[ \t\n!\"#$&'()*;<=>?[\\^`{|~]")
+ "Characters that must be quoted when used in a shell command line.
More precisely, a [...] regexp to match any one such character."
:type 'regexp
:group 'emerge)
;; Quote metacharacters (using \) when executing a diff/diff3 command.
(defun emerge-protect-metachars (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)
+ (if (memq system-type '(ms-dos windows-nt))
+ (shell-quote-argument 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))
(provide 'emerge)