From b442fad027a7446aaa46068ecf180bc2c35b683c Mon Sep 17 00:00:00 2001 From: Dries Buytaert <dries@buytaert.net> Date: Sun, 21 Nov 2004 20:17:44 +0000 Subject: [PATCH] - Patch #13263 and #13265 by arnab: added word-based truncation and made the comment module use it to extract subjects. --- includes/common.inc | 7 ++++++- modules/comment.module | 2 +- modules/comment/comment.module | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/includes/common.inc b/includes/common.inc index dc72c88b9a24..31f3f426d5bf 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -1722,14 +1722,19 @@ function drupal_xml_parser_create(&$data) { * The string to truncate. * @param $len * An upper limit on the returned string length. + * @param $wordsafe + * Flag to truncate at nearest word boundary. Defaults to FALSE. * @return * The truncated string. */ -function truncate_utf8($string, $len) { +function truncate_utf8($string, $len, $wordsafe = FALSE) { $slen = strlen($string); if ($slen <= $len) { return $string; } + if ($wordsafe) { + while (($string[--$len] != ' ') && ($len > 0)) {}; + } if ((ord($string[$len]) < 0x80) || (ord($string[$len]) >= 0xC0)) { return substr($string, 0, $len); } diff --git a/modules/comment.module b/modules/comment.module index fcf05d73a1d7..08f9029aef67 100644 --- a/modules/comment.module +++ b/modules/comment.module @@ -494,7 +494,7 @@ function comment_post($edit) { $edit['subject'] = strip_tags($edit['subject']); if ($edit['subject'] == '') { - $edit['subject'] = truncate_utf8(strip_tags($edit['comment']), 29); + $edit['subject'] = truncate_utf8(strip_tags($edit['comment']), 29, TRUE); } if (!form_get_errors()) { diff --git a/modules/comment/comment.module b/modules/comment/comment.module index fcf05d73a1d7..08f9029aef67 100644 --- a/modules/comment/comment.module +++ b/modules/comment/comment.module @@ -494,7 +494,7 @@ function comment_post($edit) { $edit['subject'] = strip_tags($edit['subject']); if ($edit['subject'] == '') { - $edit['subject'] = truncate_utf8(strip_tags($edit['comment']), 29); + $edit['subject'] = truncate_utf8(strip_tags($edit['comment']), 29, TRUE); } if (!form_get_errors()) { -- GitLab