RuD: Shell-Menüs auf Mac mit Ncurses, Problem mit Edit-Felder

Seid gegrüßt!
ich versuche mich im Moment an einem Konfigurationsmenü auf Ncurses-Basis.
Bei Ncurses gibt es aber keine Eingabefelder als fertige Objekte. Daher habe ich mir "so etwas ähnliches geschrieben":

  
function input() {  
 ncurses_move ($this->zeile+4, 3);  
  
 ncurses_addstr("> ");  
 ncurses_color_set(2);  
 ncurses_addstr("                                                 ");  
  
 ncurses_move ($this->zeile+4, 5);  
  
 for ($str = "";;){  
  $key = ncurses_getch();  
  switch ($key) {  
   case 10:   // newline  
   case 13:   // Carrige Return  
    return($str);  
   default:  
    $str .= chr($key);  
    ncurses_refresh();  
         }  
     }  
  
        ncurses_color_set(1);  
  return $str;  
 }  
  

Das ist das leicht abgewandelte Beispiel aus der PHP-Doku. Funtioniert auch wunderbar.

Nun zu meinem Problem:
Im Moment funktionier nur die Eingabe, aber die Korrektur mit Backspace ist nicht möglich. Hat jemand eine Idee, wie ich das erreichen könnte?

--
Bis Später
    
________________________________________________________________
[Testversion meiner Seite] [Zwei unterwegs in Australien]
SelfCode: ie:% fl:( br:^ va:) ls:< fo:| rl:( n4:& ss:) de:> js:| ch:| mo:| zu:)
  1. Seid gegrüßt!

    Fall jemand dieses Problem auch mal haben sollte, hier ist meine Lösung:

      
    function input_new() {  
     ncurses_move ($this->zeile+4, 3);  
     ncurses_addstr("> ");  
     ncurses_color_set(2);  
     ncurses_addstr("                                                 ");  
      
     ncurses_move ($this->zeile+4, 5);  
      
     $str_array = array();  
     $pos = 0;  
      
     while (($key != 10 ) && ($key != 13)) {  
      $key = ncurses_getch();  
      
      if (($key == 330 || $key==8) && ($pos > 0)) {  
       $pos = $pos - 1;  
       ncurses_move ($this->zeile+4, 5+$pos);  
       ncurses_addstr(" ");  
       ncurses_move ($this->zeile+4, 5+$pos);  
      }else {  
       $pos = $pos + 1;  
       ncurses_move ($this->zeile+4, 5+$pos);  
       $str_array[$pos] = chr($key);  
      }  
     }  
      
     $string = implode("", $str_array);  
     ncurses_color_set(1);  
     return $string;  
    }  
    
    
    --
    Bis Später
        
    ________________________________________________________________
    [Testversion meiner Seite] [Zwei unterwegs in Australien]
    SelfCode: ie:% fl:( br:^ va:) ls:< fo:| rl:( n4:& ss:) de:> js:| ch:| mo:| zu:)