Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

lupdate.exe is sensitive to case of paths on Windows



  • I am using version 5.10.0. I was attempting to run lupdate on an existing .TS file of mine using a folder path (I don't have a .PRO file). I found it wasn't updating the file when it should. In this case, it was failing to mark obsolete entries. I managed to narrow it down to the fact that merely changing the case of the drive letter in the folder argument affects the outcome. I assume this is a bug, yes?

    Here are the two command lines in question, one of which works and one of which does not. The only difference between these two lines is that the drive letter ("I:") is capitalized in the first example and lowercase in the second -- and even then only when I specify the folder argument. (I've tried to bold them here)

    I:\Dev\GSCapture>I:/dev/thirdparty/qt/5.10.0/x64/v141/bin/lupdate.exe I:/dev/gscapture/core -recursive -ts I:/dev/gscapture/core/core_fr.ts --> Yields no changes (bad)
    I:\Dev\GSCapture>i:/dev/thirdparty/qt/5.10.0/x64/v141/bin/lupdate.exe i:/dev/gscapture/core -recursive -ts i:/dev/gscapture/core/core_fr.ts --> Yields changes (good)

    Here is the complete console output
    Case 1: Capital Drive Letter - no changes made

    I:\Dev\GSCapture>i:/dev/thirdparty/qt/5.10.0/x64/v141/bin/lupdate.exe I:/dev/gscapture/core -recursive -ts i:/
    dev/gscapture/core/core_fr.ts
    Scanning directory 'I:/dev/gscapture/core'...
    I:/dev/gscapture/core/scan - Copy (2).cpp:460: Parenthesis/brace mismatch between #if and #else branches; using #if branch
    Updating 'core/core_fr.ts'...
    Found 132 source text(s) (0 new and 132 already existing)

    Case 2: Lowercase Drive Letter. Works Properly (good)

    I:\Dev\GSCapture>i:/dev/thirdparty/qt/5.10.0/x64/v141/bin/lupdate.exe i:/dev/gscapture/core -recursive -ts i:/
    dev/gscapture/core/core_fr.ts
    Scanning directory 'i:/dev/gscapture/core'...
    I:/dev/gscapture/core/scan - Copy (2).cpp:460: Parenthesis/brace mismatch between #if and #else branches; using #if branch
    Updating 'core/core_fr.ts'...
    Found 111 source text(s) (0 new and 111 already existing)
    Kept 21 obsolete entries

    Note that I tried messing around with a dozen other things (forward slash, backslash, quotes around paths, no quotes, etc) but only changing the case of this single drive letter made a difference.


Log in to reply