1 Ostatnio edytowany przez mono (2011-08-26 16:39:12)

Zrobiłem małą łatkę do programu xxd pozwalającą na nałożenie maski na znaki ASCII pokazywane z prawej strony. Pozwala to na łatwe zorientowanie się w tekstach zapisanych w inverse video w plikach z Atari.
xxd znajduje się w pakiecie vim-common (w ubuntu 8.04); dostarczany jest z vim więc pociągnąłem wersję 7.3 i tąż połatałem.
A co zrobiłem? Dodałem parametr -m mask, którym podaje się maskę na znaki ASCII. Żeby pokazać znaczki zapisane w inverse wystarczy obciąć ostatni bit znaku - maska powinna być 0x7f, więc po:

$ xxd -g 1 -m 0x7f Wizard.cmc | head

naszym oczom powinna pokazać się sygnatura pliku CMC.

0000000: ff ff 00 80 19 89 a0 e3 ed e3 a0 e4 e1 f4 e1 a0  ...... cmc data 
0000010: e6 e9 ec e5 a0 8e 95 0d 20 06 48 55 00 c1 67 b0  file ... .HU.Ag0
0000020: 05 f3 eb a9 18 90 6b 00 b7 16 57 9b a5 3c e7 29  .sk)..k.7.W.%<g)
0000030: ce d2 f5 16 75 b6 7f ff 00 00 ff ff ff ff ff ff  NRu.u6..........

Poniżej procedura nałożenia łaty i instalacji poprawionego programu u siebie:

$ wget ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2
$ tar jxf vim-7.3.tar.bz2
$ cd vim73/src/xxd
$ wget http://mono.i-demo.pl/vim-7.3-xxd-1.10-atari.patch
$ patch -p0 xxd.c vim-7.3-xxd-1.10-atari.patch
$ make
$ sudo install -s xxd $(which xxd || echo /usr/local/bin/)

Edit: Przykładowy out.
Edit 2: Dodałem też konwersję znaków z kodów wewnętrznych ANTICa na ATASCII (parametr -A).

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

2

wyslij to i na vim-dev

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

3

Może i racja... Tylko konwersje robiłbym raczej przez tablicę ładowaną z pliku a nie na sztywno.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

4 Ostatnio edytowany przez drac030 (2011-08-27 02:05:44)

mono napisał/a:

Poniżej procedura nałożenia łaty i instalacji poprawionego programu u siebie:

$ wget ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2
$ tar jxf vim-7.3.tar.bz2
$ cd vim73/src/xxd
$ wget http://mono.i-demo.pl/vim-7.3-xxd-1.10-atari.patch
$ patch -p0 xxd.c vim-7.3-xxd-1.10-atari.patch
$ make
$ sudo install -s xxd $(which xxd || echo /usr/local/bin/)

Procedura dla FreeBSD:

$ su
# cd /usr/ports/editors/vim
# make
# cd work/vim73/src/xxd
# wget http://mono.i-demo.pl/vim-7.3-xxd-1.10-atari.patch
# patch -p0 xxd.c vim-7.3-xxd-1.10-atari.patch
# make
# cd /usr/ports/editors/vim
# make install clean
# exit
$
KMK
? HEX$(6670358)