| | 15 | } |
| | 16 | |
| | 17 | sub vianame { |
| | 18 | my $c = shift; |
| | 19 | my $s = charnames::vianame($c); |
| | 20 | return $s if $s; |
| | 21 | $s = charnames::vianame("LINE FEED (LF)") |
| | 22 | if $c eq "LINE FEED" || $c eq "LF"; |
| | 23 | return $s if $s; |
| | 24 | $s = charnames::vianame("CARRIAGE RETURN (CR)") |
| | 25 | if $c eq "CARRIAGE RETURN" || $c eq "CR"; |
| | 26 | return $s if $s; |
| | 27 | $s = charnames::vianame("FORM FEED (FF)") |
| | 28 | if $c eq "FORM FEED" || $c eq "FF"; |
| | 29 | return $s if $s; |
| | 30 | $s = charnames::vianame("NEXT LINE (NEL)") |
| | 31 | if $c eq "NEXT LINE" || $c eq "NEL"; |
| | 32 | return $s if $s; |
| 35 | | $cmd =~ s/\s//g |
| 36 | | unless $cmd =~ /\\c\[/; |
| 37 | | |
| 38 | | #if ( $last_cmd eq '-' |
| 39 | | # && substr($cmd,0,1) eq '+' |
| 40 | | # ) |
| 41 | | #{ |
| 42 | | # $out .= '|'; |
| 43 | | #} |
| 44 | | #$last_cmd = substr($cmd,0,1); |
| 45 | | |
| | 54 | $cmd =~ s/ \\c\[ ([^];]+) \; ([^];]+) \] / |
| | 55 | "\\x{" . sprintf("%02X", vianame($1)) . "}" |
| | 56 | . "\\x{" . sprintf("%02X", vianame($2)) . "}" |
| | 57 | /xgme; |
| | 58 | $cmd =~ s/ \\c\[ ([^]]+) \] / "\\x[" . sprintf("%02X", vianame($1)) . ']' /xgme; |
| | 59 | $cmd =~ s/ \\C\[ ([^]]+) \] / "\\X[" . sprintf("%02X", vianame($1)) . ']' /xgme; |
| | 60 | $cmd =~ s/ \\o\[ ([^]]+) \] / "\\x[" . sprintf("%02X", oct($1)) . ']' /xgme; |
| | 61 | $cmd =~ s/ \\O\[ ([^]]+) \] / "\\X[" . sprintf("%02X", oct($1)) . ']' /xgme; |
| | 62 | $cmd =~ s/\s//g; |
| | 63 | |
| 48 | | # TODO - \o \O |
| 49 | | |
| 50 | | if ( $cmd =~ /^ \[ \\ c \[ (.*) \] \] /x ) { |
| 51 | | #$cmd = "(?:\\N{" . join( "}|\\N{", split( /\s*;\s*/, $1 ) ) . "})"; |
| 52 | | $cmd = "[\\N{" . join( "}\\N{", split( /\s*;\s*/, $1 ) ) . "}]"; |
| 53 | | } |
| 54 | | elsif ( $cmd =~ /^ \[ \\ C \[ (.*) \] \] /x ) { |
| 55 | | #$cmd = "(?!\\N{" . join( "}|\\N{", split( /\s*;\s*/, $1 ) ) . "})\\X"; |
| 56 | | $cmd = "[^\\N{" . join( "}\\N{", split( /\s*;\s*/, $1 ) ) . "}]"; |
| 57 | | } |
| 58 | | |
| 59 | | |
| 60 | | elsif ( $cmd =~ /^ \[ \\ x \[ (.*) \] \] /x ) { |
| | 66 | if ( $cmd =~ /^ \[ \\ x \[ (.*) \] \] /x ) { |