No. 126/622 Index Prev Next
Path: titcca!nttlab!ouicsu!icssm!icsts1!saitoh
From: saitoh@icsts1.osaka-u.junet (SAITOH Akinori)
Newsgroups: fj.sources,fj.kanji
Subject: jnews Patch #4 (Was Re: How can I `rot13' KANJI text) (In Japanese)
Message-ID: < 740@icsts1.osaka-u.junet> 
Date: 25 Jul 87 19:11:29 GMT
References:  < 694@icsts1.osaka-u.junet>  < 606@titnca.nc.titech.JUNET> 
Distribution: fj
Organization: tokura-lab., Osaka Univ., Japan
Lines: 106
Xref: titcca fj.sources:376 fj.kanji:183

In article < 606@titnca.nc.titech.JUNET> , xwada@titnca.nc.titech.JUNET (Toshikazu Wada) writes:
>                             漢字にROT13をかけただけでは
>  内容が大体分かってしまいます.で,別に暗号化ではないにしろ
>  一目見ただけでは内容が全く分からないようにする方法がいずれ
>  必要になると思います.(ROT13と同じ理由で)
	:
>                                齊藤さんはROT47がいいのでは
>  ないか?と
	:
>             確かに全く読めません.

ROT47の利点は、まだありまして、rot13と同じく、暗号化と
複合が同じ手続きで出来ることです。

というだけではなんなので、jnewsを改造してrot47を受け付ける
ようにしました。エスケープシーケンスごとrot47してもかまいません。
rot13が D コマンドだったので、 rot47 は、ESC-D にしました。
help ファイルは書き替えませんでしたので、忘れずに覚えていて
ください。 ESC D です。


		斉藤 明紀
		齊藤@都倉研.情報.基礎工.阪大
		saitoh@icsts1.handai.junet
------------------------------------------------------------
Index: jvisual.c
Prereq: 1.10J
*** jvisual.c.0	Sun Jul 26 00:27:38 1987
--- jvisual.c	Sun Jul 26 03:54:40 1987
***************
*** 2,8 ****
   * visual - visual news interface.
   * Kenneth Almquist
   * modified by Saitoh Akinori(saitoh@handai.junet)
! 			1.10J	Fri Jun 12 02:25:57 JST 1987
   */
  
  #ifdef SCCSID
--- 2,8 ----
   * visual - visual news interface.
   * Kenneth Almquist
   * modified by Saitoh Akinori(saitoh@handai.junet)
! 			1.20J	Sun Jul 26 03:53:53 JST 1987
   */
  
  #ifdef SCCSID
***************
*** 504,509 ****
--- 504,525 ----
  		break;
  
  
+ 	/* Decrypt KANJI joke.  Always does rot 47 */
+ 	case META|'D':
+ 		appfile(fp, 32767);
+ 		for (i = hdrend ; i <  artlines ; i++) {
+ 			register char ch, *p;
+ 			tfget(linebuf, attrbuf, i);
+ 			for (p = linebuf ; (ch = *p) != '\0' ; p++) {
+ 				if (ch >= 0x21 & &  ch <= 0x7e)
+ 					*p = (ch - 0x21 + 0x2F) % 0x5E + 0x21;
+ 			}
+ 			(void) jtfput(linebuf, attrbuf, i);
+ 		}
+ 		prflags |= NEWART;
+ 		prflags & =~ (HDRONLY|NOPRT);
+ 		break;
+ 
  	/* Decrypt joke.  Always does rot 13 */
  	case 'D':
  		appfile(fp, 32767);
***************
*** 1572,1578 ****
  			}
  			break;
  		case '$':
! 			if (c== '@' || c=='B'|| c=='B'+13) {
  				st = 0;
  				md = KANJI_H;
  				continue;
--- 1588,1594 ----
  			}
  			break;
  		case '$':
! 			if (c== '@' || c=='B'|| c=='B'+13 || c== 'B'+47) {
  				st = 0;
  				md = KANJI_H;
  				continue;
***************
*** 1580,1586 ****
  			break;
  		case '(':
  			if (c== 'J' || c=='H' || c=='B'
! 			  ||c== 'J'+13 || c=='H'+13 || c=='B'+13) {
  				st = 0;
  				md = 0;
  				continue;
--- 1596,1603 ----
  			break;
  		case '(':
  			if (c== 'J' || c=='H' || c=='B'
! 			  ||c== 'J'+13 || c=='H'+13 || c=='B'+13
! 			  ||c== 'J'+47 || c=='H'+47 || c=='B'+47) {
  				st = 0;
  				md = 0;
  				continue;
Next
Continue