home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / editors / 2836 < prev    next >
Encoding:
Text File  |  1992-11-21  |  2.4 KB  |  116 lines

  1. Newsgroups: comp.editors
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!pacific.mps.ohio-state.edu!davis
  3. From: davis@pacific.mps.ohio-state.edu ("John E. Davis")
  4. Subject: rot13.sl for JED
  5. Message-ID: <DAVIS.92Nov21165702@pacific.mps.ohio-state.edu>
  6. Sender: news@pacific.mps.ohio-state.edu
  7. Nntp-Posting-Host: pacific.mps.ohio-state.edu
  8. Reply-To: davis@pacific.mps.ohio-state.edu  (John E. Davis)
  9. Organization: "Dept. of Physics, The Ohio State University"
  10. Date: Sat, 21 Nov 1992 21:57:02 GMT
  11. Lines: 103
  12.  
  13. Hi,
  14.  
  15.    Here is a rot13.sl file for encrypting/decrypting text via rotating chars
  16. a-z by 13.  To use it, cut it out, call it rot13.sl and put it in JED_LIBRARY.
  17. Then put the following line in your .jedrc or site.sl:
  18.  
  19. "rot13.sl" evalfile
  20.  
  21. Then in JED set the mark and move the Point to define a region.  Then enter
  22. ^[X (escape X) or whatever you have `evaluate_cmd' bound to and type: rot13
  23. at the JED> prompt, i.e.,
  24.  
  25. Escape-X
  26.  
  27. JED> rot13
  28.  
  29. Or, instead of always loading it, even when you do not need it, simply do:
  30.  
  31. Escape-X
  32.  
  33. JED> "rot13.sl" evalfile rot13
  34.  
  35. This loads it then evaluates the function which rotates the region.
  36.  
  37. In a later release of JED, I will add autoloading so that something like:
  38.  
  39. "rot13" "rot13.sl" autoload
  40.  
  41. but that is later.
  42.  
  43. Here is the file.  Enjoy.
  44.  
  45. ;;
  46. ;;  rot13.sl
  47. ;;
  48. ( [ch delta] =ch
  49.   0 =delta
  50.   ;; M is 77
  51.   ;; A is 65, Z is 90
  52.   
  53.   ch 90 > { 32 =delta ch 32 - =ch} if
  54.   
  55.   {ch 65 <}{ch 90 >} orelse {1 right pop return} if
  56.   
  57.   
  58.   ch 77 > {ch 13 - =ch}{ ch 13 + =ch} else
  59.   del 
  60.   ch delta + char insert
  61. ) do_rot13
  62.  
  63.   [n r1 c1 c2]
  64.   markp { "Set mark!" error } !if
  65.   
  66.   push_spot
  67.   
  68.   what_column =c2
  69.   whatline "exchange" call whatline =r1
  70.   r1 - =n  ;number of lines - 1
  71.   what_column =c1
  72.   
  73.   {n 0 ==} {c1 c2 ==} andelse {"bad region!" error} if
  74.   
  75.   n 0 < { n chs =n 
  76.           r1 n - =r1
  77.       c1 c2 =c1 =c2
  78.     } if
  79.  
  80.   n 0 == { c1 c2 > { c1 c2 =c1 =c2  "hmm" message } if } if
  81.   
  82.   r1 goto_line c1 goto_column
  83.  
  84.   n { 
  85.        eolp 0 == 
  86.          {  pop
  87.         what_char do_rot13
  88.         eolp {0}{1} else
  89.      } while
  90.        1 down pop bol
  91.     } loop
  92.     
  93.   ;; take care of final line
  94.     
  95.    what_column c2 < 
  96.      { pop 
  97.        what_char do_rot13
  98.        what_column c2 <
  99.      } while
  100.      
  101.   pop_spot
  102. ) rot13
  103.  
  104.  
  105.   
  106.  
  107. --
  108.      _____________
  109. #___/John E. Davis\_________________________________________________________
  110. #
  111. # internet: davis@amy.tch.harvard.edu
  112. #   bitnet: davis@ohstpy
  113. #   office: 617-735-6746
  114. #
  115.