ad_proc argsWhat it does:
Use just like proc, but first argument must be a named argument description. A named argument description is a list of flag/default value pairs: {-arg1 arg1default -arg2 arg2default} By jsc@arsdigita.com Now supports default arguments and varargs ("args"). Now supports the -prefix switch to have all argument variable names prefixed by a string, e.g., ad_proc -prefix T my_proc { { -foo bar } arg1 arg2 } { ns_write "foo is $TfooDefined in: /web/philip/packages/acs-core/00-proc-procs.tcl
\n" ns_write "arg1 is $Targ1
\n" ns_write "arg2 is $Targ2
\n" } This is useful when you don't want set_variables_after_query hosing arguments (e.g., ad_table).
Source code:
if { [lindex $args 0] == "-prefix" } { set prefix [lindex $args 1] set args [lrange $args 2 end] } else { set prefix "" } set proc_name [lindex $args 0] set ad_args [lindex $args 1] nsv_set ad_proc_args $proc_name $ad_args generate_argument_parser $proc_name $ad_args $prefix # Four argument version indicates use of proc_doc instead of proc. if { [llength $args] == 4 } { set doc_string [lindex $args 2] set body [lindex $args 3] proc_doc $proc_name args $doc_string "arg_parser_for_$proc_name \$args\n$body" } else { set body [lindex $args 2] proc $proc_name args "arg_parser_for_$proc_name \$args\n$body" }