Menu

#2 util::url_encode not found when calling make_query_string

Bug report
closed
woof (2)
5
2014-12-31
2010-02-04
C Jolly
No

See whole description as fix is included at end.

Executring :
my url_for -action someaction -controller somecontroller -paramters { user curly }

results in :
Error: invalid command name "::util::url_encode"
while executing
"::util::url_encode $k"
(procedure "make_query_string" line 18)
invoked from within
"make_query_string $opts(-parameters)"
(procedure "::woof::url_build" line 45)
invoked from within
"::woof::url_build $_dispatchinfo -fullyqualify $fullyqualify {*}$modifiers"
(class "::woof::Controller" method "url_for" line 107)
invoked from within
.... [ rest deleted ]

Suggested Resolution:

I tracked the defect to ../lib/woof/hutil.tcl where make_query_string is which the following line (#148) exists

lappend query "[util::url_encode $k]=[util::url_encode $val]"

However as the comment at the top of the file indicates the namespace is relative so the actual namespace
when this code is run. In this case ::woof::util . Since procs in same namespace can use each other without qualifiction the
fix is to merely remove the util:: qualifier like so:

lappend query "[url_encode $k]=[url_encode $val]"

Discussion

  • Ashok P. Nadkarni

    • status: open --> closed
    • Group: --> Bug report
     
  • Ashok P. Nadkarni

    Fixed in 0.5b3

     

Anonymous
Anonymous

Add attachments
Cancel