pike.git / lib / modules / Stdio.pmod / Readline.pike

version» Context lines:

pike.git/lib/modules/Stdio.pmod/Readline.pike:1: - // $Id: Readline.pike,v 1.38 2000/10/08 19:02:15 grubba Exp $ + // $Id: Readline.pike,v 1.39 2000/10/10 19:58:24 hubbe Exp $   #pike __REAL_VERSION__   class OutputController   {    static private object(Stdio.File) outfd;    static private object(Stdio.Terminfo.Termcap) term;    static private int xpos = 0, columns = 0;    static private mapping oldattrs = 0;      #define BLINK 1   #define BOLD 2
pike.git/lib/modules/Stdio.pmod/Readline.pike:1104:    return input_controller;   }      string get_prompt()   {    return prompt;   }      string set_prompt(string newp, array(string)|void newattrs)   { + // werror("READLINE: Set prompt: %O\n",newp);    string oldp = prompt;    if(newp!=prompt || !equal(prompt_attrs, newattrs))    { -  if(newline_func) -  { - // werror("\nNew prompt!!! %O\n",newline_func); -  int p=cursorpos; -  setcursorpos(0); -  output_controller->bol(); -  output_controller->clear(1); +     prompt = newp;    prompt_attrs = newattrs && copy_value(newattrs); -  cursorpos=strlen(text); -  redisplay(0, 1); -  cursorpos=p; -  }else{ -  prompt = newp; -  prompt_attrs = newattrs && copy_value(newattrs); +  if(newline_func) redisplay(0); +     } -  } +     return oldp;   }      void set_echo(int onoff)   {    hide=!onoff;   }      string gettext()   {
pike.git/lib/modules/Stdio.pmod/Readline.pike:1288:    if(clear)    output_controller->clear();    else if(!nobackup) {    setcursorpos(0);    output_controller->bol();    output_controller->clear(1);    }    output_controller->check_columns();       if(!input_controller->dumb) { -  if(newline_func == read_newline) { +  if(newline_func) {    if(prompt_attrs)    output_controller->turn_on(@prompt_attrs);    output_controller->write(prompt);    if(prompt_attrs)    output_controller->turn_off(@prompt_attrs);    }    output_controller->write(text,0,hide);    }    cursorpos = sizeof(text);    setcursorpos(p);
pike.git/lib/modules/Stdio.pmod/Readline.pike:1382:   }      static private void read_newline(string s)   {    input_controller->disable();    readtext = s;   }      void set_nonblocking(function f)   { +  int p=cursorpos;    if (newline_func = f) {    output_controller->enable();    input_controller->enable(); -  +  +  output_controller->bol(); +  output_controller->clear(1); +  cursorpos=p; +  redisplay(0,1);    } else { -  +  setcursorpos(0); +  output_controller->bol(); +  output_controller->clear(1); +  cursorpos=p; +     input_controller->disable();    output_controller->disable();    }   }      void set_blocking()   {    set_nonblocking(0);   }