September Morn Update

This commit is contained in:
Ingy döt Net 2019-09-12 10:33:56 -07:00
parent 4e2d22a71d
commit aac6731f2c
6856 changed files with 141342 additions and 21127 deletions

View file

@ -1,32 +1,29 @@
/*REXX program converts an URL─encoded string ──► its original unencoded form.*/
/*REXX program converts a URL─encoded string ──► its original unencoded form. */
url.1='http%3A%2F%2Ffoo%20bar%2F'
url.2='mailto%3A%22Ivan%20Aim%22%20%3Civan%2Eaim%40email%2Ecom%3E'
url.3='%6D%61%69%6C%74%6F%3A%22%49%72%6D%61%20%55%73%65%72%22%20%3C%69%72%6D%61%2E%75%73%65%72%40%6D%61%69%6C%2E%63%6F%6D%3E'
URLs=3
URLs =3
do j=1 for URLs
say url.j
say decodeURL(url.j)
say
end /*j*/
exit
/*────────────────────────────────────────────────────────────────────────────*/
decodeURL: procedure; parse arg encoded; decoded=''
encoded=translate(encoded,,'+') /*special case for encoded blank.*/
do while length(encoded)\==0
parse var encoded head '%' +1 code +2 tail
decoded=decoded || head
/*──────────────────────────────────────────────────────────────────────────────────────*/
decodeURL: procedure; parse arg encoded; decoded= ''
do while encoded\==''
parse var encoded head '%' +1 code +2 tail
decoded= decoded || head
L= length( strip( code, 'T') )
select
when length(strip(code,'T'))==2 &,
datatype(code,'X') then decoded=decoded || x2c(code)
when length(strip(code,'T'))\==0 then do
decoded=decoded'%'
tail=code || tail
when L==2 & datatype(code, "X") then decoded= decoded || x2c(code)
when L\==0 then do; decoded= decoded'%'
tail= code || tail
end
otherwise nop
end /*select*/
encoded=tail
end /*while*/
encoded= tail
end /*while*/
return decoded
return decoded