From 5424704757baf03d5376fbee3eae06bec1957557 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@users.sourceforge.net>
Date: Sat, 25 Oct 2008 22:54:31 +0000
Subject: [PATCH] No special chars in filename

---
 htdocs/lib/functions.lib.php | 47 +++++++++++++++++++++---------------
 1 file changed, 27 insertions(+), 20 deletions(-)

diff --git a/htdocs/lib/functions.lib.php b/htdocs/lib/functions.lib.php
index 3a30720a569..06edcf5ec1c 100644
--- a/htdocs/lib/functions.lib.php
+++ b/htdocs/lib/functions.lib.php
@@ -96,30 +96,37 @@ function dol_string_unaccent($str)
 	{
 		$string = rawurlencode($str);
 		$replacements = array(
-		'%C3%A0' => 'a','%C3%A1' => 'a','%C3%A2' => 'a',
-		'%C3%A8' => 'e','%C3%A9' => 'e','%C3%AA' => 'e','%C3%AB' => 'e',
-		'%C3%AC' => 'i','%C3%AD' => 'i',
-		'%C3%B2' => 'o','%C3%B3' => 'o',
-		'%C3%B9' => 'u','%C3%BA' => 'u',
-		'%C3%80' => 'A','%C3%81' => 'A',
-		'%C3%88' => 'E','%C3%89' => 'E',
-		'%C3%8C' => 'I','%C3%8D' => 'I',
-		'%C3%92' => 'O','%C3%93' => 'O',
-		'%C3%99' => 'U','%C3%9A' => 'U'
+			'%C3%80' => 'A','%C3%81' => 'A',
+			'%C3%88' => 'E','%C3%89' => 'E',
+			'%C3%8C' => 'I','%C3%8D' => 'I',
+			'%C3%92' => 'O','%C3%93' => 'O',
+			'%C3%99' => 'U','%C3%9A' => 'U',
+			'%C3%A0' => 'a','%C3%A1' => 'a','%C3%A2' => 'a',
+			'%C3%A8' => 'e','%C3%A9' => 'e','%C3%AA' => 'e','%C3%AB' => 'e',
+			'%C3%AC' => 'i','%C3%AD' => 'i',
+			'%C3%B2' => 'o','%C3%B3' => 'o',
+			'%C3%B9' => 'u','%C3%BA' => 'u'
 		);
-		$ret=strtr($string, $replacements);
-		return rawurldecode($ret);
+		$string=strtr($string, $replacements);
+		return rawurldecode($string);
 	}
 	else
 	{
-		$translationiso=array(	
-		"\xE0" => "a",	"\xE1" => "a", 	"\xE2" => "a",
-		"\xE8" => "e",	"\xE9" => "e",	"\xEA" => "e",	"\xEB" => "e",
-		"\xEE" => "i",	"\xEF" => "i",	
-		"\xF4" => "o",	"\xF6" => "o",
-		"\xFB" => "u",	"\xFC" => "u");
-		$ret=str_replace(array_keys($translationiso), array_values($translationiso), $str);
-		return $ret;
+ 		$string = strtr($str,
+	       "xC0\xC1\xC2\xC3\xC5\xC7
+	        \xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1
+	        \xD2\xD3\xD4\xD5\xD8\xD9\xDA\xDB\xDD
+	        \xE0\xE1\xE2\xE3\xE5\xE7\xE8\xE9\xEA\xEB
+	        \xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF8
+	        \xF9\xFA\xFB\xFD\xFF",
+	       "AAAAAC
+	        EEEEIIIIDN
+	        OOOOOUUUY
+	        aaaaaceeee
+	        iiiidnooooo
+	        uuuyy");  
+    	$string = strtr($string, array("\xC4"=>"Ae", "\xC6"=>"AE", "\xD6"=>"Oe", "\xDC"=>"Ue", "\xDE"=>"TH", "\xDF"=>"ss", "\xE4"=>"ae", "\xE6"=>"ae", "\xF6"=>"oe", "\xFC"=>"ue", "\xFE"=>"th"));
+		return $string;
 	}
 }
 
-- 
GitLab