/**
  * From GNUReadline (readline/histfile.c & readline/histexpand.c):
  * lines starting with "\0" are comments or timestamps;
  * if "\0" is found in an entry,
  * everything from it until the next line is a comment.
  *
  * @param string $line The history line to parse.
  *
  * @return string | null
  */
 protected function parseHistoryLine($line)
 {
     // empty line, comment or timestamp
     if (!$line || $line[0] === "") {
         return;
     }
     // if "\0" is found in an entry, then
     // everything from it until the end of line is a comment.
     if (($pos = strpos($line, "")) !== false) {
         $line = substr($line, 0, $pos);
     }
     return $line !== '' ? String::unvis($line) : null;
 }
 /**
  * @dataProvider testUnvisProvider
  */
 public function testUnvis($input, $expected)
 {
     $this->assertEquals($expected, String::unvis($input));
 }