anchor.diff:      }
   
       stdin.add([key]);
  +  }
  +
  +  void _handleDeleteKey() {
  +    stdin.add([27, 91, 67, 8]);
  +  }
  +
  +  Future _handleHomeKey() async {
  +    stdin.add([27, 91, 68]);
  +    while (! await _listenForBell()) {
  +      stdin.add([27, 91, 68]);
  +    }
  +  }
  +
  +  Future _handleEndKey() async {
  +    stdin.add([27, 91, 67]);
  +    while (! await _listenForBell()) {
  +      stdin.add([27, 91, 67]);
  +    }
     }
   
     /// Processes [output] by coordinating handling of strings
  
positive.code:     // (INSERT=45, PAGEUP=33, PAGEDOWN=34).
      if (key == 45 || key == 33 || key == 34) return;
  
      // Carriage Return (13) => New Line (10).
      if (key == 13) {
        key = 10;
  
negative.code:         stdin.add([i]);
        }
      });
    }
  
    Future<bool> _listenForBell() {
      return stdout.stream.first.then((e) => e.contains(7));
    }
  
    /// Handles a given [KeyboardEvent].
  