* possible bug in process.c?
@ 2004-01-14 18:52 Michael Vezie
2004-01-15 8:30 ` Eli Zaretskii
0 siblings, 1 reply; 2+ messages in thread
From: Michael Vezie @ 2004-01-14 18:52 UTC (permalink / raw)
In process.c, in DEFUN("start-process...
Around line 1193 or so (in 21.3, although I've seen the same code in 20.7) is the following
snippet of code:
/* If program file name is not absolute, search our path for it */
if (!IS_DIRECTORY_SEP (XSTRING (program)->data[0])
&& !(XSTRING (program)->size > 1
&& IS_DEVICE_SEP (XSTRING (program)->data[1])))
{
... at which point it then processes a relative pathname file (looking through Vexec_path
for the executable, etc).
Maybe I'm reading this wrong (help me out if I am), but shouldn't that last line there read:
&& !IS_DEVICE_SEP (XSTRING (program)->data[1])))
note ^
Here's how I read it:
If the first character is not a directory separator ('/' or '\\') and the string is longer than
1 and the second character is a device separator (':')... you're checking here if the string denotes
a relative path. But if the second character is a ':', then it's something like:
c:/fsf/emacs-21.3/bin/cmdproxy.exe
which is an absolute path, and doesn't require looking through Vexec_path.
In any case, I get an error preceeded by "Searching for program" when I set my SHELL environment
variable to c:/fsf/emacs-21.3/bin/cmdproxy.exe (it should never search for the program in the path
with an absolute path like that), and things work fine when I set my SHELL environment variable to
simply cmdproxy.exe
Michael
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: possible bug in process.c?
2004-01-14 18:52 possible bug in process.c? Michael Vezie
@ 2004-01-15 8:30 ` Eli Zaretskii
0 siblings, 0 replies; 2+ messages in thread
From: Eli Zaretskii @ 2004-01-15 8:30 UTC (permalink / raw)
Cc: bug-gnu-emacs
> Date: Wed, 14 Jan 2004 13:52:44 -0500
> From: Michael Vezie <mlv@pobox.com>
>
> /* If program file name is not absolute, search our path for it */
> if (!IS_DIRECTORY_SEP (XSTRING (program)->data[0])
> && !(XSTRING (program)->size > 1
> && IS_DEVICE_SEP (XSTRING (program)->data[1])))
> {
>
> ... at which point it then processes a relative pathname file (looking through Vexec_path
> for the executable, etc).
>
> Maybe I'm reading this wrong (help me out if I am), but shouldn't that last line there read:
> && !IS_DEVICE_SEP (XSTRING (program)->data[1])))
> note ^
>
> Here's how I read it:
>
> If the first character is not a directory separator ('/' or '\\') and the string is longer than
> 1 and the second character is a device separator (':')... you're checking here if the string denotes
> a relative path. But if the second character is a ':', then it's something like:
>
> c:/fsf/emacs-21.3/bin/cmdproxy.exe
>
> which is an absolute path, and doesn't require looking through Vexec_path.
My reading of that code is:
If the first character is not '/' or '\\' and either the file name
is not longer than 1 character or its second character is not ':',
then it's not an absolute file name.
> In any case, I get an error preceeded by "Searching for program" when I set my SHELL environment
> variable to c:/fsf/emacs-21.3/bin/cmdproxy.exe (it should never search for the program in the path
> with an absolute path like that), and things work fine when I set my SHELL environment variable to
> simply cmdproxy.exe
Could you please see with a debugger whether the code in question is
indeed the one that's misbehaving?
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2004-01-15 8:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-01-14 18:52 possible bug in process.c? Michael Vezie
2004-01-15 8:30 ` Eli Zaretskii
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.