rem: arg_types ? arg_types : NULL,
add: arg_types ? arg_types : "",
context: put_cross_ref(int     type,int     scope_type,int     scope_lev,char    *fnc_cls,              /* caller class */char    *fnc,                   /* caller function/method */char	*fnc_arg_types,         /* caller function/method argument types */char    *scope,                 /* referenced class */char	*what,                  /* referenced member */char	*arg_types,		/* referenced function/method argument types */char	*file,int	lineno,int	acc){	LongString	key_value;	LongString	data_value;	char	lineno_buf[10];	if (!cross_ref_fp || !fnc || *fnc == '\0' ||		(scope_lev == PAF_REF_SCOPE_LOCAL && !report_local_vars))	{		return -1;	}	MY_DEBUG2 ((Output, "put_cross_ref (%i, %i, %i, %s, %s, %s, %s, %s, %s, %s, %i, %i)\n",					type, scope_type, scope_lev,					fnc_cls?fnc_cls:"?",					fnc?fnc:"?",					fnc_arg_types?fnc_arg_types:"?", scope?scope:"?", what?what:"?",					arg_types?arg_types:"?",	file?file:"?", lineno, acc));	if (scope && *scope == '\0')		scope = NULL;	else if (scope)	{		char *_p;		for (; isspace(*scope); scope++);				/*		 * It can happen, that the scope contains "class fld ",		 * so then terminate the rest after "class" */		if ((_p=strchr (scope, DB_FLDSEP_CHR)))		{			*_p = 0;		}		/**/		if (*scope == '\0')			scope = NULL;	}	if (fnc_cls && *fnc_cls == '\0')		fnc_cls = NULL;	else if (fnc_cls)	{		for (; isspace(*fnc_cls); fnc_cls++);	}	if (!file)	{		fprintf(stderr,"Filename must not be NULL\n");		return -1;	}	if (!what || !*what)	{		fprintf(stderr,"Input parameter (#8) must not be NULL file: %s line: %d\n",				file,lineno);		abort();		return -1;	}	for (; isspace(*what); what++);	for (; isspace(*file); file++);	if (type <= 0 || type > PAF_REF_UNDEFINED)	{		fprintf(stderr,"Input parameter (#1) %d is not allowed\n",			type);		return -1;	}	if (scope_type <= 0 || scope_type >= PAF_VAR_DCL)	{		fprintf(stderr,"Input parameter (#2) %d is not allowed\n",			scope_type);		return -1;	}	LongStringInit(&key_value,0);	LongStringInit(&data_value,0);	if (type == PAF_MBR_FUNC_DCL)		type = PAF_MBR_FUNC_DEF;	sprintf(lineno_buf,"%06d",lineno);	key_value.copystrings(&key_value,		fnc_cls ? fnc_cls : "#",            DB_FLDSEP_STR,		fnc,                                DB_FLDSEP_STR,		SN_GetSymbolType(scope_type),       DB_FLDSEP_STR,		scope ? scope : "#",                DB_FLDSEP_STR,		what,                               DB_FLDSEP_STR,		SN_GetSymbolType(type),             DB_FLDSEP_STR,		acc_strings[acc],                   DB_FLDSEP_STR,		lineno_buf,                         DB_FLDSEP_STR,		file,		NULL);	data_value.copystrings(&data_value,		fnc_arg_types ? fnc_arg_types : "", DB_FLDSEP_STR,		arg_types ? arg_types : NULL,		NULL);	if(!scope || *scope != '?')	{		fprintf(cross_ref_fp, "%d%c%s%c%s\n",			PAF_CROSS_REF, KEY_DATA_SEP_CHR,			key_value.buf, KEY_DATA_SEP_CHR,			data_value.buf);	}	key_value.free(&key_value);	data_value.free(&data_value);	return 0;}