From 26529fbec2cc37660e2f376993a1098b4d95404a Mon Sep 17 00:00:00 2001 From: dkf Date: Thu, 4 Oct 2012 08:24:05 +0000 Subject: clean up some of the code to remove warnings and uselessly-settable things --- generic/tclZlib.c | 58 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 43 insertions(+), 15 deletions(-) diff --git a/generic/tclZlib.c b/generic/tclZlib.c index 2054b15..11490f1 100644 --- a/generic/tclZlib.c +++ b/generic/tclZlib.c @@ -288,21 +288,27 @@ ConvertError( codeStr2 = codeStrBuf; sprintf(codeStrBuf, "%lu", adler); break; - default: - codeStr = "unknown"; - codeStr2 = codeStrBuf; - sprintf(codeStrBuf, "%d", code); - break; /* - * Finally, these should _not_ happen! This function is for dealing - * with error cases, not non-errors! + * These should _not_ happen! This function is for dealing with error + * cases, not non-errors! */ case Z_OK: Tcl_Panic("unexpected zlib result in error handler: Z_OK"); case Z_STREAM_END: Tcl_Panic("unexpected zlib result in error handler: Z_STREAM_END"); + + /* + * Anything else is bad news; it's unexpected. Convert to generic + * error. + */ + + default: + codeStr = "UNKNOWN"; + codeStr2 = codeStrBuf; + sprintf(codeStrBuf, "%d", code); + break; } Tcl_SetObjResult(interp, Tcl_NewStringObj(zError(code), -1)); @@ -364,7 +370,7 @@ ConvertErrorToList( */ default: - TclNewLiteralStringObj(objv[2], "unknown"); + TclNewLiteralStringObj(objv[2], "UNKNOWN"); TclNewIntObj(objv[3], code); return Tcl_NewListObj(4, objv); } @@ -1984,12 +1990,27 @@ ZlibCmd( NULL); case CMD_GZIP: /* gzip data ?level? * -> gzippedCompressedData */ + headerDictObj = NULL; + + /* + * Legacy argument format support. + */ + + if (objc == 4 + && Tcl_GetIntFromObj(interp, objv[3], &level) == TCL_OK) { + if (level < 0 || level > 9) { + extraInfoStr = "\n (in -level option)"; + goto badLevel; + } + return Tcl_ZlibDeflate(interp, TCL_ZLIB_FORMAT_GZIP, objv[2], + level, NULL); + } + if (objc < 3 || objc > 7 || ((objc & 1) == 0)) { Tcl_WrongNumArgs(interp, 2, objv, "data ?-level level? ?-header header?"); return TCL_ERROR; } - headerDictObj = NULL; for (i=3 ; i 65535) { + } else if (newLimit < 1 || newLimit > MAX_BUFFER_SIZE) { Tcl_SetObjResult(interp, Tcl_NewStringObj( - "-limit must be between 1 and 65535", -1)); + "-limit must be between 1 and 65536", -1)); Tcl_SetErrorCode(interp, "TCL", "VALUE", "READLIMIT", NULL); return TCL_ERROR; } -- cgit v0.12