On 17/03/03 13:20 -0800, Brian Ingerson wrote:
> I am running into some problems though. Like line numbers. It would be
> really handy if they matched my Perl module source file.
I hereby give myself the "Slow Thinker" award. There is really no reason
to invent some crazy line number hack for Inline. You can just put in a
#line 55 "Foo.pm"
line in your C portion and it just works. Of course you'll need to
adjust the number if the code above it shifts, but it's a very easy way
to resolve this deficiency. Why did I never think of this? Are there
others out there who have done this??
Here is an example from a program I'm working on:
package YAML::Loader::Syck;
$VERSION = '0.01';
use strict;
use Inline C => DATA =>
LIBS => '-lsyck',
TYPEMAPS => 'typemap',
NAME => 'YAML::Loader::Syck',
VERSION => '0.01';
__DATA__
__C__
#line 13 "Syck.pm"
#include <syck.h>
...
and here is the output:
/usr/lang/perl/5.8.0/bin/perl
/usr/lang/perl/5.8.0/lib/5.8.0/ExtUtils/xsubpp -typemap
/usr/lang/perl/5.8.0/lib/5.8.0/ExtUtils/typemap -typemap
/home/ingy/dev/cpan/YAML-Syck/typemap -typemap
/home/ingy/dev/cpan/YAML-Syck/typemap Syck.xs > Syck.xsc && mv
Syck.xsc Syck.c
cc -c -I/home/ingy/dev/cpan/YAML-Syck -fno-strict-aliasing
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O3
-DVERSION=\"0.01\" -DXS_VERSION=\"0.01\" -fpic
"-I/usr/lang/perl/5.8.0/lib/5.8.0/i686-linux/CORE" Syck.c
Syck.pm:14: parse error before `...'
Cheers, Brian