sabrogden / Ditto

Ditto is an extension to the Windows Clipboard. You copy something to the Clipboard and Ditto takes what you copied and stores it in a database to retrieve at a later time.
https://ditto-cp.sourceforge.io/
3.62k stars 195 forks source link

Search is case sensitive for non Latin chars whereas it is case insensitive for Latin chars. #355

Open AndriyAstakhov opened 1 year ago

AndriyAstakhov commented 1 year ago

I've updated from version 3.22.88.0 12-20-2019 (where everything works perfectly) to the latest 3.24.238.0 10-04-2022 and faced with the next problem: regardless what search option is selected ("Contains Text Search", "Regular Expression Search", "Wildcard Search") when I search in English - the search is case insensitive and when I search in Ukrainian or Russian - it is become case sensitive. Please see demonstration video here - https://www.dropbox.com/s/mbegvfwejlrabj8/Case%20sensetive%20problem.mp4?dl=0 (I search for words: "photo", "Photo", "добре", "Добре"). I believe that search always should be case insensitive regardless what chars are used. I noticed that in version history for 3.23.124.0 10-26-2020 was entry "Removed icu dlls, use dll included in windows". Maybe the problem was raised because of this?

Update: I rollback to the version 3.22.88.0 12-20-2019 and it works as expected. Please see video here - https://www.dropbox.com/s/rg0vxgadyfvo2ci/Case%20sensetive%20right%20behaviour.mp4?dl=0

sabrogden commented 1 year ago

What version of windows are you using. It should be using icu dlls included with windows. Check for icu.dll in c:\windows\system32\

AndriyAstakhov commented 1 year ago

Windows 7 Ultimate SP1 Ru And there no icu.dll in its "c:\windows\system32\" folder.

sabrogden commented 1 year ago

rename the file icudt58.dll that was included with 3.22.88.0 and rename it to icu.dll and place in the same location as Ditto.exe

sabrogden commented 1 year ago

i don't think windows 7 includes icu, probably 8 and up

AndriyAstakhov commented 1 year ago

rename the file icudt58.dll that was included with 3.22.88.0 and rename it to icu.dll and place in the same location as Ditto.exe

I tried your workaround, but it didn't work. So it seems this behavior is not ICU related.

sabrogden commented 1 year ago

It's got to be icu related. Try adding these icu dlls to Ditto's directory, these are the dlls windows includes in windows 10.

icu.zip

AndriyAstakhov commented 1 year ago

It's got to be icu related. Try adding these icu dlls to Ditto's directory, these are the dlls windows includes in windows 10.

icu.zip

I tried ICU dlls from your archive but the behavior remains unchanged.

AndriyAstakhov commented 1 year ago

I also tried latest version on: Windows 10 - everything works good - as it expected. Windows 2008 R2 Enterprise - the behavior is the same as on Windows 7 - only search with Latin chars are case insensitive, whereas with non Latin (Cyrillic) chars are case sensitive.

jefgen commented 11 months ago

I also tried latest version on: Windows 10 - everything works good - as it expected. Windows 2008 R2 Enterprise - the behavior is the same as on Windows 7

Sorry for bumping this older thread... I just wanted to add that this probably makes sense, as ICU was only added as a system component in Windows 10. So Windows 2008 wouldn't have the icu.dll in system32.