22 lines
581 B
Text
22 lines
581 B
Text
rot13 = proc (c: char) returns (char)
|
|
base: int
|
|
letter: bool := false
|
|
if c>='A' & c<='Z' then
|
|
base := char$c2i('A')
|
|
letter := true
|
|
elseif c>='a' & c<='z' then
|
|
base := char$c2i('a')
|
|
letter := true
|
|
end
|
|
if ~letter then return(c) end
|
|
return(char$i2c((char$c2i(c)-base+13)//26+base))
|
|
end rot13
|
|
|
|
start_up = proc ()
|
|
po: stream := stream$primary_output()
|
|
pi: stream := stream$primary_input()
|
|
while true do
|
|
stream$putc(po,rot13(stream$getc(pi)))
|
|
except when end_of_file: break end
|
|
end
|
|
end start_up
|