From b22376c5fb40c9f2cc9f9bbcada0f47241cf1055 Mon Sep 17 00:00:00 2001
From: Yanis HAMOUDI <yanis.hamoudi@etu.u-pec.fr>
Date: Fri, 14 Mar 2025 20:30:33 +0100
Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20de=20la=20gestion=20des=20l?=
 =?UTF-8?q?ignes=20de=20continuation=20dans=20BakefileParser=20pour=20cons?=
 =?UTF-8?q?erver=20le=20contenu=20entier=20et=20ajuster=20l'ajout=20d'espa?=
 =?UTF-8?q?ces=20apr=C3=A8s=20certains=20op=C3=A9rateurs.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/fr/monlouyan/bakefile/BakefileParser.java | 51 +++++++++++--------
 1 file changed, 31 insertions(+), 20 deletions(-)

diff --git a/src/fr/monlouyan/bakefile/BakefileParser.java b/src/fr/monlouyan/bakefile/BakefileParser.java
index a6f5a54..b95728f 100644
--- a/src/fr/monlouyan/bakefile/BakefileParser.java
+++ b/src/fr/monlouyan/bakefile/BakefileParser.java
@@ -87,26 +87,37 @@ public class BakefileParser {
 	 * @return La ligne combinée
 	 */
     private String handleContinuationLines(List<String> lines, int startIndex) {
-        StringBuilder combinedLine = new StringBuilder();
-        int i = startIndex;
-        
-        while (i < lines.size()) {
-            String line = lines.get(i);
-            Matcher contMatcher = CONTINUATION_PATTERN.matcher(line);
-            
-            if (contMatcher.matches()) {
-                // Ajouter la ligne sans le backslash
-                combinedLine.append(contMatcher.group(1).trim()).append(" ");
-                i++;
-            } else {
-                // Ajouter la dernière ligne et sortir
-                combinedLine.append(line.trim());
-                break;
-            }
-        }
-        
-        return combinedLine.toString();
-    }
+		StringBuilder combinedLine = new StringBuilder();
+		int i = startIndex;
+		
+		while (i < lines.size()) {
+			String line = lines.get(i);
+			Matcher contMatcher = CONTINUATION_PATTERN.matcher(line);
+			
+			if (contMatcher.matches()) {
+				// Ajouter la ligne sans le backslash mais conserver le contenu entier
+				// Ne pas ajouter d'espace après certains opérateurs comme &&
+				String content = contMatcher.group(1);
+				combinedLine.append(content);
+				
+				// Si la ligne ne se termine pas déjà par un opérateur tel que &&, ajouter un espace
+				if (!content.trim().endsWith("&&") && !content.trim().endsWith("|") && 
+					!content.trim().endsWith(";")) {
+					combinedLine.append(" ");
+				} else {
+					// Si elle se termine par &&, |, ou ;, ajouter juste un espace après
+					combinedLine.append(" ");
+				}
+				i++;
+			} else {
+				// Ajouter la dernière ligne et sortir
+				combinedLine.append(line.trim());
+				break;
+			}
+		}
+		
+		return combinedLine.toString();
+	}
 
 	/**
 	 * Remplacer les variables dans une chaîne.