all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* 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

* 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
  2008-09-07 19:40   ` Lennart Borgman (gmail)
  2008-09-07 21:19   ` Eli Zaretskii
  0 siblings, 2 replies; 10+ messages in thread
From: Stefan Monnier @ 2008-09-07 19:34 UTC (permalink / raw)
  To: Lennart Borgman (gmail); +Cc: 767, emacs-pretest-bug

> If on w32 default-directory is something like c:\top\sub then the

Then it's a bug.  C-h v default-directory says:

   Name of default directory of current buffer.  Should end with slash.
   To interactively change the default directory, use command `cd'.

So if it doesn't end in slash, we have a problem.


        Stefan






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

* bug#767: 23.0.60; compilation-start gives bad default-directory
  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 21:19   ` Eli Zaretskii
  1 sibling, 1 reply; 10+ messages in thread
From: Lennart Borgman (gmail) @ 2008-09-07 19:40 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 767

Stefan Monnier wrote:
>> If on w32 default-directory is something like c:\top\sub then the
> 
> Then it's a bug.  C-h v default-directory says:
> 
>    Name of default directory of current buffer.  Should end with slash.
>    To interactively change the default directory, use command `cd'.
> 
> So if it doesn't end in slash, we have a problem.


I never noticed that it must end with a slash and in many circumstances
it works without it.

I suggested that this should be fixed somewhere in start-process and I
think Chong added something along those lines.

Do you suggest something else? (Making Emacs actually require the ending
slash seems is not very backwards compatible.)






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

* bug#767: 23.0.60; compilation-start gives bad default-directory
  2008-09-07 19:40   ` Lennart Borgman (gmail)
@ 2008-09-07 19:59     ` Stefan Monnier
  2008-09-07 20:04       ` Lennart Borgman (gmail)
  0 siblings, 1 reply; 10+ messages in thread
From: Stefan Monnier @ 2008-09-07 19:59 UTC (permalink / raw)
  To: Lennart Borgman (gmail); +Cc: 767

> I never noticed that it must end with a slash and in many circumstances
> it works without it.

I know it does in many cases, but as you've found out it doesn't
always work.

> I suggested that this should be fixed somewhere in start-process and I
> think Chong added something along those lines.

I saw that yes.  And I think that given the docstring, the patch should
not let-bind default-directory but just setq it (or do nothing at all).

> (Making Emacs actually require the ending slash seems is not very
> backwards compatible.)

AFAIK it's been that way for ever, so backward compatibility is not
really relevant.


        Stefan






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

* bug#767: 23.0.60; compilation-start gives bad default-directory
  2008-09-07 19:59     ` Stefan Monnier
@ 2008-09-07 20:04       ` Lennart Borgman (gmail)
  2008-09-07 20:38         ` Stefan Monnier
  0 siblings, 1 reply; 10+ messages in thread
From: Lennart Borgman (gmail) @ 2008-09-07 20:04 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 767

Stefan Monnier wrote:
>> I suggested that this should be fixed somewhere in start-process and I
>> think Chong added something along those lines.
> 
> I saw that yes.  And I think that given the docstring, the patch should
> not let-bind default-directory but just setq it (or do nothing at all).

Why not change the doc string instead and say that it is recommended
that default-directory ends with a slash? I do not understand the reason
for your suggestions above.







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

* bug#767: 23.0.60; compilation-start gives bad default-directory
  2008-09-07 20:04       ` Lennart Borgman (gmail)
@ 2008-09-07 20:38         ` Stefan Monnier
  2008-09-07 20:59           ` Lennart Borgman (gmail)
  0 siblings, 1 reply; 10+ messages in thread
From: Stefan Monnier @ 2008-09-07 20:38 UTC (permalink / raw)
  To: Lennart Borgman (gmail); +Cc: 767

>>> I suggested that this should be fixed somewhere in start-process and I
>>> think Chong added something along those lines.
>> I saw that yes.  And I think that given the docstring, the patch should
>> not let-bind default-directory but just setq it (or do nothing at all).
> Why not change the doc string instead and say that it is recommended
> that default-directory ends with a slash?

Because it worked just fine as it is.  You still haven't told us where
the offending (non slash-terminated) value came from (which is the
thing that needs to be fixed).


        Stefan








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

* bug#767: 23.0.60; compilation-start gives bad default-directory
  2008-09-07 20:38         ` Stefan Monnier
@ 2008-09-07 20:59           ` Lennart Borgman (gmail)
  0 siblings, 0 replies; 10+ messages in thread
From: Lennart Borgman (gmail) @ 2008-09-07 20:59 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 767

Stefan Monnier wrote:
>>>> I suggested that this should be fixed somewhere in start-process and I
>>>> think Chong added something along those lines.
>>> I saw that yes.  And I think that given the docstring, the patch should
>>> not let-bind default-directory but just setq it (or do nothing at all).
>> Why not change the doc string instead and say that it is recommended
>> that default-directory ends with a slash?
> 
> Because it worked just fine as it is.  You still haven't told us where
> the offending (non slash-terminated) value came from (which is the
> thing that needs to be fixed).


It is not a bad question, but I can't remember now. Whatever I try to do
I get an ending slash there (unless I do not set default-directory
myself of course). However I am quite sure I did not get that before.
Something must be different ...

The value of default-directory on w32 may still use \ instead of /. That
is the case after "emacs -Q", but that is another problem.






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

* bug#767: 23.0.60; compilation-start gives bad default-directory
  2008-09-07 19:34 ` Stefan Monnier
  2008-09-07 19:40   ` Lennart Borgman (gmail)
@ 2008-09-07 21:19   ` Eli Zaretskii
  2008-09-07 23:48     ` Lennart Borgman (gmail)
  1 sibling, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2008-09-07 21:19 UTC (permalink / raw)
  To: Stefan Monnier, 767; +Cc: emacs-pretest-bug

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Date: Sun, 07 Sep 2008 15:34:10 -0400
> Cc: 767@emacsbugs.donarmstrong.com, emacs-pretest-bug@gnu.org
> 
> > If on w32 default-directory is something like c:\top\sub then the
> 
> Then it's a bug.  C-h v default-directory says:
> 
>    Name of default directory of current buffer.  Should end with slash.
>    To interactively change the default directory, use command `cd'.
> 
> So if it doesn't end in slash, we have a problem.

It does end in a slash on my machine (also on MS-Windows).

I think the original problem is that it uses backslashes instead of
forward slashes.






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

* bug#767: 23.0.60; compilation-start gives bad default-directory
  2008-09-07 21:19   ` Eli Zaretskii
@ 2008-09-07 23:48     ` Lennart Borgman (gmail)
  0 siblings, 0 replies; 10+ messages in thread
From: Lennart Borgman (gmail) @ 2008-09-07 23:48 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 767

Eli Zaretskii wrote:
>> From: Stefan Monnier <monnier@iro.umontreal.ca>
>> Date: Sun, 07 Sep 2008 15:34:10 -0400
>> Cc: 767@emacsbugs.donarmstrong.com, emacs-pretest-bug@gnu.org
>>
>>> If on w32 default-directory is something like c:\top\sub then the
>> Then it's a bug.  C-h v default-directory says:
>>
>>    Name of default directory of current buffer.  Should end with slash.
>>    To interactively change the default directory, use command `cd'.
>>
>> So if it doesn't end in slash, we have a problem.
> 
> It does end in a slash on my machine (also on MS-Windows).
> 
> I think the original problem is that it uses backslashes instead of
> forward slashes.

No, but I do not understand now why the final forward slash was missing.

But of course it might also mean trouble that default-directory when you
start Emacs on w32 uses backslashes. Is there any reason not to change that?






^ 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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.