Notepad++ 7.7 breaking change of SCNotification definition in x64 build

  • @PeterJones said:

    Waiting until users start complaining (“I have Notepad++ v7.8, and suddenly it’s downloading plugins that claim they aren’t compatible with v7.8”) to fix it might be harder than getting it implemented now.

    Yeah, do it right at the right time and not when foreseeable issues arise.

  • @PeterJones said:

    Implementing @pndev’s suggestion

    /me notices he misspelled @pnedev’s user name. Sorry. (Username links are one of the things that doesn’t render in the PREVIEW window when editing a post, so it’s harder to notice. :-( )

  • @dinkumoil said:

    AFAICS there are even more members of the SCNotification struct which have been changed from int to Sci_Position, namely

    Good point! But change of the size of the second argument is already enough to make access by previous definition incorrect in almost all of the cases unfortunately.

  • Hi @Meta-Chuh ,

    I didn’t know that, thanks.

    Does this mean that if I have Notepad++ v 7.6.6 and never change it I won’t get any plugin updates or newly released plugins ever?


  • @pnedev

    yes, correct.

    even if a newer plugin version has been submitted to the current pluginlist, 7.6.6 will only use the one it was shipped with, inside nppPluginList.dll.

    same for all older versions since 7.6.
    it’s a cool thing for testing though, as i have every portable npp version, and i can download exactly the old versions of a plugin available at that time (as long as the author doesn’t remove the older release downloads from his repo)

    best regards.

  • @all

    I’ve filed an issue, see >>> here <<<.

  • @Meta-Chuh ,

    OK, thanks.

    Its cool for testing and support but not quite flexible for the user.
    If you want your plugins updated (or get newly released plugins) via PluginsAdmin you are forced to update Notepad++ itself.

  • @dinkumoil ,

    I have added this suggestion. I think it is the better approach.

  • It didn’t seem quite right to mention this in the github issue, but this forum is more tolerant if you get off topic…

    Thinking about these proposed Plugin attributes and the recent changes (and then change-back) in core Notepad++ security/authentication, what assurances do we have that plugins are coming across from untampered-with files?

  • Sci_Position is used in lots of places. For example LexAccessor. It should break plugins binary compatibility left and right.
    This kind of demonstrates the difference between Windows mindset that holds binary compatibility sacred and Linux mindset that assume that packages are always built from sources and no binary should ever interact with different versions.

    Somewhat surprising that Scintilla developers allowed this incompatibility so easily. I wonder if they realized the impact.

    Plugin manager may mitigate the affect in case plugin developers will cooperate but in it is a real pity if newer plugins will not work with older Notepad++.

    Depending of the amount of plugin breakdown that will occur @donho should consider if Notepad++ user base will not be served better by temporary rolling back Notepad++ to the older Scintilla and announce some 6 month to plugin developers to get ready for the change.

  • @gstavi

    Somewhat surprising that Scintilla developers allowed this incompatibility so easily

    The Scintilla developers are not at fault. This is the entire reason they changed from the 3.x to 4.x version.

  • @dail said:

    The Scintilla developers are not at fault. This is the entire reason they changed from the 3.x to 4.x version.

    It is very much in dispute whether a library should ever allow itself a major compatibility breaking change to its API. Changing the library’s major version does not magically justifies it. This is definitely the Linux mindset with its advantages and shortcomings.
    A responsible developer should go through all possible hoops to extend the API rather than change it before going this path. Maybe they did, I don’t know.

    Specifically for this change, I would challenge, the need to support 64 bit position within a document. Opening a text file over 1GB is such a bad user experience that I doubt that you can find 0.01% within your user base that do it routinely. Your guess is good as mine for the amount of users that will be pissed by the compatibility break.

    Still need to audit plugins to see how many are actually broken. Maybe I am overly pessimistic.
    But it is possible that 32 bit version of Notepad++ just became much more attractive.

Log in to reply