Skip to content

Improved vanilla API compatibility

This fixes some glitches in our API to improve compatibility with vanilla. Specifically:

  • Added the missing obj_findsignalscalar declaration to m_imp.h.

  • Purr Data's glist_grab function has an extra argument, so I renamed it to glist_grabx and provided a vanilla-compatible glist_grab function that can be used by bundled and 3rd party externals. There are precisely two instances in g_numbox.c and g_text.c where the extra argument is actually needed, these use glist_grabx now. While I was at it, I also fixed a bug in g_numbox.c related to glist_grabx and slashed some gcc warnings in src/pd.

  • I also removed some public class definitions from g_canvas.h which might clash with 3rd party externals (ELSE, in particular). Checking for these classes is all the functionality needed across the internals, so I provided suitable predicate functions instead.

With this, I can now build Alexandre's ELSE against Purr Data. Here's a screenshot which shows one of ELSE's help patches purring happily. 😼

image

So in principle adding ELSE to purr-data/externals as a submodule and building it in externals/Makefile will be as easy as pie now. I can submit another MR for that if wanted. But there still are two roadblocks on that avenue:

  • There's the legacy gui stuff (lots of it) in ELSE that needs to be ported to nw.js.
  • ELSE uses vanilla's new listbox in some of the help patches, so it would be good have that ported first. hint 🏆
Edited by Albert Gräf

Merge request reports