summaryrefslogtreecommitdiffstats
path: root/generic/tclFileName.c
diff options
context:
space:
mode:
authordas <das>2002-06-05 11:59:18 (GMT)
committerdas <das>2002-06-05 11:59:18 (GMT)
commit24229b74b75e8ef219e5f08228243037b6ee7131 (patch)
treee1fd79f317196368a93f0b09f69169f56c39fc49 /generic/tclFileName.c
parent6d6b5b0d0e9c53fadc2e50abbd967d516a317486 (diff)
downloadtcl-24229b74b75e8ef219e5f08228243037b6ee7131.zip
tcl-24229b74b75e8ef219e5f08228243037b6ee7131.tar.gz
tcl-24229b74b75e8ef219e5f08228243037b6ee7131.tar.bz2
* generic/tclFileName.c (TclGlob): mac specific fix to
recent changes in 'glob -tails' handling. * mac/tclMacPort.h: * mac/tclMacChan.c: fixed TIP#91 bustage. * mac/tclMacResource.c (Tcl_MacConvertTextResource): added utf conversion of text resource contents. * tests/macFCmd.test (macFCmd-1.2): allow CWIE creator.
Diffstat (limited to 'generic/tclFileName.c')
-rw-r--r--generic/tclFileName.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/generic/tclFileName.c b/generic/tclFileName.c
index e7dedf0..f5e7970 100644
--- a/generic/tclFileName.c
+++ b/generic/tclFileName.c
@@ -10,7 +10,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclFileName.c,v 1.36 2002/05/30 09:27:11 vincentdarley Exp $
+ * RCS: @(#) $Id: tclFileName.c,v 1.37 2002/06/05 11:59:33 das Exp $
*/
#include "tclInt.h"
@@ -2083,7 +2083,6 @@ TclGlob(interp, pattern, unquotedPrefix, globFlags, types)
Tcl_ResetResult(interp);
result = TclDoGlob(interp, separators, &buffer, tail, types);
- Tcl_DStringFree(&buffer);
if (result != TCL_OK) {
if (globFlags & TCL_GLOBMODE_NO_COMPLAIN) {
@@ -2116,6 +2115,16 @@ TclGlob(interp, pattern, unquotedPrefix, globFlags, types)
Tcl_ListObjGetElements(NULL, Tcl_GetObjResult(interp),
&objc, &objv);
+#ifdef MAC_TCL
+ /* adjust prefixLen if TclDoGlob prepended a ':' */
+ if ((prefixLen > 0) && (objc > 0)
+ && (Tcl_DStringValue(&buffer)[0] != ':')) {
+ char *str = Tcl_GetStringFromObj(objv[0],NULL);
+ if (str[0] == ':') {
+ prefixLen++;
+ }
+ }
+#endif
for (i = 0; i< objc; i++) {
Tcl_Obj* elt;
if (globFlags & TCL_GLOBMODE_TAILS) {
@@ -2145,6 +2154,7 @@ TclGlob(interp, pattern, unquotedPrefix, globFlags, types)
* end here so we free our reference.
*/
Tcl_DecrRefCount(oldResult);
+ Tcl_DStringFree(&buffer);
return result;
}