01 Dec 2014

50611

0

Dislocated localizations

Hello and sorry for yet another delay!

As you will most probably know (and if you don’t, you should take a look at the news on the front page!), the shell branch was merged last Wednesday evening, as a thanksgiving gift from the project to all the contributors. As things happen when a big merge is done and people with varied configurations start testing, it wasn’t 5 minutes that the first big “oh shit” bug report came in.

Before that, the week was a direct continuation of the previous one. I messed around with the tests trying to get them working on WINE, but after not much luck, I just sorta gave up on it and moved on. Then I did some investigation work on CExplorerBand, as preliminary work on eventually getting explorer sidebars working, until the fateful moment of the shell merge and the bug reports started coming.

What was that bug, you may wonder? Any language other than English wouldn’t show the start menu shortcuts. It wasn’t long until I realized the shortcuts themselves were in the filesystem, just in the wrong folders. After that, I looked at every possible issue between userenv.dll and shell32.dll until after quite a lot of hours I realized that the shell32 paths code was supposed to be using resource IDs for the path strings, and that it was indeed prepared for that. It turns out, what I like to call the “rewineification” of some shell files (where Amine restored wine sync of those files to reduce the amount of forked content) had replaced the older but working code, with newer WINE code that had never been modified to use translatable resources. After I fixed that and told Giannis about it, his reply was “oh, yeah, I thought you knew.”

So yes, this bug may had never happened if I had bothered to read the diffs from the rewineification, or if someone else would have pointed that out while I was fixing the paths before. Yet things didn’t happen that way, and it’s okay because it’s all fixed now.

After fixing that, I moved on to the start menu merged folders, which in some languages would show duplicate Startup folders instead of merging them. This turned out to be a wrong assumption, where I thought the results of EnumObjects would be ordered, while that only happens to be true for some languages. Fixing this made me realize that our CMergedFolder class does not work exactly like the Windows one, so I have another task to do in the near future. For now, the top priority is fixing the crash when pasting files in a folder.

Until next weekend.

Discussion: https://www.reactos.org/forum/viewtopic.php?f=2&t=13830

This blog post represents the personal opinion of the author and is not representative of the position of the ReactOS Project.