Community
    • Login

    Does not save the files I need to use

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    18 Posts 4 Posters 6.5k 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.
    • Claudia FrankC
      Claudia Frank @Scott Sumner
      last edited by

      @Scott-Sumner

      Scott, thanks for helping out and it looks like it is a bug.
      Did a simple test with 5 custom extensions and couple more appeared after restart.
      Try to investigate what the issue could be.

      Cheers
      Claudia

      1 Reply Last reply Reply Quote 0
      • Claudia FrankC
        Claudia Frank @Scott Sumner
        last edited by Claudia Frank

        @Scott-Sumner, @tyreese-sweet

        so it looks like there is a problem when reading the file extension registration from registry
        because it will report all extensions as being registered which use the same first letter and
        are sorted after the custom registered extension.

        Example - I registered .bcd which resulted in showing up bcd and bmp as being registered.
        But regedit proves that bmp isn’t a registered extensions.

        While registering bop didn’t add any other extension (because there is no other b… extensions after it.)

        Try to see if I find the offending code part.

        Cheers
        Claudia

        1 Reply Last reply Reply Quote 0
        • Claudia FrankC
          Claudia Frank @tyreese sweet
          last edited by

          @tyreese-sweet

          Curious - which operating system do you use?
          In addition, can you post debug-info which can be found under ? menu ?

          Reason for asking is that I have different behavior with different wine (windows layer on linux) configuration.

          Cheers
          Claudia

          1 Reply Last reply Reply Quote 0
          • tyreese sweetT
            tyreese sweet
            last edited by

            Thank you both, @Scott-Sumner, @Claudia-Frank for replying to my question. @Claudia-Frank my OS is Windows 10, here’s the debug-info:

            Notepad++ v7.5.3 (32-bit)
            Build time : Dec 5 2017 - 10:45:46
            Path : C:\Program Files (x86)\Notepad++\notepad++.exe
            Admin mode : OFF
            Local Conf mode : OFF
            OS : Windows 10 (64-bit)
            Plugins : DSpellCheck.dll mimeTools.dll NppConverter.dll NppExport.dll

            Claudia FrankC 1 Reply Last reply Reply Quote 2
            • Claudia FrankC
              Claudia Frank @tyreese sweet
              last edited by

              @tyreese-sweet

              thx for the info.
              More investigation needed - will follow up.

              Cheers
              Claudia

              1 Reply Last reply Reply Quote 0
              • tyreese sweetT
                tyreese sweet
                last edited by

                @Claudia-Frank thanks for the help, much appreciated.

                Claudia FrankC 1 Reply Last reply Reply Quote 1
                • Claudia FrankC
                  Claudia Frank @tyreese sweet
                  last edited by

                  @tyreese-sweet

                  I assume I found the issue - in short, it is a permission issue.

                  Could you try the following

                  run regedit
                  open the first key HKEY_CLASSES_ROOT
                  you now see a list of subkeys starting with . (dot)
                  select for example the .ibq(I get this from your the screenshot and I think this is one of the extensions you did not set)
                  right click on .ibq and select permission
                  now you should see that the user account you are logged in has not been listed
                  add it and assign full control
                  start notepad++ and check file association - I assume you still have the same values until ibq but nothing afterwards unless
                  it is another registered extension.

                  Basically the code issue is, only confirmed by reading the code and manipulating registry, that
                  notepad++ doesn’t check all registry calls if they are successful
                  and I assume that in case you read an extension successfully
                  and this extension is a npp registered file
                  all subsequent failed registry reads are counted as successful
                  unless you read a key successfully which isn’t a npp registered extension.

                  Tested on linux, so I would appreciate if one could check on windows to see if this is really the case.

                  Cheers
                  Claudia

                  1 Reply Last reply Reply Quote 2
                  • Claudia FrankC
                    Claudia Frank
                    last edited by

                    The following is splitted into several posts as it is flagged as spam, maybe it is who knows.

                    OK - so I started my win10 virtualbox and did the test and can confirm reported behavior.
                    Here the screenshots which description what I’ve done.

                    I’m trying to assign .bat. From npp it looks like it is done but registry editor proves that Notepad++_file has NOT been created.
                    Reason, the user doesn’t have sufficient permissions

                    Cheers
                    Claudia

                    1 Reply Last reply Reply Quote 1
                    • Claudia FrankC
                      Claudia Frank
                      last edited by

                      Adding my user to the .bat key and assigning FULL CONTROL resolves this

                      but now we do have a different issue (well it is the issue OP reported)

                      As shown (for blg), all keys starting from .bcp to .blg don’t have my account (admin)
                      whereas the next key .bmp

                      does have it set. So by adding my account to .bcp and restarting notepad++ problem is solved (for this area only).

                      Cheers
                      Claudia

                      1 Reply Last reply Reply Quote 1
                      • Claudia FrankC
                        Claudia Frank
                        last edited by

                        So this leads to the assumption that the code (File is regExtDlg.cpp)
                        which in general works has a problem when a call fails and as we see that some calls are just called without checking
                        the return code I assume that is where the issue starts. ( Not only this part of the code needs improvement)

                        Edit - cannot post code part as it is flagged as spam.

                        Cheers
                        Claudia

                        1 Reply Last reply Reply Quote 1
                        • tyreese sweetT
                          tyreese sweet
                          last edited by

                          @Claudia-Frank
                          Thank you so much for replying and your help. You solved my problem, thank you again and HAPPY NEW YEAR!!!

                          1 Reply Last reply Reply Quote 1
                          • Tom BatesT
                            Tom Bates
                            last edited by

                            Claudia,

                            I see this exact behavior on my Windows 7 dev machine. For each file extension that I want Notepad++ to open with, I must ensure that I have full access to the file extension I want, e.g. .py, and the NEXT file extension in the list, in my case, .qcp. Otherwise, the first case will prevent Notepad++ from saving the .py setting (with no error indication) although it will appear in the file association list until Notepad++ is restarted; and the second case will cause the additional spurious extensions starting from .qcp to be added to the list.

                            BTW I’m using 7.5.4.

                            Thanks so much for investigating and giving us a workaround.
                            Tom

                            1 Reply Last reply Reply Quote 1
                            • Tom BatesT
                              Tom Bates
                              last edited by

                              Claudia,

                              BTW, I wanted to add .frm and .rpt but Notepad++ couldn’t add those either because there are no keys for those two. I added them manually.

                              Thanks
                              Tom

                              1 Reply Last reply Reply Quote 1
                              • Claudia FrankC
                                Claudia Frank
                                last edited by

                                Tom,

                                thank you very much for your additional testing and investigation on this topic.
                                Very much appreciated. Your additional tip should help others too to overcome this limitation.

                                Cheers
                                Claudia

                                1 Reply Last reply Reply Quote 0
                                • Claudia FrankC
                                  Claudia Frank
                                  last edited by

                                  Concerning the wrongly shown file extensions.
                                  The above screenshots about .bat registered but dialog
                                  shows additional extensions being registered.

                                  This drove me some nuts.
                                  Whenever I tried to do the same with python and ctypes it worked but
                                  npp showed clearly it isn’t.

                                  I assume I finally understood what the issue is,
                                  it is within RegExtDlg::getRegisteredExts()

                                  There is no check if RegOpenKeyEx or RegQueryValueEx succeeded or failed but
                                  one could assume that it isn’t necessary as the next if clause checks the previously
                                  generated variables valType and valData and if the two reg calls fail then
                                  those two variables are invalid.

                                  Well, I don’t think this is the case. If I understood correctly what I read it happens
                                  that those variables hold the state from the last successful registry calls
                                  and I guess this explains very well why we see what we see.

                                  So in theory a modification like

                                              ...
                                              TCHAR valData[extNameLen]{'\0'};
                                              ...
                                              int valType = 0;
                                  

                                  should do the trick.

                                  Can someone with a more solid c++ knowledge confirm if this is the case?

                                  Thank you and cheers
                                  Claudia

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