groff-commit
[Top][All Lists]
Advanced

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

[groff] 11/14: [mm]: Add input validation to `P` macro.


From: G. Branden Robinson
Subject: [groff] 11/14: [mm]: Add input validation to `P` macro.
Date: Fri, 6 Jan 2023 16:20:13 -0500 (EST)

gbranden pushed a commit to branch master
in repository groff.

commit 3b1afbdb8ec8252cb1bb417ca1ca91ab6d2f5101
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Fri Jan 6 09:43:47 2023 -0600

    [mm]: Add input validation to `P` macro.
    
    * m.tmac (P): Warn if argument is non-numeric, and discard it.  Also
      warn if argument is out of range; people accustomed to setting the
      `Pt` register to 2 might mistakenly believe it to be meaningful here.
---
 contrib/mm/ChangeLog | 7 +++++++
 contrib/mm/m.tmac    | 8 ++++++++
 2 files changed, 15 insertions(+)

diff --git a/contrib/mm/ChangeLog b/contrib/mm/ChangeLog
index 13f6bb451..faa3e036e 100644
--- a/contrib/mm/ChangeLog
+++ b/contrib/mm/ChangeLog
@@ -1,3 +1,10 @@
+2023-01-06  G. Branden Robinson <g.branden.robinson@gmail.com>
+
+       * m.tmac (P): Warn if argument is non-numeric, and discard it.
+       Also warn if argument is out of range; people accustomed to
+       setting the `Pt` register to 2 might mistakenly believe it to be
+       meaningful here.
+
 2023-01-03  G. Branden Robinson <g.branden.robinson@gmail.com>
 
        * mm/0.MT:
diff --git a/contrib/mm/m.tmac b/contrib/mm/m.tmac
index dca8ccc69..c38ba983b 100644
--- a/contrib/mm/m.tmac
+++ b/contrib/mm/m.tmac
@@ -437,6 +437,14 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%]
 .\"------------
 .\" paragraph
 .de P
+.if \\n[.$] \{
+.      ie !\B'\\$1' \{\
+.              @warning \\$0: expected numeric argument, got '\\$1'
+.              shift
+.      \}
+.      el .if (\\$1 > 1) \
+.              @warning \\$0: ignoring unsupported paragraph type \\$1
+.\}
 .\"    skip P if previous heading
 .if \\n[D]>2 \{\
 .      tm Paragraph nl=\\n[nl], last=\\n[hd*last-pos]



reply via email to

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