This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
autodoc.pl: Check for misuse of the 'n' flag
authorKarl Williamson <khw@cpan.org>
Wed, 29 May 2019 21:58:20 +0000 (15:58 -0600)
committerKarl Williamson <khw@cpan.org>
Fri, 31 May 2019 00:13:29 +0000 (18:13 -0600)
This flag indicates that the macro has no arguments.  It makes no sense
to use in some situations, which are now checked for.

This commit also documents the long existing 'n' flag.

autodoc.pl
embed.fnc

index 9a2e9ec..43027a7 100644 (file)
@@ -22,6 +22,9 @@
 # indented. The next input line that is a pod directive terminates this 
 # heading-level documentation.
 
+# The meanings of the flags fields in embed.fnc and the source code is
+# documented at the top of embed.fnc.
+
 use strict;
 
 if (@ARGV) {
@@ -225,6 +228,8 @@ removed without notice.\n\n$docs" if $flags =~ /x/;
        # nothing
     } else {
         if ($flags =~ /n/) { # no args
+            warn("n flag without m") unless $flags =~ /m/;
+            warn("n flag but apparently has args") if @args;
             print $fh "\t$ret\t$name";
         } else { # full usage
             my $n            = "Perl_"x$p . $name;
index 4c444ea..54bfbde 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
 :         suppress embed.h entry
 :
 :
+:   n  Has no arguments (used only in =for apidoc entries)
+:
+:      The macro (it can't be a function) is used without any parameters nor
+:      empty parentheses.
 :
 :   O  Has a perl_ compatibility macro.
 :