The Base64 plugin uses the following macro code in various places:
ELEKTRA_PLUGIN_FUNCTION (ELEKTRA_PLUGIN_NAME_C, something)
. Since both ELEKTRA_PLUGIN_FUNCTION and ELEKTRA_PLUGIN_NAME_C are macro definitions the text ELEKTRA_PLUGIN_NAME_C is not replaced with the name of the plugin. For example ELEKTRA_PLUGIN_FUNCTION (ELEKTRA_PLUGIN_NAME_C, base64Decode) produces the text
libelektra_ELEKTRA_PLUGIN_NAME_C_LTX_elektraPluginbase64Decode
instead of
libelektra_base64_LTX_elektraPluginbase64Decode
, assuming ELEKTRA_PLUGIN_NAME_C stores the value base64. Currently this is not a big problem, but it might be if another plugin also tries to use the same pattern.
wouldn't double evalutation of the arguments of ELEKTRA_PLUGIN_FUNCTION (as done in STRINGIFY) solve the issue?
Directly doing #1042 might be the same effort, though (except of fixing all occurrences in compilation variant plugins.).