unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* pari.el : Process stty in windows ?
@ 2016-03-15  9:57 Unknown
  2016-03-15 17:27 ` Eli Zaretskii
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Unknown @ 2016-03-15  9:57 UTC (permalink / raw)
  To: help-gnu-emacs

Dear all,

   [I posted this message on comp.emacs yesterday but this forum seems 
much more active]

   In pari.el under unix/linux, I use the following function:
----------------------------------------------------------------

(defun gp-get-shell (process-name process-buffer-name cmd)
     "Explicit. Aimed at command gp+parameters."
     (let ((process-environment (copy-sequence process-environment)))
       (setenv "TERM"    "emacs")
       (setenv "PAGER"   "cat")
       (setenv "LINES"   "1000")
       (setenv "COLUMNS" (number-to-string (window-width)))
       (start-process process-name process-buffer-name
                      shell-file-name
                      shell-command-switch
                      (concat "stty -echo onlret; " cmd))))
-----------------------------------------------------------------

with cmd = "/usr/bin/gp -s 10000000 -p 500000 --emacs" for instance.

Windows even with gnuwin32 complains quite a lot.
It seems that stty exists but "onlret" is unknown and the ";" does not 
seem to be recognized.

As a matter of fact I am the maintainer of pariemacs, but I have only 
unix at work/home and don't know nothing about windows. it worked well 
for a long time until recently I had a user from the windows world 
trying to get everything to work. The script editing work, only calling 
gp in an inferior shell bugs.

The error message says that "onlret;" is an invalid argument of stty 
(notice the ";").
If we remove the stty part, gp is indeed called but dies with a gentle 
"Goodbye !" (without the prompt even to be seen).


I'm hard put to correct such a thing. So if anyone has an idea, I'll 
edit it for my user. I guess such a patch would be very useful for many 
others, so I'll publish it, though I'm definitely no friend of windows --

Many thanks in advance,
Best, Olivier


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

* Re: pari.el : Process stty in windows ?
  2016-03-15  9:57 pari.el : Process stty in windows ? Unknown
@ 2016-03-15 17:27 ` Eli Zaretskii
       [not found] ` <mailman.7598.1458062858.843.help-gnu-emacs@gnu.org>
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 10+ messages in thread
From: Eli Zaretskii @ 2016-03-15 17:27 UTC (permalink / raw)
  To: help-gnu-emacs

> From: Ramare <ramare@invalid>
> Date: Tue, 15 Mar 2016 10:57:23 +0100
> 
>    In pari.el under unix/linux, I use the following function:
> ----------------------------------------------------------------
> 
> (defun gp-get-shell (process-name process-buffer-name cmd)
>      "Explicit. Aimed at command gp+parameters."
>      (let ((process-environment (copy-sequence process-environment)))
>        (setenv "TERM"    "emacs")
>        (setenv "PAGER"   "cat")
>        (setenv "LINES"   "1000")
>        (setenv "COLUMNS" (number-to-string (window-width)))
>        (start-process process-name process-buffer-name
>                       shell-file-name
>                       shell-command-switch
>                       (concat "stty -echo onlret; " cmd))))
> -----------------------------------------------------------------
> 
> with cmd = "/usr/bin/gp -s 10000000 -p 500000 --emacs" for instance.
> 
> Windows even with gnuwin32 complains quite a lot.
> It seems that stty exists but "onlret" is unknown and the ";" does not 
> seem to be recognized.
> 
> As a matter of fact I am the maintainer of pariemacs, but I have only 
> unix at work/home and don't know nothing about windows. it worked well 
> for a long time until recently I had a user from the windows world 
> trying to get everything to work. The script editing work, only calling 
> gp in an inferior shell bugs.
> 
> The error message says that "onlret;" is an invalid argument of stty 
> (notice the ";").
> If we remove the stty part, gp is indeed called but dies with a gentle 
> "Goodbye !" (without the prompt even to be seen).
> 
> 
> I'm hard put to correct such a thing. So if anyone has an idea, I'll 
> edit it for my user. I guess such a patch would be very useful for many 
> others, so I'll publish it, though I'm definitely no friend of windows --

AFAIK, "stty onlret" will never work on Windows, as long as you use
the standard system shell.  You can ignore the fact that you have some
stty.exe, it won't do what you want, because that functionality is
simply not supported.

Please explain why you need that command, maybe there's an equivalent
solution.



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

* Re: pari.el : Process stty in windows ?
       [not found] ` <mailman.7598.1458062858.843.help-gnu-emacs@gnu.org>
@ 2016-03-16  7:17   ` Unknown
  2016-03-16 15:43     ` Eli Zaretskii
       [not found]     ` <mailman.7646.1458143060.843.help-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 10+ messages in thread
From: Unknown @ 2016-03-16  7:17 UTC (permalink / raw)
  To: help-gnu-emacs


> Please explain why you need that command, maybe there's an equivalent
> solution.

I should have been clearer. onlret is not my main problem, but the fact 
that I don't know how to glue two commands.

The user types something in emacs, pari.el sends it to gp and does not 
want it to be echoed back. This is the reason of


(start-process process-name process-buffer-name
                       shell-file-name
                       shell-command-switch
                       (concat "stty -echo ; " cmd))

But we get the answer "stty: invalid argument ";"".

The simpler

(start-process process-name process-buffer-name
   shell-file-name
   shell-command-switch
   cmd)

does not work either, emacs seems or pari.el seems to hang (I haven't 
investigated this part enough).


With the even simpler

(shell-command "gp --emacs")

emacs starts and exits the process immediately, cleanly as if an "exit" 
command had been entered. The only glitch though is that no prompt appears.

Many thanks for some advice,
Best, O.


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

* Re: pari.el : Process stty in windows ?
  2016-03-16  7:17   ` Unknown
@ 2016-03-16 15:43     ` Eli Zaretskii
       [not found]     ` <mailman.7646.1458143060.843.help-gnu-emacs@gnu.org>
  1 sibling, 0 replies; 10+ messages in thread
From: Eli Zaretskii @ 2016-03-16 15:43 UTC (permalink / raw)
  To: help-gnu-emacs

> From: Ramare <ramare@invalid>
> Date: Wed, 16 Mar 2016 08:17:05 +0100
> 
> > Please explain why you need that command, maybe there's an equivalent
> > solution.
> 
> I should have been clearer. onlret is not my main problem, but the fact 
> that I don't know how to glue two commands.

Ah, that...  This has a simple solution.

> The user types something in emacs, pari.el sends it to gp and does not 
> want it to be echoed back. This is the reason of
> 
> 
> (start-process process-name process-buffer-name
>                        shell-file-name
>                        shell-command-switch
>                        (concat "stty -echo ; " cmd))
> 
> But we get the answer "stty: invalid argument ";"".

You need to quote the whole command, like so:

  (concat "\"stty -echo ; " cmd "\"")

(Btw, if you want to invoke a shell command, why do you use
start-process?  Why not use shell-command instead (if the command ends
with a "&", it will be run asynchronously)?

> With the even simpler
> 
> (shell-command "gp --emacs")
> 
> emacs starts and exits the process immediately, cleanly as if an "exit" 
> command had been entered. The only glitch though is that no prompt appears.

I don't know what is "gp" and how does it invoke Emacs.



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

* Re: pari.el : Process stty in windows ?
       [not found]     ` <mailman.7646.1458143060.843.help-gnu-emacs@gnu.org>
@ 2016-03-17 12:30       ` Unknown
  2016-03-17 16:30         ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Unknown @ 2016-03-17 12:30 UTC (permalink / raw)
  To: help-gnu-emacs

 >> but the fact
 >> that I don't know how to glue two commands.
[...]
 >> But we get the answer "stty: invalid argument ";"".
 >
 > You need to quote the whole command, like so:
 >
 >    (concat "\"stty -echo ; " cmd "\"")

Windows still complains about the ; --

 > (Btw, if you want to invoke a shell command, why do you use
 > start-process?  Why not use shell-command instead (if the command ends
 > with a "&", it will be run asynchronously)?

The ";" is still on the way --
Or there are other means to send information to the shell and tell it we 
don't want any echo ? I don't see how I can send two commands without 
glueing them in some way --
A.O.



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

* Re: pari.el : Process stty in windows ?
  2016-03-15  9:57 pari.el : Process stty in windows ? Unknown
  2016-03-15 17:27 ` Eli Zaretskii
       [not found] ` <mailman.7598.1458062858.843.help-gnu-emacs@gnu.org>
@ 2016-03-17 13:15 ` Yuri Khan
       [not found] ` <mailman.7677.1458220547.843.help-gnu-emacs@gnu.org>
  3 siblings, 0 replies; 10+ messages in thread
From: Yuri Khan @ 2016-03-17 13:15 UTC (permalink / raw)
  Cc: help-gnu-emacs@gnu.org

On Tue, Mar 15, 2016 at 3:57 PM, Ramare <ramare@invalid> wrote:

>       (start-process process-name process-buffer-name
>                      shell-file-name
>                      shell-command-switch
>                      (concat "stty -echo onlret; " cmd))))

> Windows even with gnuwin32 complains quite a lot.
> It seems that stty exists but "onlret" is unknown and the ";" does not seem to be recognized.

So what’s your shell-file-name on Windows? Could it be cmd.exe instead of bash?

If so, you’ll have to use the “&” character instead of “;” to separate commands.

You could probably get away with using “&&” on both platforms if you
know stty always returns a success exit code.



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

* Re: pari.el : Process stty in windows ?
  2016-03-17 12:30       ` Unknown
@ 2016-03-17 16:30         ` Eli Zaretskii
  0 siblings, 0 replies; 10+ messages in thread
From: Eli Zaretskii @ 2016-03-17 16:30 UTC (permalink / raw)
  To: help-gnu-emacs

> From: Ramare <ramare@invalid>
> Date: Thu, 17 Mar 2016 13:30:55 +0100
> 
>  >> but the fact
>  >> that I don't know how to glue two commands.
> [...]
>  >> But we get the answer "stty: invalid argument ";"".
>  >
>  > You need to quote the whole command, like so:
>  >
>  >    (concat "\"stty -echo ; " cmd "\"")
> 
> Windows still complains about the ; --

Try "&" instead of ";".

> Or there are other means to send information to the shell and tell it we 
> don't want any echo ?

Which echo would you like to suppress?



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

* Re: pari.el : Process stty in windows ?
       [not found] ` <mailman.7677.1458220547.843.help-gnu-emacs@gnu.org>
@ 2016-03-17 17:49   ` Unknown
  2016-03-17 17:57     ` Yuri Khan
       [not found]     ` <mailman.7695.1458237493.843.help-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 10+ messages in thread
From: Unknown @ 2016-03-17 17:49 UTC (permalink / raw)
  To: help-gnu-emacs

[...]

> So what’s your shell-file-name on Windows? Could it be cmd.exe instead of bash?

Yes it is cmdproxy.exe and I can't find manual for it. Do you have any 
that  explains the syntax?
A.O.



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

* Re: pari.el : Process stty in windows ?
  2016-03-17 17:49   ` Unknown
@ 2016-03-17 17:57     ` Yuri Khan
       [not found]     ` <mailman.7695.1458237493.843.help-gnu-emacs@gnu.org>
  1 sibling, 0 replies; 10+ messages in thread
From: Yuri Khan @ 2016-03-17 17:57 UTC (permalink / raw)
  Cc: help-gnu-emacs@gnu.org

On Thu, Mar 17, 2016 at 11:49 PM, Ramare <ramare@invalid> wrote:

>> So what’s your shell-file-name on Windows? Could it be cmd.exe instead of
>> bash?
>
> Yes it is cmdproxy.exe and I can't find manual for it. Do you have any that
> explains the syntax?

Perhaps it might be okay to assume that cmdproxy.exe is a proxy for
cmd.exe, and use the documentation for cmd.exe instead?

https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx?mfr=true



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

* Re: pari.el : Process stty in windows ?
       [not found]     ` <mailman.7695.1458237493.843.help-gnu-emacs@gnu.org>
@ 2016-03-17 19:17       ` Unknown
  0 siblings, 0 replies; 10+ messages in thread
From: Unknown @ 2016-03-17 19:17 UTC (permalink / raw)
  To: help-gnu-emacs

[...]
> Perhaps it might be okay to assume that cmdproxy.exe is a proxy for
> cmd.exe, and use the documentation for cmd.exe instead?
>
> https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx?mfr=true

Ok many thanks I'll do some trials and come back in one or two days --
A.O.



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

end of thread, other threads:[~2016-03-17 19:17 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-15  9:57 pari.el : Process stty in windows ? Unknown
2016-03-15 17:27 ` Eli Zaretskii
     [not found] ` <mailman.7598.1458062858.843.help-gnu-emacs@gnu.org>
2016-03-16  7:17   ` Unknown
2016-03-16 15:43     ` Eli Zaretskii
     [not found]     ` <mailman.7646.1458143060.843.help-gnu-emacs@gnu.org>
2016-03-17 12:30       ` Unknown
2016-03-17 16:30         ` Eli Zaretskii
2016-03-17 13:15 ` Yuri Khan
     [not found] ` <mailman.7677.1458220547.843.help-gnu-emacs@gnu.org>
2016-03-17 17:49   ` Unknown
2016-03-17 17:57     ` Yuri Khan
     [not found]     ` <mailman.7695.1458237493.843.help-gnu-emacs@gnu.org>
2016-03-17 19:17       ` Unknown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).