Maths on Thu, 18 Dec 1997 14:51:56 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: update 2.0.2.alpha


Dear Karim,

I think I have discovered the problem with gp under emacs under linux
which Kevin Buzzard had.  It only started happening for me when I
reinstalled the patched version 2.0.2alpha.  The problem comes from
the following code for the function do_prompt in gp.c:

static char *
do_prompt()
{
#ifdef UNIX /* This is probably standard Ansi C. */
  static char promptbuf[128];
  char *s = promptbuf;
  time_t t = time(NULL);

  /* escape sequences bug readline, so use special bracing if available
   * (cf readline.h). Otherwise, first check if relevant colours disabled,
   * then hope for the best...
   */
  if (gp_colors[c_PROMPT] == c_NONE && gp_colors[c_INPUT] == c_NONE)
    strftime(s,79,prompt,localtime(&t));
  else
  {
#  ifdef RL_PROMPT_START_IGNORE
    sprintf(s,"%c%s%c", RL_PROMPT_START_IGNORE, 
                        term_get_color(c_PROMPT),
                        RL_PROMPT_END_IGNORE);
#  else
    strcpy(s, term_get_color(c_PROMPT));
#  endif

(etc etc)

The macros RL_PROMPT_START_IGNORE and  RL_PROMPT_END_IGNORE are
defined in readline.h.  They are inserted before and after the escape
sequences which switch colors.  Under emacs (under linux) these
display in the emacs buffer as ^A and ^B (I think they are '\001' and
'\002').  This stops the cope in pari.el from finding the prompt
properly.  I solved the problem by commenting out the line in .gprc
which defines the colors.  I suggest that the color setting is turned
off altogether when gp is called with the -emacs switch, probably by
patching the function setdcolors.




-- 
John Cremona
University of Exeter
Department of Mathematics
North Park Road
Exeter EX4 4QE
UK

Tel.: 	+44-1392-263974 (Office)
	+44-1392-210758 (Home)
	
Fax:    +44-1392-263997

email:	cremona@maths.exeter.ac.uk