From fj.sources Fri Jul  1 11:54:58 1994
Path: foretune!wnoc-tyo-news!hoffman!a_kuroe
From: a_kuroe@hoffman.cc.sophia.ac.jp (Akihiko Kuroe)
Newsgroups: fj.sources
Subject: nkf, Network Kanji Filter Version 1.4 ('94.7.1)
Message-ID: <25092@hoffman.cc.sophia.ac.jp>
Date: 30 Jun 94 17:22:46 GMT
Sender: a_kuroe@hoffman.cc.sophia.ac.jp
Followup-To: fj.sources.d
Organization: Computer Center, Sophia Univ., Tokyo, Japan
Lines: 935
X-Newsreader: gn [Version 1.30 Beta Jun.14,1994]
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP

]q勏󁗑{łB
fj.binaries.msdosɓenkf94701.lzhɊ܂܂̂Ɠ́A
\[XƃhLgfj.sourcesɂe܂BpB
IWiƂ̍𓊍eD܂Ƃv܂A
m̂悤nkfɂ͐mȂpb`݂Ă̂ŁA
pb`̑IƂĂ鏇ԂƂlȂĂςތ`ɂ܂B
Ȃ݂Ƀo[WAbv⍷nkf94701.lzhɊ܂܂܂B

#!/bin/sh
# This is a shell archive (shar 3.32)
#
# existing files WILL be overwritten
#
# This shar contains:
# length  mode       name
# ------ ---------- ------------------------------------------
#  13383 -rw-r--r-- nkf.c
#   3711 -rw-r--r-- nkf.doc
#   1497 -rw-r--r-- nkf.1
#
if touch 2>&1 | fgrep 'amc' > /dev/null
 then TOUCH=touch
 else TOUCH=true
fi
# ============= nkf.c ==============
echo "x - extracting nkf.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > nkf.c &&
X/** Network Kanji Filter. (Version 1.4)
X************************************************************************
X************************************************************************
X** Copyright (C) 1987, Fujitsu LTD. (Itaru ICHIKAWA)
X** AF ijxmʌ@\tgR@s@ 
X** iE-Mail Address: ichikawa@flab.fujitsu.co.jpj
X**	cړIƂȂÃ\[X̂Ȃ
X**	ʁCρCC܂B̍ۂɂ́A̕cƁB
X**	̃vOɂĂ͓ɉ̕ۏ؂ȂA炸B
X**	Everyone is permitted to do anything on this program 
X**	including copying, modifying, improving 
X**	as long as you don't try to make money off it, 
X**	or pretend that you wrote it.
X**	i.e., the above copyright notice has to appear in all copies.
X**	THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE.
X***********************************************************************/
Xstatic char *CopyRight =
X	"Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa)";
Xstatic char *Version =
X	"1.4";
Xstatic char *Patchlevel =
X	"94701/a_kuroe";
X/***********************************************************************
X**	
X**					 Written by I.Ichikawa
X**					 Fujitsu Labs.,  JH2FKN/1
X**
X** USAGE:	nkf [flags] [file] 
X**
X** Flags:
X** b    Output is bufferred 		(DEFAULT)
X** u	Output is unbufferred
X**
X** t	no operation
X**
X** j,n	Outout code is JIS 7 bit 	(DEFAULT) 
X** s,x	Output code is Shift JIS
X** e,a	Output code is AT&T JIS
X**
X** i_	Output sequence to designate JIS-kanji (DEFAULT_J)
X** o_	Output sequence to designate single-byte roman characters (DEFAULT_R)
X**
X** BJ,J	= iBoJ
X** BB	= iBoB
X**
X** r	{de/en}crypt ROT13/47
X**
X** v	display Version
X**
X** T	Text mode output	(for MS-DOS)
X**/
X
X#if (defined(__TURBOC__) || defined(LSI_C)) && !defined(MSDOS)
X#define MSDOS
X#endif
X
X#include <stdio.h>
X#include <sys/types.h>
X
X#ifdef MSDOS
X#include <stdlib.h>
X#include <fcntl.h>
X#include <io.h>
X#endif
X
X#ifdef MSDOS
X#ifdef LSI_C
X#define setbinmode(fp) fsetbin(fp)
X#else /* Microsoft C, Turbo C */
X#define setbinmode(fp) setmode(fileno(fp), O_BINARY)
X#endif
X#else /* UNIX */
X#define setbinmode(fp)
X#endif
X
X#ifdef _IOFBF /* SysV and MSDOS */
X#define	setvbuffer(fp, buf, size)	setvbuf(fp, buf, _IOFBF, size)
X#else /* BSD */
X#define	setvbuffer(fp, buf, size)	setbuffer(fp, buf, size)
X#endif
X
X#define		FALSE	0
X#define		TRUE	1
X
X#define		ESC	0x1b
X#define		SP	0x20
X#define		AT	0x40
X#define		SSP	0xa0
X#define		DEL	0x7f
X
X#define		HOLD_SIZE	32
X#define		IOBUF_SIZE	16384
X
X#define		DEFAULT_J	'B'
X#define		DEFAULT_R	'B'
X#define		DEFAULT_I	oconv		/* EUC, JIS7 */
X#if 0
X#define		DEFAULT_I	s_oconv		/* Shift JIS */
X#endif
X
X#define		SJ0162	0x00e1		/* 01 - 62 ku offset */
X#define		SJ6394	0x0161		/* 63 - 94 ku offset */
X
X
X
X
X
X/* buffers */
Xchar            stdibuf[IOBUF_SIZE];
Xchar            stdobuf[IOBUF_SIZE];
Xshort           hold_buf[HOLD_SIZE];
Xint             hold_count;
X
X/* flags */
Xint             unbuf_f = FALSE,
X                estab_f = FALSE,
X                nop_f = FALSE,
X                binmode_f = TRUE;
X
X/* options */
Xchar            to_j = DEFAULT_J,
X                to_r = DEFAULT_R;
X
X/* converters */
Xint             s_iconv ();
X
Xint             e_oconv ();
Xint             j_oconv ();
Xint             s_oconv ();
X
Xint		noconvert ();
Xint		convert ();
Xint		h_conv ();
Xint		push_hold_buf ();
Xint		usage ();
X
Xunsigned int		rot13 ();
Xunsigned int		rot47 ();
Xunsigned int		nops ();
X
Xint             (*iconv) ();
Xunsigned int		(*r1conv) ();
Xunsigned int		(*r2conv) ();
Xint             (*oconv) ();
X
X/* Global states */
Xint             in_kanji = FALSE,
X                k_shift = FALSE;
X
X
X
X
Xint
Xmain (argc, argv)
X    int             argc;
X    char          **argv;
X{
X    register FILE  *fin;
X    register char  *cp;
X
X    oconv = j_oconv;
X    r1conv = nops;
X    r2conv = nops;
X    for (argc--, argv++; (argc > 0) && **argv == '-'; argc--, argv++) {
X	cp = *argv;
X	while (*cp)
X	    switch (*cp++) {
X	    case 'b':
X		unbuf_f = FALSE;
X		continue;
X	    case 'u':
X		unbuf_f = TRUE;
X		continue;
X	    case 't':
X		nop_f = TRUE;
X		continue;
X	    case 'j':
X	    case 'n':
X		oconv = j_oconv;
X		continue;
X	    case 'e':
X	    case 'a':
X		oconv = e_oconv;
X		continue;
X	    case 's':
X	    case 'x':
X		oconv = s_oconv;
X		continue;
X	    case 'i':
X		to_j = *cp++;
X		continue;
X	    case 'o':
X		to_r = *cp++;
X		continue;
X	    case 'B':
X		to_j = 'B';
X		to_r = *cp++;
X		continue;
X	    case 'J':
X		to_j = 'B';
X		to_r = 'J';
X		continue;
X	    case 'r':
X		r1conv = rot13;
X		r2conv = rot47;
X		continue;
X#ifdef MSDOS
X	    case 'T':
X		binmode_f = FALSE;
X		continue;
X#endif
X	    case 'v':
X		usage();
X		exit(1);
X		break;
X	    default:
X		/* bogus option but ignored */
X		continue;
X	    }
X    }
X
X    if (binmode_f == TRUE)
X	setbinmode(stdout);
X    if (unbuf_f)
X	setbuf (stdout, (char *) NULL);
X    else
X	setvbuffer (stdout, stdobuf, IOBUF_SIZE);
X
X    if (argc == 0) {
X	if (binmode_f == TRUE)
X		setbinmode(stdin);
X	setvbuffer (stdin, stdibuf, IOBUF_SIZE);
X	if (nop_f)
X	    noconvert (stdin);
X	else
X	    convert (stdin);
X    }
X    else {
X	while (argc--) {
X	    if ((fin = fopen (*argv++, "r")) == NULL) {
X		perror (*--argv);
X		return (-1);
X	    } else {
X		if (binmode_f == TRUE)
X			setbinmode(fin);
X		setvbuffer (fin, stdibuf, IOBUF_SIZE);
X		if (nop_f)
X		    noconvert (fin);
X		else
X		    convert (fin);
X		fclose (fin);
X	    }
X	}
X    }
X
X    return (0);
X}
X
X
Xint
Xnoconvert (f)
X    register FILE  *f;
X{
X    register int    c;
X
X    while ((c = getc (f)) != EOF)
X	putchar (c);
X}
X
X
X
X
X
X
Xint
Xconvert (f)
X    register FILE  *f;
X{
X    register int    c1,
X                    c2;
X
X    c2 = 0;
X    estab_f = FALSE;
X    iconv = oconv;
X
X    while ((c1 = getc (f)) != EOF) {
X	if (c2) {
X	    /* second byte */
X	    if (c2 > DEL) {
X		/* in case of 8th bit is on */
X		if (!estab_f) {
X		    /* in case of not established yet */
X		    if (c1 > SSP) {
X			/* It is still ambiguious */
X			h_conv (f, c2, c1);
X			c2 = 0;
X			continue;
X			/* goto next_word */
X		    } else if (c1 < AT) {
X			/* ignore bogus code */
X			c2 = 0;
X			continue;
X			/* goto next_word */
X		    } else {
X			/* established */
X			/* it seems to be Shift JIS */
X			estab_f = TRUE;
X			iconv = s_iconv;
X			/* goto send */
X		    }
X		} else
X		    /* in case of already established */
X		if (c1 < AT) {
X		    /* ignore bogus code */
X		    c2 = 0;
X		    continue;
X		    /* goto next_word */
X		} else;
X		/* goto send */
X	    } else
X		/* 7 bit code */
X		/* it might be kanji shitfted */
X	    if ((c1 == DEL) || (c1 <= SP)) {
X		/* ignore bogus code */
X		c2 = 0;
X		continue;
X		/* goto next_word */
X	    } else;
X	    /* goto send */
X	} else {
X	    /* first byte */
X	    if (c1 > DEL) {
X		/* 8 bit code */
X		if (!estab_f) {
X		    /* not established yet */
X		    if (c1 < SSP) {
X			/* it seems to be Shift JIS */
X			estab_f = TRUE;
X			iconv = s_iconv;
X		    } else if (c1 < 0xe0) {
X			/* it seems to be EUC */
X			estab_f = TRUE;
X		    } else {
X			/* still ambiguious */
X		    }
X		} else {
X		    /* already established */
X		}
X		c2 = c1;
X		continue;
X		/* goto next_byte */
X	    } else if ((c1 > SP) && (c1 != DEL)) {
X		/* in case of Roman characters */
X		if (k_shift) {
X		    /* in case of Kanji shifted */
X		    c2 = c1;
X		    continue;
X		    /* goto next_byte */
X		} else;
X		/* goto send */
X	    } else if (c1 == ESC) {
X		/* in case of ESC */
X		if ((c1 = getc (f)) == EOF) {
X		    (*iconv) (0, ESC);
X		    break;
X		} else if (c1 == '$') {
X		    if ((c1 = getc (f)) == EOF) {
X			(*iconv) (0, ESC);
X			(*iconv) (0, '$');
X			break;
X		    } else {
X			/* in case of Kanji in ESC sequence */
X			k_shift = TRUE;
X			continue;
X		    }
X		} else if (c1 == '(') {
X		    if ((c1 = getc (f)) == EOF) {
X			(*iconv) (0, ESC);
X			(*iconv) (0, '(');
X			break;
X		    } else {
X			/* in case of Kanji out ESC sequence */
X			k_shift = FALSE;
X			continue;
X		    }
X		} else {
X		    /* not kanji control */
X		    (*iconv) (0, ESC);
X		    /* goto send */
X		}
X	    } else;
X	    /* goto send */
X	}
X	/* send: */
X	(*iconv) (c2, c1);
X	c2 = 0;
X	continue;
X	/* goto next_word */
X    }
X
X    /* epilogue */
X    (*iconv) (EOF, 0);
X    return;
X}
X
X
X
X
X
Xint
Xh_conv (f, c2, c1)
X    register FILE  *f;
X    register int    c1,
X                    c2;
X{
X    register int    wc;
X
X
X    /** it must NOT be in the kanji shifte sequence	 */
X    /** it must NOT be written in JIS7 			 */
X    /** and it must be after 2 byte 8bit code		 */
X
X    hold_count = 0;
X    push_hold_buf (c2, c1);
X    c2 = 0;
X
X    while ((c1 = getc (f)) != EOF) {
X	if (c2) {
X	    /* second byte */
X	    if (!estab_f) {
X		/* not established */
X		if (c1 > SSP) {
X		    /* it is still ambiguious yet */
X		    /* goto send */
X		} else if (c1 < AT) {
X		    /* ignore bogus code */
X		    c2 = 0;
X		    continue;
X		    /* goto next byte */
X		} else {
X		    /* now established */
X		    /* it seems to be Shift JIS */
X		    estab_f = TRUE;
X		    iconv = s_iconv;
X		    /* goto send */
X		}
X	    } else;
X	    /* just established */
X	    /* goto send without checking */
X	} else {
X	    /* First byte */
X	    if (c1 > DEL) {
X		/* 8th bit is on */
X		if (c1 < SSP) {
X		    /* it seems to be Shift JIS */
X		    estab_f = TRUE;
X		    iconv = s_iconv;
X		} else if (c1 < 0xe0) {
X		    /* it seems to be EUC */
X		    estab_f = TRUE;
X		} else {
X		    /* still ambiguious */
X		}
X		c2 = c1;
X		continue;
X		/* goto next_byte */
X	    } else;
X	    /* 7 bit code , then send without any process */
X	    /* goto send */
X	}
X	/* send: */
X	if ((push_hold_buf (c2, c1) == EOF) || estab_f)
X	    break;
X	c2 = 0;
X	continue;
X    }
X
X    /** now,
X     ** 1) EOF is detected, or
X     ** 2) Code is established, or
X     ** 3) Buffer is FULL (but last word is pushed)
X     **
X     ** in 1) and 3) cases, we must use default
X     ** Kanji codes, that is DEFAULT_I
X     **/
X
X    if (estab_f == FALSE) {
X	iconv = DEFAULT_I;
X	estab_f = TRUE;
X    }
X    for (wc = 0; wc < hold_count; wc++) {
X	c1 = hold_buf[wc];
X	c2 = 0x0ff & (c1 >> 8);
X	c1 = c1 & 0x0ff;
X	(*iconv) (c2, c1);
X    }
X    return;
X}
X
X
X
X
Xint
Xpush_hold_buf (c2, c1)
X    int             c2,
X                    c1;
X{
X    if (hold_count >= HOLD_SIZE)
X	return (EOF);
X    hold_buf[hold_count++] = ((c2 & 0x0ff) << 8) | (c1 & 0x0ff);
X    return ((hold_count >= HOLD_SIZE) ? EOF : hold_count);
X}
X
X
Xint
Xs_iconv (c2, c1)
X    register int    c2,
X                    c1;
X{
X    if ((c2 == EOF) || (c2 == 0)) {
X	/* NOP */
X    } else {
X	c2 &= 0x0ff;
X	c1 &= 0x0ff;
X
X	c2 = c2 + c2 - ((c2 <= 0x9f) ? SJ0162 : SJ6394);
X	if (c1 < 0x9f)
X	    c1 = c1 - ((c1 > DEL) ? SP : 0x1f);
X	else {
X	    c1 = c1 - 0x7e;
X	    c2++;
X	}
X    }
X    (*oconv) (c2, c1);
X}
X
X
Xint
Xe_oconv (c2, c1)
X    register int    c2,
X                    c1;
X{
X    if (c2 == EOF)
X	return;
X    else if (c2 == 0)
X	putchar ((*r1conv) (c1));
X    else {
X	putchar (((*r2conv) (c2)) | 0x080);
X	putchar (((*r2conv) (c1)) | 0x080);
X    }
X}
X
X
X
X
Xint
Xs_oconv (c2, c1)
X    register int    c2,
X                    c1;
X{
X    if (c2 == EOF)
X	return;
X    else if (c2 == 0)
X	putchar ((*r1conv) (c1));
X    else {
X	c2 = (*r2conv) (c2);
X	c1 = (*r2conv) (c1);
X	putchar ((((c2 - 1) >> 1) + ((c2 <= 0x5e) ? 0x71 : 0xb1)));
X	putchar ((c1 + ((c2 & 1) ? ((c1 < 0x60) ? 0x1f : 0x20) : 0x7e)));
X    }
X}
X
X
Xint
Xj_oconv (c2, c1)
X    register int    c2,
X                    c1;
X{
X    if (c2 == EOF) {
X	if (in_kanji) {
X	    putchar (ESC);
X	    putchar ('(');
X	    putchar (to_r);
X	}
X    } else if (c2 == 0) {
X	if (in_kanji) {
X	    putchar (ESC);
X	    putchar ('(');
X	    putchar (to_r);
X	    in_kanji = FALSE;
X	}
X	putchar ((*r1conv)(c1));
X    } else {
X	if (in_kanji == FALSE) {
X	    putchar (ESC);
X	    putchar ('$');
X	    putchar (to_j);
X	    in_kanji = TRUE;
X	}
X	putchar ((*r2conv)(c2));
X	putchar ((*r2conv)(c1));
X    }
X}
X
X
Xunsigned int	nops (c)
X	char	c;
X{
X	return (c & 0x07f);
X}
X
X
Xunsigned int	rot13 (c)
X	char	c;
X{
X	c &= 0x07f;
X	if ( c < 'A' ) return (c);
X	else if (c <= 'M') return (c + 13);
X	else if (c <= 'Z') return (c - 13);
X	else if (c < 'a') return (c);
X	else if (c <= 'm') return (c + 13);
X	else if (c <= 'z') return (c - 13);
X	else return (c);
X}
X
Xunsigned int	rot47 (c)
X	char	c;
X{
X	c &= 0x07f;
X	if ( c < '!' ) return (c);
X	else if ( c <= 'O' ) return (c + 47);
X	else if ( c <= '~' ) return (c - 47);
X	else return (c);
X}
X
X
Xint usage()
X{
X	fprintf(stderr,"Network Kanji Filter Version %s (%s)\n",Version,Patchlevel);
X	fprintf(stderr,"%s\n\n",CopyRight);
X	fprintf(stderr,"USAGE:	nkf [flags] [file]\n\n");
X	fprintf(stderr,"Flags:\n");
X	fprintf(stderr,"b	Output is bufferred (DEFAULT)\n");
X	fprintf(stderr,"u	Output is unbufferred\n");
X	fprintf(stderr,"t	no operation\n\n");
X	fprintf(stderr,"j,n	Outout code is JIS 7 bit (DEFAULT)\n"); 
X	fprintf(stderr,"s,x	Output code is Shift JIS\n");
X	fprintf(stderr,"e,a	Output code is AT&T JIS\n\n");
X	fprintf(stderr,"i_	Output sequence to designate JIS-kanji (DEFAULT_J)\n");
X	fprintf(stderr,"o_	Output sequence to designate single-byte roman characters (DEFAULT_R)\n\n");
X	fprintf(stderr,"BJ,J	= iBoJ\n");
X	fprintf(stderr,"BB	= iBoB\n\n");
X	fprintf(stderr,"r	{de/en}crypt ROT13/47\n");
X	fprintf(stderr,"v	Show this usage\n");
X#ifdef MSDOS
X	fprintf(stderr,"T	Text mode output\n");
X#endif
X}
X
X/**
X ** pb`
X **  void@merope.pleiades.or.jp (Kusakabe Youichi)
X **  NIDE Naoyuki <nide@ics.nara-wu.ac.jp>
X **  ohta@src.ricoh.co.jp (Junn Ohta)
X **  inouet@strl.nhk.or.jp (Tomoyuki Inoue)
X **  kiri@pulser.win.or.jp (Tetsuaki Kiriyama)
X **  a_kuroe@hoffman.cc.sophia.ac.jp (Akihiko Kuroe)
X **
X ** ŏIXV
X **  1994.07.01
X **/
SHAR_EOF
$TOUCH -am 0701015094 nkf.c &&
chmod 0644 nkf.c ||
echo "restore of nkf.c failed"
set `wc -c nkf.c`;Wc_c=$1
if test "$Wc_c" != "13383"; then
	echo original size 13383, current size $Wc_c
fi
# ============= nkf.doc ==============
echo "x - extracting nkf.doc (Text)"
sed 's/^X//' << 'SHAR_EOF' > nkf.doc &&
X
XNAME
X	nkf - lbg[NpR[hϊtB^
X
XSYNOPSIS
X	nkf [options] [file]
X
XDESCRIPTION
X
X  nkf̓lbg[NŃ[j[X̓ǂݏ邽߂ɍꂽA
XR[h̕ϊtB^łB
X
X  nkf̓ƂẮA͊R[hn̓vIȎF@\B
X̂߁Ap҂́A͊R[hnł邩mȂĂAo͊
XR[hn̂ݎw肷ΗǂƂɂȂBA̔@\́A_Iɂ͊
XSł͂ȂAʏ̃j[X⃁[̃bZ[WɂĂ͊mɓ삷
XSȂ̂ɂ͂ȂĂB
X
X  ݁AnkfFł͂̊R[hńAuJISR[hv(ISO-
X2022-JPɊÂ)AMSR[h(VtgJIS)A{EUC(AT&TR[h)̂
XꂩłBo͂銿R[hnA3ނłB
X
X  ͂́At@Cw肵Ȃ΁AW͂ƂȂBo͕͂Wo͂łB
X
X  włIvV́Aȉ̒ʂB
X
X	-b	obt@Oo͂sB(ftHg)
X	-u	o͎ɁAobt@OȂB
X
X	-t	ȂB
X
X	-j
X	-n	JISR[ho͂B(ftHg)
X
X	-e
X	-a	EUCR[ho͂B
X
X	-s
X	-x	VtgJISR[ho͂B
X
X	-iH	JISwV[PXƂ ESC-'$'-HgpB
X		(ftHǵAESC-'$'-'B')
X
X	-oH	1oCgpZbgwV[PXƂāAESC-
X		'('-HgpB(ftHǵAESC-'('-'B')
X
X	-BJ
X	-J	-iB -oJƓB
X
X	-BB	-iB -oBƓB
X
X	-r	ROT13/47̕ϊB
X
X	-v	o[W\B
X
X	-T	eLXg[hŏo͂B(MS-DOSł̂݌͂)
X
XAUTHOR
X  s  	ichikawa@flab.fujitsu.co.jp	(was ichikawa@fujitsu.JUNET)
X
XACKNOWLEDGE
X	morb@fujitsu, kiss@ayumi.stars.flab.fujitsu, cen122@flab.fujitsu,
X	yuki@flab.fujitsu Afujitsu & flab.fujitsůF̋͂ɊӁB
X	shinoda@cs.titech, kato@cs.titech, uematsu@cs.titech  TNX
X
XBUGS
X  ́A͂̃R[hn̔́AEUCƃVtgJISƂ̎łAŏ
Xł镶_Ŋm肵Ă܂BāAs\̊Ԃ͕ۗob
Xt@ɂ߂ĂAmɏB̂߁A
X
X	1)nkf́A͒ɁÅR[hñR[h݂ꍇA
X	̓͂𐳂ϊłȂB
X
X	2)1oCgJi(锼pJi)͂ɂꍇɂẮA
X	̓ۏ؂łȂB(^OA^N͕ۑ܂c)
X
X	3)s\ȕ(񐅏)ƉpȂ͔͂
X	ȂB(ۗobt@tɂȂ邩A͂IƁAǂ
X	ɃePg[ɔfĕϊĂ܂)
X
X	4)ƁÂ낢B(̔ł͉ǂĂ)
X
X  ܂A͂яo͂̃V[PXɂ́A_ȉĂBႦ΁A
X͂ESC-'$'ƗAł낤A(Zbg⑼𖳎)
Xw肵ĂV[PXƂĂ܂ĂB(ESC-'('̏ꍇl)
XāAo͂̃V[PXɂẮAIvVŎw肵̂ōsB̂߁A
XJIS̐Vł̋ʂƂAASCIIJIS[}̋ʂȂǂɂĂ͕ۑ
XȂB
X
X  ̃tB^̕ΐAR[hnɑΉꊇʑ{Ȃ̂ŁAO
XLrfЂȂǁAJISA񐅏\ɂĒ`ĂȂR[
XhɊeЂɂ芄蓖ĂꂽǂȂ邩܂ł͊֒mȂBāA
X񐅏ȂƂƂɂ́ÃtB^͈̔͊OƎvB
X́A̐ӔCłȂƂĂ炢B
X
X  ɂAʏ̃j[X̋LɂĂ͖͂Ȃϊł͂
XB(Ǝv̂AЂƂM͂Ȃ)
SHAR_EOF
$TOUCH -am 0701015094 nkf.doc &&
chmod 0644 nkf.doc ||
echo "restore of nkf.doc failed"
set `wc -c nkf.doc`;Wc_c=$1
if test "$Wc_c" != "3711"; then
	echo original size 3711, current size $Wc_c
fi
# ============= nkf.1 ==============
echo "x - extracting nkf.1 (Text)"
sed 's/^X//' << 'SHAR_EOF' > nkf.1 &&
X.TH NKF 1L 01/Jul/94
X.SH NAME
Xnkf \- Network Kanji code conversion Filter
X.SH SYNOPSIS
X.B nkf
X[
X.B options
X] [
X.B file
X]
X.SH DESCRIPTION
X.PP
X.B Nkf
Xis a yet another kanji code converter among networks, hosts and terminals.
XIt converts input kanji code to designated kanji code
Xsuch as 7-bit JIS, MS-kanji (shifted-JIS) or EUC.
X.PP
XOne of the most unique facicility of 
X.B nkf
Xis the guess of the input kanji code.
XIt currently recognizes 7-bit JIS, MS-kanji (shifted-JIS) and EUC.
XSo users needn't the input kanji code specification.
X.PP
XOptions are bellow:
X.TP
X.B \-b
Xbufferd output.
XThis is a default.
X.TP
X.B \-u
Xunbufferd output.
X.TP
X.B \-t
Xno operations.
X.TP
X.B \-j
X.br
X.ns
X.TP
X.B \-n
Xoutput 7-bit JIS code.
XThis is a default.
X.TP
X.B \-s
X.br
X.ns
X.TP
X.B \-x
Xoutput MS-kanji (shifted-JIS) code.
X.TP
X.B \-e
X.br
X.ns
X.TP
X.B \-a
Xoutput EUC (AT&T) code.
X.TP
X.BI \-i c
Xoutput 
X.BI ESC\-$\- c
Xas sequence to designate JIS-kanji
X(Default is
X.BR B .)
X.TP
X.BI \-i c
Xoutput 
X.BI ESC\-(\- c
Xas sequence to designate single-byte roman characters
X(Default is
X.BR B .)
X.TP
X.B \-BJ
X.br
X.ns
X.TP
X.B \-J
Xsame as
X.BR \-i B
X.BR \-o J.
X.TP
X.B \-BB
Xsame as
X.BR \-i B
X.BR \-o B.
X.TP
X.B \-r
X{de/en}crypt ROT13/47
X.TP
X.B \-v
Xdisplay Version
X.TP
X.B \-T
XText mode output (MS-DOS)
X.SH "FILES"
Xnkf - binary
X.SH AUTHOR
XItaru Ichikawa <ichikawa@flab.fujitsu.co.jp>
X(was ichikawa@fujitsu.JUNET)
X.SH EDITOR
Xa_kuroe@hoffman.cc.sophia.ac.jp (Akihiko Kuroe)
X.SH BUGS
X.B Nkf
Xcannot handle some input that contains mixed kanji codes.
SHAR_EOF
$TOUCH -am 0701015094 nkf.1 &&
chmod 0644 nkf.1 ||
echo "restore of nkf.1 failed"
set `wc -c nkf.1`;Wc_c=$1
if test "$Wc_c" != "1497"; then
	echo original size 1497, current size $Wc_c
fi
exit 0

--
/***************[Akihiko Kuroe]****************/
/* Office: <a_kuroe@sparc691.gaken.dnp.co.jp> */
/* Univ:   <a_kuroe@hoffman.cc.sophia.ac.jp>  */
/**********************************************/

