unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#767: 23.0.60; compilation-start gives bad default-directory
@ 2008-08-26 22:18 Chong Yidong
  0 siblings, 0 replies; 10+ messages in thread
From: Chong Yidong @ 2008-08-26 22:18 UTC (permalink / raw)
  To: Lennart Borgman (gmail); +Cc: 767

> If on w32 default-directory is something like c:\top\sub then the
> subprocess started by compilation-start will get pwd=c:\top.

Does the following patch fix this?

*** trunk/src/callproc.c.~1.240.~	2008-07-31 12:19:14.000000000 -0400
--- trunk/src/callproc.c	2008-08-26 18:15:59.000000000 -0400
***************
*** 374,379 ****
--- 374,381 ----
  	 a sensible default. */
        current_dir = build_string ("~/");
      current_dir = expand_and_dir_to_file (current_dir, Qnil);
+     current_dir = Ffile_name_as_directory (current_dir);
+ 
      if (NILP (Ffile_accessible_directory_p (current_dir)))
        report_file_error ("Setting current directory",
  			 Fcons (current_buffer->directory, Qnil));






^ permalink raw reply	[flat|nested] 10+ messages in thread
* bug#767: 23.0.60; compilation-start gives bad default-directory
@ 2008-08-23 13:05 Lennart Borgman (gmail)
  2008-09-07 19:34 ` Stefan Monnier
  0 siblings, 1 reply; 10+ messages in thread
From: Lennart Borgman (gmail) @ 2008-08-23 13:05 UTC (permalink / raw)
  To: emacs-pretest-bug

[-- Attachment #1: Type: text/plain, Size: 925 bytes --]

If on w32 default-directory is something like c:\top\sub then the
subprocess started by compilation-start will get pwd=c:\top.

This can be cured by the attached patch for this special case, but it is
only a demonstration of the problem, not the right fix for this problem.

The attached patch only does

  (let ((default-directory (file-name-as-directory default-directory))

just before calling `start-file-process-shell-command'.

A slightly better fix would probably be to add the same thing in
`start-file-process', but it seems to me that this should handled at the
C level to catch all cases. I do not know where to do that but it must
be done somewhere before make_process in start-process.


In GNU Emacs 23.0.60.1 (i386-mingw-nt5.1.2600)
 of 2008-08-10
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (3.4) --no-opt --cflags
-Ic:/g/include -fno-crossjumping'

[-- Attachment #2: compile-start-default-directory.diff --]
[-- Type: text/plain, Size: 675 bytes --]

? compile-start-default-directory.diff
Index: compile.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/progmodes/compile.el,v
retrieving revision 1.476
diff -b -u -r1.476 compile.el
--- compile.el	13 Jun 2008 16:22:16 -0000	1.476
+++ compile.el	23 Aug 2008 12:49:59 -0000
@@ -1246,7 +1246,8 @@
 	    (funcall compilation-process-setup-function))
 	(compilation-set-window-height outwin)
 	;; Start the compilation.
-	(let ((proc
+	(let* ((default-directory (file-name-as-directory default-directory))
+               (proc
 	       (if (eq mode t)
 		   ;; comint uses `start-file-process'.
 		   (get-buffer-process

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2008-09-07 23:48 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-26 22:18 bug#767: 23.0.60; compilation-start gives bad default-directory Chong Yidong
  -- strict thread matches above, loose matches on Subject: below --
2008-08-23 13:05 Lennart Borgman (gmail)
2008-09-07 19:34 ` Stefan Monnier
2008-09-07 19:40   ` Lennart Borgman (gmail)
2008-09-07 19:59     ` Stefan Monnier
2008-09-07 20:04       ` Lennart Borgman (gmail)
2008-09-07 20:38         ` Stefan Monnier
2008-09-07 20:59           ` Lennart Borgman (gmail)
2008-09-07 21:19   ` Eli Zaretskii
2008-09-07 23:48     ` Lennart Borgman (gmail)

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).