Index: TODO =================================================================== diff -u -r7527f9247da0f5b7a64a8d646f078750dcc2fe64 -r14091c15df049d9cdb1417c6f037b333b0b82bdd --- TODO (.../TODO) (revision 7527f9247da0f5b7a64a8d646f078750dcc2fe64) +++ TODO (.../TODO) (revision 14091c15df049d9cdb1417c6f037b333b0b82bdd) @@ -3879,6 +3879,22 @@ TODO "Kleinigkeiten" +- NSF_WITH_VALUE_WARNINGS: Right now, value warnings are also fired + for arg vectors with a delimiting "--"; right now, this gives a warning: + + Object create o { + :public method foo {-np1 -np2 p1} { + return $p1 + } + } + + ? {o foo -np1 1 -np2 2 -- -X} "-X" + + However, the warning-generating code in Nsf_ConvertToTclobj() does + not reserve any word of a dashdash having been processed in the + overall argv ... the NSF_ARG_CHECK_NONPOS set on the parsed (and + cached) param is the only condition to must hold. + - should we continue to work on the problem of the interp-aliased class, exported from one ns, imported into another one? Index: generic/nsf.c =================================================================== diff -u -r524d54ea56f3cbe5ffd32cd6db8e72b0fe57db77 -r14091c15df049d9cdb1417c6f037b333b0b82bdd --- generic/nsf.c (.../nsf.c) (revision 524d54ea56f3cbe5ffd32cd6db8e72b0fe57db77) +++ generic/nsf.c (.../nsf.c) (revision 14091c15df049d9cdb1417c6f037b333b0b82bdd) @@ -11480,11 +11480,13 @@ /* every parameter must have at least a name set */ assert(paramPtr->name); } +#if defined(NSF_WITH_VALUE_WARNINGS) if (nrNonposArgs > 0 && argsc > 1) { for (i=0; i < argsc; i++) { (paramsPtr + i)->flags |= NSF_ARG_CHECK_NONPOS; } } +#endif /* * If all arguments are good old Tcl arguments, there is no need Index: generic/nsfError.c =================================================================== diff -u -rd62bca12731d1c7a1a5cf63f950275852c5b05a2 -r14091c15df049d9cdb1417c6f037b333b0b82bdd --- generic/nsfError.c (.../nsfError.c) (revision d62bca12731d1c7a1a5cf63f950275852c5b05a2) +++ generic/nsfError.c (.../nsfError.c) (revision 14091c15df049d9cdb1417c6f037b333b0b82bdd) @@ -72,8 +72,10 @@ extern void NsfDStringArgv(Tcl_DString *dsPtr, int objc, Tcl_Obj *CONST objv[]) { int i; + CONST char *objStr; for (i=0; i