From ff672e47cec54aa9dd084c3a282170cc0a2870e2 Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Sun, 8 Jan 2012 17:28:22 +0000
Subject: [PATCH] Ferme #2475 : a la premiere analyse d'un paquet.xml on
 faisait un find_in_path en dehors du document_root en raison d'un ../ en
 trop. + eviter d'avoir deux fois '' dans le path courant

---
 ecrire/inc/utils.php        | 2 +-
 ecrire/xml/analyser_dtd.php | 8 ++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index aff94e4122..449028cf2f 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -780,7 +780,7 @@ function _chemin($dir_path=NULL){
 			_DIR_RACINE.':'.
 			_DIR_RACINE.'squelettes-dist/:'.
 			_DIR_RACINE.'prive/:'.
-			_DIR_RESTREINT.':';
+			_DIR_RESTREINT;
 		// Ajouter squelettes/
 		if (@is_dir(_DIR_RACINE.'squelettes'))
 			$path = _DIR_RACINE.'squelettes/:' . $path;
diff --git a/ecrire/xml/analyser_dtd.php b/ecrire/xml/analyser_dtd.php
index 25c691c26b..6e300cb018 100644
--- a/ecrire/xml/analyser_dtd.php
+++ b/ecrire/xml/analyser_dtd.php
@@ -86,8 +86,12 @@ function analyser_dtd($loc, $avail, &$dtc)
 	// (utile aussi pour le resultat de la compil)
 	$file = sous_repertoire(_DIR_CACHE_XML);
 	// si DTD locale, ignorer ce repertoire pour le moment
-	if ($avail == 'SYSTEM')
-	  $file = find_in_path($loc);
+	if ($avail == 'SYSTEM'){
+		$file = $loc;
+		if (_DIR_RACINE AND strncmp($file,_DIR_RACINE,strlen(_DIR_RACINE))==0)
+			$file = substr($file,strlen(_DIR_RACINE));
+	  $file = find_in_path($file);
+	}
 	else {
 	  $file .= preg_replace('/[^\w.]/','_', $loc);
 	}
-- 
GitLab