diff options
author | das <das> | 2002-04-19 14:18:33 (GMT) |
---|---|---|
committer | das <das> | 2002-04-19 14:18:33 (GMT) |
commit | 26bb2b5da7f034e47d6544e3d84e54c861f61206 (patch) | |
tree | 323d0314781d4b46fbb081c3751bb12a9e56feb8 /generic | |
parent | d2af1305c613b7c578a4b5be8e1ff487917b4237 (diff) | |
download | tcl-26bb2b5da7f034e47d6544e3d84e54c861f61206.zip tcl-26bb2b5da7f034e47d6544e3d84e54c861f61206.tar.gz tcl-26bb2b5da7f034e47d6544e3d84e54c861f61206.tar.bz2 |
2002-04-20 Daniel Steffen <das@users.sourceforge.net>
* generic/tclInt.decls:
* generic/tclIntPlatDecls.h:
* generic/tclStubInit.c:
* mac/tclMacFCmd.c:
* mac/tclMacFile.c:
* mac/tclMacUtil.c: Modified TclpObjNormalizePath to be alias
file aware, and replaced various calls to FSpLocationFrom*Path
by calls to new alias file aware versions FSpLLocationFrom*Path.
The alias file aware routines don't resolve the last component of
a path if it is an alias. This allows [file copy/delete] etc. to
act correctly on alias files. (c.f. discussion in Bug #511666)
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclInt.decls | 6 | ||||
-rw-r--r-- | generic/tclIntPlatDecls.h | 10 | ||||
-rw-r--r-- | generic/tclStubInit.c | 3 |
3 files changed, 16 insertions, 3 deletions
diff --git a/generic/tclInt.decls b/generic/tclInt.decls index ca33071..4b6523c 100644 --- a/generic/tclInt.decls +++ b/generic/tclInt.decls @@ -12,7 +12,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: tclInt.decls,v 1.47 2002/03/20 22:47:36 dgp Exp $ +# RCS: @(#) $Id: tclInt.decls,v 1.48 2002/04/19 14:18:33 das Exp $ library tcl @@ -780,6 +780,10 @@ declare 24 mac { declare 25 mac { int TclMacChmod(CONST char *path, int mode) } +# version of FSpLocationFromPath that doesn't resolve the last path component +declare 26 mac { + int FSpLLocationFromPath(int length, CONST char *path, FSSpecPtr theSpec) +} ############################ # Windows specific internals diff --git a/generic/tclIntPlatDecls.h b/generic/tclIntPlatDecls.h index 907a648..090d3d1 100644 --- a/generic/tclIntPlatDecls.h +++ b/generic/tclIntPlatDecls.h @@ -9,7 +9,7 @@ * Copyright (c) 1998-1999 by Scriptics Corporation. * All rights reserved. * - * RCS: @(#) $Id: tclIntPlatDecls.h,v 1.16 2002/01/27 11:09:34 das Exp $ + * RCS: @(#) $Id: tclIntPlatDecls.h,v 1.17 2002/04/19 14:18:38 das Exp $ */ #ifndef _TCLINTPLATDECLS @@ -198,6 +198,9 @@ EXTERN FILE * TclMacFOpenHack _ANSI_ARGS_((CONST char * path, EXTERN char * TclpGetTZName _ANSI_ARGS_((int isdst)); /* 25 */ EXTERN int TclMacChmod _ANSI_ARGS_((CONST char * path, int mode)); +/* 26 */ +EXTERN int FSpLLocationFromPath _ANSI_ARGS_((int length, + CONST char * path, FSSpecPtr theSpec)); #endif /* MAC_TCL */ typedef struct TclIntPlatStubs { @@ -273,6 +276,7 @@ typedef struct TclIntPlatStubs { FILE * (*tclMacFOpenHack) _ANSI_ARGS_((CONST char * path, CONST char * mode)); /* 23 */ char * (*tclpGetTZName) _ANSI_ARGS_((int isdst)); /* 24 */ int (*tclMacChmod) _ANSI_ARGS_((CONST char * path, int mode)); /* 25 */ + int (*fSpLLocationFromPath) _ANSI_ARGS_((int length, CONST char * path, FSSpecPtr theSpec)); /* 26 */ #endif /* MAC_TCL */ } TclIntPlatStubs; @@ -533,6 +537,10 @@ extern TclIntPlatStubs *tclIntPlatStubsPtr; #define TclMacChmod \ (tclIntPlatStubsPtr->tclMacChmod) /* 25 */ #endif +#ifndef FSpLLocationFromPath +#define FSpLLocationFromPath \ + (tclIntPlatStubsPtr->fSpLLocationFromPath) /* 26 */ +#endif #endif /* MAC_TCL */ #endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */ diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index 0ece7d5..52ee177 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -8,7 +8,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclStubInit.c,v 1.68 2002/02/15 14:28:49 dkf Exp $ + * RCS: @(#) $Id: tclStubInit.c,v 1.69 2002/04/19 14:19:02 das Exp $ */ #include "tclInt.h" @@ -322,6 +322,7 @@ TclIntPlatStubs tclIntPlatStubs = { TclMacFOpenHack, /* 23 */ TclpGetTZName, /* 24 */ TclMacChmod, /* 25 */ + FSpLLocationFromPath, /* 26 */ #endif /* MAC_TCL */ }; |