Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch tip-402 Excluding Merge-Ins
This is equivalent to a diff from 6979bf518d to 0817626d0b
2022-10-04
| ||
16:01 | TIP 402: General Platform UNC Support check-in: c1632c3763 user: jan.nijtmans tags: core-8-branch | |
2022-09-22
| ||
12:32 | Merge 8.6 check-in: 6320599e4f user: jan.nijtmans tags: core-8-branch | |
11:01 | Rebase to latest 8.7 check-in: 48d4187f99 user: jan.nijtmans tags: tip-346 | |
2022-09-21
| ||
13:47 | merge 8.7 check-in: f434e66963 user: dgp tags: tip-getnumber | |
13:13 | rebase to 8.7 Closed-Leaf check-in: 0817626d0b user: jan.nijtmans tags: tip-402 | |
13:10 | Merge 8.7 check-in: c83b5c1986 user: jan.nijtmans tags: trunk, main | |
13:08 | Merge 8.6 check-in: 6979bf518d user: jan.nijtmans tags: core-8-branch | |
12:55 | Fix [c0bc269178]: switch -regexp -matchvar -indexvar broken when optional subexpression does not mat... check-in: 92ab43ecd6 user: jan.nijtmans tags: core-8-6-branch | |
12:38 | remove tests/range.test, no longer needed check-in: cf17459efe user: jan.nijtmans tags: core-8-branch | |
2022-09-17
| ||
12:58 | rebase to 8.7 check-in: 39258af2e6 user: jan.nijtmans tags: tip-402 | |
Changes to doc/filename.n.
︙ | ︙ | |||
43 44 45 46 47 48 49 | \fBUnix\fR On Unix and Apple MacOS X platforms, Tcl uses path names where the components are separated by slashes. Path names may be relative or absolute, and file names may contain any character other than slash. The file names \fB\&.\fR and \fB\&..\fR are special and refer to the current directory and the parent of the current directory respectively. Multiple adjacent slash characters are interpreted as a single | > | | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | \fBUnix\fR On Unix and Apple MacOS X platforms, Tcl uses path names where the components are separated by slashes. Path names may be relative or absolute, and file names may contain any character other than slash. The file names \fB\&.\fR and \fB\&..\fR are special and refer to the current directory and the parent of the current directory respectively. Multiple adjacent slash characters are interpreted as a single separator, except for the first double slash \fB//\fR in absolute paths. Any number of trailing slash characters at the end of a path are simply ignored, so the paths \fBfoo\fR, \fBfoo/\fR and \fBfoo//\fR are all identical, and in particular \fBfoo/\fR does not necessarily mean a directory is being referred. .RS .PP The following examples illustrate various forms of path names: |
︙ | ︙ |
Changes to generic/tclFileName.c.
︙ | ︙ | |||
409 410 411 412 413 414 415 | /* * Paths that begin with / are absolute. */ if (path[0] == '/') { ++path; | < < < < < < < | < < < < < < | | 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 | /* * Paths that begin with / are absolute. */ if (path[0] == '/') { ++path; /* * Check for "//" network path prefix */ if ((*path == '/') && path[1] && (path[1] != '/')) { path += 2; while (*path && *path != '/') { ++path; } } if (driveNameLengthPtr != NULL) { /* * We need this addition in case the "//" code was used. */ *driveNameLengthPtr = (path - origPath); } } else { type = TCL_PATH_RELATIVE; } |
︙ | ︙ | |||
652 653 654 655 656 657 658 | * Deal with the root directory as a special case. */ TclNewObj(result); if (*path == '/') { Tcl_Obj *rootElt; ++path; | < < < < < < < | < < < < < < | 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 | * Deal with the root directory as a special case. */ TclNewObj(result); if (*path == '/') { Tcl_Obj *rootElt; ++path; /* * Check for "//" network path prefix */ if ((*path == '/') && path[1] && (path[1] != '/')) { path += 2; while (*path && *path != '/') { ++path; } } rootElt = Tcl_NewStringObj(origPath, path - origPath); Tcl_ListObjAppendElement(NULL, result, rootElt); while (*path == '/') { ++path; } } |
︙ | ︙ |
Changes to tests/cmdAH.test.
︙ | ︙ | |||
435 436 437 438 439 440 441 | test cmdAH-8.13 {Tcl_FileObjCmd: dirname} testsetplatform { testsetplatform unix file dirname /foo } / test cmdAH-8.14 {Tcl_FileObjCmd: dirname} testsetplatform { testsetplatform unix file dirname //foo | | | | | | 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 | test cmdAH-8.13 {Tcl_FileObjCmd: dirname} testsetplatform { testsetplatform unix file dirname /foo } / test cmdAH-8.14 {Tcl_FileObjCmd: dirname} testsetplatform { testsetplatform unix file dirname //foo } //foo test cmdAH-8.15 {Tcl_FileObjCmd: dirname} testsetplatform { testsetplatform unix file dirname //foo/bar } //foo test cmdAH-8.16 {Tcl_FileObjCmd: dirname} testsetplatform { testsetplatform unix file dirname {//foo\/bar/baz} } {//foo\/bar} test cmdAH-8.17 {Tcl_FileObjCmd: dirname} testsetplatform { testsetplatform unix file dirname {//foo\/bar/baz/blat} } {//foo\/bar/baz} test cmdAH-8.18 {Tcl_FileObjCmd: dirname} testsetplatform { testsetplatform unix file dirname /foo// } / test cmdAH-8.19 {Tcl_FileObjCmd: dirname} testsetplatform { testsetplatform unix file dirname ./a |
︙ | ︙ | |||
579 580 581 582 583 584 585 | test cmdAH-9.13 {Tcl_FileObjCmd: tail} testsetplatform { testsetplatform unix file tail /foo } foo test cmdAH-9.14 {Tcl_FileObjCmd: tail} testsetplatform { testsetplatform unix file tail //foo | | | 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 | test cmdAH-9.13 {Tcl_FileObjCmd: tail} testsetplatform { testsetplatform unix file tail /foo } foo test cmdAH-9.14 {Tcl_FileObjCmd: tail} testsetplatform { testsetplatform unix file tail //foo } {} test cmdAH-9.15 {Tcl_FileObjCmd: tail} testsetplatform { testsetplatform unix file tail //foo/bar } bar test cmdAH-9.16 {Tcl_FileObjCmd: tail} testsetplatform { testsetplatform unix file tail {//foo\/bar/baz} |
︙ | ︙ |
Changes to tests/fileName.test.
︙ | ︙ | |||
197 198 199 200 201 202 203 | test filename-4.12 {Tcl_SplitPath: unix} {testsetplatform} { testsetplatform unix file split ../.. } {.. ..} test filename-4.13 {Tcl_SplitPath: unix} {testsetplatform} { testsetplatform unix file split //foo | | | 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 | test filename-4.12 {Tcl_SplitPath: unix} {testsetplatform} { testsetplatform unix file split ../.. } {.. ..} test filename-4.13 {Tcl_SplitPath: unix} {testsetplatform} { testsetplatform unix file split //foo } "//foo" test filename-4.14 {Tcl_SplitPath: unix} {testsetplatform} { testsetplatform unix file split foo//bar } {foo bar} test filename-4.15 {Tcl_SplitPath: unix} {testsetplatform} { testsetplatform unix file split ~foo |
︙ | ︙ | |||
434 435 436 437 438 439 440 | test filename-7.16 {Tcl_JoinPath: unix} {testsetplatform} { testsetplatform unix file join a . ./~b } {a/./~b} test filename-7.17 {Tcl_JoinPath: unix} {testsetplatform} { testsetplatform unix file join //a b | | | | 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 | test filename-7.16 {Tcl_JoinPath: unix} {testsetplatform} { testsetplatform unix file join a . ./~b } {a/./~b} test filename-7.17 {Tcl_JoinPath: unix} {testsetplatform} { testsetplatform unix file join //a b } "//a/b" test filename-7.18 {Tcl_JoinPath: unix} {testsetplatform} { testsetplatform unix file join /// a b } "/a/b" test filename-7.19 {[Bug f34cf83dd0]} { file join foo //bar } //bar test filename-9.1 {Tcl_JoinPath: win} {testsetplatform} { testsetplatform win file join a b } {a/b} test filename-9.2 {Tcl_JoinPath: win} {testsetplatform} { testsetplatform win |
︙ | ︙ |
Changes to tests/fileSystem.test.
︙ | ︙ | |||
375 376 377 378 379 380 381 | } ok test filesystem-1.51 {file normalisation .. beyond root (Bug 1379287)} { testPathEqual [file norm /../..] [file norm /] } ok test filesystem-1.51.1 {file normalisation .. beyond root (Bug 1379287)} { testPathEqual [file norm /../../] [file norm /] } ok | | | | | 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 | } ok test filesystem-1.51 {file normalisation .. beyond root (Bug 1379287)} { testPathEqual [file norm /../..] [file norm /] } ok test filesystem-1.51.1 {file normalisation .. beyond root (Bug 1379287)} { testPathEqual [file norm /../../] [file norm /] } ok test filesystem-1.52 {bug f9f390d0fa: file join where strep is not canonical} -body { set x ///foo file normalize $x file join $x bar } -result /foo/bar test filesystem-1.52.1 {bug f9f390d0fa: file join where strep is not canonical} -body { set x ///foo file normalize $x file join $x } -result /foo test filesystem-1.53 {[Bug 3559678] - normalize when tail is empty} { string match */ [file normalize [lindex [glob -dir [pwd] {{}}] 0]] } 0 test filesystem-1.54 {[Bug ce3a211dcb] - normalize when tail is empty} -setup { |
︙ | ︙ |