- $line = htmlspecialchars($read[$i]);
- if (eregi("^>", $line)) {
- $second[$i] = $line;
- $first[$i] = ' ';
- $cnum++;
- } else if (eregi("^[ |\t]", $line)) {
- $second[$i] = $line;
- $first[$i] = '';
- } else if (eregi("^([^:]+):(.+)", $line, $regs)) {
- $first[$i] = $regs[1] . ':';
- $second[$i] = $regs[2];
- $cnum++;
- } else {
- $second[$i] = trim($line);
- $first[$i] = '';
+ $line = sm_encode_html_special_chars($read[$i]);
+ switch (true) {
+ case (preg_match('/^>/i', $line)):
+ $second[$i] = $line;
+ $first[$i] = ' ';
+ $cnum++;
+ break;
+// FIXME: is the pipe character below a mistake? I think the original author might have thought it carried special meaning in the character class, which it does not... but then again, I am not currently trying to understand what this code actually does
+ case (preg_match('/^[ |\t]/', $line)):
+ $second[$i] = $line;
+ $first[$i] = '';
+ break;
+ case (preg_match('/^([^:]+):(.+)/', $line, $regs)):
+ $first[$i] = $regs[1] . ':';
+ $second[$i] = $regs[2];
+ $cnum++;
+ break;
+ default:
+ $second[$i] = trim($line);
+ $first[$i] = '';
+ break;