[sword-devel] SWIG Perl

Joachim Ansorg sword-devel@crosswire.org
Mon, 20 Jan 2003 03:29:29 +0100


--------------Boundary-00=_5XQZTELU6WT38111M82Y
Content-Type: text/plain;
  charset="iso-8859-15"
Content-Transfer-Encoding: quoted-printable

Perl normally assumes that you call a function like

sub mysub {
=09my $self =3D shift; # or use $_[0];
=09my $class =3D $self->someFunction();
}
In this example someFunction is called with one parameter, the class it=20
belongs to! Strange but sometime useful!

I looked into Sword.pm, the declaration of zCom::createModule is at line =
971.
First try to craete the module using RawText. If this works try to use zC=
om.

In the example I used
        Sword::RawCom::createModule("data/modules/comments/rawcom/mak") |=
| die=20
"Couldn't create the RawCom module!";=20
        my $mod =3D Sword::RawCom->new("data/modules/comments/rawcom/mak"=
);

The last call is of the type I mentioned above, it wants two parameters (=
self=20
and path), but since you call it from Sword::RawCom you have to pass only=
 the=20
path parameter.

Have a look into the example, it's a working script. I attached a small p=
iece=20
of text data which is in the format create_mak.pl wants to have.

Simply copy the file (keeping the name) into the dir where the script is,=
=20
change into this dir and run the script. The created new module will be i=
n=20
mak.zip.

If you need help let me know. It works pretty well for me.

Joachim

> OK, the class is in the zcom.i file but after I build SWIG and install
> Perl it does not show up in the Sword.pm file.  So ever time I try and
> use it, Perl can't find that function.  And when I try and create a
> RawText module or other modules I get this message.
>
> Usage: RawText_createModule(self,path);
>
> It seems that the function is looking for two arguments (self, path).  =
I
> know that path is where I want the module but what is the self.
> Furthermore this is not how it is set up in the rawtext.i file.  It
> shows only one argument.  Do you have any more things I can try?
>
> Thanks
> Chad
>
> On Sun, 2003-01-19 at 17:34, Joachim Ansorg wrote:
> > Normally build it with
> >
> > cd bindings/swig
> > ./configure
> > make
> > cd perl;
> > make install
> >
> > The make install is important, otherwise the Sword module is not
> > available and can't load the shared lib.
> >
> > Have a look into the .i files which functions are available in which
> > classes. Basically it's most of the things available in
> > sword-cvs/doc/api-documentation/
> >
> > If you need some missing classes let me know.
> >
> > Let me know how it works,
> > Joachim
> >
> > > That did not work.  I get a message when I try creating an zCom mod=
ule
> > > in Perl.
> > >
> > > Can't locate auto/Sword/zCom/createModul.al in @INC
> > >
> > > I don't find zCom::createModule in the Sword.pm file.  Did I build =
SWIG
> > > Perl wrong or something.
> > >
> > > Thanks
> > > Chad
> > >
> > > On Sun, 2003-01-19 at 05:25, Joachim Ansorg wrote:
> > > > Chad,
> > > > Have a look at the following messy Perl script. It was never inte=
nded
> > > > for a release, so the code isn't very good. At the end you'll see=
 how
> > > > I created a compressed commentary module using the Swig bindings.
> > > >
> > > > If you need more help let me know.
> > > >
> > > > Joachim
> > > >
> > > > > Can someone tell me how to create a module in SWIG Perl?  I try=
 and
> > > > > follow the example given but I get an error message like this:
> > > > >
> > > > > Usage: xText_createModule(self,path,blockBound);
> > > > >
> > > > > Can any one help?
> > > > >
> > > > > Thanks
> > > > > Chad
> > > > >
> > > > > _______________________________________________
> > > > > sword-devel mailing list
> > > > > sword-devel@crosswire.org
> > > > > http://www.crosswire.org/mailman/listinfo/sword-devel
> > > >
> > > > --
> > > > Joachim Ansorg
> > > > www.bibletime.info
> > > > www.ansorgs.de
> > > >
> > > > ----
> > > >
> > > >
> > > > #!/usr/bin/perl
> > > >
> > > > use Sword; #Use the Sword bindings for Perl
> > > > use Encode;
> > > > use File::Path;
> > > > use Cwd;
> > > > use strict;
> > > >
> > > > # Parameters:
> > > > #=091. The modules
> > > > #=092. The key as english string
> > > > #=093. The data as string
> > > >
> > > > sub writeData {
> > > > =09my $mod =3D shift;
> > > > =09my $key =3D shift;
> > > > =09my $data =3D shift;
> > > >
> > > > =09# We have to parse the key to be able to write a range to the =
module
> > > > =09# The first entry is written using the data, ther others are w=
ritten
> > > > as links my $vk =3D Sword::VerseKey->new();
> > > > =09$vk->setLocale("de");
> > > >
> > > > =09my $list =3D $vk->ParseVerseList($key, "Genesis 1:1", 1); # "1=
" to
> > > > parse ranges! for (my $i =3D 0; $i < $list->Count(); $i++) {
> > > > =09=09my $sw_key=3D $list->GetElement($i);
> > > > =09=09if (my $rangeKey =3D $sw_key->toVerseKey()) {
> > > > =09=09=09# write the data to the first key and link the others to=
 this
> > > > first one my $k =3D $rangeKey->LowerBound();
> > > > =09=09=09print "\tWriting to " . $k->getText() . "\n";
> > > > =09=09=09$mod->SetKey($k);
> > > > =09=09=09$mod->write($data);
> > > >
> > > > =09=09=09$k->next();
> > > > =09=09=09# go up until we reach UpperBound and link each entry to=
 the
> > > > LowerBound while(($k->compare($rangeKey->UpperBound()) =3D=3D -1)=
) { #as
> > > > long as $k is before UpperBound $mod->SetKey($k);
> > > > =09=09=09=09$mod->writeLink($rangeKey->LowerBound());
> > > > =09=09=09=09print "\t\t" . $k->getText() . ": linking to ".
> > > > $sw_key->getText() . "\n"; $k->next();
> > > > =09=09=09}
> > > > =09=09=09#we reached the last entry
> > > > =09=09=09#$mod->writeLink($rangeKey->LowerBound());
> > > > =09=09=09print "\t\t" . $k->getText() . ": linking to ". $sw_key-=
>getText()
> > > > . "\n"; }
> > > > =09=09else {
> > > > =09=09=09print "\tWriting single key to " . $sw_key->getText() . =
"\n";
> > > > =09=09=09$mod->SetKey($sw_key);
> > > > =09=09=09$mod->write($data);
> > > > =09=09}
> > > > =09}
> > > >
> > > > =09#print out the list
> > > > };
> > > >
> > > > sub convert_key {
> > > > =09my $key =3D shift;
> > > > =09$key =3D~ s/,/:/g;
> > > > =09$key =3D~ s/(\d)\./$1. /;
> > > > =09if ($key =3D~ /[^0-9]$/) {
> > > > =09=09die "Invalid key $key"
> > > > =09};
> > > >
> > > > =09return $key;
> > > > };
> > > >
> > > > sub format_content {
> > > > =09my $key =3D shift;
> > > > =09my $date =3D shift;
> > > > =09my $data =3D shift;
> > > > =09# Format the data in the following way:
> > > > =09# Datum: $date
> > > > =09# Stelle: <scripRef passage=3D"$englishKey">$key</scripRef>
> > > > =09# <BR>
> > > > =09# $data
> > > >
> > > > =09#Fix existing scripRefs
> > > > =09# 1. Remove newlines within scripRef tags
> > > > =09$data =3D~ s/<scripRef[\n\s]?(.+?)\n(.+?)>/<scripRef $1 $2>/gi=
;
> > > > =09# 2. Remove version=3D".+?" parts
> > > > =09$data =3D~ s|<scripRef (.+?)version=3D".+?"(.+?)>|<scripRef $1=
 $2>|gis;
> > > > =09# 3. Beautify scripRefs, e.g. remove trailing spaces
> > > > =09$data =3D~ s|<scripRef (.+?)\s+>|<scripRef $1>|gis;
> > > >
> > > >
> > > > =09my $ret =3D '<FONT color=3D"#800000"><B>Datum:</B> ' . $date .
> > > > '</FONT><BR>';
> > > >
> > > > =09my $vk =3D Sword::VerseKey->new();
> > > > =09$vk->setLocale("de");
> > > > =09$vk->setText($key);
> > > > =09#$vk->setLocale("en");
> > > >
> > > > =09my $rangeText =3D undef;
> > > > =09my $list =3D $vk->ParseVerseList($key, "Genesis 1:1", 1); # "1=
" to
> > > > parse ranges! for (my $i =3D 0; $i < $list->Count(); $i++) {
> > > > =09=09my $sw_key=3D $list->GetElement($i);
> > > > =09=09if (my $rangeKey =3D $sw_key->toVerseKey()) {
> > > > =09=09=09$rangeKey->setLocale("en");
> > > > =09=09=09# write the data to the first key and link the others to=
 this
> > > > first one if(
> > > > $rangeKey->LowerBound()->compare($rangeKey->UpperBound()) =3D=3D =
-1 ) {
> > > > #as long as $k is before UpperBound $rangeText .=3D
> > > > $rangeKey->LowerBound()->getText() . "-" .
> > > > $rangeKey->UpperBound()->getText() . ";"; }
> > > > =09=09}
> > > > =09=09else {
> > > > =09=09=09$vk->setLocale("de");
> > > > =09=09=09$vk->setText($sw_key->getText());
> > > > =09=09=09$vk->setLocale("en");
> > > > =09=09=09$rangeText .=3D $vk->getText();
> > > > =09=09}
> > > > =09}
> > > >
> > > >
> > > > =09$ret .=3D '<FONT color=3D"#800000"><B>Stelle:</B> ' . '<scripR=
ef
> > > > passage=3D"' . $rangeText .'">' . $key . '</scripRef></FONT>'; $r=
et .=3D
> > > > '<BR><P align=3D"justify">' . $data . '</P>';
> > > >
> > > > =09#Finally change all possible characters into UTF-8 so it will =
work
> > > > on any platform Encode::from_to($ret, "iso-8859-15", "utf-8");
> > > > =09return $ret;
> > > > };
> > > >
> > > > # This function created the module configuration file for the MAK
> > > > module sub create_config {
> > > > =09my $path =3D shift;
> > > > =09my $filename =3D shift;
> > > >
> > > > =09mkpath("$path");
> > > > =09open(OUT, "> $path/$filename");
> > > >
> > > > =09print OUT <<'EOF';
> > > > [MAK]
> > > > DataPath=3D./modules/comments/rawcom/mak/
> > > > ModDrv=3DRawCom
> > > > SourceType=3DThML
> > > > Encoding=3DUTF-8
> > > > Lang=3Dde
> > > > MinimumVersion=3D1.5.2
> > > > Version=3D1.0
> > > > History_1.0=3D2002-11-24 -- Major update. Many new comments, upda=
ted
> > > > format, changed encoding to UTF-8, fixed existing scripRefs
> > > > History_0.9=3D2000-07-29 -- First official version -- ThML-Tags f=
or
> > > > scripture ref SwordVersionDate=3D2002-11-24
> > > > Description=3DMatthias Ansorgs Kommentar
> > > > About=3DMatthias Ansorgs Kommentar zur Bibel\par\
> > > > Der Kommentar wurde von Matthias Ansorg geschrieben.\par\
> > > > Kontakt: matthias@ansorgs.de
> > > > TextSource=3DMatthias Ansorg,matthias@ansorgs.de
> > > > LCSH=3DBible--Commentaries, German.
> > > > DistributionLicense=3DPublic Domain
> > > > EOF
> > > > =09close(OUT);
> > > > };
> > > >
> > > >
> > > >
> > > > sub write_module {
> > > > =09Sword::LocaleMgr::getSystemLocaleMgr()->setDefaultLocaleName("=
de");
> > > >
> > > > =09my $file =3D shift;
> > > > =09open(IN, $file) || die "Can't open file $file\n";
> > > >
> > > > =09my $key =3D undef;
> > > > =09my $date =3D undef;
> > > > =09my $comment =3D undef;
> > > >
> > > > =09#Create the directories where the module should be created
> > > > =09mkpath("data/modules/comments/rawcom/mak");
> > > > =09#LocaleMgr()->setDefaultLocaleName("de");
> > > >
> > > >
> > > > =09#Sword::zCom::createModule("data/modules/comments/rawcom/mak",=
4) ||
> > > > die "Couldn't create the zCom module!";
> > > > Sword::RawCom::createModule("data/modules/comments/rawcom/mak") |=
|
> > > > die "Couldn't create the zCom module!"; #my $compressor =3D
> > > > Sword::LZSSCompress->new();
> > > > =09#my $mod =3D Sword::zCom->new("data/modules/comments/rawcom/ma=
k", 0,
> > > > 0, 4, $compressor ); #blocktype =3D 4, compressor type is
> > > > LZSSCompression my $mod =3D
> > > > Sword::RawCom->new("data/modules/comments/rawcom/mak");
> > > > $mod->setSkipConsecutiveLinks(0);
> > > >
> > > > =09while (<IN>) {
> > > > =09=09if (/^Text:\s?(.+?)\n/) { #The start if a new entry was fou=
nd
> > > > =09=09=09if ($key && $date && $comment) { #write the found commen=
t to disk
> > > > =09=09=09=09$key =3D convert_key($key);
> > > > =09=09=09=09print "Found: " . $key. "\n";
> > > > =09=09=09=09my $data =3D format_content($key, $date, $comment);
> > > > =09=09=09=09writeData($mod, $key, $data);
> > > > =09=09=09};
> > > >
> > > > =09=09=09$key =3D $1;
> > > > =09=09=09$date =3D undef;
> > > > =09=09=09$comment =3D undef;
> > > > =09=09}
> > > > =09=09elsif (/^Datum:\s?(.+?)\n/) {
> > > > =09=09=09$date =3D $1;
> > > > =09=09}
> > > > =09=09else {
> > > > =09=09=09$comment .=3D $_;
> > > > =09=09};
> > > > =09};
> > > > =09#write the last entry into the module
> > > > =09if ($key && $date && $comment) { #write the found comment to d=
isk
> > > > =09=09$key =3D convert_key($key);
> > > > =09=09print "Found: " . $key. "\n";
> > > > =09=09my $data =3D format_content($key, $date, $comment);
> > > > =09=09writeData($mod, $key, $data);
> > > > =09};
> > > >
> > > > =09close(IN);
> > > > };
> > > >
> > > > sub zip_module {
> > > > =09my $path =3D shift;
> > > > =09my $filename =3D shift;
> > > >
> > > > =09my $start_dir =3D getcwd();
> > > > =09unlink("$filename");
> > > > =09chdir("$path");
> > > >
> > > > =09system("chmod -R a+r+X $start_dir/$path");
> > > >
> > > > =09# Call zip command to compress all files in the current direct=
ory
> > > > =09my $ret =3D system( "zip -q -9 -r $start_dir/$filename *");
> > > > =09chdir($start_dir);
> > > > =09rmtree("$start_dir/data/");
> > > >
> > > > =09print "Zipped module data files are in the ZIP archive $filena=
me\n";
> > > >
> > > > =09return $ret;
> > > > }
> > > >
> > > > #main part
> > > > create_config("data/mods.d/", "mak.conf");
> > > > write_module("stilleZeit.Kommentare.txt");
> > > > zip_module("data", "mak.zip");
> > > > create_config(".", "mak.conf");
> > >
> > > _______________________________________________
> > > sword-devel mailing list
> > > sword-devel@crosswire.org
> > > http://www.crosswire.org/mailman/listinfo/sword-devel
> >
> > --
> > Joachim Ansorg
> > www.bibletime.info
> > www.ansorgs.de
> > _______________________________________________
> > sword-devel mailing list
> > sword-devel@crosswire.org
> > http://www.crosswire.org/mailman/listinfo/sword-devel
>
> _______________________________________________
> sword-devel mailing list
> sword-devel@crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel

--=20
Joachim Ansorg
www.bibletime.info
www.ansorgs.de
--------------Boundary-00=_5XQZTELU6WT38111M82Y
Content-Type: text/x-perl;
  charset="iso-8859-15";
  name="create_mak.pl"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="create_mak.pl"

#!/usr/bin/perl

use Sword; #Use the Sword bindings for Perl
use Encode;
use File::Path;
use Cwd;
use strict;

# Parameters:
#	1. The modules
#	2. The key as english string
#	3. The data as string

sub writeData {
	my $mod = shift;
	my $key = shift;
	my $data = shift;

	# We have to parse the key to be able to write a range to the module
	# The first entry is written using the data, ther others are written as links
	my $vk = Sword::VerseKey->new();
	$vk->setLocale("de");

	my $list = $vk->ParseVerseList($key, "Genesis 1:1", 1); # "1" to parse ranges!
	for (my $i = 0; $i < $list->Count(); $i++) {
		my $sw_key= $list->GetElement($i);
		if (my $rangeKey = $sw_key->toVerseKey()) {
			# write the data to the first key and link the others to this first one
			my $k = $rangeKey->LowerBound();
			print "\tWriting to " . $k->getText() . "\n";
			$mod->SetKey($k);
			$mod->write($data);

			$k->next();
			# go up until we reach UpperBound and link each entry to the LowerBound
			while(($k->compare($rangeKey->UpperBound()) == -1)) { #as long as $k is before UpperBound
				$mod->SetKey($k);
				$mod->writeLink($rangeKey->LowerBound());
				print "\t\t" . $k->getText() . ": linking to ". $sw_key->getText() . "\n";
				$k->next();
			}
			#we reached the last entry
			#$mod->writeLink($rangeKey->LowerBound());
			print "\t\t" . $k->getText() . ": linking to ". $sw_key->getText() . "\n";
		}
		else {
			print "\tWriting single key to " . $sw_key->getText() . "\n";
			$mod->SetKey($sw_key);
			$mod->write($data);
		}
	}

	#print out the list
};

sub convert_key {
	my $key = shift;
	$key =~ s/,/:/g;
	$key =~ s/(\d)\./$1. /;
	if ($key =~ /[^0-9]$/) {
		die "Invalid key $key"
	};

	return $key;
};

sub format_content {
	my $key = shift;
	my $date = shift;
	my $data = shift;
	# Format the data in the following way:
	# Datum: $date
	# Stelle: <scripRef passage="$englishKey">$key</scripRef>
	# <BR>
	# $data

	#Fix existing scripRefs
	# 1. Remove newlines within scripRef tags
	$data =~ s/<scripRef[\n\s]?(.+?)\n(.+?)>/<scripRef $1 $2>/gi;
	# 2. Remove version=".+?" parts
	$data =~ s|<scripRef (.+?)version=".+?"(.+?)>|<scripRef $1 $2>|gis;
	# 3. Beautify scripRefs, e.g. remove trailing spaces
	$data =~ s|<scripRef (.+?)\s+>|<scripRef $1>|gis;


	my $ret = '<FONT color="#800000"><B>Datum:</B> ' . $date . '</FONT><BR>';

	my $vk = Sword::VerseKey->new();
	$vk->setLocale("de");
	$vk->setText($key);
	#$vk->setLocale("en");

	my $rangeText = undef;
	my $list = $vk->ParseVerseList($key, "Genesis 1:1", 1); # "1" to parse ranges!
	for (my $i = 0; $i < $list->Count(); $i++) {
		my $sw_key= $list->GetElement($i);
		if (my $rangeKey = $sw_key->toVerseKey()) {
			$rangeKey->setLocale("en");
			# write the data to the first key and link the others to this first one
			if( $rangeKey->LowerBound()->compare($rangeKey->UpperBound()) == -1 ) { #as long as $k is before UpperBound
				$rangeText .= $rangeKey->LowerBound()->getText() . "-" . $rangeKey->UpperBound()->getText() . ";";
			}
		}
		else {
			$vk->setLocale("de");
			$vk->setText($sw_key->getText());
			$vk->setLocale("en");
			$rangeText .= $vk->getText();
		}
	}


	$ret .= '<FONT color="#800000"><B>Stelle:</B> ' . '<scripRef passage="' . $rangeText .'">' . $key . '</scripRef></FONT>';
	$ret .= '<BR><P align="justify">' . $data . '</P>';

	#Finally change all possible characters into UTF-8 so it will work on any platform
	Encode::from_to($ret, "iso-8859-15", "utf-8");
	return $ret;
};

# This function created the module configuration file for the MAK module
sub create_config {
	my $path = shift;
	my $filename = shift;
	
	mkpath("$path");
	open(OUT, "> $path/$filename");

	print OUT <<'EOF';
[MAK]
DataPath=./modules/comments/rawcom/mak/
ModDrv=RawCom
SourceType=ThML
Encoding=UTF-8
Lang=de
MinimumVersion=1.5.2
Version=1.0
History_1.0=2002-11-24 -- Major update. Many new comments, updated format, changed encoding to UTF-8, fixed existing scripRefs
History_0.9=2000-07-29 -- First official version -- ThML-Tags for scripture ref
SwordVersionDate=2002-11-24
Description=Matthias Ansorgs Kommentar
About=Matthias Ansorgs Kommentar zur Bibel\par\
Der Kommentar wurde von Matthias Ansorg geschrieben.\par\
Kontakt: matthias@ansorgs.de
TextSource=Matthias Ansorg,matthias@ansorgs.de
LCSH=Bible--Commentaries, German.
DistributionLicense=Public Domain
EOF
	close(OUT);
};



sub write_module {
	Sword::LocaleMgr::getSystemLocaleMgr()->setDefaultLocaleName("de");

	my $file = shift;
	open(IN, $file) || die "Can't open file $file\n";

	my $key = undef;
	my $date = undef;
	my $comment = undef;

	#Create the directories where the module should be created
	mkpath("data/modules/comments/rawcom/mak");
	#LocaleMgr()->setDefaultLocaleName("de");


	#Sword::zCom::createModule("data/modules/comments/rawcom/mak",4) || die "Couldn't create the zCom module!";
	Sword::RawCom::createModule("data/modules/comments/rawcom/mak") || die "Couldn't create the zCom module!";
	#my $compressor = Sword::LZSSCompress->new();
	#my $mod = Sword::zCom->new("data/modules/comments/rawcom/mak", 0, 0, 4, $compressor ); #blocktype = 4, compressor type is LZSSCompression
	my $mod = Sword::RawCom->new("data/modules/comments/rawcom/mak");
	$mod->setSkipConsecutiveLinks(0);

	while (<IN>) {
		if (/^Text:\s?(.+?)\n/) { #The start if a new entry was found
			if ($key && $date && $comment) { #write the found comment to disk
				$key = convert_key($key);
				print "Found: " . $key. "\n";
				my $data = format_content($key, $date, $comment);
				writeData($mod, $key, $data);
			};

			$key = $1;
			$date = undef;
			$comment = undef;
		}
		elsif (/^Datum:\s?(.+?)\n/) {
			$date = $1;
		}
		else {
			$comment .= $_;
		};
	};
	#write the last entry into the module
	if ($key && $date && $comment) { #write the found comment to disk
		$key = convert_key($key);
		print "Found: " . $key. "\n";
		my $data = format_content($key, $date, $comment);
		writeData($mod, $key, $data);
	};

	close(IN);
};

sub zip_module {
	my $path = shift;
	my $filename = shift;

	my $start_dir = getcwd();
	unlink("$filename");
	chdir("$path");
	
	system("chmod -R a+r+X $start_dir/$path");

	# Call zip command to compress all files in the current directory
	my $ret = system( "zip -q -9 -r $start_dir/$filename *");
	chdir($start_dir);
	rmtree("$start_dir/data/");

	print "Zipped module data files are in the ZIP archive $filename\n";

	return $ret;
}

#main part
create_config("data/mods.d/", "mak.conf");
write_module("stilleZeit.Kommentare.txt");
zip_module("data", "mak.zip");
create_config(".", "mak.conf");

--------------Boundary-00=_5XQZTELU6WT38111M82Y
Content-Type: text/plain;
  charset="iso-8859-15";
  name="stilleZeit.Kommentare.txt"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment; filename="stilleZeit.Kommentare.txt"

Text: Lukas 12,2-3
Datum: 19.10.1998

Das Gericht wird einst alle Verfehlungen der Menschen hervorholen und blo=
=DFstellen. Doch was den
Gl=E4ubigen durch Jesus vergeben ist, wird nicht mehr hervorgeholt werden=
, denn diese Anklageschrift
ist zerrissen. Darum m=FCssen Christen das kommende Gericht nicht f=FCrch=
ten.


=BBFreunde=AB gebraucht der HERR hier als Anrede f=FCr SEINE J=FCnger, de=
nn an dies sind die Verse 1-12
gerichtet (Lk.12,1). Joh.15,14: "Ihr seid meine Freunde, wenn ihr alles t=
ut, was irgend ich euch
geboten habe." Das Gegenteil eines  Freundes Jesu wird in Jakobus 4,4 def=
iniert: "Wer nun irgend
ein Freund der Welt sein will, stellt sich als Feind Gottes dar."


Text: Lukas 12,4
Datum: 19.10.1998

Der HERR zeigt, dass sich Seele und Leib im Tod trennen. Vgl. auch 1.Mo.3=
5,18. Es ist ein Befehl
des HERRN, dass wir Menschen nicht f=FCrchten sollen - demnach ist Mensch=
enfurcht Ungehorsam
gegen=FCber IHM.


Text: Lukas 12,5
Datum: 19.10.1998

Der HERR will nicht, dass wir die H=F6lle und das Gericht f=FCrchten, son=
dern dass wir Ehrfurcht vor
Gott haben, der die Gewalt hat zu richten. Solche Furcht vor dem HERRN bi=
ldet =BBder Erkenntnis
Anfang=AB (Spr.1,7). Aus dieser Ehrfurcht resultiert eine heilige Scheu d=
avor, Gott zu betr=FCben, der
uns so sehr liebt.


Text: Lukas 12,6-7
Datum: 19.10.1998

Phil.4,6: "In allem lasst durch Gebet und Flehen mit Danksagung eure Anli=
egen vor Gott
kundwerden." Auch unsere geringsten Anliegen sind vor Gott nicht zu gerin=
g, sondern ER ist so gro=DF,
dass ER selbst auf jeden einzelnen Sperling achtgibt.


Text: Lukas 12,10
Datum: 19.10.1998

Die L=E4sterung gegen den Geist ist keine L=E4sterrede, sondern das Verle=
ugnen des Glaubens, das
Abweisen der =DCberf=FChrung durch den Heiligen Geist, dass Jesus der Chr=
istus ist. Wer aber nicht
glaubt, kann nicht wiedergeboren werden.


Text: Lukas 12,11-12
Datum: 19.10.1998

Wenn man sich vor Obrigkeit f=FCr seinen Glauben verantworten muss, wird =
man die rechte Rede vom
Heiligen Geist bekommen und soll nicht selbst nach Worten suchen. Ein Bei=
spiel hierf=FCr sind Petrus
und Johannes vor dem Hohen Rat (Apg.4,8). Dagegen beziehen sich diese Wor=
te nicht auf die
Wortverk=FCndigung.

--------------Boundary-00=_5XQZTELU6WT38111M82Y--