summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorapnadkarni <apnmbx-wits@yahoo.com>2023-03-28 05:02:08 (GMT)
committerapnadkarni <apnmbx-wits@yahoo.com>2023-03-28 05:02:08 (GMT)
commit02ed0444e9b638c52eed39e6f36190b91f5bd3a8 (patch)
tree9611bb50ad6a220cc0e1ce695d8be9ff54f70d53
parentbc060f980cb4e43d0aa03762c8a9cd6110faddbc (diff)
parent2616ef0ef16085f9c15283dfb56c9ccfd3f2da5d (diff)
downloadtcl-02ed0444e9b638c52eed39e6f36190b91f5bd3a8.zip
tcl-02ed0444e9b638c52eed39e6f36190b91f5bd3a8.tar.gz
tcl-02ed0444e9b638c52eed39e6f36190b91f5bd3a8.tar.bz2
Merge 8.6. POSIX errors update and minizip fix
-rw-r--r--compat/zlib/contrib/minizip/minizip.c4
-rw-r--r--generic/tclPosixStr.c83
2 files changed, 66 insertions, 21 deletions
diff --git a/compat/zlib/contrib/minizip/minizip.c b/compat/zlib/contrib/minizip/minizip.c
index e03e2b1..be1774f 100644
--- a/compat/zlib/contrib/minizip/minizip.c
+++ b/compat/zlib/contrib/minizip/minizip.c
@@ -365,7 +365,7 @@ void addFileToZip(zipFile zf, const char *filenameinzip, const char *password, i
void addPathToZip(zipFile zf, const char *filenameinzip, const char *password, int opt_exclude_path,int opt_compress_level) {
tinydir_dir dir;
int i;
- char newname[512];
+ char newname[MAXFILENAME+1+MAXFILENAME+1];
tinydir_open_sorted(&dir, filenameinzip);
@@ -375,7 +375,7 @@ void addPathToZip(zipFile zf, const char *filenameinzip, const char *password, i
tinydir_readfile_n(&dir, &file, i);
if(strcmp(file.name,".")==0) continue;
if(strcmp(file.name,"..")==0) continue;
- sprintf(newname,"%s/%s",dir.path,file.name);
+ sprintf(newname,"%.*s/%.*s", MAXFILENAME, dir.path, MAXFILENAME, file.name);
if (file.is_dir)
{
addPathToZip(zf,newname,password,opt_exclude_path,opt_compress_level);
diff --git a/generic/tclPosixStr.c b/generic/tclPosixStr.c
index ecdf652..45ebe1e 100644
--- a/generic/tclPosixStr.c
+++ b/generic/tclPosixStr.c
@@ -74,9 +74,6 @@ Tcl_ErrnoId(void)
#ifdef EBADMSG
case EBADMSG: return "EBADMSG";
#endif
-#ifdef ECANCELED
- case ECANCELED: return "ECANCELED";
-#endif
#ifdef EBADR
case EBADR: return "EBADR";
#endif
@@ -95,6 +92,12 @@ Tcl_ErrnoId(void)
#ifdef EBUSY
case EBUSY: return "EBUSY";
#endif
+#ifdef ECANCELED
+ case ECANCELED: return "ECANCELED";
+#endif
+#ifdef ECASECLASH
+ case ECASECLASH: return "ECASECLASH";
+#endif
#ifdef ECHILD
case ECHILD: return "ECHILD";
#endif
@@ -146,6 +149,9 @@ Tcl_ErrnoId(void)
#ifdef EFBIG
case EFBIG: return "EFBIG";
#endif
+#ifdef EFTYPE
+ case EFTYPE: return "EFTYPE";
+#endif
#ifdef EHOSTDOWN
case EHOSTDOWN: return "EHOSTDOWN";
#endif
@@ -179,12 +185,9 @@ Tcl_ErrnoId(void)
#ifdef EISDIR
case EISDIR: return "EISDIR";
#endif
-#ifdef EISNAME
+#ifdef EISNAM
case EISNAM: return "EISNAM";
#endif
-#ifdef ELBIN
- case ELBIN: return "ELBIN";
-#endif
#ifdef EL2HLT
case EL2HLT: return "EL2HLT";
#endif
@@ -197,6 +200,9 @@ Tcl_ErrnoId(void)
#ifdef EL3RST
case EL3RST: return "EL3RST";
#endif
+#ifdef ELBIN
+ case ELBIN: return "ELBIN";
+#endif
#ifdef ELIBACC
case ELIBACC: return "ELIBACC";
#endif
@@ -218,6 +224,9 @@ Tcl_ErrnoId(void)
#if defined(ELOOP) && (!defined(ENOENT) || (ELOOP != ENOENT))
case ELOOP: return "ELOOP";
#endif
+#ifdef EMEDIUMTYPE
+ case EMEDIUMTYPE: return "EMEDIUMTYPE";
+#endif
#ifdef EMFILE
case EMFILE: return "EMFILE";
#endif
@@ -251,6 +260,9 @@ Tcl_ErrnoId(void)
#ifdef ENFILE
case ENFILE: return "ENFILE";
#endif
+#ifdef ENMFILE
+ case ENMFILE: return "ENMFILE";
+#endif
#ifdef ENOANO
case ENOANO: return "ENOANO";
#endif
@@ -281,6 +293,9 @@ Tcl_ErrnoId(void)
#ifdef ENOMEM
case ENOMEM: return "ENOMEM";
#endif
+#ifdef ENOMEDIUM
+ case ENOMEDIUM: return "ENOMEDIUM";
+#endif
#ifdef ENOMSG
case ENOMSG: return "ENOMSG";
#endif
@@ -293,6 +308,9 @@ Tcl_ErrnoId(void)
#ifdef ENOPROTOOPT
case ENOPROTOOPT: return "ENOPROTOOPT";
#endif
+#ifdef ENOSHARE
+ case ENOSHARE: return "ENOSHARE";
+#endif
#ifdef ENOSPC
case ENOSPC: return "ENOSPC";
#endif
@@ -404,6 +422,9 @@ Tcl_ErrnoId(void)
#ifdef EREMOTERELEASE
case EREMOTERELEASE: return "EREMOTERELEASE";
#endif
+#ifdef ERESTART
+ case ERESTART: return "ERESTART";
+#endif
#ifdef EROFS
case EROFS: return "EROFS";
#endif
@@ -536,9 +557,6 @@ Tcl_ErrnoMsg(
#ifdef EBADMSG
case EBADMSG: return "not a data message";
#endif
-#ifdef ECANCELED
- case ECANCELED: return "operation canceled";
-#endif
#ifdef EBADR
case EBADR: return "bad request descriptor";
#endif
@@ -557,6 +575,12 @@ Tcl_ErrnoMsg(
#ifdef EBUSY
case EBUSY: return "file busy";
#endif
+#ifdef ECANCELED
+ case ECANCELED: return "operation canceled";
+#endif
+#ifdef ECASECLASH
+ case ECASECLASH: return "filename exists with different case";
+#endif
#ifdef ECHILD
case ECHILD: return "no children";
#endif
@@ -608,6 +632,9 @@ Tcl_ErrnoMsg(
#ifdef EFBIG
case EFBIG: return "file too large";
#endif
+#ifdef EFTYPE
+ case EFTYPE: return "inappropriate file type or format";
+#endif
#ifdef EHOSTDOWN
case EHOSTDOWN: return "host is down";
#endif
@@ -641,12 +668,9 @@ Tcl_ErrnoMsg(
#ifdef EISDIR
case EISDIR: return "illegal operation on a directory";
#endif
-#ifdef EISNAME
+#ifdef EISNAM
case EISNAM: return "is a name file";
#endif
-#ifdef ELBIN
- case ELBIN: return "ELBIN";
-#endif
#ifdef EL2HLT
case EL2HLT: return "level 2 halted";
#endif
@@ -659,6 +683,9 @@ Tcl_ErrnoMsg(
#ifdef EL3RST
case EL3RST: return "level 3 reset";
#endif
+#ifdef ELBIN
+ case ELBIN: return "inode is remote";
+#endif
#ifdef ELIBACC
case ELIBACC: return "cannot access a needed shared library";
#endif
@@ -681,6 +708,9 @@ Tcl_ErrnoMsg(
#if defined(ELOOP) && (!defined(ENOENT) || (ELOOP != ENOENT))
case ELOOP: return "too many levels of symbolic links";
#endif
+#ifdef EMEDIUMTYPE
+ case EMEDIUMTYPE: return "wrong medium type";
+#endif
#ifdef EMFILE
case EMFILE: return "too many open files";
#endif
@@ -714,6 +744,9 @@ Tcl_ErrnoMsg(
#ifdef ENFILE
case ENFILE: return "file table overflow";
#endif
+#ifdef ENMFILE
+ case ENMFILE: return "no more files";
+#endif
#ifdef ENOANO
case ENOANO: return "anode table overflow";
#endif
@@ -744,6 +777,9 @@ Tcl_ErrnoMsg(
#ifdef ENOMEM
case ENOMEM: return "not enough memory";
#endif
+#ifdef ENOMEDIUM
+ case ENOMEDIUM: return "no medium found";
+#endif
#ifdef ENOMSG
case ENOMSG: return "no message of desired type";
#endif
@@ -756,6 +792,9 @@ Tcl_ErrnoMsg(
#ifdef ENOPROTOOPT
case ENOPROTOOPT: return "bad protocol option";
#endif
+#ifdef ENOSHARE
+ case ENOSHARE: return "no such host or network path";
+#endif
#ifdef ENOSPC
case ENOSPC: return "no space left on device";
#endif
@@ -777,9 +816,6 @@ Tcl_ErrnoMsg(
#ifdef ENOTCONN
case ENOTCONN: return "socket is not connected";
#endif
-#ifdef ENOTRECOVERABLE
- case ENOTRECOVERABLE: return "state not recoverable";
-#endif
#ifdef ENOTDIR
case ENOTDIR: return "not a directory";
#endif
@@ -789,6 +825,9 @@ Tcl_ErrnoMsg(
#ifdef ENOTNAM
case ENOTNAM: return "not a name file";
#endif
+#ifdef ENOTRECOVERABLE
+ case ENOTRECOVERABLE: return "state not recoverable";
+#endif
#ifdef ENOTSOCK
case ENOTSOCK: return "socket operation on non-socket";
#endif
@@ -850,7 +889,7 @@ Tcl_ErrnoMsg(
case ERANGE: return "math result unrepresentable";
#endif
#if defined(EREFUSED) && (!defined(ECONNREFUSED) || (EREFUSED != ECONNREFUSED))
- case EREFUSED: return "EREFUSED";
+ case EREFUSED: return "connection refused";
#endif
#ifdef EREMCHG
case EREMCHG: return "remote address changed";
@@ -865,7 +904,10 @@ Tcl_ErrnoMsg(
case EREMOTEIO: return "remote i/o error";
#endif
#ifdef EREMOTERELEASE
- case EREMOTERELEASE: return "EREMOTERELEASE";
+ case EREMOTERELEASE: return "remote peer released connection";
+#endif
+#ifdef ERESTART
+ case ERESTART: return "interrupted system call should be restarted";
#endif
#ifdef EROFS
case EROFS: return "read-only file system";
@@ -894,6 +936,9 @@ Tcl_ErrnoMsg(
#ifdef ESTALE
case ESTALE: return "stale remote file handle";
#endif
+#ifdef ESTRPIPE
+ case ESTRPIPE: return "streams pipe error";
+#endif
#ifdef ESUCCESS
case ESUCCESS: return "Error 0";
#endif