summaryrefslogtreecommitdiffstats
path: root/generic/tclPathObj.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge core-8-6-branch: Bug [a47641a031]. TclJoinPath was calling ↵jan.nijtmans2016-07-081-3/+7
|\ | | | | | | TclNewFSPathObj with a first argument that was not an absolute path. Added a check for that. Fixes Windows test failures fileSystem-1.{3,4}
| * Bug [a47641a031]. TclJoinPath was calling TclNewFSPathObj with aashok2016-07-081-3/+7
| | | | | | | | first argument that was not an absolute path. Added a check for that. Fixes Windows test failures fileSystem-1.{3,4}
* | Micro-optimization: Use TclGetStringFromObj in stead of Tcl_GetStringFromObj ↵jan.nijtmans2016-07-081-26/+26
|/ | | | in many places where possible.
* [3479689] Plug memory leak due to incomplete bug fix.dgp2014-07-111-12/+6
|
* Eliminate all usage of WIN32 and __WIN32__ macros: Some compilers (e.g. ↵jan.nijtmans2014-02-101-3/+3
| | | | | Clang/LLVM) don't define it, and _WIN32 is much more portable anyway. See: [http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_operating_system#WindowsCygwinnonPOSIXandMinGW]
* Eliminate all Tcl_ConvertToType calls and all direct calls to ↵jan.nijtmans2013-02-041-2/+2
| | | | typePtr->setFromAnyProc (except the call from inside the Tcl_ConvertToType function) from the Tcl core.
* merge core-8-5-branchjan.nijtmans2013-01-311-2/+2
|\
| * Use twoPtrValue.ptr1 in stead of otherValuePtr everywhere. This is exactly ↵jan.nijtmans2013-01-311-2/+2
| | | | | | | | the same field, but it allows twoPtrValue.ptr2 to be used for other purposes.
* | 3559678 Fix bad filename normalization when the last component is the empty ↵dgp2012-08-201-2/+7
|\ \ | |/ | | | | string.
| * 3559678 Fix bad filename normalization when the last component is the empty ↵dgp2012-08-201-2/+7
| | | | | | | | string.
* | more result generation conversiondkf2012-08-031-9/+7
| |
* | Simplify tclFileSystem.h. Define structs where used.dgp2012-06-281-12/+10
|\ \ | |/
| * Simplify tclFileSystem.h. Define structs where used.dgp2012-06-281-12/+10
| |
* | fix some gcc 64-bit warningsjan.nijtmans2012-06-261-3/+0
|\ \ | |/ | | | | quoting improvements eliminate unused variable
| * fix some gcc 64-bit warningsjan.nijtmans2012-06-261-3/+0
| | | | | | | | quoting improvements eliminate unused variable
* | 3024359 Make sure that the per-thread cache of the list of file systemsdgp2012-06-251-4/+13
|\ \ | |/ | | | | | | currently registered is only updated at times when no active loops are traversing it. Also reduce the amount of epoch storing and checking to where it can make a difference.
| * Simplify bug fix so that active claims on the FilesystemRecord list of a threadbug_3024359dgp2012-06-251-2/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | prevent any overwriting of that per-thread cache. This keeps active traversals of the list valid. The possible downside is that this may result in some delay in noticing new epochs and result in somewhat greater likelihood we will cache things in a "path" value that are out of date. Since the system has to deal with out of date cached data anyway, this should have no correctness affects, measured against the status quo. In multi-threaded operation the possibility of caching and/or retrieving outdated information can never be eliminated. Checkin also includes merge of 8.5.
| * \ merge 8.5dgp2012-06-211-41/+24
| |\ \ | | |/
| * | Only record the filesystemEpoch when it actually marks the validity ofdgp2012-06-211-6/+15
| | | | | | | | | something we are caching.
* | | Stop storing FilesystemRecord in the intrep of a "path". We never use it.dgp2012-06-211-41/+23
|\ \ \ | | |/ | |/| Store the Tcl_Filesystem instead, which is what we actually need.
| * | Stop storing FilesystemRecord in the intrep of a "path". We never use it.dgp2012-06-211-41/+24
| |/ | | | | Store the Tcl_Filesystem instead, which is what we actually need.
| |
| \
*-. \ Remove dead code that complicates fs path values but adds no value.dgp2012-06-201-42/+9
|\ \ \ | | |/
| | * Purge more dead fs path code.dgp2012-06-201-17/+3
| |/
| * Remove dead code that complicates fs path values but adds no value.dgp2012-06-201-26/+7
| |
* | When using Tcl_SetObjLength() calls to grow and shrink the objPtr->bytes buffer,dgp2012-05-211-1/+1
|\ \ | |/ | | | | | | care must be taken that the value cannot possibly become pure Unicode. Calling Tcl_AppendToObj() has the possibility of making such a conversion. Bug found while valgrinding the trunk.
| * When using Tcl_SetObjLength() calls to grow and shrink the objPtr->bytes buffer,dgp2012-05-211-1/+1
| | | | | | | | | | care must be taken that the value cannot possibly become pure Unicode. Calling Tcl_AppendToObj() has the possibility of making such a conversion. Bug found while valgrinding the trunk.
* | * generic/tclUtil.c (TclDStringToObj): Added internal function to makedkf2012-04-251-4/+1
| | | | | | | | the fairly-common operation of converting a DString into an Obj a more efficient one.
* | some formatting (*.decls)jan.nijtmans2012-04-041-33/+0
|\ \ | |/ | | | | remove some unused cygwin-related code some minor gcc warnings
| * some formatting (*.decls)jan.nijtmans2012-04-041-33/+0
| | | | | | | | | | move up #undef, for macro which is conflicting with later stuff. remove some unused cygwin-related code some minor gcc warnings
* | 3479689 New internal routine TclJoinPath().dgp2012-01-271-35/+26
| | | | | | | | Refactor all the *Join*Path* routines to give them more useful interfaces that are easier to manage getting the refcounts right.
* | 3475569 Add checks for unshared values before calls demanding them.dgp2012-01-261-6/+23
|\ \ | |/ | | 3479689 Stop memory corruption when shimmering 0-refCount value to "path" type.
| * 3479689 Stop memory corruption when shimmering 0-refCount value to "path" type.dgp2012-01-261-0/+3
| |
| * 3475569 Add value-sharing checks before calls that demand unshared arguments.dgp2012-01-241-6/+20
| |
* | 3414754 Fix the PATHFLAGS != 0 intrep normalizing trailing slashes.dgp2011-10-311-28/+11
|\ \ | |/
| * Purge the old, buggy implementation.bug_3414754dgp2011-10-311-34/+0
| |
| * Proposed fix for 3414754dgp2011-10-271-0/+17
| |
* | 3389764 Eliminate possibility that "path" value dup can create reference cycle.dgp2011-08-121-12/+12
|\ \ | |/
| * 3389764 Eliminate possibility that "path" value dup can create reference cycle.dgp2011-08-121-12/+12
| |
| * Backport fix for [Bug 2857044].dgp2011-04-271-4/+1
| |
* | TclFreeIntRep() related cleanup.dgp2011-04-251-4/+0
| |
* | More generation of error codes (namespace creation, path normalization,dkf2011-04-031-0/+6
| | | | | | pipeline creation, package handling, procedures, [scan] formats)
* | Adjust ckalloc/ckfree macros to greatly reduce number of explicit casts indkf2011-03-121-8/+8
| | | | | | rest of Tcl source code. No ABI change. API change *should* be harmless.
* | Now that we're no longer using SCM based on RCS, the RCS Keyword linesdgp2011-03-021-2/+0
|\ \ | |/ | | cause more harm than good. Purged them (except in zlib files).
| * Now that we're no longer using SCM based on RCS, the RCS Keyword lines causedgp2011-03-021-2/+0
| | | | | | more harm than good. Purged them.
| * installData.tcl: Make sure that copyDir only receives normalized paths.nijtmans2010-05-211-19/+33
| | | | | | | | | | | | tclPlatDecls.h: Fix <tchar.h> inclusion for CYGWIN. tclPathObj.c: Fix Tcl_SetStringObj usage for CYGWIN. *.c: Fix various minor other gcc warnings, like signed<->unsigned mismatch.
| * * generic/tclPathObj.c (TclPathPart): Correct inconsistency betweendgp2010-01-051-26/+10
| | | | | | | | | | | | * tests/fileName.test (filename-14.31): the string rep and the intrep of a path value created by [file rootname]. Thanks to Vitaly Magerya for reporting. [Bug 2918610]
| * * generic/tclPathObj.c: Missing refcount on cached normalized pathdgp2009-10-271-1/+2
| | | | | | | | caused crashes. [Bug 2884203].
| * * generic/tclPathObj.c: [Bug 2806250] Prevent the storage of stringsdgp2009-08-201-104/+99
| | | | | | | | | | | | | | | | starting with ~ in the "tail" part (normPathPtr field) of the path intrep when PATHFLAGS != 0. This establishes the assumptions relied on elsewhere that the name stored there is a relative path. Also refactored to make an AppendPath() routine instead of the cut/paste stanzas that were littered throughout.
| * * generic/tclPathObj.c: Added NULL check to prevent crashes duringdgp2009-08-181-2/+8
| | | | | | | | * tests/fileName.test: [glob]. [Bug 2837800]
| * * generic/tclPathObj.c (TclPathPart): TclPathPart() was computingdgp2009-03-271-3/+29
| | | | | | | | | | | | * tests/fileName.test: the wrong results for both [file dirname] and [file tail] on "path" arguments with the PATHFLAGS != 0 intrep and with an empty string for the "joined-on" part. [Bug 2710920]