File 1761-Emit-warnings-when-visible-anchors-with-empty-href-a.patch of Package erlang

From 58e28a859248628c5994ae1415b476f1c450cfa4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20W=C4=85sowski?= <michal@erlang.org>
Date: Tue, 13 Jan 2026 11:57:50 +0100
Subject: [PATCH] Emit warnings when visible anchors with empty href are
 detected

---
 scripts/otp_check_html_links.exs | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/scripts/otp_check_html_links.exs b/scripts/otp_check_html_links.exs
index 76e4fddaf1..a86375abe8 100755
--- a/scripts/otp_check_html_links.exs
+++ b/scripts/otp_check_html_links.exs
@@ -69,23 +69,30 @@ defmodule Anchors do
     nil
   end
 
-  def validate_href(_file, "http://" <> _href, _anchors) do
+  def validate_href(file, href, _anchors, content)
+      when (href === "" or href === :href) and content != [] do
+    warn(file, "found empty href")
     nil
   end
 
-  def validate_href(_file, "https://" <> _href, _anchors) do
+  def validate_href(_file, "http://" <> _href, _anchors, _content) do
     nil
   end
 
-  def validate_href(file, "`" <> _ = href, _anchors) do
+  def validate_href(_file, "https://" <> _href, _anchors, _content) do
+    nil
+  end
+
+  def validate_href(file, "`" <> _ = href, _anchors, _content) do
     warn(file, "found #{href}")
+    nil
   end
 
-  def validate_href(file, <<"#">> <> _anchor = href, anchors) do
-    validate_href(file, Path.basename(file) <> href, anchors)
+  def validate_href(file, <<"#">> <> _anchor = href, anchors, content) do
+    validate_href(file, Path.basename(file) <> href, anchors, content)
   end
 
-  def validate_href(file, href, anchors) do
+  def validate_href(file, href, anchors, _content) do
     target = Path.dirname(file) |> Path.join(href) |> Path.expand()
 
     case String.split(target, "#", parts: 2) do
@@ -142,10 +149,10 @@ defmodule Anchors do
       seen
     else
       Floki.find(document, "a[href]")
-      |> Enum.reduce(seen, fn {_, attr, _}, seen ->
+      |> Enum.reduce(seen, fn {_, attr, content}, seen ->
         href = :proplists.get_value("href", attr)
 
-        case validate_href(file, href, anchors) do
+        case validate_href(file, href, anchors, content) do
           {target, anchor} ->
             {_, seen} =
               Map.get_and_update(seen, target, fn
-- 
2.51.0

openSUSE Build Service is sponsored by