The C program source:
/**//*/};)/**/main(/*//**/tang 	  ,gnat/**//*/,ABBA~,0-0(avnz;)0-0,tang,raeN
,ABBA(niam&&)))2-]--tang-[kri	  - =raeN(&&0<)/*clerk*/,noon,raeN){(!tang&&
noon!=-1&&(gnat&2)&&((raeN&&(    getchar(noon+0)))||(1-raeN&&(trgpune(noon
)))))||tang&&znva(/*//**/tang   ,tang,tang/**|**//*/((||)))0(enupgrt=raeN
(&&tang!(||)))0(rahcteg=raeN(  &&1==tang((&&1-^)gnat=raeN(;;;)tang,gnat
,ABBA,0(avnz;)gnat:46+]552&)191+gnat([kri?0>]652%)191+gnat([kri=gnat
(&&)1-^gnat(&&)1& ABBA(!;)raeN,tang,gnat,ABBA(avnz&&0>ABBA{)raeN
,/**/);}znva(/*//**/tang,gnat,ABBA/**//*/(niam;}1-,78-,611-,321
-,321-,001-,64-,43-,801-,001-,301-,321-,511-,53-,54,44,34,24
,14,04,93,83,73,63,53,43,33,85,75,65,55,45,35,25,15,05,94,84
,74,64,0,0,0,0,0,0,/**/){ABBA='N'==65;(ABBA&&(gnat=trgpune
(0)))||(!ABBA&&(gnat=getchar(0-0)));(--tang&1)&&(gnat='n'<=
gnat&&gnat<='z'||'a'<=gnat&&gnat<='m'||'N'<=gnat&&gnat<='Z'
||'A'<=gnat&&gnat<='M'?(((gnat&/*//**/31/**//*/,21,11,01,9,8
,7,6,5,4,3,2,1,62,52,42,/**/)+12)%26)+(gnat&/*//**/32/**//*/,
22,12,02,91,81,71,61,51,41{=]652[kri};)/*pry*/)+65:gnat);main
(/*//**\**/tang^tang/**//*/,/*	   */,~/*//*-*/tang,gnat,ABBA-
0/**//*/(niam&&ABBA||))))tang(       rahcteg&&1-1=<enrA(||))tang(
enupgrt&&1==enrA((&&)2&gnat(&&	     )1-^tang(&&ABBA!(;)85- =tang
(&&)'a\'=gnat(&&)1-==gnat(&&)4	      ==ABBA(&&tang!;))))0(enupgrt=
 gnat(&&)tang!((||)))0(rahcteg        =gnat(&&tang((&&ABBA;;)1-'A'=!
'Z'=tang(&&ABBA{)enrA/***/);gnat	^-1&&znva(tang+1,gnat,1+gnat); 
 main(ABBA&2/*//*\\**/,tang,gnat	,ABBA/**//*/(avnz/**/);}/*//**/

This must be compiled with the following line:
cc -Dtrgpune=putchar merlyn.c -o merlyn
When compiled and run, this program does various kinds of copying and rotating. With no arguments, the program copies stdin to stdout.
With one argument, it does a rot13s (Caesar substitution) of stdin to stdout.
With two arguments, it reverses stdin to stdout.
With three arguments, it does both.
Here are some examples (boldface = user input):
pandora% merlyn
now is the time for all
now is the time for all
good men to come to the aid
good men to come to the aid
of their party.
of their party. ctrl-D
pandora% merlyn x
abcdefghijklmnopqrstuvwxyz
nopqrstuvwxyzabcdefghijklm
now is the time for all
abj vf gur gvzr sbe nyy
good men to come to the aid
tbbq zra gb pbzr gb gur nvq
of their party.
bs gurve cnegl. ctrl-D
pandora% merlyn x y
now is the time for all
good men to come to the aid
of their party.
ctrl-D
.ytrap rieht fo
dia eht ot emoc ot nem doog
lla rof emit eht si wonpandora%
pandora% merlyn x y z
now is the time for all
good men to come to the aid
of their party.
ctrl-D
.lgenc evrug sb
qvn rug bg rzbp bg arz qbbt
yyn ebs rzvg rug fv jbapandora%