Re: Using MSYS as Emacs shell [Partially solved]

"David A. Cobb" <[email protected]>
Newsgroups gmane.comp.gnu.mingw.msys
Message-ID <[email protected]>
  On 04/10/2010 09:38 AM, Keith Marshall wrote:
> On Saturday 10 April 2010 11:26:51 Vincent Torri wrote:
>> On Fri, 9 Apr 2010, David A. Cobb wrote:
>>>   On one Windows machine, I have both Cygwin and MingW32+MSYS
>>> installed.  To go with it, I have both Cygwin and Windows native
>>> emacsen. On the native system, I find using MS cmd.exe as the
>>> shell is sub-optimal. Would it be possible to set up MSYS as the
>>> shell?
>> in MSYS, the shell is actually bash.
> Yes, it is, but in a standard MSYS installation we normally start it
> in `sh compatibility' mode.
>
>> Iirc, there is no possible way to do what you want.
> Maybe; maybe not.  Depending on how your native MSW emacs invokes a
> shell, it may be just a matter of making the COMSPEC variable, (in
> the environment), point to the MSYS shell; try starting emacs from
> the MSYS shell itself, with a command such as:--
>
>    $ COMSPEC=/bin/sh.exe path/to/emacs ...
>
> (This should work, if emacs uses a `system()' call, resolved through
> MSVCRT.DLL, as would be the case if built using MinGW, or any other
> compiler suite which uses this, or a derivative runtime).
>
What I've done so far, after examining the code in emacs "shell.el" 
library, is this:
 From the MSYS console, " $ emacs ..." invokes a  small sh script.  The 
script sets, especially,
ESHELL="C:/Windows/Path/To/MSYS/bash.exe".
>> Use either the DOS console or the MSYS console (without rxvt)
> Huh?  Certainly, avoid RXVT like the plague; use a native Win32
> console, either standalone, or driven through Console2.
Please, please, why??  I quite like RXVT and I don't see any problems 
with it.  But what is "Console2".
>>> This is part of a more-general question.  How can an application
>>> tell whether it was launched by MSYS?  There are some tools I
>>> want to make behave appropriately to the environment I'm working
>>> in.
>> get the value of the environment variable "TERM".
> $TERM isn't really a good choice for identifying an MSYS environment,
> (it is too ubiquitous); something MSYS specific, such as $MSYSTEM,
> would surely be a better choice.
>
I agree, TERM was not a great choice for the MSYS folks.  MSYSTEM would 
be  good but require more emacs hacking than I'm ready to do yet.  As I 
said above, ESHELL is the magic word for the emacs shell library.

IMNSHO, however, the _right_ choice would be to set "MACHTYPE" to 
whatever a configure scriipt expects when parsing an MSYS build.  It's 
no "trick" at all -- MACHTYPE already has the desired semantics.



-- 
David A. Cobb -- computing t-rex


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.