nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
https://www.nvaccess.org/
Other
2.1k stars 634 forks source link

NVDA installer does not start if special characters are in the installer path #13270

Closed seanbudd closed 2 years ago

seanbudd commented 2 years ago

See also: #9134

Steps to reproduce:

  1. Create a new folder named: Testé ç ş ğ
    • copy and paste to preserve characters, there are 4 special characters in this string
  2. Place a copy of a NVDA installer (eg 2021.3.1) in the folder named "Testé ç ş ğ"
  3. Run the installer from the folder
  4. Observe popup dialog "NSIS Error" "Error launching installer"
  5. Note that no nvda log is created, this is an early failure.

Actual behavior:

NVDA installer does not start if special characters are in the installer path

Expected behavior:

NVDA installer should start if special characters are in the installer path

System configuration

NVDA installed/portable/running from source:

Installer

NVDA version:

2021.1 , 2021.1.3, alpha-24501,b45926cd

Windows version:

Windows 11 (10.0.22000 Build 22000)

Name and version of other software in use when reproducing the issue:

Other information about your system:

Other questions

Does the issue still occur after restarting your computer?

Have you tried any other versions of NVDA? If so, please report their behaviors.

If NVDA add-ons are disabled, is your problem still occurring?

Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?

ruifontes commented 2 years ago

Tried with NVDA 2021.3.1 and nvda_alpha-24501,b45926cdin a folder named C:\Users\Utilizador\OneDrive - Tiflotecnia, Lda\Transferências and both have installed without problems. Windows 11 21H2 OS Build 22000.434)

seanbudd commented 2 years ago

Would you be able to test with the specific folder name Testé ç ş ğ - it is probably a different character causing this problem

ruifontes commented 2 years ago

Still without problem... Folder name: "C:\Users\Utilizador\OneDrive - Tiflotecnia, Lda\Testé ç s g"

seanbudd commented 2 years ago

@ruifontes, This was possibly missed by your synthesiser, both "s" and "g" have accents in the string I was using. I've updated the testing steps to be clearer.

ruifontes commented 2 years ago

Copied and pasted the text "Testé ç ş ğ" to the name of a folder and still no problem.

seanbudd commented 2 years ago

Copied and pasted the text "Testé ç ş ğ" to the name of a folder and still no problem.

Strange, perhaps it is an issue with my build of Windows

seanbudd commented 2 years ago

To investigate further we need :

Brian1Gaff commented 2 years ago

Have we not been here before some years ago, something to do with the coding type python is using being different or something, Cannot remember or find it, it was quite a while back. years.

CyrilleB79 commented 2 years ago

I have tested here with NVDA 2017.3, 2019.2.1, 2019.3.1, 2021.1, 2021.3.1 installers, launching the installer both when NVDA 2021.3.1 was running or when no instance of NVDA was running. In all these cases, I can reproduce the issue.

I am using Windows 10 20H2 (64-bit) build 19042.1415, with French localization. My codepage is CP1252:

prompt>REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage" -v ACP|find /I "ACP"
   ACP    REG_SZ    1252

Interestingly, if I rename the folder "Testé ç" to "Testé ç", the issue does not occur anymore. The two special characters é and ç are used in French and belong to the CP1252 codepage. On the contrary, ş and ğ special characters are note used in French and do not belong to CP1252 codepage.

Also, in case it matters, I have the following checkbox unchecked: "Beta: Use Unicode UTF-8 for worldwide language support"

lukaszgo1 commented 2 years ago

A good start for fixing this would be to upgrade to the latest version of NSIS which would resolve #9134 at the same time. Assuming that would not solve the issue a next reasonable thing to do would be to attempt to switch to Unicode mode. I've looked into this briefly in the past and the main problem which needs to be solved is that the plugin which were using for elevation during uninstallation is incompatible with the Unicode mode and since it is deprecated this is unlikely to change.

ruifontes commented 2 years ago

My first tests were performed with the NVDA language set to Portuguese(Portugal) and I didn't have any problem. Today I have set NVDA language to Windows predefinition and I have the same problem of installer not loading...

seanbudd commented 2 years ago

I agree @lukaszgo1 that upgrading NSIS (and moving it to a submodule) would be a good thing to do, even if it doesn't resolve this issue. I suspect it's an NSIS issue so we might as well test the latest NSIS before logging an issue upstream.

seanbudd commented 2 years ago

I have tested with a copy of the NVDA installer built with NSIS 3.08, and this issue is fixed.