SKIP_STRING (pData, swap);				      SKIP_STRING (pData, swap);
SKIP_STRING (pData, swap, pEnd, BAIL_STRING(iceConn, ICE_ProtocolReply, pStart));			      SKIP_STRING (pData, swap, pEnd, BAIL_STRING(iceConn, ICE_ProtocolReply, pStart));
ProcessProtocolReply (iceConn, length, swap, replyWait)IceConn		  	iceConn;unsigned long	 	length;Bool			swap;IceReplyWaitInfo 	*replyWait;{    iceProtocolReplyMsg *message;    char		*pData, *pStart;    Bool		replyReady;    CHECK_AT_LEAST_SIZE (iceConn, ICE_ProtocolReply,	length, SIZEOF (iceProtocolReplyMsg), IceFatalToProtocol);    IceReadCompleteMessage (iceConn, SIZEOF (iceProtocolReplyMsg),	iceProtocolReplyMsg, message, pStart);    if (!IceValidIO (iceConn))    {	IceDisposeCompleteMessage (iceConn, pStart);	return (0);    }    pData = pStart;    SKIP_STRING (pData, swap);				     /* vendor */    SKIP_STRING (pData, swap);				     /* release */    CHECK_COMPLETE_SIZE (iceConn, ICE_ProtocolReply,	length, pData - pStart + SIZEOF (iceProtocolReplyMsg),	pStart, IceFatalToProtocol);    pData = pStart;    if (iceConn->protosetup_to_you)    {	if (iceConn->protosetup_to_you->auth_active)	{	    /*	     * Tell the authentication procedure to clean up.	     */	    _IcePoProtocol *myProtocol = _IceProtocols[		iceConn->protosetup_to_you->my_opcode - 1].orig_client;	    IcePoAuthProc authProc = myProtocol->auth_procs[		iceConn->protosetup_to_you->my_auth_index];#ifdef SVR4/* * authProc is never NULL, but the cc compiler on UNIX System V/386 * Release 4.2 Version 1 screws up an optimization.  Unless there is * some sort of reference to authProc before the function call, the * function call will seg fault. */	    if (authProc)#endif		(*authProc) (iceConn,		&iceConn->protosetup_to_you->my_auth_state,		True /* clean up */, False /* swap */,	        0, NULL, NULL, NULL, NULL);	}	if ((int) message->versionIndex >= _IceVersionCount)	{	    _IceProtocolError *errorReply =	        &(((_IceReply *) (replyWait->reply))->protocol_error);	    char errIndex = message->versionIndex;	    _IceErrorBadValue (iceConn, 0,		ICE_ProtocolReply, 2, 1, &errIndex);	    	    errorReply->type = ICE_PROTOCOL_ERROR;	    errorReply->error_message =		"Received bad version index in Protocol Reply";	}	else	{	    _IceProtocolReply *reply = 	        &(((_IceReply *) (replyWait->reply))->protocol_reply);	    reply->type = ICE_PROTOCOL_REPLY;	    reply->major_opcode = message->protocolOpcode;	    reply->version_index = message->versionIndex;	    EXTRACT_STRING (pData, swap, reply->vendor);	    EXTRACT_STRING (pData, swap, reply->release);	}	replyReady = True;    }    else    {	_IceErrorBadState (iceConn, 0, ICE_ProtocolReply, IceCanContinue);	replyReady = False;    }    IceDisposeCompleteMessage (iceConn, pStart);    return (replyReady);}