rem: inline unsigned char *run_log( struct cpl_interpreter *intr )
add: static inline char *run_log( struct cpl_interpreter *intr )
context: inline unsigned char *run_log( struct cpl_interpreter *intr ){	unsigned char  *p;	unsigned short attr_name;	unsigned short n;	str name    = {0,0};	str comment = {0,0};	str user;	int i;	/* sanity check */	if (NR_OF_KIDS(intr->ip)>1) {		LOG(L_ERR,"ERROR:cpl_c:run_log: LOG node suppose to have max one child"			", not %d!\n",NR_OF_KIDS(intr->ip));		goto script_error;	}	/* is loging enabled? */	if ( log_dir==0 )		goto done;	/* read the attributes of the LOG node*/	p = ATTR_PTR(intr->ip);	for( i=NR_OF_ATTR(intr->ip); i>0 ; i-- ) {		get_basic_attr( p, attr_name, n, intr, script_error);		switch (attr_name) {			case NAME_ATTR:				get_str_attr( p, name.s, n, intr, script_error,1);				name.len = n;				break;			case COMMENT_ATTR:				get_str_attr( p, comment.s, n, intr, script_error,1);				comment.len = n;				break;			default:				LOG(L_ERR,"ERROR:cpl_c:run_log: unknown attribute "					"(%d) in LOG node\n",attr_name);				goto script_error;		}	}	if (comment.len==0) {		LOG(L_NOTICE,"NOTICE:cpl_c:run_log: LOG node has no comment attr -> "			"skipping\n");		goto done;	}	user.len = intr->user.len + name.len + comment.len;	/* duplicate the attrs in shm memory */	user.s = p = (char*)shm_malloc( user.len );	if (!user.s) {		LOG(L_ERR,"ERROR:cpl_c:run_log: no more shm memory!\n");		goto runtime_error;	}	/* copy the user name */	memcpy( p, intr->user.s, intr->user.len);	user.len = intr->user.len;	p += intr->user.len;	/* copy the log name */	if (name.len) {		memcpy( p, name.s, name.len );		name.s = p;		p += name.len;	}	/* copy the comment */	memcpy( p, comment.s, comment.len);	/* send the command */	write_cpl_cmd( CPL_LOG_CMD, &user, &name, &comment );done:	return get_first_child(intr->ip);runtime_error:	return CPL_RUNTIME_ERROR;script_error:	return CPL_SCRIPT_ERROR;}