• Login
Community
  • Login

Notepad++ File Status Auto-Detection not working

Scheduled Pinned Locked Moved General Discussion
file statusauto-detectionnot working
57 Posts 10 Posters 45.7k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C
    Claudia Frank @chcg
    last edited by Jan 15, 2018, 4:59 PM

    @chcg

    thank you for clarification - I was searching for v120_xp but in retrospect it makes sense
    that it is called v140_xp if using a new toolset.

    Any idea what might cause this behavior?

    Cheers
    Claudia

    1 Reply Last reply Reply Quote 0
    • G
      guy038
      last edited by guy038 Jan 16, 2018, 11:35 AM Jan 16, 2018, 11:34 AM

      Hi, @claudia-frank, @chcg and All,

      I just confirm the bug : the File Status Auto-Detection mechanism does not work, since the v7.5.2 version, on my Win XP SP3 platform ?!

      Cheers,

      guy038

      1 Reply Last reply Reply Quote 2
      • C
        chcg
        last edited by Jan 16, 2018, 5:37 PM

        Maybe we can bisect the problematic range, starting with testing te artifacts from:
        https://ci.appveyor.com/project/donho/notepad-plus-plus/build/1.0.1635
        to see if this also happens with the appveyor images.

        And then maybe
        https://ci.appveyor.com/project/donho/notepad-plus-plus/build/1.0.1582/

        C 1 Reply Last reply Jan 17, 2018, 11:40 PM Reply Quote 1
        • C
          Claudia Frank @chcg
          last edited by Jan 17, 2018, 11:40 PM

          @chcg

          this is the last working one

          Language menu and Style configurator sorted alphabetically and use the same language name in the Style configurator as the language menu.

          https://ci.appveyor.com/project/donho/notepad-plus-plus/build/1.0.1526

          this is the first which breaks it

          Switch to VS 2015

          https://ci.appveyor.com/project/donho/notepad-plus-plus/build/1.0.1530

          There were no build from 1.0.1527 to 1.0.1529 due to errors.

          Cheers
          Claudia

          1 Reply Last reply Reply Quote 0
          • C
            chcg
            last edited by Jan 18, 2018, 5:01 PM

            But https://ci.appveyor.com/project/donho/notepad-plus-plus/build/1.0.1526 is a Pull request #3726 build, so not a direct successor of Switch to VS 2015 (https://ci.appveyor.com/project/donho/notepad-plus-plus/build/1.0.1530)

            That would be https://ci.appveyor.com/project/donho/notepad-plus-plus/build/1.0.1521,

            with
            https://ci.appveyor.com/project/donho/notepad-plus-plus/build/1.0.1527
            https://ci.appveyor.com/project/donho/notepad-plus-plus/build/1.0.1528

            failing.

            C 1 Reply Last reply Jan 18, 2018, 6:03 PM Reply Quote 0
            • C
              Claudia Frank @chcg
              last edited by Jan 18, 2018, 6:03 PM

              @chcg

              sorry, but I don’t get your point.
              I would assume that a build with a lower build number is never a successor of a build
              with a higher build number.

              And what is your concern about the results I’ve posted?

              Cheers
              Claudia

              1 Reply Last reply Reply Quote 0
              • C
                chcg
                last edited by Jan 18, 2018, 7:18 PM

                @Claudia-Frank The builds at appveyor not just contain the trunk checkins, but also pull requests which might contain something totally different. Sorry, I meant predecessor.

                I created a branch from the 7.5.1 tag and modified the appveyor config to build VS2013 vs. VS2015 on the appveyor image 2015. So this should reveal if already the switch to VS2015 is causing the trouble.

                See https://ci.appveyor.com/project/chcg/notepad-plus-plus/build/1.0.114, build from https://github.com/chcg/notepad-plus-plus/commits/winxp_autodectection_investigation2

                Since the checkin of the json parser(https://github.com/notepad-plus-plus/notepad-plus-plus/commit/b033d907b29f42f570c21b0bfc0ac60c257f08c4) it is no longer possible to build with VS2013 due to the lack of c++11/14 features needed.

                C 2 Replies Last reply Jan 18, 2018, 7:21 PM Reply Quote 1
                • C
                  Claudia Frank @chcg
                  last edited by Jan 18, 2018, 7:21 PM

                  @chcg

                  Thx for clarification - I will give it a try later and let you know.

                  Cheers
                  Claudia

                  1 Reply Last reply Reply Quote 1
                  • C
                    Claudia Frank @chcg
                    last edited by Jan 18, 2018, 8:44 PM

                    @chcg

                    binary with PlatformToolset=v120_xp works
                    but binary with …=v140_xp does not.
                    Hmmm, I see the binaries are different in size
                    but I assume you just changed the toolset version
                    and the rest was kept the same, wasn’t it.

                    I already searched the web, and there are some reports that there are problems
                    on windows xp when using VS2015 onwards but it looks like all of them were solved
                    by setting the compatibility flag aka toolset. Strange.

                    Cheers
                    Claudia

                    1 Reply Last reply Reply Quote 1
                    • V
                      Vitaliy Dovgan
                      last edited by Vitaliy Dovgan Jan 19, 2018, 9:05 PM Jan 19, 2018, 9:03 PM

                      To be fully compatible with Windows XP, the following compiler’s option may need to be specified:

                      /Zc:threadSafeInit-
                      

                      This one relates to the “magic static” feature in C++ that depends on new TLS implementation available only from Windows Vista/7.
                      In case of Notepad++ plugin (i.e. a DLL file) the absence of this compiler’s option leads to crash (under Windows XP) while trying to use a static variable. In theory it should not have the same dramatic effect in an executable, but who knows? I think it’s worth trying to comile Notepad++ with this option specified.

                      C 1 Reply Last reply Jan 19, 2018, 9:07 PM Reply Quote 2
                      • C
                        Claudia Frank @Vitaliy Dovgan
                        last edited by Jan 19, 2018, 9:07 PM

                        @Vitaliy-Dovgan

                        thank you very much for the hint.

                        @chcg

                        If you wouldn’t mind to build one with this flag I would give it a try to see if it resolves the issue.

                        Cheers
                        Claudia

                        1 Reply Last reply Reply Quote 0
                        • C
                          chcg
                          last edited by Jan 20, 2018, 9:02 AM

                          There were 3 changes in the appveyor config:

                          1. VM image, as Visual Studio 2013 doesn’t contain vs2015

                          2. calling Microsoft Visual Studio 14.0\VC\vcvarsall.bat for vs2015 build

                          3. using notepadPlus.vs2015.vcxproj for building the vs2015 version.

                          4. couldn’t be avoided. The sourcecode itself is identical and either it is something with the vcxproj for vs2015 which causes the issue or the vcvarsall.bat + the toolset.

                          Maybe the build of scintilla could also have an influence.

                          I will do a rebuild with just the toolset changed and using the notepadPlus.vcxproj also for VS2015.

                          And another one with /Zc:threadSafeInit-

                          1 Reply Last reply Reply Quote 1
                          • C
                            chcg
                            last edited by Jan 20, 2018, 12:25 PM

                            First test is available here:
                            https://ci.appveyor.com/project/chcg/notepad-plus-plus/build/1.0.117

                            VS2013 config with PlatformToolset=v140_xp

                            C 1 Reply Last reply Jan 20, 2018, 1:13 PM Reply Quote 0
                            • C
                              Claudia Frank @chcg
                              last edited by Jan 20, 2018, 1:13 PM

                              @chcg

                              v120 build works, v140 does not.

                              Cheers
                              Claudia

                              1 Reply Last reply Reply Quote 0
                              • C
                                chcg
                                last edited by Jan 20, 2018, 5:57 PM

                                VS2015 build with /Zc:threadSafeInit- at https://ci.appveyor.com/project/chcg/notepad-plus-plus/build/1.0.118

                                C 2 Replies Last reply Jan 20, 2018, 9:38 PM Reply Quote 1
                                • C
                                  Claudia Frank @chcg
                                  last edited by Jan 20, 2018, 9:38 PM

                                  @chcg

                                  thx, will do the test and report the status later (2-3 hours).

                                  Cheers
                                  Claudia

                                  1 Reply Last reply Reply Quote 0
                                  • C
                                    Claudia Frank @chcg
                                    last edited by Jan 20, 2018, 10:23 PM

                                    @chcg

                                    sorry but additional compiler flag does not work either.

                                    Cheers
                                    Claudia

                                    1 Reply Last reply Reply Quote 0
                                    • V
                                      Vitaliy Dovgan
                                      last edited by Jan 21, 2018, 4:49 PM

                                      Looks like time to use additional logging then. I mean, logging around file status detection. (I briefly looked at the code, and it’s not obvious at the first glance what exactly can go wrong.)

                                      1 Reply Last reply Reply Quote 1
                                      • V
                                        Vitaliy Dovgan
                                        last edited by Feb 6, 2018, 2:08 PM

                                        I’ve found out the cause of the problem. In VS2015, the stupids from Microsoft have broken _wstat for Windows XP! According to a simple change inside the file “PowerEditor\src\ScitillaComponent\Buffer.cpp”:

                                        int st = generic_stat(_fullPathName.c_str(), &buf);
                                        char s[512];
                                        sprintf(s, "Buffer::checkFileState() -> %d, errno %d, FileName \"%S\"", st, errno, _fullPathName.c_str());
                                        writeLog(_T("1.txt"), s);
                                        

                                        one can notice that _wstat always returns -1 under Windows XP with errno 22 (EINVAL).
                                        So the fix seems to be to replace _wstat with some native WinAPI function, since we can not rely on VS2015’s CRT anymore.

                                        1 Reply Last reply Reply Quote 1
                                        • C
                                          chcg
                                          last edited by Feb 6, 2018, 6:41 PM

                                          See https://github.com/joncampbell123/dosbox-x/issues/403 and https://github.com/joncampbell123/dosbox-x/issues/438 which also suffers from this issue. From https://stackoverflow.com/questions/6566978/whats-the-difference-between-struct-stat64-and-struct-stati64-on-win32, maybe we are facing a 64bit issue, see https://msdn.microsoft.com/en-US/library/14h5k7ff.aspx. What happens on using _wstat64.

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post
                                          The Community of users of the Notepad++ text editor.
                                          Powered by NodeBB | Contributors