tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
|
|
@ -0,0 +1,31 @@
|
|||
:RL_ENCODE:
|
||||
BOF
|
||||
While (!At_EOF) {
|
||||
if (At_EOL) { Line(1) Continue } // skip newlines
|
||||
#1 = Cur_Char // #1 = character
|
||||
Match("(.)\1*", REGEXP) // count run length
|
||||
#2 = Chars_Matched // #2 = run length
|
||||
if (#2 > 127) { #2 = 127 } // can be max 127
|
||||
if (#2 > 1 || #1 > 127) {
|
||||
Del_Char(#2)
|
||||
Ins_Char(#2 | 128) // run length (high bit set)
|
||||
Ins_Char(#1) // character
|
||||
} else { // single ASCII char
|
||||
Char // skip
|
||||
}
|
||||
}
|
||||
Return
|
||||
|
||||
:RL_DECODE:
|
||||
BOF
|
||||
While (!At_EOF) {
|
||||
#2 = Cur_Char
|
||||
if (#2 > 127) { // is this run length?
|
||||
#1 = Cur_Char(1) // #1 = character value
|
||||
Del_Char(2)
|
||||
Ins_Char(#1, COUNT, #2 & 127)
|
||||
} else { // single ASCII char
|
||||
Char
|
||||
}
|
||||
}
|
||||
Return
|
||||
Loading…
Add table
Add a link
Reference in a new issue