Tcl Source Code

Artifact [95f90172bc]
Login

Artifact 95f90172bc117cc03089161d4b41fdcf9e400cee6367bbfc633dff66eb05949a:

Ticket change [95f90172bc] - New ticket [9e6b569963] file normalize ~user fails on Windows. by fvogel 2018-05-15 14:04:51.
D 2018-05-15T14:04:51.882
J assignee nobody
J closer nobody
J cmimetype text/x-fossil-wiki
J comment <code>file\snormalize\s~$::tcl_platform(user)</code>\r\n\r\nreturns:\r\n\r\n\s\s-\sin\stclsh86tg,\snormal\suser\s:\s\s\suser\s"fvogel"\sdoesn't\sexist\r\n\r\n\s\s-\sin\stclsh86tg\srun\sas\sAdmin\s:\s\s\sC:/Users/l-vogel\r\n\r\nThe\scomputer\sis\sa\sWin\s7\smachine\sconnected\sto\sa\sdomain\scontroller\swith\san\sactive\sdirectory.\r\n\r\nThis\sproblem\swas\sfirst\sdetected\swith\s[https://core.tcl.tk/tk/tktview?name=7c571871e|the\sTk\stest\ssuite\stest\swinDialog-5.12.2].\r\n\r\nLooking\sat\sthe\scode\sand\sdebugging:\r\n\r\n~fvogel\slooks\sat\sthe\s<code>NetUserGetInfo</code>\sin\s<code>TclpGetUserHome</code>\sin\stclWinFile.c\r\nIn\sthe\sdescribed\ssituation\sthis\scall\sreturns\s2221\s(NERR_UserNotFound).\r\n\r\nThe\sfollowing\spatch\sfixes\sthe\sissue\sfor\sme:\r\n<verbatim>\r\nIndex:\swin/tclWinFile.c\r\n==================================================================\r\n---\swin/tclWinFile.c\r\n+++\swin/tclWinFile.c\r\n@@\s-1442,10\s+1442,11\s@@\r\n\s\s\s\s\sint\snameLen\s=\s-1;\r\n\s\s\s\s\sint\sbadDomain\s=\s0;\r\n\s\s\s\s\schar\s*domain;\r\n\s\s\s\s\sWCHAR\s*wName,\s*wHomeDir,\s*wDomain,\s**wDomainPtr\s=\s&wDomain;\r\n\s\s\s\s\sWCHAR\sbuf[MAX_PATH];\r\n+\s\s\s\sLPCWSTR\swServername\s=\sNULL;\r\n\r\n\s\s\s\s\sTcl_DStringInit(bufferPtr);\r\n\s\s\s\s\swDomain\s=\sNULL;\r\n\s\s\s\s\sdomain\s=\sstrchr(name,\s'@');\r\n\s\s\s\s\sif\s(domain\s!=\sNULL)\s{\r\n@@\s-1456,11\s+1457,12\s@@\r\n\s\s\s\s\s\s\s\snameLen\s=\sdomain\s-\sname;\r\n\s\s\s\s\s}\r\n\s\s\s\s\sif\s(badDomain\s==\s0)\s{\r\n\s\s\s\s\s\s\s\sTcl_DStringInit(&ds);\r\n\s\s\s\s\s\s\s\swName\s=\sTcl_UtfToUniCharDString(name,\snameLen,\s&ds);\r\n-\s\s\s\s\s\s\sif\s(NetUserGetInfo(wDomain,\swName,\s1,\s(LPBYTE\s*)\suiPtrPtr)\s==\s0)\s{\r\n+\s\s\s\s\s\s\s\sNetGetDCName(NULL,\swDomain,\s(LPBYTE\s*)\s&wServername);\r\n+\s\s\s\s\s\s\sif\s(NetUserGetInfo(wServername,\swName,\s1,\s(LPBYTE\s*)\suiPtrPtr)\s==\s0)\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\swHomeDir\s=\suiPtr->usri1_home_dir;\r\n\s\s\s\s\s\s\s\s\s\s\s\sif\s((wHomeDir\s!=\sNULL)\s&&\s(wHomeDir[0]\s!=\sL'\\0'))\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sTcl_UniCharToUtfDString(wHomeDir,\slstrlenW(wHomeDir),\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sbufferPtr);\r\n\s\s\s\s\s\s\s\s\s\s\s\s}\selse\s{\r\n</verbatim>
J foundin All
J is_private 0
J login fvogel
J priority 5\sMedium
J private_contact a013af67114eccc19ad12b04f14923acea9e96b7
J resolution None
J severity Minor
J status Open
J submitter fvogel
J subsystem 37.\sFile\sSystem
J title file\snormalize\s~user\sfails\son\sWindows
J type Bug
K 9e6b569963ea497e9e623a79d5a5f92c5681bfdb
U fvogel
Z 0a3a59eecf5d156bcdbf5726f9e1ff98