Newsgroup: it.comp.macintosh
Titolo: x11 e xterm stranezze

 e' normale?
Non credo, cmq succede anche a me e non mi provoca crash o altri
problemi quindi non me ne preoccupo.
in realta' credo che sia un qualche programma (forse fink) che ha
scritto nel file di config di xterm di abilitare una variabile di
ambiente particolare, ma ha sbagliato a scrivere (il programmatore
ovviamente) e adesso la shell non sa cosa fare e da errore.
Mah...

 ovviamente) e adesso la shell non sa cosa fare e da errore.
Non e' Fink.
Apri una finestra di terminale e scrivi "echo $TERM_PROGRAM".
Vedrai che il risultato e' "Apple_Terminal"
Ora... nello script di default del login tsch Apple
(/usr/share/tcsh/examples/rc) viene fatto un controllo sulla variabile
per evitare che tu possa chiudere inavvertitamente la finestra di
terminale quando sei root:
else
  # Avoid closing of Terminal windows when logged in as root
  if ($?TERM_PROGRAM && $?SHLVL) then
    if ("$SHLVL" == "1") unset autologout
  endif
endif
Tutto cio e' stato pensato perche' Apple suppone(va) che l'unico
programma di terminale che avremmo usato sotto OSX e' proprio
Terminal.app.
Se utilizziamo altri terminali (o se ci connettiamo via ssh) la
variabile in oggetto non viene definita.
Ecco perche' viene fuori l'errore in questione... errore che fra l'altro
impedisce il corretto caricamento degli script (non a caso il tab non
funziona sotto xterm, ne' vengono caricati gli alias).
Queste sono considerazioni a cui sono arrivato da solo facendo controlli
e leggendomi il man... quindi potrebbero non essere correttissime: se
qualcuno ha qualche puntualizzazione o correzione da fare sono bene
accette! :-D
Le soluzioni? Sono due: o modifichi il file /usr/share/tcsh/examples/rc
in maniera da togliere quel riferimento, o su xterm e ssh usi una shell
diversa (come faccio io, che uso bash o zsh).
Daniele
-- 
"As I paint this picture gray and taste the pain...
 I'll play the optimist!" (Dane)
STARGAZER: 
www.stargazer.it
 - Le stelle della scena Hard & Heavy!

 Vedrai che il risultato e' "Apple_Terminal"
Dimenticavo: prova  a fare lo stesso da un xterm (che non sia stato
lanciato dal Terminale, se no non vale), o da un ssh (abilita il login
remoto dalle preferenze, apri il Terminale, scrivi "ssh localhost",
invia, accetta la chiave se ti viene chiesto e poi dai la tua password):
vedrai che la variabile non c'e' :-D


 (/usr/share/tcsh/examples/rc)
Come non detto!!!
Ovviamente il $?TERM_PROGRAM si chiede se la variabile esiste o meno,
quindi non puo' causare il problema.
Questo e' invece da trovarsi in /usr/share/tcsh/examples/aliases
che contiene
if ("$TERM_PROGRAM" == "Apple_Terminal") then
    alias settermtitle 'echo -n "ESC]2;\!:1^G"'
endif
Sostituite le tre righe qui sopra con:
if ($?TERM_PROGRAM) then
 if ("$TERM_PROGRAM" == "Apple_Terminal") then
    alias settermtitle 'echo -n "ESC]2;\!:1^G"'
 endif
endif
... e non ci saranno piu' problemi!
Per i piu' curiosi, sono arrivato alla soluzione mandando un ssh in
localhost con lancio di tsch e opzione "-V" ("verboso sin dall'inizio"),
che mi ha permesso di riconoscere il punto esatto dell'errore. :-)
Daniele, che ora fa la FAQ :-)


 Daniele, che ora fa la FAQ :-)
aggiungi a quella per rimettere a posto tcsh dopo aver upgradato a
jaguar, che il problema compare quando si fa la roba che c'e' scritta
la'
-- 
siamo tutti sovversivi

 la'
Ho aggiunto un riferimento e tenuto una Faq separata. Mi sembrava piu'
leggibile cosi' (visto anche che a qualcuno potrebbe fregare di avere un
terminale completo, ma non di fare sessioni ssh o utilizzare xterm)...
se pensate sia il caso le posso unificare.
Daniele
