=item B<-P>, B<--omit-pod>
-Omit the autogenerated stub POD section.
+Omit the autogenerated stub POD section.
=item B<-X>, B<--omit-XS>
=item B<-g>, B<--global>
-Include code for safely storing static data in the .xs file.
+Include code for safely storing static data in the .xs file.
Extensions that do no make use of static data can ignore this option.
=item B<-h>, B<-?>, B<--help>
# Extension is ONC::RPC.
h2xs -cfn ONC::RPC
-
+
# Extension is Lib::Foo which works at least with Perl5.005_03.
# Constants are created for all #defines and enums h2xs can find
# in foo.h.
# whose names do not start with 'bar_'.
h2xs -b 5.5.3 -e '^bar_' -n Lib::Foo foo.h
- # Makefile.PL will look for library -lrpc in
+ # Makefile.PL will look for library -lrpc in
# additional directory /opt/net/lib
h2xs rpcsvc/rusers -L/opt/net/lib -lrpc
# Extension is DCE::rgynbase
# prefix "sec_rgy_" is dropped from perl function names
- # subroutines are created for sec_rgy_wildcard_name and
+ # subroutines are created for sec_rgy_wildcard_name and
# sec_rgy_wildcard_sid
h2xs -n DCE::rgynbase -p sec_rgy_ \
-s sec_rgy_wildcard_name,sec_rgy_wildcard_sid dce/rgynbase
# visible from perl.h. Name of the extension is perl1.
# When scanning perl.h, define -DEXT=extern -DdEXT= -DINIT(x)=
# Extra backslashes below because the string is passed to shell.
- # Note that a directory with perl header files would
+ # Note that a directory with perl header files would
# be added automatically to include path.
h2xs -xAn perl1 -F "-DEXT=extern -DdEXT= -DINIT\(x\)=" perl.h
from the XS file.
-d, --debugging Turn on debugging messages.
-e, --omit-enums Omit constants from enums in the constant() function.
- If a pattern is given, only the matching enums are
+ If a pattern is given, only the matching enums are
ignored.
-f, --force Force creation of the extension even if the C header
does not exist.
- -g, --global Include code for safely storing static data in the .xs file.
+ -g, --global Include code for safely storing static data in the .xs file.
-h, -?, --help Display this help message
-k, --omit-const-func Omit 'const' attribute on function arguments
(used with -x).
}
if (!$opt_c) {
- die "Can't find $tmp_path_h in @dirs\n"
+ die "Can't find $tmp_path_h in @dirs\n"
if ( ! $opt_f && ! -f "$rel_path_h" );
# Scan the header file (we should deal with nested header files)
# Record the names of simple #define constants into const_names
defines:
while (<CH>) {
if ($pre_sub_tri_graphs) {
- # Preprocess all tri-graphs
+ # Preprocess all tri-graphs
# including things stuck in quoted string constants.
s/\?\?=/#/g; # | ??=| #|
s/\?\?\!/|/g; # | ??!| ||
my $src = do { local $/; <CH> };
close CH;
no warnings 'uninitialized';
-
- # Remove C and C++ comments
+
+ # Remove C and C++ comments
$src =~ s#/\*[^*]*\*+([^/*][^*]*\*+)*/|("(\\.|[^"\\])*"|'(\\.|[^'\\])*'|.[^/"'\\]*)#$2#gs;
-
+
while ($src =~ /(\benum\s*([\w_]*)\s*\{\s([\s\w=,]+)\})/gsc) {
- my ($enum_name, $enum_body) =
+ my ($enum_name, $enum_body) =
$1 =~ /enum\s*([\w_]*)\s*\{\s([\s\w=,]+)\}/gs;
# skip enums matching $opt_e
next if $opt_e && $enum_name =~ /$opt_e/;
my $fallbackdirname = 'fallback';
my $ext = chdir 'ext' ? 'ext/' : '';
-
+
my @modparts = split(/::/,$module);
my $modpname = join('-', @modparts);
my $modfname = pop @modparts;
my $modpmdir = join '/', 'lib', @modparts;
my $modpmname = join '/', $modpmdir, $modfname.'.pm';
-
+
if ($opt_O) {
warn "Overwriting existing $ext$modpname!!!\n" if -e $modpname;
}
$n = keys %td;
my ($k, $v);
while (($k, $v) = each %seen_define) {
- # print("found '$k'=>'$v'\n"),
+ # print("found '$k'=>'$v'\n"),
$bad_macs{$k} = $td{$k} = $td{$v} if exists $td{$v};
}
}
# Determine @ISA.
my @modISA;
-push @modISA, 'Exporter' unless $skip_exporter;
+push @modISA, 'Exporter' unless $skip_exporter;
push @modISA, 'DynaLoader' if $use_Dyna; # no XS
my $myISA = "our \@ISA = qw(@modISA);";
$myISA =~ s/^our // if $compat_version < 5.006;
croak("Size \%d of packed data != expected \%d",
len, sizeof(THIS));
RETVAL = ($name *)s;
- }
+ }
else
croak("THIS is not of type $name");
OUTPUT:
next unless -e $typemap ;
# skip directories, binary files etc.
warn " Scanning $typemap\n";
- warn("Warning: ignoring non-text typemap file '$typemap'\n"), next
+ warn("Warning: ignoring non-text typemap file '$typemap'\n"), next
unless -T $typemap ;
- open(TYPEMAP, $typemap)
+ open(TYPEMAP, $typemap)
or warn ("Warning: could not open typemap file '$typemap': $!\n"), next;
my $mode = 'Typemap';
while (<TYPEMAP>) {
my $do_keep_deep_const = shift;
# If $do_keep_deep_const this is heuristical only
my $keep_deep_const = ($do_keep_deep_const ? '\b(?![^(,)]*\*)' : '');
- my $ignore_mods
+ my $ignore_mods
= "(?:\\b(?:(?:__const__|const)$keep_deep_const|static|inline|__inline__)\\b\\s*)*";
if ($do_keep_deep_const) { # Keep different compiled /RExen/o separately!
$type =~ s/$ignore_mods//go;
$type =~ s/\* (?=\*)/*/g;
$type =~ s/\. \. \./.../g;
$type =~ s/ ,/,/g;
- $types_seen{$type}++
+ $types_seen{$type}++
unless $type eq '...' or $type eq 'void' or $std_types{$type};
$type;
}
print "# pass: \$\@";
} else {
print "# fail: \$\@";
- \$fail = 1;
+ \$fail = 1;
}
}
if (\$fail) {