rem: *_l = tmp - *_l;
context: int xpidf_add_address(str* _b, int* _l, str* _addr, xpidf_status_t _st){	int len = 0, tmp;	char* p;	switch(_st) {	case XPIDF_ST_OPEN:   p = STATUS_OPEN;   len = STATUS_OPEN_L;   break;	case XPIDF_ST_CLOSED: p = STATUS_CLOSED; len = STATUS_CLOSED_L; break;	case XPIDF_ST_INUSE:  p = STATUS_INUSE;  len = STATUS_INUSE_L;  break;	default:              p = STATUS_CLOSED; len = STATUS_CLOSED_L; break; /* Makes gcc happy */	}	tmp = ATOM_STAG_L + CRLF_L + ADDRESS_START_L + _addr->len +		ADDRESS_END_L + CRLF_L + len + CRLF_L + ADDRESS_ETAG_L +		CRLF_L + ATOM_ETAG_L + CRLF_L;	if (*_l < tmp) {		paerrno = PA_SMALL_BUFFER;		LOG(L_ERR, "xpidf_add_address(): Buffer too small\n");		*_l = tmp - *_l;		return -1;	}	str_append(_b, ATOM_STAG CRLF ADDRESS_START, ATOM_STAG_L + CRLF_L + ADDRESS_START_L);	str_append(_b, _addr->s, _addr->len);	str_append(_b, ADDRESS_END CRLF, ADDRESS_END_L + CRLF_L);	str_append(_b, p, len);	str_append(_b, CRLF ADDRESS_ETAG CRLF ATOM_ETAG CRLF, 		   CRLF_L + ADDRESS_ETAG_L + CRLF_L + ATOM_ETAG_L + CRLF_L);	return 0;}