Index: generic/nsf.c =================================================================== diff -u -rf858f142f5fab4f88996b3eb709c3afa55114be9 -rdadc7c6c6858ff3b816ff4cc585e0d76684ec374 --- generic/nsf.c (.../nsf.c) (revision f858f142f5fab4f88996b3eb709c3afa55114be9) +++ generic/nsf.c (.../nsf.c) (revision dadc7c6c6858ff3b816ff4cc585e0d76684ec374) @@ -9299,13 +9299,16 @@ } Tcl_AppendLimitedToObj(argStringObj, " ", 1, INT_MAX, NULL); } + if (pPtr->converter == ConvertToNothing && strcmp(pPtr->name, "args") == 0) { Tcl_AppendLimitedToObj(argStringObj, "?arg ...?", 9, INT_MAX, NULL); } else if (pPtr->flags & NSF_ARG_REQUIRED) { if ((pPtr->flags & NSF_ARG_IS_ENUMERATION)) { Tcl_AppendLimitedToObj(argStringObj, ParamGetDomain(pPtr), -1, INT_MAX, NULL); } else { + Tcl_AppendLimitedToObj(argStringObj, "/", 1, INT_MAX, NULL); NsfParamDefsSyntaxOne(argStringObj, pPtr); + Tcl_AppendLimitedToObj(argStringObj, "/", 1, INT_MAX, NULL); } } else { Tcl_AppendLimitedToObj(argStringObj, "?", 1, INT_MAX, NULL); @@ -17617,12 +17620,22 @@ } Tcl_AppendToObj(list, "?arg ...?", 9); } else { - Tcl_Obj *innerlist = Tcl_NewListObj(0, NULL); - Tcl_ListObjAppendElement(interp, innerlist, Tcl_NewStringObj(args->name, -1)); - if (printStyle == NSF_PARAMS_PARAMETER && args->defValuePtr) { - Tcl_ListObjAppendElement(interp, innerlist, args->defValuePtr); + if (printStyle == NSF_PARAMS_SYNTAX) { + /* a default means that the arg is optional xxxxxx */ + if (args->defValuePtr) { + Tcl_AppendToObj(list, "?", 1); + Tcl_AppendToObj(list, args->name, -1); + Tcl_AppendToObj(list, " ", 1); + Tcl_ListObjAppendElement(interp, list, args->defValuePtr); + Tcl_AppendToObj(list, "?", 1); + } else { + Tcl_AppendToObj(list, "/", 1); + Tcl_AppendToObj(list, args->name, -1); + Tcl_AppendToObj(list, "/", 1); + } + } else { + Tcl_ListObjAppendElement(interp, list, Tcl_NewStringObj(args->name, -1)); } - Tcl_ListObjAppendElement(interp, list, innerlist); } }