-
Notifications
You must be signed in to change notification settings - Fork 719
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Solve filename and command line encoding issues on Windows #2449
Solve filename and command line encoding issues on Windows #2449
Conversation
d6bd0e6
to
fb61f4c
Compare
fb61f4c
to
fa6885d
Compare
fa6885d
to
7e09289
Compare
rebased on top of #2489. GA passing now ☕. |
84768b5 scripted-diff: bitcoind-->pivxd in tests (random-zebra) 38dae98 qa: Match full plain text by default (MarcoFalke) 92977e5 [Tests] Fix invalid escapes in regex strings to fix W605 (random-zebra) b6d69ea qa: Allow for partial_match when checking init error (MarcoFalke) 0318a5b [Trivial] Remove extra newline in missing-blocksdir error (random-zebra) 496787a [Tests] Require exact match in assert_start_raises_init_eror() (John Newbery) 6617a99 [Tests] Move assert_start_raises_init_error method to TestNode (random-zebra) Pull request description: Backports - bitcoin#12718 This completes the todo left for - #2449. ACKs for top commit: furszy: no other changes aside from the typo, utACK 84768b5 Fuzzbawls: ACK 84768b5 Tree-SHA512: 50d527c965bcaf9f07c690cbbeac6c650e88055b1ac4a6f7920e11f3e0f480a8b059e5bd5b4023d7bcc5f1638677aac3c7faf243631d63ce94dca6ad2dd60797
boost::interprocess::file_lock cannot open the files that contain characters which cannot be parsed by the user's code page on Windows. This commit add a new class to handle those specific file for Windows.
The fopen function does not support unicode filename on Windows, so use Windows specific function do deal with it
… that can be used by any other function.
Adaptation of btc@a554cc901a32f41162089d6b20ad39d5aeff0583.
Todo: Improve logprint-scanner instead of doing this..
7e09289
to
63e0be6
Compare
rebased after 2489 merge. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 63e0be6
This is, as far as I could test, feature-complete for supporting non-english (but UTF8) characters in filenames and command line arguments. haven't tested native UTF8 non-english locales in windows yet.
The last nail in this coffin is windows unicode character support, which is included here for directory and file names in general, but LevelDB needs an update to include such support, which I have added in #2495.
Gitian build (Merge 63e0be6 into 807b044):
Tested fresh install on Windows10 with japanese locales.
BUT using the same non-ASCII char for other things, e.g. the wallets dir, works fine now: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 63e0be6 and merging...
b7603ca Squashed 'src/leveldb/' changes from 0c40829872..f8ae182c1e (Fuzzbawls) Pull request description: Companion to #2449 that includes Unicode character support in the LevelDB side of things for windows. ACKs for top commit: random-zebra: ACK 59ffc7b furszy: utACK 59ffc7b and merging.. Tree-SHA512: f0a85b6cb90522eb9cb845e413dcf66c15c6e970d0c9c853873383ee16430f35e93bd2d045cebda9f3daa7e859e33358becf1c86f2786c8099812756576f801d
As the software is currently using the ANSI encoding on Windows, the user's language settings could affect the proper functioning of the node/wallet, to the point of not be able to open some non-ASCII name files and directories.
This solves the Windows encoding issues, completing the entire bitcoin#13869 work path (and some other required backports). Enabling for example users that use non-english characters in directories and file names to be accepted.
Backported PRs:
This is built on top of other two PRs that i have open #2423 and #2369.
Solves old issues #940 and #2163.
TODO:
assert_start_raises_init_error
andErrorMatch
in TestNode` ([Tests] Require exact match in assert_start_raises_init_eror (jnewbery) bitcoin/bitcoin#12718)