rem: "around %d\n",s,p-s);
add: "around %ld\n", s, (long)(p-s));
context: int parse_avp_db_scheme( char *s, struct db_scheme *scheme){	str foo;	str bar;	char *p;	if (s==0 || *s==0)		goto error;	p = s;	/*parse the name */	while (*p && isspace((int)*p)) p++;	foo.s = p;	while (*p && *p!=':' && !isspace((int)*p)) p++;	if (foo.s==p || *p==0)		/* missing name or empty scheme */		goto parse_error;	foo.len = p - foo.s;	/* dulicate it */	duplicate_str( scheme->name, foo, error);	/* parse the ':' separator */	while (*p && isspace((int)*p)) p++;	if (*p!=':')		goto parse_error;	p++;	while (*p && isspace((int)*p)) p++;	if (*p==0)		goto parse_error;	/* set as default value type string */	scheme->db_flags = AVP_VAL_STR;	/* parse the attributes */	while (*p)	{		/* get the attribute name */		foo.s = p;		while (*p && *p!='=' && !isspace((int)*p)) p++;		if (p==foo.s || *p==0)			/* missing attribute name */			goto parse_error;		foo.len = p - foo.s;		/* parse the '=' separator */		while (*p && isspace((int)*p)) p++;		if (*p!='=')			goto parse_error;		p++;		while (*p && isspace((int)*p)) p++;		if (*p==0)			goto parse_error;		/* parse the attribute value */		bar.s = p;		while (*p && *p!=';' && !isspace((int)*p)) p++;		if (p==bar.s)			/* missing attribute value */			goto parse_error;		bar.len = p - bar.s;		/* parse the ';' separator, if any */		while (*p && isspace((int)*p)) p++;		if (*p!=0 && *p!=';')			goto parse_error;		if (*p==';') p++;		while (*p && isspace((int)*p)) p++;		/* identify the attribute */		if ( foo.len==SCHEME_UUID_COL_LEN && 		!strncasecmp( foo.s, SCHEME_UUID_COL, foo.len) )		{			duplicate_str( scheme->uuid_col, bar, error);		} else		if ( foo.len==SCHEME_USERNAME_COL_LEN && 		!strncasecmp( foo.s, SCHEME_USERNAME_COL, foo.len) )		{			duplicate_str( scheme->username_col, bar, error);		} else		if ( foo.len==SCHEME_DOMAIN_COL_LEN && 		!strncasecmp( foo.s, SCHEME_DOMAIN_COL, foo.len) )		{			duplicate_str( scheme->domain_col, bar, error);		} else		if ( foo.len==SCHEME_VALUE_COL_LEN && 		!strncasecmp( foo.s, SCHEME_VALUE_COL, foo.len) )		{			duplicate_str( scheme->value_col, bar, error);		} else		if ( foo.len==SCHEME_TABLE_LEN && 		!strncasecmp( foo.s, SCHEME_TABLE, foo.len) )		{			duplicate_str( scheme->table, bar, error);		} else		if ( foo.len==SCHEME_VAL_TYPE_LEN && 		!strncasecmp( foo.s, SCHEME_VAL_TYPE, foo.len) )		{			if ( bar.len==SCHEME_INT_TYPE_LEN &&			!strncasecmp( bar.s, SCHEME_INT_TYPE, bar.len) )				scheme->db_flags &= (~AVP_VAL_STR);			else if ( bar.len==SCHEME_STR_TYPE_LEN &&			!strncasecmp( bar.s, SCHEME_STR_TYPE, bar.len) )				scheme->db_flags = AVP_VAL_STR;			else			{				LOG(L_ERR,"ERROR:avpops:parse_avp_sb_scheme: unknown "					"value type <%.*s>\n",bar.len,bar.s);				goto error;			}		} else {			LOG(L_ERR,"ERROR:avpops:parse_avp_sb_scheme: unknown "				"attribute <%.*s>\n",foo.len,foo.s);			goto error;		}	} /* end while */	return 0;parse_error:	LOG(L_ERR,"ERROR:avpops:parse_avp_sb_scheme: parse error in <%s> "		"around %d\n",s,p-s);error:	return -1;}