From 60fb303622f2e5556c2d70330425520c66c8813e Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Sun, 7 May 2006 08:35:42 +0000
Subject: [PATCH] filtre couper prend en compte les caracteres utf sur 2 octets
 (#255)

---
 ecrire/inc/texte.php | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php
index 25abe37a97..bcd6ad015d 100644
--- a/ecrire/inc/texte.php
+++ b/ecrire/inc/texte.php
@@ -242,6 +242,16 @@ function couper($texte, $taille=50) {
 	// supprimer les tableaux
 	$texte = ereg_replace("(^|\r)\|.*\|\r", "\r", $texte);
 
+	// corriger la longueur de coupe 
+	// en fonction de la presence de caracteres utf
+	if ($GLOBALS['meta']['charset']=='utf-8'){
+		$long = charset2unicode($texte);
+		$long = spip_substr($long, 0, max($taille,1));
+		$nbcharutf = preg_match_all("/(&#[0-9]{3,5};)/",$long,$matches);
+		$taille += $nbcharutf;
+	}
+	
+	
 	// couper au mot precedent
 	$long = spip_substr($texte, 0, max($taille-4,1));
 	$court = ereg_replace("([^[:space:]][[:space:]]+)[^[:space:]]*\n?$", "\\1", $long);
-- 
GitLab