src/libs/elektra/keyset.c
/**
 * @brief Process Callback + maps to correct binary/hashmap search
 *
 * @return the found key
 */
@brief Process Callback + maps to correct binary/hashmap search
@return the found key
@brief Process Callback + maps to correct binary / hashmap search @return the found key
static Key * elektraLookupSearch (KeySet * ks, Key * key, option_t options)
{
	typedef Key * (*callback_t) (KeySet * ks, Key * key, Key * found, option_t options);
	union {
		callback_t f;
		void * v;
	} conversation;
	Key * found = elektraLookupBinarySearch (ks, key, options);
	Key * ret = found;
	if (keyGetMeta (key, "callback"))
	{
		if (keyGetBinary (key, &conversation.v, sizeof (conversation)) == sizeof (conversation))
		{
			if (conversation.v != 0)
			{
				ret = (*conversation.f) (ks, key, found, options);
			}
		}
	}
	return ret;
}
static Key * elektraLookupSearch ( KeySet * ks , Key * key , option_t options ) { typedef Key * ( * callback_t ) ( KeySet * ks , Key * key , Key * found , option_t options ) ; union { callback_t f ; void * v ; } conversation ; Key * found = elektraLookupBinarySearch ( ks , key , options ) ; Key * ret = found ; if ( keyGetMeta ( key , " " ) ) { if ( keyGetBinary ( key , & conversation . v , sizeof ( conversation ) ) == sizeof ( conversation ) ) { if ( conversation . v != 0 ) { ret = ( * conversation . f ) ( ks , key , found , options ) ; } } } return ret ; }
@brief Process Callback + maps to correct binary/hashmap search
 @return the found key
@brief Process Callback + maps to correct binary / hashmap search @return the found key