mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +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
 |