|
Revision b536209dfb7bd50c37061735fe10d2c19a97d26d, 1.4 KB
(checked in by H. Peter Anvin <hpa@…>, 4 years ago)
|
|
Move files out of root into core, dos, and utils
Move source files out of the root directory; the root is a mess and
has become virtually unmaintainable. The Syslinux core now lives in
core/; the Linux and generic utilities has moved into utils/, and
copybs.com has moved into dos/; it had to go somewhere, and it seemed
as good a place as any.
|
-
Property mode set to
100755
|
| Line | |
|---|
| 1 | #!/usr/bin/perl |
|---|
| 2 | # |
|---|
| 3 | # Perl script to convert a Syslinux-format screen to PC-ANSI |
|---|
| 4 | # to display in a color xterm or on the Linux console |
|---|
| 5 | # |
|---|
| 6 | |
|---|
| 7 | @ansicol = (0,4,2,6,1,5,3,7); |
|---|
| 8 | |
|---|
| 9 | $getting_file = 0; |
|---|
| 10 | $enable = 1; |
|---|
| 11 | |
|---|
| 12 | while ( read(STDIN, $ch, 1) > 0 ) { |
|---|
| 13 | if ( $ch eq "\x1A" ) { # <SUB> <Ctrl-Z> EOF |
|---|
| 14 | last; |
|---|
| 15 | } elsif ( $ch eq "\x0C" ) { # <FF> <Ctrl-L> Clear screen |
|---|
| 16 | print "\x1b[2J" if ( $enable && !$getting_file ); |
|---|
| 17 | } elsif ( $ch eq "\x0F" ) { # <SI> <Ctrl-O> Attribute change |
|---|
| 18 | if ( !$getting_file ) { |
|---|
| 19 | if ( read(STDIN, $attr, 2) == 2 ) { |
|---|
| 20 | $attr = hex $attr; |
|---|
| 21 | if ( $enable ) { |
|---|
| 22 | print "\x1b[0;"; |
|---|
| 23 | if ( $attr & 0x80 ) { |
|---|
| 24 | print "5;"; |
|---|
| 25 | $attr &= ~0x80; |
|---|
| 26 | } |
|---|
| 27 | if ( $attr & 0x08 ) { |
|---|
| 28 | print "1;"; |
|---|
| 29 | $attr &= ~0x08; |
|---|
| 30 | } |
|---|
| 31 | printf "%d;%dm", |
|---|
| 32 | $ansicol[$attr >> 4] + 40, $ansicol[$attr & 7] + 30; |
|---|
| 33 | } |
|---|
| 34 | } |
|---|
| 35 | } |
|---|
| 36 | } elsif ( $ch eq "\x18" ) { # <CAN> <Ctrl-X> Display image |
|---|
| 37 | # We can't display an image; pretend to be a text screen |
|---|
| 38 | # Ignore all input until end of line |
|---|
| 39 | $getting_file = 1; |
|---|
| 40 | } elsif ( (ord($ch) & ~07) == 0x10 ) { # Mode controls |
|---|
| 41 | $enable = (ord($ch) & 0x01); # Emulate the text screen |
|---|
| 42 | } elsif ( $ch eq "\x0D" ) { # <CR> <Ctrl-M> Carriage return |
|---|
| 43 | # Ignore |
|---|
| 44 | } elsif ( $ch eq "\x0A" ) { # <LF> <Ctrl-J> Line feed |
|---|
| 45 | if ( $getting_file ) { |
|---|
| 46 | $getting_file = 0; |
|---|
| 47 | } else { |
|---|
| 48 | print $ch if ( $enable ); |
|---|
| 49 | } |
|---|
| 50 | } else { |
|---|
| 51 | print $ch if ( $enable && !$getting_file ); |
|---|
| 52 | } |
|---|
| 53 | } |
|---|