Karim BELABAS on Tue, 10 Sep 2002 15:39:21 +0200 (MEST) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: stderr not consistently colored |
On Tue, 10 Sep 2002, Bill Allombert wrote: > ? \g4 > ? default(colors,"1, 5, 3, 5, 6, 2, 3") > colors = "1, 5, 3, 5, 6, 2, 3" > ? factor(2^64+1,0) [...] > IFAC is not consistently colored. Nice. On Solaris, I see nothing [ my Linux box is down, can't check ] From the code, it's a buffering issue, with a kind of race condition between stdout and stderr: the terminal reset code is written to stdout, but factor() starts writing to stderr (possibly) before stdout is flushed. So I can 1) either reset stderr also [ a bit stupid since it shouldn't have been altered during the input loop (the error recovery code would restore it) ] 2) or flush stdout after the input loop. I've chosen 2). Can you try the following patch ? Karim. Index: src/gp/gp.c =================================================================== RCS file: /home/megrez/cvsroot/pari/src/gp/gp.c,v retrieving revision 1.136 diff -c -r1.136 gp.c *** src/gp/gp.c 2002/09/10 13:36:33 1.136 --- src/gp/gp.c 2002/09/10 13:37:42 *************** *** 2339,2345 **** else #endif res = get_line_from_user(PROMPT, F); ! if (!disable_color) term_color(c_NONE); } else res = get_line_from_file(DFT_PROMPT,F,infile); --- 2339,2345 ---- else #endif res = get_line_from_user(PROMPT, F); ! if (!disable_color) { term_color(c_NONE); pariflush(); } } else res = get_line_from_file(DFT_PROMPT,F,infile); -- Karim Belabas Tel: (+33) (0)1 69 15 57 48 Dép. de Mathematiques, Bat. 425 Fax: (+33) (0)1 69 15 60 19 Université Paris-Sud Email: Karim.Belabas@math.u-psud.fr F-91405 Orsay (France) http://www.math.u-psud.fr/~belabas/ -- PARI/GP Home Page: http://www.parigp-home.de/