erlug
[Top] [All Lists]

Re: [Erlug] Tubi e altra idraulica

To: "ERlug - Lista Pubblica" <erlug@xxxxxxxxxxxxxx>
Subject: Re: [Erlug] Tubi e altra idraulica
From: Davide Bolcioni <db_erlug@xxxxxxxx>
Date: Tue, 1 May 2012 02:49:35 +0200
On Monday 30 April 2012 14:57:11 Giulio Iotti wrote:

> Ogni tanto mi capita che programmi interattivi muoiano, o cominque si
> comportino male quando sono all'interno di cicli for o con xargs.

Vengono in mente questi scenari.

1. Il programma si aspetta che il proprio input (tipicamente il descrittore 0)
   sia un terminale, una tty, ovvero qualcosa per cui tcsetattr(3) restituisca
   un valore 0 (successo) invece che -1 con errno impostato.

2. Il programma si aspetta di poter usare ncurses, ovvero la libreria che usa
   il database terminfo(5) per le interfacce a carattere con rettangoli e
   colori.

L'esempio canonico dello scenario (1) è il comando passwd(1) che si accerta 
esplicitamente che il proprio input sia un terminale e non altro. Questo caso 
è affrontabile con expect(1).

L'esempio canonico dello scenario (2) è il comando vim(1) laddove utilizza i 
colori per evidenziare la sintassi. Questo caso è più tedioso da affrontare 
con expect(1) perchè bisogna districarsi tra le sequenze di escape con cui il 
programma disegna nella finestra.

> Ad esempio mplayer (che va in pausa, ecc.), ma anche aptitude, che
> esce quando chiede conferma per una soluzione.

Rispettivamente scenario (1) e scenario (2) direi.

Davide Bolcioni
-- 
There is no place like /home.

<Prev in Thread] Current Thread [Next in Thread>