[Github-comments] [geany/geany] Overview of currently deprecated symbols (Issue #3019)

elextr notifications at xxxxx
Thu Nov 25 10:39:13 UTC 2021


Thanks for making this list.

> have been deprecated for more than a few years (pretty much all of them)

Yeah, thats why I raised reviewing them.

Comments on a couple below:

The legacy plugin entry points are called "deprecated" in the discussion in the API manual, but the actual functions are not marked deprecated, so will not produce compile messages.  Also as you noted many plugins still use them (see what I said elsewhere about transitions from old to new being incomplete :-).  So yeah, gotta stay for now at least, but should be marked deprecated.

I have ranted before about killing `document_foreach()` with fire, happy to see it go.  (Not that `foreach_document` is much better, lower case macros trap, shudder, if you want a loop, C has a loop, stop trying to be another language [end rant])

`filetype_id` is just a typedef for another type name, so if anything uses it its cheap to fix.

`GeanyFunctions` IIRC thats from a method of restricting which functions were visible to plugins from before the current method using Geany as a library and `GEANY_API_SYMBOL` the make functions visible from the library.  So should be removable no problems.

`GEANY_KEYS_EDITOR_MACROLIST` the deprecation says it does nothing, so probably won't be missed, it could be "removed" without changing the ABI by renaming the enumerator to "unused".

`DOC_IDX` and `DOC_IDX_VALID` were potentially dangerous IIRC so probably best if they go ASAP.

The `PROXY...` ones should be historical and no problem.

The use of `sci_get_text` in `document.c` is kind of special in that it is appending the whole scintilla buffer to an existing memory block (containing the BOM), but for those one or two uses SSM could be used directly instead.  

In any other uses besides `document.c` a call to `sci_get_text_contents()` does what the user code should have, a call to `sci_get_text_length()` and then to `sci_get_text()` with a buffer of that length +1 so replacement should not be hard, in fact it should save code in plugins :-)

I can't see a use of `sci_get_selected_text()` in `ui_utils.c`, the "uses" I see are calls to `sci_get_selected_text_length()`

For `sci_get_text_range()` some of the uses in `editor.c` look dodgy using a fixed length buffer :-( so replacement would be good (so long as we don't forget the `free()`.

`tm_real_path()` is broken anyway, (see BUGS [here](https://man7.org/linux/man-pages/man3/realpath.3.html) its just lucky it works most of the time, `utils.c` should have a reasonable version assuming POSIX 2008 semantics for realpath() so its not broken and possibly the Windows alternative if its still required.

`ui_utils.h` might have more functions that were replaced by real GTK functions.

`NZV` can die happily.  IM(NS)HO `EMPTY` can also die and be a real function, but thats another story.

`setptr` is just a name change of case to make it obvious its a nasty dangerous macro, fixing it in users should be just a replaceall.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/3019#issuecomment-979079231
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.geany.org/pipermail/github-comments/attachments/20211125/891bb71b/attachment.htm>


More information about the Github-comments mailing list