Mail Archives: djgpp/1997/01/15/10:33:08
On Fri, 10 Jan 1997, W. L. Estes wrote:
> while in emacs:
> 
> with comspec pointing to c:\4dos\4dos.com,
> 
> running m-!help calls the msdos help, not the 4dos help.
> tried from my shell (4dos) prompt, it does call the right help.
Short answer: say `M-! 4dos help RET' instead of `M-! help RET'.
Long answer: this is a feature.  Emacs on MSDOS doesn't blindly call the
shell when you invoke `M-!', but first looks on the PATH for the named
command, and thus finds the DOS help.com and invokes it.  The reason for 
this is that even 4DOS isn't smart enough for us DJGPP'ers (to say 
nothing of stock COMMAND.COM): for example, the way Emacs works, you can 
invoke long commands (upto 14KB, to be exact), which is impossible with 
DOS shells.  Another case in point is when you have a program named 
`mkdir' (e.g. from GNU Fileutils) which is much smarter than its DOS 
namesake: if Emacs would to go through the shell, you would never be able 
to call that `mkdir'.  If you need to invoke a command internal to the 
shell, be sure to call it explicitly, like above.
Btw, the above behavior is implemented inside DJGPP library function 
`system'; Emacs merely calls `system' when you press `M-!'.  There is 
much more to features of `system' than I can tell here; please refer to 
the docs of that function in the libc reference, for the details.
- Raw text -