
CTCP̎oƓ̃NH[gɂ
	CTCP/1ł̓NCAg̊Ԃ̊gf[^PRIVMSGNOTICER}hł̂ݗLɂȂ
	w肳Ă܂BCTCP/2łu PRIVMSG NOTICE  DCC CHAT gtBbN̓
	ߍ܂ꂽCTCPbZ[W̉͂Ɋ֌Wł傤BvƎw肳Ă܂B
	āÃbZ[Wtrail̂CTCP̎os܂B

	CTCP/1łCTCP̓ł%01 \a ƃNH[g悤Ɏw肳Ă܂A
	CTCP/2ł́uȂĂ̂͏̃NCAgvƂR
	p~ĂĂāACTRL-PNH[g%01ƃXy[X悤ɂȂĂ܂B

	
CTCP̑Mɂ
	PRIVMSG NOTICE  DCC CHAT gtBbN


bZ[Ẅ̃NH[gĂĂ܂B

	Ă݂Ƃ
	

	
	CTCP̓\ ŃNH[g






Trail̃NH[gIRCNCAgƂ̑Ή

CTRL-P(%10)ɂ郁bZ[W̉snul̈
	/privmsg !87KRJIRC :ӂ%10n ӂ
	/privmsg !87KRJIRC :ӂ%10r ӂ
	/privmsg !87KRJIRC :ӂ%100 ӂ
	/privmsg !87KRJIRC :ӂ%10%10 ӂ
	/privmsg !87KRJIRC :ӂ%10r%10n ӂ
	/privmsg !87KRJIRC :ӂ%10n%10r ӂ
	/topic !87KRJIRC :ӂ%10r%10n ӂ

	WoolChat %10n,%10r,%10r%10n sƂ݂ȂB
	Unknown ͐R[ĥ܂ܕ\BOtɂ́Eg悤B

CTRL-P(%10)ɂ郁bZ[W%01  %20̈
	CTCP/2ŒĂĂNH[gł
	E%10  '1'  %01 (CTCP̊Jn؂)\悤ɂ
	E%10  '@'  %20 ()\悤ɂ
	Ƃ̂ǉĂB
	̓bZ[W̃p[^̃p[XCTCP̕𓯎ɍsƂv̂B

	/PRIVMSG !87KRJIRC :ӂ%10nAAA%101%10@BBB
	/PRIVMSG !87KRJIRC :%01ACTION ӂ%10nAAA%101%10@BBB%01
	WoolChat,UnknownƂ %10  1 ƂV[PX ̂܂ܕ\B
	%10@ ƂV[PXɂ͑ΉĂȂB

	BluntIRCłCTRL-P̃AGXP[vCTCP̕𓯎ɍsƂ
	ɑΉĂB̂ACTCPł \a GXP[vɂ͑ΉĂȂB
	ACTCP\̂ꏊ

The original CTCP protocol defined a two-level method of quoting, which
was rarely (if ever) implemented.  Because few clients currently support
this quoting method, and it is generally considered too complex, we have
scrapped the original CTCP quoting.
IWiCTCPvgR2̃x̃NH[eBO菇`ĂA
(ƂĂ)߂ɃCvgȂB
̃NH[eBO菇ݍ̗pĂĂ̂͏̃NCAgA
͕Gƈʂɍl̂ŁA
̓IWiCTCPNH[eBOp܂B

The CTCP2 protocol introduces quoting at the argument level -- that is,
the characters in an argument to a CTCP message are translated according
to quoting rules before they are combined into a full CTCP message.  Below
is the order used in parsing incoming messages.  This will be involved in
the parsing of CTCP messages embedded within PRIVMSG, NOTICE, and DCC CHAT
traffic.
CTCP2vgR͈x̃NH[eBO𓱓B
Ȃ킿ACTCPbZ[Wւ̋c_ł́̕A
炪\CTCPbZ[W֑gݍ킹OɁA
Kp邱ƂɂĖ|󂳂܂B
ȉɁAė郁bZ[W͂̂ɎgpI[_[łB
́APRIVMSGANOTICEDCC CHATʂ̓ɖߍ܂ꂽCTCPbZ[W̉͂Ɋ֌Wł傤B

1. Break the message into tokens using SP.
	󔒂ŃbZ[W؂B
2. Interpret the first token as the CTCP keyword.
	CTCPL[[hƂđ1̈߂ĂB
	(L[[hƁcPRIVMSGNOTICEǂmFƂƂł傤H)
3. Unquote each following token using the quoting table above.  (For
   efficiency reasons, the keyword token does not need to be dequoted,
   since none of the current valid keyword tokens contain characters
   that will need dequoting.)
	pL̃e[ugpāAeXɑĈpIĂB(R̂߂ɁA݂̗LȃL[[hEg[N̂ǂdequotingKvƂ镶܂łȂ̂ŁAL[[hEg[NdequotedKv܂B)

4. Process the CTCP message according to its keyword.
	Likewise, quoting should be applied to all arguments before being
	concatenated into a CTCP request.  However, none of the current CTCP
	keywords contain characters that need quoting, so an implementation may
	skip the quoting step for the keyword token.
	̃L[[hɂCTCPbZ[WĂB
	lɁApCTCPNGXg֘AOɂׂĂ̋c_ɓKpׂłB
	ȂA݂CTCPL[[ĥǂApKvƂ镶܂ł܂B
	āACve[V́AL[[hEg[Np̈pXebv
	XLbv邩܂B



ACTION̎Mƕ\
	/PRIVMSG !87KRJIRC :%01ACTION ӂ%01
		WoolChatunknwon\łB
	/PRIVMSG !87KRJIRC :%01ACTION ӂ %01
		ɋ󔒂AȂUnknown͂̃bZ[W𖳎B

ACTION%10 NH[g
	/PRIVMSG !87KRJIRC :%01ACTION ӂ%10nAAA%01
	WoolChat,UnknowƂPrivmsg̎Ə󋵂͂ȂB

CTCP\NH[g
	/PRIVMSG !87KRJIRC :%01ACTION ӂ%10nAAA\a\\%01
	Woolchat,UnknownƂCTCP\NH[gɂ͑ΉĂȂ悤B



DCC
	DCC SEND hoge 1031786626 3312 5
	DCC SEND .bashrc 3402673703 63281 282

	TCY͏ȗ邱Ƃ
	

DCCMEBhE
		Jn ~ 폜
	񎦎 MJn Mɂ from t@C TCY 
	AhX |[g Xe[^X ۑ

	ۑt@C dcc-recv/-ڑ-nick-̃t@C 
	ۑ͉B

		
