Analizar parámetros fuera de URL en Lua

Tengo una URL y me gustaría analizar su parámetro, como:

function unescape (s)
  s = string.gsub(s, "+", " ")
  s = string.gsub(s, "%%(%x%x)", function (h)
        return string.char(tonumber(h, 16))
      end)
  return s
end

function parseurl (s,param)
for k, v in string.gmatch( s, "([^&=?]+)=([^&=?]+)" ) do
    --t[k] = v
    if k == param then
        --print (k.." "..v)
        return unescape(v)
    end
end

s = "http://www.page.com/link.php uname=Hans+Testmann&uemail=myemail%40gmail.com&utext=Now+this+is+working+great.%0D%0A++&mdt=1#&mydays:themeupload"s

De lo que lo llamaría y obtendría resultados como después ->

parseurl (s, "uname")      --> "Hans Testmann"
parseurl (s, "uemail")     --> "[email protected]"
parseurl (s, "utext")      --> "Now this is working great"

Ya arreglé mucho y parece funcionar, pero ¿podrías ver cómo es posible mejorar?

Respuestas a la pregunta(1)

Su respuesta a la pregunta