tags:

views:

546

answers:

3

I installed Emacs 23 on OS X (the NS/Cocoa variant) and I got the following error when I tried to run ssh from a shell inside emacs.

"pseudo terminal will not be allocated because stdin is not a terminal".

Searching around the web tells me that it is because stdin is somehow a pipe instead of a real tty. I confirmed that by running stty.

Unfortunately, no one really seems to know how to fix it. There were suggestions to try and modify process-connection-type (some said set it to nil while others said t) but unfortunately, neither seems to work.

How do I fix this and get back usage of ssh (and I guess other tools like ftp, latex and anything that needs a tty) inside emacs's shell?

[update: I know of M-x term but that isn't a solution for me. I have confirmed that this works for me on Carbon Emacs 22.3 so this might be something specific about the NS post)

A: 

are you using M-x shell or M-x term, term is a full blown terminal emulator that will allow you to run any console application you want.

Hamza Yerlikaya
First, thanks! Using M-x term unblocks me (I was using M-x shell until now). However, I'm not sure why M-x shell doesn't do this. I just tested this on Carbon Emacs 22.3 and ssh inside M-x shell definitely works.
Sriram Krishnan
Also, I would prefer to get this working on M-x shell as M-x term doesn't have color highlighting and other stuff you would expect from M-x shell
Sriram Krishnan
A: 

M-x ansi-term

Character to defy 15 char limit.

+1  A: 

I figured this out. I had some piece of elisp in my .emacs which was setting process-connection-type to nil. Though this was needed for Carbon Emacs, it doesn't seem to be needed for NS Emacs 23. Setting it to t fixes it

Sriram Krishnan