groff-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[groff] 10/14: tmac/doc.tmac: Validate Mt and Lk macro arguments.


From: G. Branden Robinson
Subject: [groff] 10/14: tmac/doc.tmac: Validate Mt and Lk macro arguments.
Date: Sun, 28 Jan 2024 19:55:04 -0500 (EST)

gbranden pushed a commit to branch master
in repository groff.

commit cc485f4d9f8204638528e891798a0acd920b33b2
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Sun Jan 28 14:23:22 2024 -0600

    tmac/doc.tmac: Validate Mt and Lk macro arguments.
---
 ChangeLog     |  4 ++++
 tmac/doc.tmac | 33 ++++++++++++++++++++++++++++++---
 2 files changed, 34 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 3bc7c74d4..40b21dca5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2024-01-28  G. Branden Robinson <g.branden.robinson@gmail.com>
+
+       * tmac/doc.tmac (Mt, Lk): Validate arguments.
+
 2024-01-28  G. Branden Robinson <g.branden.robinson@gmail.com>
 
        * tmac/tests/doc_Mt-works.sh: Test "direct" `Mt` call.
diff --git a/tmac/doc.tmac b/tmac/doc.tmac
index 010b38c3f..c10eb752b 100644
--- a/tmac/doc.tmac
+++ b/tmac/doc.tmac
@@ -6809,7 +6809,24 @@
 .
 .eo
 .de Mt
-.  \" XXX: error handling missing
+.  if !\n[doc-arg-count] \{\
+.    ie \n[.$] \{\
+.      ds doc-macro-name Mt
+.      doc-parse-args \$@
+.    \}
+.    el \
+.      tm Usage: .Mt email_address ... (#\n[.c])
+.  \}
+.
+.  if !\n[doc-arg-count] \
+.    return
+.
+.  if (\n[doc-arg-count] <= \n[doc-arg-ptr]) \{\
+.    tm Usage: .Mt email_address ... (#\n[.c])
+.    doc-reset-args
+.    return
+.  \}
+.
 .  Pa \$@
 ..
 .ec
@@ -6830,13 +6847,23 @@
 .eo
 .de Lk
 .  if !\n[doc-arg-count] \{\
-.    ds doc-macro-name Lk
-.    doc-parse-args \$@
+.    ie \n[.$] \{\
+.      ds doc-macro-name Lk
+.      doc-parse-args \$@
+.    \}
+.    el \
+.      tm Usage: .Lk uri [link_text ...] (#\n[.c])
 .  \}
 .
 .  if !\n[doc-arg-count] \
 .    return
 .
+.  if (\n[doc-arg-count] <= \n[doc-arg-ptr]) \{\
+.    tm Usage: .Lk uri [link_text ...] (#\n[.c])
+.    doc-reset-args
+.    return
+.  \}
+.
 .  \" The first argument is the target URI.
 .  nr doc-arg-ptr +1
 .  ds doc-target-Lk "\*[doc-arg\n[doc-arg-ptr]]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]