CleverRaven / CleverRaven/Cataclysm-DDA

Case-insensitive Unicode search does not work in Windows MinGW builds

Open
#48,699 1 comment 0 reactions 0 assignees View on GitHub
<Bug> Crafting / Construction / Recipes Info / User Interface OS: Windows Translation
Dominant language
C++
Stars
13.1k
Forks
4.6k
Avg merge
2d 1h
Merged PRs (30d)
200

Description

# Describe the bug
Case-insensitive Unicode search does not work in Windows MinGW builds

# Steps To Reproduce
1. Switch language to Russian, restart the game
2. Load any world, debug learn all recipes
3. Open crafting menu, enter `катана`, see 1 result
4. Enter `Катана`, see no matches

Similar behavior can be seen in keybindings menu when searching `меню` vs `Меню`.

# Expected behavior
Both searches give 1 match, as on Visual Studio build

# Screenshots
`катана`
![image](https://user-images.githubusercontent.com/60584843/116580531-216e7e80-a91c-11eb-905f-573f62e326df.png)
`Катана`
![image](https://user-images.githubusercontent.com/60584843/116580721-5084f000-a91c-11eb-8b96-95037418536c.png)
`Катана` on my local VS build
![image](https://user-images.githubusercontent.com/60584843/116586914-9e9cf200-a922-11eb-8df7-ed6bb6b4a1e5.png)

# Versions and configuration
- OS: Windows
- OS Version: 10.0 1909
- Game Version: 0.E-10395-g4525b4f [64-bit] (aka build [11581](https://github.com/CleverRaven/Cataclysm-DDA/releases/tag/cdda-jenkins-b11581))
- Graphics Version: Tiles
- Game Language: Русский [ru]
- Mods loaded: [
Тёмные Дни Впереди [dda],
Отключить потребности у NPC [no_npc_food],
Бионические профессии [package_bionic_professions]
]

# Additional context
Problem with `std::locale`? Brief googling showed that MinGW supported only `C`/`POSIX` C++ locales in the past, not sure if that changed.

Contributor guide

Open the contributing guide

Research direction

No source files or tests are named in the report. Reproduce the Russian crafting and keybindings searches on MinGW, compare them with the Visual Studio build, then trace the shared search and Unicode case-folding path; done means both lowercase and uppercase Russian queries return the same matches.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
localization, search
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.