mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
50 lines
1.5 KiB
Mathematica
50 lines
1.5 KiB
Mathematica
;
|
|
; This file is part of DataBallet.
|
|
; Copyright (C) 2012 Laurent Parenteau <laurent.parenteau@gmail.com>
|
|
;
|
|
; DataBallet is free software: you can redistribute it and/or modify
|
|
; it under the terms of the GNU Affero General Public License as published by
|
|
; the Free Software Foundation, either version 3 of the License, or
|
|
; (at your option) any later version.
|
|
;
|
|
; DataBallet is distributed in the hope that it will be useful,
|
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
; GNU Affero General Public License for more details.
|
|
;
|
|
; You should have received a copy of the GNU Affero General Public License
|
|
; along with DataBallet. If not, see <http://www.gnu.org/licenses/>.
|
|
;
|
|
|
|
decode(val)
|
|
;
|
|
; Decoded a URL Encoded string
|
|
;
|
|
new decoded,c,i
|
|
|
|
set decoded=""
|
|
for i=1:1:$zlength(val) do
|
|
. set c=$zextract(val,i,i)
|
|
. if c="+" set decoded=decoded_" "
|
|
. else if c'="%" set decoded=decoded_c
|
|
. else set decoded=decoded_$zchar($$FUNC^%HD($zextract(val,i+1,i+2))) set i=i+2
|
|
quit decoded
|
|
|
|
encode(val)
|
|
;
|
|
; Encoded a string for URL usage
|
|
;
|
|
new encoded,c,i
|
|
set encoded=""
|
|
|
|
; Populate safe char only the first time
|
|
if '$data(safechar) for i=45,46,95,126,48:1:57,65:1:90,97:1:122 set safechar($zchar(i))=""
|
|
|
|
for i=1:1:$zlength(val) do
|
|
. set c=$zextract(val,i,i)
|
|
. if $data(safechar(c)) set encoded=encoded_c
|
|
. else if c=" " set encoded=encoded_"+"
|
|
. else set encoded=encoded_"%"_$$FUNC^%DH($zascii(c),2)
|
|
|
|
quit encoded
|