summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Williamson <khw@cpan.org>2020-10-22 09:14:15 -0600
committerKarl Williamson <khw@cpan.org>2022-06-17 07:32:40 -0600
commit746dd61624d3d204c6d927134f9988342c15393d (patch)
tree39a78009ab323088d7d9db01fd39cd4739df89ed
parent13c71e252dd585f275d6b3620106def76a243886 (diff)
downloadperl-746dd61624d3d204c6d927134f9988342c15393d.tar.gz
Add '#' flag for autodoc entries
This indicates the symbol is accessed via #ifdef and is not a function or a macro with a returned value
-rw-r--r--autodoc.pl8
-rw-r--r--embed.fnc7
2 files changed, 14 insertions, 1 deletions
diff --git a/autodoc.pl b/autodoc.pl
index 0a8d74597b..65e6f9d969 100644
--- a/autodoc.pl
+++ b/autodoc.pl
@@ -529,13 +529,19 @@ sub autodoc ($$) { # parse a file and extract documentation info
}
die "flag '$1' is not legal (for function $element_name (from $file))"
- if $flags =~ / ( [^AabCDdEeFfGhiIMmNnTOoPpRrSUuWXxy;] ) /x;
+ if $flags =~ / ( [^AabCDdEeFfGhiIMmNnTOoPpRrSsUuWXxy;#] ) /x;
die "'u' flag must also have 'm' or 'y' flags' for $element_name"
if $flags =~ /u/ && $flags !~ /[my]/;
warn ("'$element_name' not \\w+ in '$proto_in_file' in $file")
if $flags !~ /N/ && $element_name !~ / ^ [_[:alpha:]] \w* $ /x;
+ if ($flags =~ /#/) {
+ die "Return type must be empty for '$element_name'"
+ if $ret_type;
+ $ret_type = '#ifdef';
+ }
+
if (exists $seen{$element_name} && $flags !~ /h/) {
die ("'$element_name' in $file was already documented in $seen{$element_name}");
}
diff --git a/embed.fnc b/embed.fnc
index e741953c02..66f2b96d4b 100644
--- a/embed.fnc
+++ b/embed.fnc
@@ -558,6 +558,13 @@
: ; autodoc.pl adds a terminating semi-colon to the usage example in the
: documentation.
:
+: # The number sign flag indicates that this is a pre-processor symbol that
+: is just #define'd or #undef'd. (Mnemonic: The ';' indicates the end of
+: statement, with no definition to follow the symbol name.
+:
+: ? The question mark flag is used internally by Devel::PPPort to indicate
+: that it does not have enough information to generate a proper test case.
+:
: In this file, pointer parameters that must not be passed NULLs should be
: prefixed with NN.
: