rem: bufs[i].ns_buf += n;
add: bufs[i].ns_buf = (char *) bufs[i].ns_buf + n;
context: Ns_ConnSend(Ns_Conn *conn, Ns_Buf *bufs, int nbufs){    Conn	   *connPtr = (Conn *) conn;    int             nwrote, towrite, i, n;    Ns_Buf	    sbufs[16];    if (connPtr->sockPtr == NULL) {	return -1;    }    /*     * Send up to 16 buffers, including the queued output     * buffer if necessary.     */    towrite = 0;    n = 0;    if (connPtr->queued.length > 0) {	sbufs[n].ns_buf = connPtr->queued.string;	sbufs[n].ns_len = connPtr->queued.length;	towrite += sbufs[n].ns_len;	++n;    }    for (i = 0; i < nbufs && n < 16; ++i) {	if (bufs[i].ns_len > 0 && bufs[i].ns_buf != NULL) {	    sbufs[n].ns_buf = bufs[i].ns_buf;	    sbufs[n].ns_len = bufs[i].ns_len;	    towrite += bufs[i].ns_len;	    ++n;	}    }    nbufs = n;    bufs = sbufs;    nwrote = 0;    while (towrite > 0) {	n = NsSockSend(connPtr->sockPtr, bufs, nbufs);	if (n < 0) {	    break;	}	towrite -= n;	nwrote  += n;	if (towrite > 0) {	    for (i = 0; i < nbufs && n > 0; ++i) {		if (n > (int) bufs[i].ns_len) {		    n -= bufs[i].ns_len;		    bufs[i].ns_buf = NULL;		    bufs[i].ns_len = 0;		} else {		    bufs[i].ns_buf += n;		    bufs[i].ns_len -= n;		    n = 0;		}	    }	}    }    if (nwrote > 0) {        connPtr->nContentSent += nwrote;	if (connPtr->queued.length > 0) {	    n = connPtr->queued.length - nwrote;	    if (n <= 0) {		nwrote -= connPtr->queued.length;		Tcl_DStringTrunc(&connPtr->queued, 0);	    } else {		memmove(connPtr->queued.string,		    connPtr->queued.string + nwrote, n);		Tcl_DStringTrunc(&connPtr->queued, n);		nwrote = 0;	    }	}    }    return nwrote;}