Sally v1.0.14#58
Merged
Merged
Conversation
Unicode path preservation through file ops, F-key launchers, and Find dialog, plus Find dialog dark-mode polish and the review-comment fixes that followed. Unicode path preservation - Panel paths held as wide; REG_SZ Unicode persistence. - Directory history with wide twins (deferred flush, decoupled serializer). - Snooper wide variants via FindFirstChangeNotificationW. - Main window registered Unicode-aware; worker source paths rebound. - F5 copy/move: CFileData::NameW allocation broadened, BuildScriptFile lossy-leaf fallback hardened, pathW refreshed after ANSI path split, SourceNameWExplicit / TargetNameWExplicit COperation flags so PopulateWidePathsFromAnsi and ReanchorWideSourcePaths preserve explicitly-set wide names. - F4 edit and Alt+F3 view routed through ::CreateProcessW with wide cmdLine + cwd; \$(FullPath)/\$(Name)/\$(Path) recovered via post-hoc lossy→wide substring substitution (both with- and without-trailing- backslash flavors of \$(Path)). Process/thread handles registered via HANDLES_ADD so the matching HANDLES(CloseHandle) finds them. - Find dialog Unicode support: open-as-Unicode dialog, wide seed for "Look in", wide-aware combo subclass, post-Transfer override message. LookInTextW is authoritative only while the Unicode edit control is enabled — invariant enforced at read site, write site, and the constructor seed moved to the override handler. Find dialog dark-mode polish - Recover Find dialog borders / clean up borders. - Skin Find combo edit rims; prevent Find combo theme recursion. - Polish Find advanced controls; tone down Find separators. Review-comment fixes rolled into the flatten - regedt plugin x86 C2695: WINAPI + virtual...override on GetCurrentPathW to match the new CPluginFSInterfaceAbstract virtual. - SalSplitWindowsPathW given a dedicated SAL_MAX_LONG_PATH wide buffer; wide mask re-converted via WideToAnsi into the ANSI path buffer past the null (mask no longer reads stale pre-splitter bytes; DBCS-safe). - AlpDX wide-capacity tracking via CStaticText::AlpDXAllocated; both SetText (ANSI) and SetTextW realloc on demand (DBCS-safe). - SalParsePathW preserves the split point: boundaryOff = end - buffer (correct for both existing-file break and new-dir loop). - HDROP paste honors pastePath when set by the shell-extension context-menu Paste (previously pasted into the panel root). - AskCannotMove ANSI args repacked to (fileName, destPath, errorText) matching the dialog handler and the wide sibling; AskCannotMoveErr wrapper updated to pass args in signature order. Verification: sally Debug x64 builds clean; plugin_regedt Release x86 builds clean (-A Win32); 466 gtest cases pass across 12 suites. Closes #56.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sally v1.0.14
Unicode path preservation across the file manager, plus Find dialog dark-mode polish.
What's new
Unicode paths
C:\Temp\zz中文) no longer fails with(123) The filename, directory name, or volume label syntax is incorrect. The leaf is preserved end-to-end throughCFileData::NameW→BuildScriptFile→op.SourceNameW→CreateFileW.(267) The directory name is invalid. Routed through::CreateProcessWwith wide command line and working directory.Find dialog chrome
Review-fix follow-ups
regedtplugin builds clean on x86 again (WINAPIcalling-convention fix).SalSplitWindowsPathWno longer scribbles paststd::wstringcapacity; wide mask is converted to ANSI for the path buffer.CStaticText::AlpDXrealloc on both ANSI and wide setters (DBCS-safe).SalParsePathWpreserves the split point for existing-file targets.pastePathfrom the shell-extension folder Paste.AskCannotMove/AskCannotMoveErrarg ordering corrected to match the dialog handler.Verification
sallyDebug x64 builds clean.plugin_regedtRelease x86 builds clean (cmake -A Win32 --target plugin_regedt).gtest_panel_path_policy(38),gtest_pathservice(7),gtest_widepath(74),gtest_salwidepath(42),gtest_find_dialog_seed(12),gtest_panel_path_persistence(18),gtest_pathutils(58),gtest_path_identity_policy(4),gtest_splitpath(16),gtest_cpathbuffer_winapi(32),gtest_fsutil_wide(138),gtest_salgetfullname(27).End-to-end smoke (manual, on a Unicode folder like
C:\Temp\SalLongPathTest\zz中文):한글_Korea_22a_9.txt) to an ASCII destination — completes without error 123.zz中文renders in Look-in; edited search target is honored.Issues addressed
楽曲集①and similar).Notes
VERSINFO_SALAMANDER_*constants are unchanged (consistent with prior 13 releases — version comes from the git tag).sally w(commits7d601024,becd6150,fe69fabc); the granular history is preserved locally at tagwork-audit-trail.