From b06087fdcfc51d39fcaa73cd6813eb573251d87f Mon Sep 17 00:00:00 2001 From: st0012 Date: Sun, 14 Jun 2026 17:29:07 +0100 Subject: [PATCH] Avoid detecting encoding comments in documentation text --- lib/rdoc/encoding.rb | 6 +++--- test/rdoc/rdoc_encoding_test.rb | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/rdoc/encoding.rb b/lib/rdoc/encoding.rb index 78dbe87d0c..735bc4d326 100644 --- a/lib/rdoc/encoding.rb +++ b/lib/rdoc/encoding.rb @@ -7,13 +7,13 @@ module RDoc::Encoding - HEADER_REGEXP = /^ + HEADER_REGEXP = /\A (?: - \A\#!.*\n + \#!.*\n | ^\#\s+frozen[-_]string[-_]literal[=:].+\n | - ^\#[^\n]+\b(?:en)?coding[=:]\s*(?[^\s;]+).*\n + ^\#\s*(?:-\*-\s*(?:[^;\n]*;\s*)*)?(?:en)?coding[=:]\s*(?[^:\s;]+).*\n | <\?xml[^?]*encoding=(?["'])(?.*?)\k.*\n )+ diff --git a/test/rdoc/rdoc_encoding_test.rb b/test/rdoc/rdoc_encoding_test.rb index 4a264f5efb..9003a2f9ee 100644 --- a/test/rdoc/rdoc_encoding_test.rb +++ b/test/rdoc/rdoc_encoding_test.rb @@ -155,6 +155,15 @@ def test_class_detect_encoding assert_equal Encoding::UTF_8, encoding end + def test_class_detect_encoding_ignores_documentation_comments + document = "# This document describes a method named #encoding: Returns an object.\n" \ + "# Encoding::US_ASCII.name # => \"US-ASCII\"\n" \ + "# This is a documentation paragraph.\n" \ + "# coding: UTF-8 is example text, not a magic comment.\n" + + assert_nil RDoc::Encoding.detect_encoding document + end + def test_class_set_encoding_bad s = "" encoding = RDoc::Encoding.detect_encoding s