richter 00/07/16 22:16:28
Modified: . Changes.pod Embperl.pm Embperl.pod EmbperlD.pod
EmbperlObject.pm INSTALL.pod MANIFEST Makefile.PL
TODO epchar.c.min epmain.c epnames.h test.pl
typemap
Embperl Mail.pm
test/cmp eponotfound.htm epoobj1.htm epoobj2.htm epoobj3.htm
epopage1.htm epopage2.htm escape.htm object.htm
test/conf httpd.conf.src
test/html escape.htm
test/html/EmbperlObject epofoot.htm
test/html/EmbperlObject/obj epobase.htm epofoot.htm
epoobj3.htm
Added: test/cmp epoobj4.htm
test/html/EmbperlObject/obj epoobj4.htm
Log:
- correct spelling error and renamed ScanEnvironement to ScanEnvironment.
(ScanEnvironement still works).
- EmbperlObject can now be used also offline (via HTML::EmbperlObject::Execute)
- MailFormTo and HTML::Embperl::Mail::Execute now have a configuration
directive EMBPERL_MAILHELO, can be used to specify the host/domain for the
HELO/EHLO command. Suggested by Remco Brink.
- Fixed a bug that caused the default drive to be incorrectly set on Win 32.
Revision Changes Path
1.119 +9 -5 embperl/Changes.pod
Index: Changes.pod
===================================================================
RCS file: /home/cvs/embperl/Changes.pod,v
retrieving revision 1.118
retrieving revision 1.119
diff -u -r1.118 -r1.119
--- Changes.pod 2000/07/16 17:45:52 1.118
+++ Changes.pod 2000/07/17 05:16:03 1.119
@@ -1,11 +1,7 @@
=pod
-=head1 1.3b4_dev -- That's what currently under developement
+=head1 1.3b4 (BETA) 17.07.2000
-Last Update: <$localtime$> (MET)
-
-NOTE: This version is only available via L<"CVS"|CVS/"INTRO">
-
- New $escmode (or EMBPERL_ESCMODE) to disable the possiblilty
to turn off escaping with a leading backslash. Adding 4 to
any escmode will cause Embperl to do no special processing
@@ -45,8 +41,16 @@
and the Embperl request object is blessed into the packages of the
requested page, so you can do methods calls to subs that are defined
inside the requested page.
+ - correct spelling error and renamed ScanEnvironement to ScanEnvironment.
+ (ScanEnvironement still works).
+ - EmbperlObject can now be used also offline (via HTML::EmbperlObject::Execute)
+ - MailFormTo and HTML::Embperl::Mail::Execute now have a configuration
+ directive EMBPERL_MAILHELO, can be used to specify the host/domain for the
+ HELO/EHLO command. Suggested by Remco Brink.
+ - Fixed a bug that caused the default drive to be incorrectly set on Win 32.
+
=head1 1.3b3 (BETA) 25.04.2000
- Fixed SIGSEGV which occurs in cleanup with Perl 5.6. Spotted by
1.108 +14 -10 embperl/Embperl.pm
Index: Embperl.pm
===================================================================
RCS file: /home/cvs/embperl/Embperl.pm,v
retrieving revision 1.107
retrieving revision 1.108
diff -u -r1.107 -r1.108
--- Embperl.pm 2000/07/16 17:45:52 1.107
+++ Embperl.pm 2000/07/17 05:16:03 1.108
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: Embperl.pm,v 1.107 2000/07/16 17:45:52 richter Exp $
+# $Id: Embperl.pm,v 1.108 2000/07/17 05:16:03 richter Exp $
#
###################################################################################
@@ -79,7 +79,7 @@
@ISA = qw(Exporter DynaLoader);
-$VERSION = '1.3b4_dev';
+$VERSION = '1.3b4';
# HTML::Embperl cannot be bootstrapped in nonlazy mode except
@@ -322,14 +322,10 @@
{
eval 'use Apache' ; # make sure Apache.pm is loaded (is not at server startup
in mod_perl < 1.11)
die "use Apache failed: $@" if ($@);
- #eval 'use Apache::Constants qw(:common &OPT_EXECCGI)' ;
- eval 'use Apache::Constants qw(&OPT_EXECCGI &DECLINED &OK &FORBIDDEN)' ;
+ eval 'use Apache::Constants qw(&OPT_EXECCGI &DECLINED &OK &FORBIDDEN
&NOT_FOUND) ;' ;
die "use Apache::Constants failed: $@" if ($@);
- XS_Init (epIOMod_Perl, $DefaultLog, $DebugDefault) ;
-# eval 'sub OK { 0 ; }' if (!defined (&OK)) ;
- eval 'sub NOT_FOUND { 404 ; }' if (!defined (&NOT_FOUND)) ;
-# eval 'sub FORBIDDEN { 403 ; }' if (!defined (&FORBIDDEN)) ;
+ XS_Init (epIOMod_Perl, $DefaultLog, $DebugDefault) ;
}
else
{
@@ -621,7 +617,7 @@
##########################################################################################
-sub ScanEnvironement
+sub ScanEnvironment
{
my ($req, $req_rec) = @_ ;
@@ -643,6 +639,8 @@
$$req{'input_func'} = $ENV{EMBPERL_INPUT_FUNC} if (exists
($ENV{EMBPERL_INPUT_FUNC})) ;
$$req{'output_func'} = $ENV{EMBPERL_OUTPUT_FUNC} if (exists
($ENV{EMBPERL_OUTPUT_FUNC})) ;
$$req{'allow'} = $ENV{EMBPERL_ALLOW} if (exists
($ENV{EMBPERL_ALLOW})) ;
+ $$req{'filesmatch'} = $ENV{EMBPERL_FILESMATCH} if (exists
($ENV{EMBPERL_FILESMATCH})) ;
+ $$req{'decline'} = $ENV{EMBPERL_DECLINE} if (exists
($ENV{EMBPERL_DECLINE})) ;
$$req{'debug'} = $ENV{EMBPERL_DEBUG} || 0 ;
$$req{'options'} = $ENV{EMBPERL_OPTIONS} || 0 ;
$$req{'log'} = $ENV{EMBPERL_LOG} || $DefaultLog ;
@@ -660,7 +658,9 @@
}
+*ScanEnvironement = \&ScanEnvironment ; # for backward compatibility (was typo)
+
#######################################################################################
sub CleanCallExecuteReq
@@ -1439,8 +1439,12 @@
#die "require Net::SMTP failed: $@" if ($@);
require Net::SMTP ;
- $smtp = Net::SMTP->new($ENV{'EMBPERL_MAILHOST'} || 'localhost', Debug =>
$ENV{'EMBPERL_MAILDEBUG'}) or die "Cannot connect to mailhost" ;
- { $smtp->mail($ENV{'EMBPERL_MAILFROM'} || "WWW-Server\@$ENV{SERVER_NAME}");}
+ $smtp = Net::SMTP->new($ENV{'EMBPERL_MAILHOST'} || 'localhost',
+ Debug => $ENV{'EMBPERL_MAILDEBUG'} || 0,
+ $ENV{'EMBPERL_MAILHELO'}?(Hello =>
$ENV{'EMBPERL_MAILDEBUG'}):())
+ or die "Cannot connect to mailhost" ;
+
+ $smtp->mail($ENV{'EMBPERL_MAILFROM'} || "WWW-Server\@$ENV{SERVER_NAME}");
$smtp->to($to);
$ok = $smtp->data();
$ok = $smtp->datasend("Reply-To: $ret\n") if ($ok && $ret) ;
1.50 +10 -1 embperl/Embperl.pod
Index: Embperl.pod
===================================================================
RCS file: /home/cvs/embperl/Embperl.pod,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- Embperl.pod 2000/05/02 06:43:26 1.49
+++ Embperl.pod 2000/07/17 05:16:06 1.50
@@ -396,7 +396,7 @@
of Embperl takes place automatically when it is loaded.
-=item B<HTML::Embperl::ScanEnvironement (\%params)>
+=item B<HTML::Embperl::ScanEnvironment (\%params)>
Scans the B<%ENV> and setups B<%params> for use by B<Execute>. All
Embperl runtime configuration options are recognized, except EMBPERL_LOG.
@@ -958,6 +958,15 @@
Specifies which host the L<MailFormTo|"MailFormTo($MailTo, $Subject,
$ReturnField)"> function uses as SMTP server.
Default is B<localhost>.
+
+=head2 EMBPERL_MAILHELO
+
+(only 1.3b4 or above) Specifies which host/domain the
+L<MailFormTo|"MailFormTo($MailTo, $Subject, $ReturnField)"> function uses
+in the HELO/EHLO command.
+A reasonable default is normaly choosen by I<Net::SMTP>, but
+depending on your installation it may neccessary to set it
+manualy.
=head2 EMBPERL_MAILFROM
1.23 +9 -1 embperl/EmbperlD.pod
Index: EmbperlD.pod
===================================================================
RCS file: /home/cvs/embperl/EmbperlD.pod,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- EmbperlD.pod 2000/05/02 06:43:26 1.22
+++ EmbperlD.pod 2000/07/17 05:16:06 1.23
@@ -337,7 +337,7 @@
zu setzen. Es kann immer nur eine Logdatei existieren, der Pfad kann jedoch
jederzeit
ge�ndert werden.
-=item B<HTML::Embperl::ScanEnvironement (\%params)>
+=item B<HTML::Embperl::ScanEnvironment (\%params)>
Durchsucht alle Umgebungsvariablen (B<%ENV>) und setzt B<%params> f�r die Benutzung
von C<Execute>. Alle
Embperl Konfigurationsvariablen, au�er EMBPERL_LOG, werden erkannt.
@@ -884,6 +884,14 @@
Gibt den Rechner an, der von der L<MailFormTo|"MailFormTo($MailTo, $Subject,
$ReturnField)">
Funktion als SMTP Server genutzt wird.
Default ist B<localhost>.
+
+=head2 EMBPERL_MAILHELO (ab 1.3b4)
+
+Gibt den Rechner/die Domain an, der von der L<MailFormTo|"MailFormTo($MailTo,
$Subject, $ReturnField)">
+Funktion im HELO/EHLO Befehl angegeben wird.
+Normalerweise setzt I<Net::SMTP> einen sinnvollen Defaultwert ein. In
+Abh�nigkeit von der Installation kann es jedoch manchmal n�tig sein
+diesen Wert von Hand zu setzen.
=head2 EMBPERL_MAILFROM (ab 1.2.1)
1.33 +202 -39 embperl/EmbperlObject.pm
Index: EmbperlObject.pm
===================================================================
RCS file: /home/cvs/embperl/EmbperlObject.pm,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- EmbperlObject.pm 2000/07/16 17:45:52 1.32
+++ EmbperlObject.pm 2000/07/17 05:16:06 1.33
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: EmbperlObject.pm,v 1.32 2000/07/16 17:45:52 richter Exp $
+# $Id: EmbperlObject.pm,v 1.33 2000/07/17 05:16:06 richter Exp $
#
###################################################################################
@@ -25,8 +25,20 @@
require HTML::Embperl ;
-use Apache::Constants qw(&OPT_EXECCGI &DECLINED &OK &FORBIDDEN &NOT_FOUND) ;
+if (defined ($ENV{MOD_PERL}))
+ {
+ eval 'use Apache::Constants qw(&OPT_EXECCGI &DECLINED &OK &FORBIDDEN
&NOT_FOUND) ;' ;
+ die "use Apache::Constants failed: $@" if ($@);
+ }
+else
+ {
+ eval 'sub OK { 0 ; }' ;
+ eval 'sub NOT_FOUND { 404 ; }' ;
+ eval 'sub FORBIDDEN { 403 ; }' ;
+ eval 'sub DECLINED { 403 ; }' ; # in non mod_perl environement, same as
FORBIDDEN
+ }
+
use File::Spec ;
use File::Basename ;
@@ -40,7 +52,7 @@
@ISA = qw(Exporter DynaLoader);
-$VERSION = '0.02_dev-1';
+$VERSION = '1.3b4';
#############################################################################
@@ -64,6 +76,22 @@
return $path ;
}
+##########################################################################################
+
+sub ScanEnvironment
+
+ {
+ my ($req, $req_rec) = @_ ;
+
+ HTML::Embperl::ScanEnvironment ($req, $req_rec) ;
+
+ $req -> {object_base} = $ENV{EMBPERL_OBJECT_BASE} || '_base.html' ;
+ $req -> {object_addpath} = $ENV{EMBPERL_OBJECT_ADDPATH} if (exists
($ENV{EMBPERL_OBJECT_ADDPATH})) ;
+ $req -> {object_stopdir} = $ENV{EMBPERL_OBJECT_STOPDIR} if (exists
($ENV{EMBPERL_OBJECT_STOPDIR})) ;
+ $req -> {object_fallback} = $ENV{EMBPERL_OBJECT_FALLBACK} if (exists
($ENV{EMBPERL_OBJECT_FALLBACK})) ;
+ $req -> {object_handler_class} = $ENV{EMBPERL_OBJECT_HANDLER_CLASS} if (exists
($ENV{EMBPERL_OBJECT_HANDLER_CLASS})) ;
+ }
+
#############################################################################
@@ -87,36 +115,52 @@
my %req ;
- HTML::Embperl::ScanEnvironement (\%req, $r) ;
+ ScanEnvironment (\%req, $r) ;
+
+ $req{'inputfile'} = $filename ;
+ $req{'object_base_modifier'} = $mod ;
$req{'uri'} = $r -> Apache::uri ;
$req{'cleanup'} = -1 if (($req{'options'} &
HTML::Embperl::optDisableVarCleanup)) ;
$req{'options'} |= HTML::Embperl::optSendHttpHeader ;
$req{'req_rec'} = $r ;
-
+
+ Execute (\%req) ;
+ }
+
+
+
+#############################################################################
+sub Execute
+ {
+ my $req = shift ;
+
+ my $filename = $req -> {inputfile} ;
+ my $r ;
+ $r = $req -> {req_rec} if ($req -> {req_rec}) ;
- if (exists $ENV{EMBPERL_FILESMATCH} &&
- !($filename =~ m{$ENV{EMBPERL_FILESMATCH}}))
+ if (exists $req -> {filesmatch} &&
+ !($filename =~ m{$req->{filesmatch}}))
{
return &DECLINED ;
}
- if (exists $ENV{EMBPERL_DECLINE} &&
- ($filename =~ m{$ENV{EMBPERL_DECLINE}}))
+ if (exists $req -> {decline} &&
+ ($filename =~ m{$req->{decline}}))
{
return &DECLINED ;
}
- my $basename = $ENV{EMBPERL_OBJECT_BASE} ;
- $basename =~ s/%modifier%/$mod/ ;
- my $addpath = $ENV{EMBPERL_OBJECT_ADDPATH} ;
+ my $basename = $req -> {object_base} ;
+ $basename =~ s/%modifier%/$req->{object_base_modifier}/ ;
+ my $addpath = $req -> {object_addpath} ;
my @addpath = $addpath?split (/:/, $addpath):() ;
my $directory ;
- my $rootdir = norm_path ($r -> document_root) ;
- my $stopdir = norm_path ($ENV{EMBPERL_OBJECT_STOPDIR}) ;
- my $debug = $ENV{EMBPERL_DEBUG} & HTML::Embperl::dbgObjectSearch ;
+ my $rootdir = $r?norm_path ($r -> document_root):'/' ;
+ my $stopdir = norm_path ($req -> {object_stopdir}) ;
+ my $debug = $req -> {debug} & HTML::Embperl::dbgObjectSearch ;
if (-d $filename)
{
@@ -129,7 +173,7 @@
my $searchpath ;
- $r -> notes ('EMBPERL_orgfilename', $filename) ;
+ $r -> notes ('EMBPERL_orgfilename', $filename) if ($r) ;
print HTML::Embperl::LOG "[$$]EmbperlObject Request Filename: $filename\n" if
($debug);
print HTML::Embperl::LOG "[$$]EmbperlObject basename: $basename\n" if ($debug);
@@ -147,8 +191,8 @@
print HTML::Embperl::LOG "[$$]EmbperlObject Check for base: $fn\n" if
($debug);
if (-e $fn)
{
- $r -> filename ($fn) ;
- $r -> notes ('EMBPERL_searchpath', $searchpath) ;
+ $r -> filename ($fn) if ($r) ;
+ $r -> notes ('EMBPERL_searchpath', $searchpath) if ($r) ;
$found = 1 ;
}
else
@@ -169,8 +213,8 @@
print HTML::Embperl::LOG "[$$]EmbperlObject Check for base: $fn\n" if
($debug);
if (-e $fn)
{
- $r -> filename ($fn) ;
- $r -> notes ('EMBPERL_searchpath', $searchpath) ;
+ $r -> filename ($fn) if ($r) ;
+ $r -> notes ('EMBPERL_searchpath', $searchpath) if ($r) ;
$found = 1 ;
last ;
}
@@ -183,28 +227,28 @@
{
print HTML::Embperl::LOG "[$$]EmbperlObject Found Base: $fn\n" if ($debug);
print HTML::Embperl::LOG "[$$]EmbperlObject path: $searchpath\n" if
($debug);
- my ($basenew, $basepackage) = HTML::Embperl::GetPackageOfFile ($fn,
$req{'package'} || '', -M _) ;
+ my ($basenew, $basepackage) = HTML::Embperl::GetPackageOfFile ($fn, $req ->
{'package'} || '', -M _) ;
- if (!-f $filename && exists $ENV{EMBPERL_OBJECT_FALLBACK})
+ if (!-f $filename && exists $req -> {object_fallback})
{
$fallback = 1 ;
- $filename = $ENV{EMBPERL_OBJECT_FALLBACK} ;
+ $filename = $req -> {object_fallback} ;
print HTML::Embperl::LOG "[$$]EmbperlObject use fallback: $filename\n"
if ($debug);
- $r -> notes ('EMBPERL_orgfilename', $filename) ;
+ $r -> notes ('EMBPERL_orgfilename', $filename) if ($r) ;
}
my ($new, $package) ;
- ($new, $package) = HTML::Embperl::GetPackageOfFile ($filename,
$req{'package'} || '', -M _) if (!$fallback) ;
+ ($new, $package) = HTML::Embperl::GetPackageOfFile ($filename, $req ->
{'package'} || '', -M _) if (!$fallback) ;
if ($basenew)
{
print HTML::Embperl::LOG "[$$]EmbperlObject new Base: $fn, package =
$basepackage\n" if ($debug);
- HTML::Embperl::Execute ({%req, inputfile => $fn, import => 0 }) ;
+ HTML::Embperl::Execute ({%$req, inputfile => $fn, import => 0 }) ;
no strict ;
- @{"$basepackage\:\:ISA"} = ($ENV{EMBPERL_OBJECT_HANDLER_CLASS} ||
'HTML::Embperl::Req') ;
+ @{"$basepackage\:\:ISA"} = ($req -> {object_handler_class} ||
'HTML::Embperl::Req') ;
use strict ;
}
@@ -212,7 +256,7 @@
{
print HTML::Embperl::LOG "[$$]EmbperlObject new file: $filename,
package = $package\n" if ($debug && !$fallback);
- HTML::Embperl::Execute ({%req, inputfile => $filename, import => 0,
'path' => $searchpath }) ;
+ HTML::Embperl::Execute ({%$req, inputfile => $filename, import => 0,
'path' => $searchpath }) ;
if ($fallback)
{
@@ -225,17 +269,16 @@
use strict ;
}
- $req{'inputfile'} = $ENV{PATH_TRANSLATED} = $r -> filename ;
- $req{'bless'} = $package ;
- $req{'path'} = $searchpath ;
- $req{'reqfilename'} = $filename ;
- return HTML::Embperl::Execute (\%req) ;
+ $req -> {'inputfile'} = $ENV{PATH_TRANSLATED} = $fn ;
+ $req -> {'bless'} = $package ;
+ $req -> {'path'} = $searchpath ;
+ $req -> {'reqfilename'} = $filename ;
+ return HTML::Embperl::Execute ($req) ;
}
+ $r -> log_error ("EmbperlObject searched '$searchpath'" . ($addpath?" and
'$addpath' ":'')) if ($r) ;
- $r -> log_error ("EmbperlObject searched '$searchpath'" . ($addpath?" and
'$addpath' ":'')) ;
-
return &NOT_FOUND ;
}
@@ -245,7 +288,7 @@
=head1 NAME
-HTML::EmbperlObject - Extents HTML::Embperl for building webpages out of small
objects
+HTML::EmbperlObject - Extents HTML::Embperl for building whole website with
reusable components and objects
=head1 SYNOPSIS
@@ -262,10 +305,11 @@
=head1 DESCRIPTION
-I<HTML::EmbperlObject> is basicly a I<mod_perl> handler that helps you to
+I<HTML::EmbperlObject> is basicly a I<mod_perl> handler or could be invoked
+offline and helps you to
build a whole page out of smaller parts. Basicly it does the following:
-When a request comes in a page which name is specified by L<EMBPERL_OBJECT_BASE>, is
+When a request comes in a page, which name is specified by L<EMBPERL_OBJECT_BASE>,
is
searched in the same directory as the requested page. If the pages isn't found,
I<EmbperlObject> walking up the directory tree until it finds the page, or it
reaches C<DocumentRoot> or the directory specified by L<EMBPERL_OBJECT_STOPDIR>.
@@ -281,6 +325,17 @@
To include the original requested file, you need to call C<Execute> with a C<'*'>
as filename.
+Additionaly I<EmbperlObject> sets up a inherence hierachie for you: The requested
page
+inherit from the base page and the base page inherit from a class which could be
+specified by C<EMBPERL_OBJECT_HANDLER_CLASS>, or if C<EMBPERL_OBJECT_HANDLER_CLASS>
is
+not set, from C<HTML::Embperl::Req>. That allows you to define methods in base page
and
+overwrite them as neccessary in the original requested files. For this purpose a
request
+object, which is blessed into the package of the requested page, is given as first
+parameter to each page (in C<$_[0]>). Because this request object is a hashref, you
can
+also use it to store additional data, which should be available in all components.
+I<Embperl> does not use this hash itself, so you are free to store whatever you
want.
+Methods can be ordinary Perl sub's (defined with [! sub foo { ... } !] ) or Embperl
sub's
+(defined with [$sub foo $] .... [$endsub $]) .
=head1 Runtime configuration
@@ -318,12 +373,47 @@
directories as C<EMBPERL_OBJECT_BASE>.
=head2 EMBPERL_OBJECT_HANDLER_CLASS
+
+If you specify this call the template base and the requested page inherit all
+methods from this class. This class must contain C<HTML::Embperl::Req> in his
+@ISA array.
+
+
+=head1 Execute
+
+You can use I<EmbperlObject> also offline. You can do this by calling the function
+C<HTML::EmbperlObject::Execute>. C<Execute> takes a hashref as argument, which can
+contains the same parameters as the C<HTML::Embperl::Execute> function. Additionaly
+you may specify the following parameters:
+
+=over 4
+
+=item object_base
+
+same as $ENV{EMBPERL_OBJECT_BASE}
+
+=item object_addpath
+
+same as $ENV{EMBPERL_OBJECT_ADDPATH}
-comming soon
+=item object_stopdir
-=head1 Example
+same as $ENV{EMBPERL_OBJECT_STOPDIR}
+=item object_fallback
+same as $ENV{EMBPERL_OBJECT_FALLBACK}
+
+=item object_handler_class
+
+same as $ENV{EMBPERL_OBJECT_HANDLER_CLASS}
+
+=back
+
+
+=head1 Basic Example
+
+
With the following setup:
@@ -430,6 +520,79 @@
</html>
+
+=head1 Example for using method calls
+
+(Everything not given here is the same as in the example above)
+
+
+B</foo/base.htm:>
+
+ [!
+
+ $req = shift ;
+
+ sub new
+ {
+ my $self = shift ;
+
+ # here we attach some data to the request object
+ $self -> {fontsize} = 3 ;
+ }
+
+ # Here we give a default title
+ sub title { 'Title not given' } ;
+
+ # here we call the method new
+ $req -> new ;
+
+ !]
+
+ <html>
+ <head>
+ <title>[+ $req -> title +]</title>
+ </head>
+ <body>
+ [- Execute ('head.htm') -]
+ [- Execute ('*') -]
+ [- Execute ('foot.htm') -]
+ </body>
+ </html>
+
+
+B</foo/head.htm:>
+
+
+ [#
+ here we use the fontsize
+ Note that
+ $foo = $_[0]
+ is the same as writing
+ $foo = shift
+ #]
+
+ <font size=[+ $_[0] -> {fontsize} +]>header</font>
+
+B</foo/sub/page2.htm:>
+
+ [!
+
+ sub new
+ {
+ my $self = shift ;
+
+ # here we overwrite the new method form base.htm
+ $self -> {fontsize} = 5 ;
+ }
+
+ # Here we overwrite the default title
+ sub title { 'Title form page 2' } ;
+
+ !]
+
+ PAGE 2
+
+
=head1 Author
1.11 +20 -2 embperl/INSTALL.pod
Index: INSTALL.pod
===================================================================
RCS file: /home/cvs/embperl/INSTALL.pod,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- INSTALL.pod 1999/11/17 07:29:24 1.10
+++ INSTALL.pod 2000/07/17 05:16:07 1.11
@@ -22,7 +22,8 @@
- B<make install>
B<NOTE 1:> (only Embperl-1.2b1 or higher) For using session handling you need
-Apache::Session-0.17 or higher. If possible use Apache::Session 1.00 or higher.
+Apache::Session-0.17 or higher. If possible use Apache::Session 1.00.
+Currently Apache::Session 1.50 or higher is B<not> supported. (Coming soon)
B<NOTE 2:> I<Embperl> runs without additional Perl modules, but the C<make test>
needs the following modules to work:
@@ -47,6 +48,14 @@
=back
+B<NOTE 3:> I<EmbperlObject> needs the following modules to work:
+
+=over 4
+
+=item * File::Spec
+
+=back
+
If you have already successfully build and tested C<mod_perl> all modules
will already be there.
@@ -92,7 +101,8 @@
B<nmake install>
B<NOTE 1:> (only Embperl-1.2b1 or higher) For using session handling you need
-Apache::Session-0.17 or higher. If possible use Apache::Session 1.00 or higher.
+Apache::Session-0.17 or higher. If possible use Apache::Session 1.00.
+Currently Apache::Session 1.50 or higher is B<not> supported. (Coming soon)
B<NOTE 2:> I<Embperl> runs without additional Perl modules, but the C<make test>
needs the following modules to work:
@@ -114,6 +124,14 @@
=item * libwww
=item * libwin32 (only Win32)
+
+=back
+
+B<NOTE 3:> I<EmbperlObject> needs the following modules to work:
+
+=over 4
+
+=item * File::Spec
=back
1.45 +2 -0 embperl/MANIFEST
Index: MANIFEST
===================================================================
RCS file: /home/cvs/embperl/MANIFEST,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- MANIFEST 2000/07/16 17:45:52 1.44
+++ MANIFEST 2000/07/17 05:16:07 1.45
@@ -144,6 +144,7 @@
test/html/EmbperlObject/obj/epoobj1.htm
test/html/EmbperlObject/obj/epoobj2.htm
test/html/EmbperlObject/obj/epoobj3.htm
+test/html/EmbperlObject/obj/epoobj4.htm
test/cmp/ascii
test/cmp/pure.htm
test/cmp/plain.htm
@@ -216,6 +217,7 @@
test/cmp/epoobj1.htm
test/cmp/epoobj2.htm
test/cmp/epoobj3.htm
+test/cmp/epoobj4.htm
test/cmp/eponotfound.htm
test/conf/httpd.conf.src
test/conf/startup.pl
1.30 +1 -0 embperl/Makefile.PL
Index: Makefile.PL
===================================================================
RCS file: /home/cvs/embperl/Makefile.PL,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- Makefile.PL 2000/07/07 21:55:57 1.29
+++ Makefile.PL 2000/07/17 05:16:07 1.30
@@ -897,6 +897,7 @@
'clean' => { FILES => 'dirent.h test/tmp/*' },
'dist' => { COMPRESS => 'gzip', SUFFIX => 'gz'},
'dynamic_lib' => $dynlib,
+ 'PREREQ_PM' => { 'File::Spec' => 0 },
);
1.94 +6 -24 embperl/TODO
Index: TODO
===================================================================
RCS file: /home/cvs/embperl/TODO,v
retrieving revision 1.93
retrieving revision 1.94
diff -u -r1.93 -r1.94
--- TODO 2000/07/16 17:45:52 1.93
+++ TODO 2000/07/17 05:16:08 1.94
@@ -5,13 +5,13 @@
- Apache::Symbol::undef (avoid function redefinition warning)
-- @param -> @_
+- @param -> @_ -> done in 2.0
-- make optUndefToEmptyValue default [Steve Willer]
+- make optUndefToEmptyValue default [Steve Willer] -> done in 2.0
- whitespace intention [Todd Eigenshink]
-- make checkbox and option work without value attribute
+- make checkbox and option work without value attribute -> done in 2.0
- used named subroutines for debugging [Ert Dredge]
@@ -21,7 +21,7 @@
- gzip output [Andreas Koenig]
-- custom html tags
+- custom html tags -> done in 2.0
- url rewriting for session id
@@ -43,7 +43,7 @@
- url escape <input src>
-- allow null bytes in output [ARnel Estanisloa 4.12.99]
+- allow null bytes in output [ARnel Estanisloa 4.12.99] -> done in 2.0
- handle input image (add field.x/y to %idat) [Pierre Etchemaite 13.12.99]
@@ -64,10 +64,6 @@
- optDisableSelectScan [ Robert 14.5.00]
-- %20 instead of + [Michael Blakely 28.6.00]
-
-- EMBPERL_MAILHELO [Remco Brink 10.7.00]
-
- APache::Session 1.5
Test
@@ -80,7 +76,7 @@
- errorright output
-- [* *] inside if [Vasco Chita 1.5.99]
+- [* *] inside if [Vasco Chita 1.5.99] -> done in 2.0
- use Embperl Module later than startup -> cleanup fails on first request
@@ -88,22 +84,12 @@
- SIG DIE missing message arg [Alex Schmelkin 24.8.99]
-- norm path before chdir on win32
-
-- requrie in [! !] Blocks? [Jens Alm 22.9.99]
-
-- don�t find end of href inside of [+ +] [James Sheridan-Peters 29.11.99]
-
- contrib from Ken Hinckley 2.12.99
-- perl 5.6 [Matthias Ulrichs 06.3.2000]
-
- var cleanup of in imported subs [Lai Yiu Fai 14.3.00]
- using outputfile inside a outputfile crashs
-- define _MSWSOCK_ with apache 1.3.12 [Randy Kobes 23.3.00]
-
- entity decoding radi/checkboxes [Chris Thorman 20.6.00]
Docs
@@ -122,10 +108,6 @@
- make [+ +] configurable [ Christian Gilmore 16.10.99]
- "$urlprefix" [Steve Willer 14.2.99]
-
-- make Not found case configurable [Steve Willer 14.2.99]
-
-- filename prefix in path [Steve Willer 14.2.99]
2.0
__
1.2 +664 -664 embperl/epchar.c.min
Index: epchar.c.min
===================================================================
RCS file: /home/cvs/embperl/epchar.c.min,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- epchar.c.min 2000/04/25 04:25:53 1.1
+++ epchar.c.min 2000/07/17 05:16:08 1.2
@@ -1,668 +1,668 @@
-/*###################################################################################
-#
-# Embperl - Copyright (c) 1997-2000 Gerald Richter / ECOS
-#
-# You may distribute under the terms of either the GNU General Public
-# License or the Artistic License, as specified in the Perl README file.
-# For use with Apache httpd and mod_perl, see also Apache copyright.
-#
-# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-#
-###################################################################################*/
-
+/*###################################################################################
+#
+# Embperl - Copyright (c) 1997-2000 Gerald Richter / ECOS
+#
+# You may distribute under the terms of either the GNU General Public
+# License or the Artistic License, as specified in the Perl README file.
+# For use with Apache httpd and mod_perl, see also Apache copyright.
+#
+# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+#
+###################################################################################*/
+
/* minimal input and output escaping. It's usefull for other charsets then
iso-8859-1 (iso-latin-1) and for two byte charset
This translation tables will leave any characters above 128 untouchted
-*/
-
-#include "ep.h"
-
-
-
-/*
-* Character Translation
-*/
-
-
-struct tCharTrans Char2Html [] =
-
- {
- { ' ' , "" }, /* � Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /* 	 Horizontal tab */
- { ' ' , "" }, /* Line feed */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /* Carriage Return */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*   Space */
- { '!' , "" }, /* ! Exclamation mark */
- { '"' , """ }, /* Quotation mark */
- { '#' , "" }, /* # Number sign */
- { '$' , "" }, /* $ Dollar sign */
- { '%' , "" }, /* % Percent sign */
- { '&' , "&" }, /* Ampersand */
- { '\'' , "" }, /* ' Apostrophe */
- { '(' , "" }, /* ( Left parenthesis */
- { ')' , "" }, /* ) Right parenthesis */
- { '*' , "" }, /* * Asterisk */
- { '+' , "" }, /* + Plus sign */
- { ',' , "" }, /* , Comma */
- { '-' , "" }, /* - Hyphen */
- { '.' , "" }, /* . Period (fullstop) */
- { '/' , "" }, /* / Solidus (slash) */
- { '0' , "" }, /* 0 Digit 0 */
- { '1' , "" }, /* 1 Digit 1 */
- { '2' , "" }, /* 2 Digit 2 */
- { '3' , "" }, /* 3 Digit 3 */
- { '4' , "" }, /* 4 Digit 4 */
- { '5' , "" }, /* 5 Digit 5 */
- { '6' , "" }, /* 6 Digit 6 */
- { '7' , "" }, /* 7 Digit 7 */
- { '8' , "" }, /* 8 Digit 8 */
- { '9' , "" }, /* 9 Digit 9 */
- { ':' , "" }, /* : Colon */
- { ';' , "" }, /* ; Semicolon */
- { '<' , "<" }, /* Less than */
- { '=' , "" }, /* = Equals sign */
- { '>' , ">" }, /* Greater than */
- { '?' , "" }, /* ? Question mark */
- { '@' , "" }, /* @ Commercial at */
- { 'A' , "" }, /* A Capital A */
- { 'B' , "" }, /* B Capital B */
- { 'C' , "" }, /* C Capital C */
- { 'D' , "" }, /* D Capital D */
- { 'E' , "" }, /* E Capital E */
- { 'F' , "" }, /* F Capital F */
- { 'G' , "" }, /* G Capital G */
- { 'H' , "" }, /* H Capital H */
- { 'I' , "" }, /* I Capital I */
- { 'J' , "" }, /* J Capital J */
- { 'K' , "" }, /* K Capital K */
- { 'L' , "" }, /* L Capital L */
- { 'M' , "" }, /* M Capital M */
- { 'N' , "" }, /* N Capital N */
- { 'O' , "" }, /* O Capital O */
- { 'P' , "" }, /* P Capital P */
- { 'Q' , "" }, /* Q Capital Q */
- { 'R' , "" }, /* R Capital R */
- { 'S' , "" }, /* S Capital S */
- { 'T' , "" }, /* T Capital T */
- { 'U' , "" }, /* U Capital U */
- { 'V' , "" }, /* V Capital V */
- { 'W' , "" }, /* W Capital W */
- { 'X' , "" }, /* X Capital X */
- { 'Y' , "" }, /* Y Capital Y */
- { 'Z' , "" }, /* Z Capital Z */
- { '[' , "" }, /* [ Left square bracket
*/
- { '\\' , "" }, /* \ Reverse solidus
(backslash) */
- { ']' , "" }, /* ] Right square bracket
*/
- { '^' , "" }, /* ^ Caret */
- { '_' , "" }, /* _ Horizontal bar
(underscore) */
- { '`' , "" }, /* ` Acute accent */
- { 'a' , "" }, /* a Small a */
- { 'b' , "" }, /* b Small b */
- { 'c' , "" }, /* c Small c */
- { 'd' , "" }, /* d Small d */
- { 'e' , "" }, /* e Small e */
- { 'f' , "" }, /* f Small f */
- { 'g' , "" }, /* g Small g */
- { 'h' , "" }, /* h Small h */
- { 'i' , "" }, /* i Small i */
- { 'j' , "" }, /* j Small j */
- { 'k' , "" }, /* k Small k */
- { 'l' , "" }, /* l Small l */
- { 'm' , "" }, /* m Small m */
- { 'n' , "" }, /* n Small n */
- { 'o' , "" }, /* o Small o */
- { 'p' , "" }, /* p Small p */
- { 'q' , "" }, /* q Small q */
- { 'r' , "" }, /* r Small r */
- { 's' , "" }, /* s Small s */
- { 't' , "" }, /* t Small t */
- { 'u' , "" }, /* u Small u */
- { 'v' , "" }, /* v Small v */
- { 'w' , "" }, /* w Small w */
- { 'x' , "" }, /* x Small x */
- { 'y' , "" }, /* y Small y */
- { 'z' , "" }, /* z Small z */
- { '{' , "" }, /* { Left curly brace */
- { '|' , "" }, /* | Vertical bar */
- { '}' , "" }, /* } Right curly brace */
- { '~' , "" }, /* ~ Tilde */
- { '' , "" }, /*  Unused */
- { '�' , "" }, /* € Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /* ‚ Unused */
- { ' ' , "" }, /* ƒ Unused */
- { ' ' , "" }, /* „ Unused */
- { ' ' , "" }, /* … Unused */
- { ' ' , "" }, /* † Unused */
- { ' ' , "" }, /* ‡ Unused */
- { ' ' , "" }, /* ˆ Unused */
- { ' ' , "" }, /* ‰ Unused */
- { ' ' , "" }, /* Š Horizontal tab */
- { ' ' , "" }, /* ‹ Line feed */
- { ' ' , "" }, /* Œ Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /* Ž Carriage Return */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /* ‘ Unused */
- { ' ' , "" }, /* ’ Unused */
- { ' ' , "" }, /* “ Unused */
- { ' ' , "" }, /* ” Unused */
- { ' ' , "" }, /* • Unused */
- { ' ' , "" }, /* – Unused */
- { ' ' , "" }, /* — Unused */
- { ' ' , "" }, /* ˜ Unused */
- { ' ' , "" }, /* ™ Unused */
- { ' ' , "" }, /* š Unused */
- { ' ' , "" }, /* › Unused */
- { ' ' , "" }, /* œ Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /* ž Unused */
- { ' ' , "" }, /* Ÿ Unused */
- { ' ' , "" }, /* Non-breaking Space */
- { '�' , "" }, /* Inverted exclamation */
- { '�' , "" }, /* Cent sign */
- { '�' , "" }, /* Pound sterling */
- { '�' , "" }, /* General currency sign */
- { '�' , "" }, /* Yen sign */
-/* { '�' , "" }, / * Broken vertical bar */
- { '�' , "" }, /* Broken vertical bar */
- { '�' , "" }, /* Section sign */
-/* { '�' , "" }, / * Di�resis / Umlaut */
- { '�' , "" }, /* Di�resis / Umlaut */
- { '�' , "" }, /* Copyright */
- { '�' , "" }, /* Feminine ordinal */
- { '�' , "" }, /* Left angle quote, guillemot left */
- { '�' , "" }, /* Not sign */
- { '�' , "" }, /* Soft hyphen */
- { '�' , "" }, /* Registered trademark */
-/* { '�' , "" }, / * Macron accent */
- { '�' , "" }, /* Macron accent */
- { '�' , "" }, /* Degree sign */
- { '�' , "" }, /* Plus or minus */
- { '�' , "" }, /* Superscript two */
- { '�' , "" }, /* Superscript three */
- { '�' , "" }, /* Acute accent */
- { '�' , "" }, /* Micro sign */
- { '�' , "" }, /* Paragraph sign */
- { '�' , "" }, /* Middle dot */
- { '�' , "" }, /* Cedilla */
- { '�' , "" }, /* Superscript one */
- { '�' , "" }, /* Masculine ordinal */
- { '�' , "" }, /* Right angle quote, guillemot right */
- { '�' , "" }, /* Fraction one-fourth */
- { '�' , "" }, /* Fraction one-half */
- { '�' , "" }, /* Fraction three-fourths */
- { '�' , "" }, /* Inverted question mark */
- { '�' , "" }, /* Capital A, grave accent */
- { '�' , "" }, /* Capital A, acute accent */
- { '�' , "" }, /* Capital A, circumflex */
- { '�' , "" }, /* Capital A, tilde */
- { '�' , "" }, /* Capital A, di�resis / umlaut */
- { '�' , "" }, /* Capital A, ring */
- { '�' , "" }, /* Capital AE ligature */
- { '�' , "" }, /* Capital C, cedilla */
- { '�' , "" }, /* Capital E, grave accent */
- { '�' , "" }, /* Capital E, acute accent */
- { '�' , "" }, /* Capital E, circumflex */
- { '�' , "" }, /* Capital E, di�resis / umlaut */
- { '�' , "" }, /* Capital I, grave accent */
- { '�' , "" }, /* Capital I, acute accent */
- { '�' , "" }, /* Capital I, circumflex */
- { '�' , "" }, /* Capital I, di�resis / umlaut */
- { '�' , "" }, /* Capital Eth, Icelandic */
- { '�' , "" }, /* Capital N, tilde */
- { '�' , "" }, /* Capital O, grave accent */
- { '�' , "" }, /* Capital O, acute accent */
- { '�' , "" }, /* Capital O, circumflex */
- { '�' , "" }, /* Capital O, tilde */
- { '�' , "" }, /* Capital O, di�resis / umlaut */
- { '�' , "" }, /* Multiply sign */
- { '�' , "" }, /* Capital O, slash */
- { '�' , "" }, /* Capital U, grave accent */
- { '�' , "" }, /* Capital U, acute accent */
- { '�' , "" }, /* Capital U, circumflex */
- { '�' , "" }, /* Capital U, di�resis / umlaut */
- { '�' , "" }, /* Capital Y, acute accent */
- { '�' , "" }, /* Capital Thorn, Icelandic */
- { '�' , "" }, /* Small sharp s, German sz */
- { '�' , "" }, /* Small a, grave accent */
- { '�' , "" }, /* Small a, acute accent */
- { '�' , "" }, /* Small a, circumflex */
- { '�' , "" }, /* Small a, tilde */
- { '�' , "" }, /* Small a, di�resis / umlaut */
- { '�' , "" }, /* Small a, ring */
- { '�' , "" }, /* Small ae ligature */
- { '�' , "" }, /* Small c, cedilla */
- { '�' , "" }, /* Small e, grave accent */
- { '�' , "" }, /* Small e, acute accent */
- { '�' , "" }, /* Small e, circumflex */
- { '�' , "" }, /* Small e, di�resis / umlaut */
- { '�' , "" }, /* Small i, grave accent */
- { '�' , "" }, /* Small i, acute accent */
- { '�' , "" }, /* Small i, circumflex */
- { '�' , "" }, /* Small i, di�resis / umlaut */
- { '�' , "" }, /* Small eth, Icelandic */
- { '�' , "" }, /* Small n, tilde */
- { '�' , "" }, /* Small o, grave accent */
- { '�' , "" }, /* Small o, acute accent */
- { '�' , "" }, /* Small o, circumflex */
- { '�' , "" }, /* Small o, tilde */
- { '�' , "" }, /* Small o, di�resis / umlaut */
- { '�' , "" }, /* Division sign */
- { '�' , "" }, /* Small o, slash */
- { '�' , "" }, /* Small u, grave accent */
- { '�' , "" }, /* Small u, acute accent */
- { '�' , "" }, /* Small u, circumflex */
- { '�' , "" }, /* Small u, di�resis / umlaut */
- { '�' , "" }, /* Small y, acute accent */
- { '�' , "" }, /* Small thorn, Icelandic */
- { '\255', "" }, /* Small y, di�resis / umlaut */
- } ;
-
-
-struct tCharTrans Char2Url [] =
-
- {
- { ' ' , "%00" }, /* � Unused */
- { ' ' , "%01" }, /*  Unused */
- { ' ' , "%02" }, /*  Unused */
- { ' ' , "%03" }, /*  Unused */
- { ' ' , "%04" }, /*  Unused */
- { ' ' , "%05" }, /*  Unused */
- { ' ' , "%06" }, /*  Unused */
- { ' ' , "%07" }, /*  Unused */
- { ' ' , "%08" }, /*  Unused */
- { ' ' , "%09" }, /* 	 Horizontal tab */
- { ' ' , "%0A" }, /* Line feed */
- { ' ' , "%0B" }, /*  Unused */
- { ' ' , "%0C" }, /*  Unused */
- { ' ' , "%0D" }, /* Carriage Return */
- { ' ' , "%0E" }, /*  Unused */
- { ' ' , "%0F" }, /*  Unused */
- { ' ' , "%10" }, /*  Unused */
- { ' ' , "%11" }, /*  Unused */
- { ' ' , "%12" }, /*  Unused */
- { ' ' , "%13" }, /*  Unused */
- { ' ' , "%14" }, /*  Unused */
- { ' ' , "%15" }, /*  Unused */
- { ' ' , "%16" }, /*  Unused */
- { ' ' , "%17" }, /*  Unused */
- { ' ' , "%18" }, /*  Unused */
- { ' ' , "%19" }, /*  Unused */
- { ' ' , "%1A" }, /*  Unused */
- { ' ' , "%1B" }, /*  Unused */
- { ' ' , "%1C" }, /*  Unused */
- { ' ' , "%1D" }, /*  Unused */
- { ' ' , "%1E" }, /*  Unused */
- { ' ' , "%1F" }, /*  Unused */
- { ' ' , "+" }, /*   Space */
- { '!' , "" }, /* ! Exclamation mark */
- { '"' , "%22" }, /* Quotation mark */
- { '#' , "" }, /* # Number sign */
- { '$' , "" }, /* $ Dollar sign */
- { '%' , "%25" }, /* % Percent sign */
- { '&' , "%26" }, /* Ampersand */
- { '\'' , "" }, /* ' Apostrophe */
- { '(' , "" }, /* ( Left parenthesis */
- { ')' , "" }, /* ) Right parenthesis */
- { '*' , "" }, /* * Asterisk */
- { '+' , "%2B" }, /* + Plus sign */
- { ',' , "" }, /* , Comma */
- { '-' , "" }, /* - Hyphen */
- { '.' , "" }, /* . Period (fullstop) */
- { '/' , "" }, /* / Solidus (slash) */
- { '0' , "" }, /* 0 Digit 0 */
- { '1' , "" }, /* 1 Digit 1 */
- { '2' , "" }, /* 2 Digit 2 */
- { '3' , "" }, /* 3 Digit 3 */
- { '4' , "" }, /* 4 Digit 4 */
- { '5' , "" }, /* 5 Digit 5 */
- { '6' , "" }, /* 6 Digit 6 */
- { '7' , "" }, /* 7 Digit 7 */
- { '8' , "" }, /* 8 Digit 8 */
- { '9' , "" }, /* 9 Digit 9 */
- { ':' , "" }, /* : Colon */
- { ';' , "" }, /* ; Semicolon */
- { '<' , "" }, /* Less than */
- { '=' , "%3D" }, /* = Equals sign */
- { '>' , "" }, /* Greater than */
- { '?' , "%3F" }, /* ? Question mark */
- { '@' , "" }, /* @ Commercial at */
- { 'A' , "" }, /* A Capital A */
- { 'B' , "" }, /* B Capital B */
- { 'C' , "" }, /* C Capital C */
- { 'D' , "" }, /* D Capital D */
- { 'E' , "" }, /* E Capital E */
- { 'F' , "" }, /* F Capital F */
- { 'G' , "" }, /* G Capital G */
- { 'H' , "" }, /* H Capital H */
- { 'I' , "" }, /* I Capital I */
- { 'J' , "" }, /* J Capital J */
- { 'K' , "" }, /* K Capital K */
- { 'L' , "" }, /* L Capital L */
- { 'M' , "" }, /* M Capital M */
- { 'N' , "" }, /* N Capital N */
- { 'O' , "" }, /* O Capital O */
- { 'P' , "" }, /* P Capital P */
- { 'Q' , "" }, /* Q Capital Q */
- { 'R' , "" }, /* R Capital R */
- { 'S' , "" }, /* S Capital S */
- { 'T' , "" }, /* T Capital T */
- { 'U' , "" }, /* U Capital U */
- { 'V' , "" }, /* V Capital V */
- { 'W' , "" }, /* W Capital W */
- { 'X' , "" }, /* X Capital X */
- { 'Y' , "" }, /* Y Capital Y */
- { 'Z' , "" }, /* Z Capital Z */
- { '[' , "" }, /* [ Left square bracket
*/
- { '\\' , "" }, /* \ Reverse solidus
(backslash) */
- { ']' , "" }, /* ] Right square bracket
*/
- { '^' , "" }, /* ^ Caret */
- { '_' , "" }, /* _ Horizontal bar
(underscore) */
- { '`' , "" }, /* ` Acute accent */
- { 'a' , "" }, /* a Small a */
- { 'b' , "" }, /* b Small b */
- { 'c' , "" }, /* c Small c */
- { 'd' , "" }, /* d Small d */
- { 'e' , "" }, /* e Small e */
- { 'f' , "" }, /* f Small f */
- { 'g' , "" }, /* g Small g */
- { 'h' , "" }, /* h Small h */
- { 'i' , "" }, /* i Small i */
- { 'j' , "" }, /* j Small j */
- { 'k' , "" }, /* k Small k */
- { 'l' , "" }, /* l Small l */
- { 'm' , "" }, /* m Small m */
- { 'n' , "" }, /* n Small n */
- { 'o' , "" }, /* o Small o */
- { 'p' , "" }, /* p Small p */
- { 'q' , "" }, /* q Small q */
- { 'r' , "" }, /* r Small r */
- { 's' , "" }, /* s Small s */
- { 't' , "" }, /* t Small t */
- { 'u' , "" }, /* u Small u */
- { 'v' , "" }, /* v Small v */
- { 'w' , "" }, /* w Small w */
- { 'x' , "" }, /* x Small x */
- { 'y' , "" }, /* y Small y */
- { 'z' , "" }, /* z Small z */
- { '{' , "" }, /* { Left curly brace */
- { '|' , "" }, /* | Vertical bar */
- { '}' , "" }, /* } Right curly brace */
- { '~' , "" }, /* ~ Tilde */
- { '' , "" }, /*  Unused */
- { '�' , "" }, /* € Unused */
-
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /* ‚ Unused */
- { ' ' , "" }, /* ƒ Unused */
- { ' ' , "" }, /* „ Unused */
- { ' ' , "" }, /* … Unused */
- { ' ' , "" }, /* † Unused */
- { ' ' , "" }, /* ‡ Unused */
- { ' ' , "" }, /* ˆ Unused */
- { ' ' , "" }, /* ‰ Unused */
- { ' ' , "" }, /* Š Horizontal tab */
- { ' ' , "" }, /* ‹ Line feed */
- { ' ' , "" }, /* Œ Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /* Ž Carriage Return */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /* ‘ Unused */
- { ' ' , "" }, /* ’ Unused */
- { ' ' , "" }, /* “ Unused */
- { ' ' , "" }, /* ” Unused */
- { ' ' , "" }, /* • Unused */
- { ' ' , "" }, /* – Unused */
- { ' ' , "" }, /* — Unused */
- { ' ' , "" }, /* ˜ Unused */
- { ' ' , "" }, /* ™ Unused */
- { ' ' , "" }, /* š Unused */
- { ' ' , "" }, /* › Unused */
- { ' ' , "" }, /* œ Unused */
- { ' ' , "" }, /*  Unused */
- { ' ' , "" }, /* ž Unused */
- { ' ' , "" }, /* Ÿ Unused */
- { '�' , "" }, /* Non-breaking Space */
- { '�' , "" }, /* Inverted exclamation */
- { '�' , "" }, /* Cent sign */
- { '�' , "" }, /* Pound sterling */
- { '�' , "" }, /* General currency sign */
- { '�' , "" }, /* Yen sign */
- { '�' , "" }, /* Broken vertical bar */
- { '�' , "" }, /* Section sign */
- { '�' , "" }, /* Di�resis / Umlaut */
- { '�' , "" }, /* Copyright */
- { '�' , "" }, /* Feminine ordinal */
- { '�' , "" }, /* Left angle quote, guillemot left */
- { '�' , "" }, /* Not sign */
- { '�' , "" }, /* Soft hyphen */
- { '�' , "" }, /* Registered trademark */
- { '�' , "" }, /* Macron accent */
- { '�' , "" }, /* Degree sign */
- { '�' , "" }, /* Plus or minus */
- { '�' , "" }, /* Superscript two */
- { '�' , "" }, /* Superscript three */
- { '�' , "" }, /* Acute accent */
- { '�' , "" }, /* Micro sign */
- { '�' , "" }, /* Paragraph sign */
- { '�' , "" }, /* Middle dot */
- { '�' , "" }, /* Cedilla */
- { '�' , "" }, /* Superscript one */
- { '�' , "" }, /* Masculine ordinal */
- { '�' , "" }, /* Right angle quote, guillemot right */
- { '�' , "" }, /* Fraction one-fourth */
- { '�' , "" }, /* Fraction one-half */
- { '�' , "" }, /* Fraction three-fourths */
- { '�' , "" }, /* Inverted question mark */
- { '�' , "" }, /* Capital A, grave accent */
- { '�' , "" }, /* Capital A, acute accent */
- { '�' , "" }, /* Capital A, circumflex */
- { '�' , "" }, /* Capital A, tilde */
- { '�' , "" }, /* Capital A, di�resis / umlaut */
- { '�' , "" }, /* Capital A, ring */
- { '�' , "" }, /* Capital AE ligature */
- { '�' , "" }, /* Capital C, cedilla */
- { '�' , "" }, /* Capital E, grave accent */
- { '�' , "" }, /* Capital E, acute accent */
- { '�' , "" }, /* Capital E, circumflex */
- { '�' , "" }, /* Capital E, di�resis / umlaut */
- { '�' , "" }, /* Capital I, grave accent */
- { '�' , "" }, /* Capital I, acute accent */
- { '�' , "" }, /* Capital I, circumflex */
- { '�' , "" }, /* Capital I, di�resis / umlaut */
- { '�' , "" }, /* Capital Eth, Icelandic */
- { '�' , "" }, /* Capital N, tilde */
- { '�' , "" }, /* Capital O, grave accent */
- { '�' , "" }, /* Capital O, acute accent */
- { '�' , "" }, /* Capital O, circumflex */
- { '�' , "" }, /* Capital O, tilde */
- { '�' , "" }, /* Capital O, di�resis / umlaut */
- { '�' , "" }, /* Multiply sign */
- { '�' , "" }, /* Capital O, slash */
- { '�' , "" }, /* Capital U, grave accent */
- { '�' , "" }, /* Capital U, acute accent */
- { '�' , "" }, /* Capital U, circumflex */
- { '�' , "" }, /* Capital U, di�resis / umlaut */
- { '�' , "" }, /* Capital Y, acute accent */
- { '�' , "" }, /* Capital Thorn, Icelandic */
- { '�' , "" }, /* Small sharp s, German sz */
- { '�' , "" }, /* Small a, grave accent */
- { '�' , "" }, /* Small a, acute accent */
- { '�' , "" }, /* Small a, circumflex */
- { '�' , "" }, /* Small a, tilde */
- { '�' , "" }, /* Small a, di�resis / umlaut */
- { '�' , "" }, /* Small a, ring */
- { '�' , "" }, /* Small ae ligature */
- { '�' , "" }, /* Small c, cedilla */
- { '�' , "" }, /* Small e, grave accent */
- { '�' , "" }, /* Small e, acute accent */
- { '�' , "" }, /* Small e, circumflex */
- { '�' , "" }, /* Small e, di�resis / umlaut */
- { '�' , "" }, /* Small i, grave accent */
- { '�' , "" }, /* Small i, acute accent */
- { '�' , "" }, /* Small i, circumflex */
- { '�' , "" }, /* Small i, di�resis / umlaut */
- { '�' , "" }, /* Small eth, Icelandic */
- { '�' , "" }, /* Small n, tilde */
- { '�' , "" }, /* Small o, grave accent */
- { '�' , "" }, /* Small o, acute accent */
- { '�' , "" }, /* Small o, circumflex */
- { '�' , "" }, /* Small o, tilde */
- { '�' , "" }, /* Small o, di�resis / umlaut */
- { '�' , "" }, /* Division sign */
- { '�' , "" }, /* Small o, slash */
- { '�' , "" }, /* Small u, grave accent */
- { '�' , "" }, /* Small u, acute accent */
- { '�' , "" }, /* Small u, circumflex */
- { '�' , "" }, /* Small u, di�resis / umlaut */
- { '�' , "" }, /* Small y, acute accent */
- { '�' , "" }, /* Small thorn, Icelandic */
- { '\255', "" }, /* Small y, di�resis / umlaut */
- } ;
-
-
-struct tCharTrans Html2Char [] =
-
- {
- { '�' , "" }, /* Capital AE ligature */
- { '�' , "" }, /* Capital A, acute accent */
- { '�' , "" }, /* Capital A, circumflex */
- { '�' , "" }, /* Capital A, grave accent */
- { '�' , "" }, /* Capital A, ring */
- { '�' , "" }, /* Capital A, tilde */
- { '�' , "" }, /* Capital A, di�resis / umlaut */
- { '�' , "" }, /* Capital C, cedilla */
- { '�' , "" }, /* Capital Eth, Icelandic */
- { '�' , "" }, /* Capital E, acute accent */
- { '�' , "" }, /* Capital E, circumflex */
- { '�' , "" }, /* Capital E, grave accent */
- { '�' , "" }, /* Capital E, di�resis / umlaut */
- { '�' , "" }, /* Capital I, acute accent */
- { '�' , "" }, /* Capital I, circumflex */
- { '�' , "" }, /* Capital I, grave accent */
- { '�' , "" }, /* Capital I, di�resis / umlaut */
- { '�' , "" }, /* Capital N, tilde */
- { '�' , "" }, /* Capital O, acute accent */
- { '�' , "" }, /* Capital O, circumflex */
- { '�' , "" }, /* Capital O, grave accent */
- { '�' , "" }, /* Capital O, slash */
- { '�' , "" }, /* Capital O, tilde */
- { '�' , "" }, /* Capital O, di�resis / umlaut */
- { '�' , "" }, /* Capital Thorn, Icelandic */
- { '�' , "" }, /* Capital U, acute accent */
- { '�' , "" }, /* Capital U, circumflex */
- { '�' , "" }, /* Capital U, grave accent */
- { '�' , "" }, /* Capital U, di�resis / umlaut */
- { '�' , "" }, /* Capital Y, acute accent */
- { '�' , "" }, /* Small a, acute accent */
- { '�' , "" }, /* Small a, circumflex */
- { '�' , "" }, /* Acute accent */
- { '�' , "" }, /* Small ae ligature */
- { '�' , "" }, /* Small a, grave accent */
- { '&' , "" }, /* Ampersand */
- { '�' , "" }, /* Small a, ring */
- { '�' , "" }, /* Small a, tilde */
- { '�' , "" }, /* Small a, di�resis / umlaut */
- { '�' , "" }, /* Broken vertical bar */
- { '�' , "" }, /* Broken vertical bar */
- { '�' , "" }, /* Small c, cedilla */
- { '�' , "" }, /* Cedilla */
- { '�' , "" }, /* Cent sign */
- { '�' , "" }, /* Copyright */
- { '�' , "" }, /* General currency sign */
- { '�' , "" }, /* Degree sign */
- { '�' , "" }, /* Di�resis / Umlaut */
- { '�' , "" }, /* Division sign */
- { '�' , "" }, /* Small e, acute accent */
- { '�' , "" }, /* Small e, circumflex */
- { '�' , "" }, /* Small e, grave accent */
- { '�' , "" }, /* Small eth, Icelandic */
- { '�' , "" }, /* Small e, di�resis / umlaut */
- { '�' , "" }, /* Fraction one-half */
- { '�' , "" }, /* Fraction one-fourth */
- { '�' , "" }, /* Fraction three-fourths */
- { '>' , "" }, /* Greater than */
- { '�' , "" }, /* Macron accent */
- { '�' , "" }, /* Small i, acute accent */
- { '�' , "" }, /* Small i, circumflex */
- { '�' , "" }, /* Inverted exclamation */
- { '�' , "" }, /* Small i, grave accent */
- { '�' , "" }, /* Inverted question mark */
- { '�' , "" }, /* Small i, di�resis / umlaut */
- { '�' , "" }, /* Left angle quote, guillemot left */
- { '<' , "" }, /* Less than */
- { '�' , "" }, /* Macron accent */
- { '�' , "" }, /* Micro sign */
- { '�' , "" }, /* Middle dot */
- { ' ' , "" }, /* Non-breaking Space */
- { '�' , "" }, /* Not sign */
- { '�' , "" }, /* Small n, tilde */
- { '�' , "" }, /* Small o, acute accent */
- { '�' , "" }, /* Small o, circumflex */
- { '�' , "" }, /* Small o, grave accent */
- { '�' , "" }, /* Feminine ordinal */
- { '�' , "" }, /* Masculine ordinal */
- { '�' , "" }, /* Small o, slash */
- { '�' , "" }, /* Small o, tilde */
- { '�' , "" }, /* Small o, di�resis / umlaut */
- { '�' , "" }, /* Paragraph sign */
- { '�' , "" }, /* Plus or minus */
- { '�' , "" }, /* Pound sterling */
- { '"' , "" }, /* Quotation mark */
- { '�' , "" }, /* Right angle quote, guillemot right */
- { '�' , "" }, /* Registered trademark */
- { '�' , "" }, /* Section sign */
- { '�' , "" }, /* Soft hyphen */
- { '�' , "" }, /* Superscript one */
- { '�' , "" }, /* Superscript two */
- { '�' , "" }, /* Superscript three */
- { '�' , "" }, /* Small sharp s, German sz */
- { '�' , "" }, /* Small thorn, Icelandic */
- { '�' , "" }, /* Multiply sign */
- { '�' , "" }, /* Small u, acute accent */
- { '�' , "" }, /* Small u, circumflex */
- { '�' , "" }, /* Small u, grave accent */
- { '�' , "" }, /* Di�resis / Umlaut */
- { '�' , "" }, /* Small u, di�resis / umlaut */
- { '�' , "" }, /* Small y, acute accent */
- { '�' , "" }, /* Yen sign */
- { '\255', "" }, /* Small y, di�resis / umlaut */
-} ;
-
-
-int sizeHtml2Char = sizeof (Html2Char) / sizeof (struct tCharTrans) ;
-
+*/
+
+#include "ep.h"
+
+
+
+/*
+* Character Translation
+*/
+
+
+struct tCharTrans Char2Html [] =
+
+ {
+ { ' ' , "" }, /* � Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /* 	 Horizontal tab */
+ { ' ' , "" }, /* Line feed */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /* Carriage Return */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*   Space */
+ { '!' , "" }, /* ! Exclamation mark */
+ { '"' , """ }, /* Quotation mark */
+ { '#' , "" }, /* # Number sign */
+ { '$' , "" }, /* $ Dollar sign */
+ { '%' , "" }, /* % Percent sign */
+ { '&' , "&" }, /* Ampersand */
+ { '\'' , "" }, /* ' Apostrophe */
+ { '(' , "" }, /* ( Left parenthesis */
+ { ')' , "" }, /* ) Right parenthesis */
+ { '*' , "" }, /* * Asterisk */
+ { '+' , "" }, /* + Plus sign */
+ { ',' , "" }, /* , Comma */
+ { '-' , "" }, /* - Hyphen */
+ { '.' , "" }, /* . Period (fullstop) */
+ { '/' , "" }, /* / Solidus (slash) */
+ { '0' , "" }, /* 0 Digit 0 */
+ { '1' , "" }, /* 1 Digit 1 */
+ { '2' , "" }, /* 2 Digit 2 */
+ { '3' , "" }, /* 3 Digit 3 */
+ { '4' , "" }, /* 4 Digit 4 */
+ { '5' , "" }, /* 5 Digit 5 */
+ { '6' , "" }, /* 6 Digit 6 */
+ { '7' , "" }, /* 7 Digit 7 */
+ { '8' , "" }, /* 8 Digit 8 */
+ { '9' , "" }, /* 9 Digit 9 */
+ { ':' , "" }, /* : Colon */
+ { ';' , "" }, /* ; Semicolon */
+ { '<' , "<" }, /* Less than */
+ { '=' , "" }, /* = Equals sign */
+ { '>' , ">" }, /* Greater than */
+ { '?' , "" }, /* ? Question mark */
+ { '@' , "" }, /* @ Commercial at */
+ { 'A' , "" }, /* A Capital A */
+ { 'B' , "" }, /* B Capital B */
+ { 'C' , "" }, /* C Capital C */
+ { 'D' , "" }, /* D Capital D */
+ { 'E' , "" }, /* E Capital E */
+ { 'F' , "" }, /* F Capital F */
+ { 'G' , "" }, /* G Capital G */
+ { 'H' , "" }, /* H Capital H */
+ { 'I' , "" }, /* I Capital I */
+ { 'J' , "" }, /* J Capital J */
+ { 'K' , "" }, /* K Capital K */
+ { 'L' , "" }, /* L Capital L */
+ { 'M' , "" }, /* M Capital M */
+ { 'N' , "" }, /* N Capital N */
+ { 'O' , "" }, /* O Capital O */
+ { 'P' , "" }, /* P Capital P */
+ { 'Q' , "" }, /* Q Capital Q */
+ { 'R' , "" }, /* R Capital R */
+ { 'S' , "" }, /* S Capital S */
+ { 'T' , "" }, /* T Capital T */
+ { 'U' , "" }, /* U Capital U */
+ { 'V' , "" }, /* V Capital V */
+ { 'W' , "" }, /* W Capital W */
+ { 'X' , "" }, /* X Capital X */
+ { 'Y' , "" }, /* Y Capital Y */
+ { 'Z' , "" }, /* Z Capital Z */
+ { '[' , "" }, /* [ Left square bracket */
+ { '\\' , "" }, /* \ Reverse solidus
(backslash) */
+ { ']' , "" }, /* ] Right square bracket
*/
+ { '^' , "" }, /* ^ Caret */
+ { '_' , "" }, /* _ Horizontal bar
(underscore) */
+ { '`' , "" }, /* ` Acute accent */
+ { 'a' , "" }, /* a Small a */
+ { 'b' , "" }, /* b Small b */
+ { 'c' , "" }, /* c Small c */
+ { 'd' , "" }, /* d Small d */
+ { 'e' , "" }, /* e Small e */
+ { 'f' , "" }, /* f Small f */
+ { 'g' , "" }, /* g Small g */
+ { 'h' , "" }, /* h Small h */
+ { 'i' , "" }, /* i Small i */
+ { 'j' , "" }, /* j Small j */
+ { 'k' , "" }, /* k Small k */
+ { 'l' , "" }, /* l Small l */
+ { 'm' , "" }, /* m Small m */
+ { 'n' , "" }, /* n Small n */
+ { 'o' , "" }, /* o Small o */
+ { 'p' , "" }, /* p Small p */
+ { 'q' , "" }, /* q Small q */
+ { 'r' , "" }, /* r Small r */
+ { 's' , "" }, /* s Small s */
+ { 't' , "" }, /* t Small t */
+ { 'u' , "" }, /* u Small u */
+ { 'v' , "" }, /* v Small v */
+ { 'w' , "" }, /* w Small w */
+ { 'x' , "" }, /* x Small x */
+ { 'y' , "" }, /* y Small y */
+ { 'z' , "" }, /* z Small z */
+ { '{' , "" }, /* { Left curly brace */
+ { '|' , "" }, /* | Vertical bar */
+ { '}' , "" }, /* } Right curly brace */
+ { '~' , "" }, /* ~ Tilde */
+ { '' , "" }, /*  Unused */
+ { '�' , "" }, /* € Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /* ‚ Unused */
+ { ' ' , "" }, /* ƒ Unused */
+ { ' ' , "" }, /* „ Unused */
+ { ' ' , "" }, /* … Unused */
+ { ' ' , "" }, /* † Unused */
+ { ' ' , "" }, /* ‡ Unused */
+ { ' ' , "" }, /* ˆ Unused */
+ { ' ' , "" }, /* ‰ Unused */
+ { ' ' , "" }, /* Š Horizontal tab */
+ { ' ' , "" }, /* ‹ Line feed */
+ { ' ' , "" }, /* Œ Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /* Ž Carriage Return */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /* ‘ Unused */
+ { ' ' , "" }, /* ’ Unused */
+ { ' ' , "" }, /* “ Unused */
+ { ' ' , "" }, /* ” Unused */
+ { ' ' , "" }, /* • Unused */
+ { ' ' , "" }, /* – Unused */
+ { ' ' , "" }, /* — Unused */
+ { ' ' , "" }, /* ˜ Unused */
+ { ' ' , "" }, /* ™ Unused */
+ { ' ' , "" }, /* š Unused */
+ { ' ' , "" }, /* › Unused */
+ { ' ' , "" }, /* œ Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /* ž Unused */
+ { ' ' , "" }, /* Ÿ Unused */
+ { ' ' , "" }, /* Non-breaking Space */
+ { '�' , "" }, /* Inverted exclamation */
+ { '�' , "" }, /* Cent sign */
+ { '�' , "" }, /* Pound sterling */
+ { '�' , "" }, /* General currency sign */
+ { '�' , "" }, /* Yen sign */
+/* { '�' , "" }, / * Broken vertical bar */
+ { '�' , "" }, /* Broken vertical bar */
+ { '�' , "" }, /* Section sign */
+/* { '�' , "" }, / * Di�resis / Umlaut */
+ { '�' , "" }, /* Di�resis / Umlaut */
+ { '�' , "" }, /* Copyright */
+ { '�' , "" }, /* Feminine ordinal */
+ { '�' , "" }, /* Left angle quote, guillemot left */
+ { '�' , "" }, /* Not sign */
+ { '�' , "" }, /* Soft hyphen */
+ { '�' , "" }, /* Registered trademark */
+/* { '�' , "" }, / * Macron accent */
+ { '�' , "" }, /* Macron accent */
+ { '�' , "" }, /* Degree sign */
+ { '�' , "" }, /* Plus or minus */
+ { '�' , "" }, /* Superscript two */
+ { '�' , "" }, /* Superscript three */
+ { '�' , "" }, /* Acute accent */
+ { '�' , "" }, /* Micro sign */
+ { '�' , "" }, /* Paragraph sign */
+ { '�' , "" }, /* Middle dot */
+ { '�' , "" }, /* Cedilla */
+ { '�' , "" }, /* Superscript one */
+ { '�' , "" }, /* Masculine ordinal */
+ { '�' , "" }, /* Right angle quote, guillemot right */
+ { '�' , "" }, /* Fraction one-fourth */
+ { '�' , "" }, /* Fraction one-half */
+ { '�' , "" }, /* Fraction three-fourths */
+ { '�' , "" }, /* Inverted question mark */
+ { '�' , "" }, /* Capital A, grave accent */
+ { '�' , "" }, /* Capital A, acute accent */
+ { '�' , "" }, /* Capital A, circumflex */
+ { '�' , "" }, /* Capital A, tilde */
+ { '�' , "" }, /* Capital A, di�resis / umlaut */
+ { '�' , "" }, /* Capital A, ring */
+ { '�' , "" }, /* Capital AE ligature */
+ { '�' , "" }, /* Capital C, cedilla */
+ { '�' , "" }, /* Capital E, grave accent */
+ { '�' , "" }, /* Capital E, acute accent */
+ { '�' , "" }, /* Capital E, circumflex */
+ { '�' , "" }, /* Capital E, di�resis / umlaut */
+ { '�' , "" }, /* Capital I, grave accent */
+ { '�' , "" }, /* Capital I, acute accent */
+ { '�' , "" }, /* Capital I, circumflex */
+ { '�' , "" }, /* Capital I, di�resis / umlaut */
+ { '�' , "" }, /* Capital Eth, Icelandic */
+ { '�' , "" }, /* Capital N, tilde */
+ { '�' , "" }, /* Capital O, grave accent */
+ { '�' , "" }, /* Capital O, acute accent */
+ { '�' , "" }, /* Capital O, circumflex */
+ { '�' , "" }, /* Capital O, tilde */
+ { '�' , "" }, /* Capital O, di�resis / umlaut */
+ { '�' , "" }, /* Multiply sign */
+ { '�' , "" }, /* Capital O, slash */
+ { '�' , "" }, /* Capital U, grave accent */
+ { '�' , "" }, /* Capital U, acute accent */
+ { '�' , "" }, /* Capital U, circumflex */
+ { '�' , "" }, /* Capital U, di�resis / umlaut */
+ { '�' , "" }, /* Capital Y, acute accent */
+ { '�' , "" }, /* Capital Thorn, Icelandic */
+ { '�' , "" }, /* Small sharp s, German sz */
+ { '�' , "" }, /* Small a, grave accent */
+ { '�' , "" }, /* Small a, acute accent */
+ { '�' , "" }, /* Small a, circumflex */
+ { '�' , "" }, /* Small a, tilde */
+ { '�' , "" }, /* Small a, di�resis / umlaut */
+ { '�' , "" }, /* Small a, ring */
+ { '�' , "" }, /* Small ae ligature */
+ { '�' , "" }, /* Small c, cedilla */
+ { '�' , "" }, /* Small e, grave accent */
+ { '�' , "" }, /* Small e, acute accent */
+ { '�' , "" }, /* Small e, circumflex */
+ { '�' , "" }, /* Small e, di�resis / umlaut */
+ { '�' , "" }, /* Small i, grave accent */
+ { '�' , "" }, /* Small i, acute accent */
+ { '�' , "" }, /* Small i, circumflex */
+ { '�' , "" }, /* Small i, di�resis / umlaut */
+ { '�' , "" }, /* Small eth, Icelandic */
+ { '�' , "" }, /* Small n, tilde */
+ { '�' , "" }, /* Small o, grave accent */
+ { '�' , "" }, /* Small o, acute accent */
+ { '�' , "" }, /* Small o, circumflex */
+ { '�' , "" }, /* Small o, tilde */
+ { '�' , "" }, /* Small o, di�resis / umlaut */
+ { '�' , "" }, /* Division sign */
+ { '�' , "" }, /* Small o, slash */
+ { '�' , "" }, /* Small u, grave accent */
+ { '�' , "" }, /* Small u, acute accent */
+ { '�' , "" }, /* Small u, circumflex */
+ { '�' , "" }, /* Small u, di�resis / umlaut */
+ { '�' , "" }, /* Small y, acute accent */
+ { '�' , "" }, /* Small thorn, Icelandic */
+ { '\255', "" }, /* Small y, di�resis / umlaut */
+ } ;
+
+
+struct tCharTrans Char2Url [] =
+
+ {
+ { ' ' , "%00" }, /* � Unused */
+ { ' ' , "%01" }, /*  Unused */
+ { ' ' , "%02" }, /*  Unused */
+ { ' ' , "%03" }, /*  Unused */
+ { ' ' , "%04" }, /*  Unused */
+ { ' ' , "%05" }, /*  Unused */
+ { ' ' , "%06" }, /*  Unused */
+ { ' ' , "%07" }, /*  Unused */
+ { ' ' , "%08" }, /*  Unused */
+ { ' ' , "%09" }, /* 	 Horizontal tab */
+ { ' ' , "%0A" }, /* Line feed */
+ { ' ' , "%0B" }, /*  Unused */
+ { ' ' , "%0C" }, /*  Unused */
+ { ' ' , "%0D" }, /* Carriage Return */
+ { ' ' , "%0E" }, /*  Unused */
+ { ' ' , "%0F" }, /*  Unused */
+ { ' ' , "%10" }, /*  Unused */
+ { ' ' , "%11" }, /*  Unused */
+ { ' ' , "%12" }, /*  Unused */
+ { ' ' , "%13" }, /*  Unused */
+ { ' ' , "%14" }, /*  Unused */
+ { ' ' , "%15" }, /*  Unused */
+ { ' ' , "%16" }, /*  Unused */
+ { ' ' , "%17" }, /*  Unused */
+ { ' ' , "%18" }, /*  Unused */
+ { ' ' , "%19" }, /*  Unused */
+ { ' ' , "%1A" }, /*  Unused */
+ { ' ' , "%1B" }, /*  Unused */
+ { ' ' , "%1C" }, /*  Unused */
+ { ' ' , "%1D" }, /*  Unused */
+ { ' ' , "%1E" }, /*  Unused */
+ { ' ' , "%1F" }, /*  Unused */
+ { ' ' , "+" }, /*   Space */
+ { '!' , "" }, /* ! Exclamation mark */
+ { '"' , "%22" }, /* Quotation mark */
+ { '#' , "" }, /* # Number sign */
+ { '$' , "" }, /* $ Dollar sign */
+ { '%' , "%25" }, /* % Percent sign */
+ { '&' , "%26" }, /* Ampersand */
+ { '\'' , "" }, /* ' Apostrophe */
+ { '(' , "" }, /* ( Left parenthesis */
+ { ')' , "" }, /* ) Right parenthesis */
+ { '*' , "" }, /* * Asterisk */
+ { '+' , "%2B" }, /* + Plus sign */
+ { ',' , "" }, /* , Comma */
+ { '-' , "" }, /* - Hyphen */
+ { '.' , "" }, /* . Period (fullstop) */
+ { '/' , "" }, /* / Solidus (slash) */
+ { '0' , "" }, /* 0 Digit 0 */
+ { '1' , "" }, /* 1 Digit 1 */
+ { '2' , "" }, /* 2 Digit 2 */
+ { '3' , "" }, /* 3 Digit 3 */
+ { '4' , "" }, /* 4 Digit 4 */
+ { '5' , "" }, /* 5 Digit 5 */
+ { '6' , "" }, /* 6 Digit 6 */
+ { '7' , "" }, /* 7 Digit 7 */
+ { '8' , "" }, /* 8 Digit 8 */
+ { '9' , "" }, /* 9 Digit 9 */
+ { ':' , "" }, /* : Colon */
+ { ';' , "" }, /* ; Semicolon */
+ { '<' , "" }, /* Less than */
+ { '=' , "%3D" }, /* = Equals sign */
+ { '>' , "" }, /* Greater than */
+ { '?' , "%3F" }, /* ? Question mark */
+ { '@' , "" }, /* @ Commercial at */
+ { 'A' , "" }, /* A Capital A */
+ { 'B' , "" }, /* B Capital B */
+ { 'C' , "" }, /* C Capital C */
+ { 'D' , "" }, /* D Capital D */
+ { 'E' , "" }, /* E Capital E */
+ { 'F' , "" }, /* F Capital F */
+ { 'G' , "" }, /* G Capital G */
+ { 'H' , "" }, /* H Capital H */
+ { 'I' , "" }, /* I Capital I */
+ { 'J' , "" }, /* J Capital J */
+ { 'K' , "" }, /* K Capital K */
+ { 'L' , "" }, /* L Capital L */
+ { 'M' , "" }, /* M Capital M */
+ { 'N' , "" }, /* N Capital N */
+ { 'O' , "" }, /* O Capital O */
+ { 'P' , "" }, /* P Capital P */
+ { 'Q' , "" }, /* Q Capital Q */
+ { 'R' , "" }, /* R Capital R */
+ { 'S' , "" }, /* S Capital S */
+ { 'T' , "" }, /* T Capital T */
+ { 'U' , "" }, /* U Capital U */
+ { 'V' , "" }, /* V Capital V */
+ { 'W' , "" }, /* W Capital W */
+ { 'X' , "" }, /* X Capital X */
+ { 'Y' , "" }, /* Y Capital Y */
+ { 'Z' , "" }, /* Z Capital Z */
+ { '[' , "" }, /* [ Left square bracket */
+ { '\\' , "" }, /* \ Reverse solidus
(backslash) */
+ { ']' , "" }, /* ] Right square bracket
*/
+ { '^' , "" }, /* ^ Caret */
+ { '_' , "" }, /* _ Horizontal bar
(underscore) */
+ { '`' , "" }, /* ` Acute accent */
+ { 'a' , "" }, /* a Small a */
+ { 'b' , "" }, /* b Small b */
+ { 'c' , "" }, /* c Small c */
+ { 'd' , "" }, /* d Small d */
+ { 'e' , "" }, /* e Small e */
+ { 'f' , "" }, /* f Small f */
+ { 'g' , "" }, /* g Small g */
+ { 'h' , "" }, /* h Small h */
+ { 'i' , "" }, /* i Small i */
+ { 'j' , "" }, /* j Small j */
+ { 'k' , "" }, /* k Small k */
+ { 'l' , "" }, /* l Small l */
+ { 'm' , "" }, /* m Small m */
+ { 'n' , "" }, /* n Small n */
+ { 'o' , "" }, /* o Small o */
+ { 'p' , "" }, /* p Small p */
+ { 'q' , "" }, /* q Small q */
+ { 'r' , "" }, /* r Small r */
+ { 's' , "" }, /* s Small s */
+ { 't' , "" }, /* t Small t */
+ { 'u' , "" }, /* u Small u */
+ { 'v' , "" }, /* v Small v */
+ { 'w' , "" }, /* w Small w */
+ { 'x' , "" }, /* x Small x */
+ { 'y' , "" }, /* y Small y */
+ { 'z' , "" }, /* z Small z */
+ { '{' , "" }, /* { Left curly brace */
+ { '|' , "" }, /* | Vertical bar */
+ { '}' , "" }, /* } Right curly brace */
+ { '~' , "" }, /* ~ Tilde */
+ { '' , "" }, /*  Unused */
+ { '�' , "" }, /* € Unused */
+
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /* ‚ Unused */
+ { ' ' , "" }, /* ƒ Unused */
+ { ' ' , "" }, /* „ Unused */
+ { ' ' , "" }, /* … Unused */
+ { ' ' , "" }, /* † Unused */
+ { ' ' , "" }, /* ‡ Unused */
+ { ' ' , "" }, /* ˆ Unused */
+ { ' ' , "" }, /* ‰ Unused */
+ { ' ' , "" }, /* Š Horizontal tab */
+ { ' ' , "" }, /* ‹ Line feed */
+ { ' ' , "" }, /* Œ Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /* Ž Carriage Return */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /* ‘ Unused */
+ { ' ' , "" }, /* ’ Unused */
+ { ' ' , "" }, /* “ Unused */
+ { ' ' , "" }, /* ” Unused */
+ { ' ' , "" }, /* • Unused */
+ { ' ' , "" }, /* – Unused */
+ { ' ' , "" }, /* — Unused */
+ { ' ' , "" }, /* ˜ Unused */
+ { ' ' , "" }, /* ™ Unused */
+ { ' ' , "" }, /* š Unused */
+ { ' ' , "" }, /* › Unused */
+ { ' ' , "" }, /* œ Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /* ž Unused */
+ { ' ' , "" }, /* Ÿ Unused */
+ { '�' , "" }, /* Non-breaking Space */
+ { '�' , "" }, /* Inverted exclamation */
+ { '�' , "" }, /* Cent sign */
+ { '�' , "" }, /* Pound sterling */
+ { '�' , "" }, /* General currency sign */
+ { '�' , "" }, /* Yen sign */
+ { '�' , "" }, /* Broken vertical bar */
+ { '�' , "" }, /* Section sign */
+ { '�' , "" }, /* Di�resis / Umlaut */
+ { '�' , "" }, /* Copyright */
+ { '�' , "" }, /* Feminine ordinal */
+ { '�' , "" }, /* Left angle quote, guillemot left */
+ { '�' , "" }, /* Not sign */
+ { '�' , "" }, /* Soft hyphen */
+ { '�' , "" }, /* Registered trademark */
+ { '�' , "" }, /* Macron accent */
+ { '�' , "" }, /* Degree sign */
+ { '�' , "" }, /* Plus or minus */
+ { '�' , "" }, /* Superscript two */
+ { '�' , "" }, /* Superscript three */
+ { '�' , "" }, /* Acute accent */
+ { '�' , "" }, /* Micro sign */
+ { '�' , "" }, /* Paragraph sign */
+ { '�' , "" }, /* Middle dot */
+ { '�' , "" }, /* Cedilla */
+ { '�' , "" }, /* Superscript one */
+ { '�' , "" }, /* Masculine ordinal */
+ { '�' , "" }, /* Right angle quote, guillemot right */
+ { '�' , "" }, /* Fraction one-fourth */
+ { '�' , "" }, /* Fraction one-half */
+ { '�' , "" }, /* Fraction three-fourths */
+ { '�' , "" }, /* Inverted question mark */
+ { '�' , "" }, /* Capital A, grave accent */
+ { '�' , "" }, /* Capital A, acute accent */
+ { '�' , "" }, /* Capital A, circumflex */
+ { '�' , "" }, /* Capital A, tilde */
+ { '�' , "" }, /* Capital A, di�resis / umlaut */
+ { '�' , "" }, /* Capital A, ring */
+ { '�' , "" }, /* Capital AE ligature */
+ { '�' , "" }, /* Capital C, cedilla */
+ { '�' , "" }, /* Capital E, grave accent */
+ { '�' , "" }, /* Capital E, acute accent */
+ { '�' , "" }, /* Capital E, circumflex */
+ { '�' , "" }, /* Capital E, di�resis / umlaut */
+ { '�' , "" }, /* Capital I, grave accent */
+ { '�' , "" }, /* Capital I, acute accent */
+ { '�' , "" }, /* Capital I, circumflex */
+ { '�' , "" }, /* Capital I, di�resis / umlaut */
+ { '�' , "" }, /* Capital Eth, Icelandic */
+ { '�' , "" }, /* Capital N, tilde */
+ { '�' , "" }, /* Capital O, grave accent */
+ { '�' , "" }, /* Capital O, acute accent */
+ { '�' , "" }, /* Capital O, circumflex */
+ { '�' , "" }, /* Capital O, tilde */
+ { '�' , "" }, /* Capital O, di�resis / umlaut */
+ { '�' , "" }, /* Multiply sign */
+ { '�' , "" }, /* Capital O, slash */
+ { '�' , "" }, /* Capital U, grave accent */
+ { '�' , "" }, /* Capital U, acute accent */
+ { '�' , "" }, /* Capital U, circumflex */
+ { '�' , "" }, /* Capital U, di�resis / umlaut */
+ { '�' , "" }, /* Capital Y, acute accent */
+ { '�' , "" }, /* Capital Thorn, Icelandic */
+ { '�' , "" }, /* Small sharp s, German sz */
+ { '�' , "" }, /* Small a, grave accent */
+ { '�' , "" }, /* Small a, acute accent */
+ { '�' , "" }, /* Small a, circumflex */
+ { '�' , "" }, /* Small a, tilde */
+ { '�' , "" }, /* Small a, di�resis / umlaut */
+ { '�' , "" }, /* Small a, ring */
+ { '�' , "" }, /* Small ae ligature */
+ { '�' , "" }, /* Small c, cedilla */
+ { '�' , "" }, /* Small e, grave accent */
+ { '�' , "" }, /* Small e, acute accent */
+ { '�' , "" }, /* Small e, circumflex */
+ { '�' , "" }, /* Small e, di�resis / umlaut */
+ { '�' , "" }, /* Small i, grave accent */
+ { '�' , "" }, /* Small i, acute accent */
+ { '�' , "" }, /* Small i, circumflex */
+ { '�' , "" }, /* Small i, di�resis / umlaut */
+ { '�' , "" }, /* Small eth, Icelandic */
+ { '�' , "" }, /* Small n, tilde */
+ { '�' , "" }, /* Small o, grave accent */
+ { '�' , "" }, /* Small o, acute accent */
+ { '�' , "" }, /* Small o, circumflex */
+ { '�' , "" }, /* Small o, tilde */
+ { '�' , "" }, /* Small o, di�resis / umlaut */
+ { '�' , "" }, /* Division sign */
+ { '�' , "" }, /* Small o, slash */
+ { '�' , "" }, /* Small u, grave accent */
+ { '�' , "" }, /* Small u, acute accent */
+ { '�' , "" }, /* Small u, circumflex */
+ { '�' , "" }, /* Small u, di�resis / umlaut */
+ { '�' , "" }, /* Small y, acute accent */
+ { '�' , "" }, /* Small thorn, Icelandic */
+ { '\255', "" }, /* Small y, di�resis / umlaut */
+ } ;
+
+
+struct tCharTrans Html2Char [] =
+
+ {
+ { '�' , "" }, /* Capital AE ligature */
+ { '�' , "" }, /* Capital A, acute accent */
+ { '�' , "" }, /* Capital A, circumflex */
+ { '�' , "" }, /* Capital A, grave accent */
+ { '�' , "" }, /* Capital A, ring */
+ { '�' , "" }, /* Capital A, tilde */
+ { '�' , "" }, /* Capital A, di�resis / umlaut */
+ { '�' , "" }, /* Capital C, cedilla */
+ { '�' , "" }, /* Capital Eth, Icelandic */
+ { '�' , "" }, /* Capital E, acute accent */
+ { '�' , "" }, /* Capital E, circumflex */
+ { '�' , "" }, /* Capital E, grave accent */
+ { '�' , "" }, /* Capital E, di�resis / umlaut */
+ { '�' , "" }, /* Capital I, acute accent */
+ { '�' , "" }, /* Capital I, circumflex */
+ { '�' , "" }, /* Capital I, grave accent */
+ { '�' , "" }, /* Capital I, di�resis / umlaut */
+ { '�' , "" }, /* Capital N, tilde */
+ { '�' , "" }, /* Capital O, acute accent */
+ { '�' , "" }, /* Capital O, circumflex */
+ { '�' , "" }, /* Capital O, grave accent */
+ { '�' , "" }, /* Capital O, slash */
+ { '�' , "" }, /* Capital O, tilde */
+ { '�' , "" }, /* Capital O, di�resis / umlaut */
+ { '�' , "" }, /* Capital Thorn, Icelandic */
+ { '�' , "" }, /* Capital U, acute accent */
+ { '�' , "" }, /* Capital U, circumflex */
+ { '�' , "" }, /* Capital U, grave accent */
+ { '�' , "" }, /* Capital U, di�resis / umlaut */
+ { '�' , "" }, /* Capital Y, acute accent */
+ { '�' , "" }, /* Small a, acute accent */
+ { '�' , "" }, /* Small a, circumflex */
+ { '�' , "" }, /* Acute accent */
+ { '�' , "" }, /* Small ae ligature */
+ { '�' , "" }, /* Small a, grave accent */
+ { '&' , "" }, /* Ampersand */
+ { '�' , "" }, /* Small a, ring */
+ { '�' , "" }, /* Small a, tilde */
+ { '�' , "" }, /* Small a, di�resis / umlaut */
+ { '�' , "" }, /* Broken vertical bar */
+ { '�' , "" }, /* Broken vertical bar */
+ { '�' , "" }, /* Small c, cedilla */
+ { '�' , "" }, /* Cedilla */
+ { '�' , "" }, /* Cent sign */
+ { '�' , "" }, /* Copyright */
+ { '�' , "" }, /* General currency sign */
+ { '�' , "" }, /* Degree sign */
+ { '�' , "" }, /* Di�resis / Umlaut */
+ { '�' , "" }, /* Division sign */
+ { '�' , "" }, /* Small e, acute accent */
+ { '�' , "" }, /* Small e, circumflex */
+ { '�' , "" }, /* Small e, grave accent */
+ { '�' , "" }, /* Small eth, Icelandic */
+ { '�' , "" }, /* Small e, di�resis / umlaut */
+ { '�' , "" }, /* Fraction one-half */
+ { '�' , "" }, /* Fraction one-fourth */
+ { '�' , "" }, /* Fraction three-fourths */
+ { '>' , "" }, /* Greater than */
+ { '�' , "" }, /* Macron accent */
+ { '�' , "" }, /* Small i, acute accent */
+ { '�' , "" }, /* Small i, circumflex */
+ { '�' , "" }, /* Inverted exclamation */
+ { '�' , "" }, /* Small i, grave accent */
+ { '�' , "" }, /* Inverted question mark */
+ { '�' , "" }, /* Small i, di�resis / umlaut */
+ { '�' , "" }, /* Left angle quote, guillemot left */
+ { '<' , "" }, /* Less than */
+ { '�' , "" }, /* Macron accent */
+ { '�' , "" }, /* Micro sign */
+ { '�' , "" }, /* Middle dot */
+ { ' ' , "" }, /* Non-breaking Space */
+ { '�' , "" }, /* Not sign */
+ { '�' , "" }, /* Small n, tilde */
+ { '�' , "" }, /* Small o, acute accent */
+ { '�' , "" }, /* Small o, circumflex */
+ { '�' , "" }, /* Small o, grave accent */
+ { '�' , "" }, /* Feminine ordinal */
+ { '�' , "" }, /* Masculine ordinal */
+ { '�' , "" }, /* Small o, slash */
+ { '�' , "" }, /* Small o, tilde */
+ { '�' , "" }, /* Small o, di�resis / umlaut */
+ { '�' , "" }, /* Paragraph sign */
+ { '�' , "" }, /* Plus or minus */
+ { '�' , "" }, /* Pound sterling */
+ { '"' , "" }, /* Quotation mark */
+ { '�' , "" }, /* Right angle quote, guillemot right */
+ { '�' , "" }, /* Registered trademark */
+ { '�' , "" }, /* Section sign */
+ { '�' , "" }, /* Soft hyphen */
+ { '�' , "" }, /* Superscript one */
+ { '�' , "" }, /* Superscript two */
+ { '�' , "" }, /* Superscript three */
+ { '�' , "" }, /* Small sharp s, German sz */
+ { '�' , "" }, /* Small thorn, Icelandic */
+ { '�' , "" }, /* Multiply sign */
+ { '�' , "" }, /* Small u, acute accent */
+ { '�' , "" }, /* Small u, circumflex */
+ { '�' , "" }, /* Small u, grave accent */
+ { '�' , "" }, /* Di�resis / Umlaut */
+ { '�' , "" }, /* Small u, di�resis / umlaut */
+ { '�' , "" }, /* Small y, acute accent */
+ { '�' , "" }, /* Yen sign */
+ { '\255', "" }, /* Small y, di�resis / umlaut */
+} ;
+
+
+int sizeHtml2Char = sizeof (Html2Char) / sizeof (struct tCharTrans) ;
+
1.69 +24 -6 embperl/epmain.c
Index: epmain.c
===================================================================
RCS file: /home/cvs/embperl/epmain.c,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -r1.68 -r1.69
--- epmain.c 2000/07/16 17:45:52 1.68
+++ epmain.c 2000/07/17 05:16:08 1.69
@@ -1610,7 +1610,12 @@
if (pConf -> sCookiePath)
free (pConf -> sCookiePath) ;
+ if (pConf -> sPath)
+ free (pConf -> sPath) ;
+ if (pConf -> sReqFilename)
+ free (pConf -> sReqFilename) ;
+
free (pConf) ;
}
@@ -1888,11 +1893,14 @@
if (!r -> pLastReq -> pReqSV)
pReqHV = newHV () ;
else
+ {
pReqHV = (HV *)SvRV (r -> pLastReq -> pReqSV) ;
+ SvREFCNT_inc (pReqHV) ;
+ }
- sv_unmagic (pReqHV, '~') ;
- sv_magic (pReqHV, NULL, '~', NULL, (STRLEN)r) ;
- r -> pReqSV = newRV_inc (pReqHV) ;
+ sv_unmagic ((SV *)pReqHV, '~') ;
+ sv_magic ((SV *)pReqHV, NULL, '~', NULL, (STRLEN)r) ;
+ r -> pReqSV = newRV_noinc ((SV *)pReqHV) ;
if (!r -> pLastReq -> pReqSV)
sv_bless (r -> pReqSV, gv_stashpv ("HTML::Embperl::Req", 0)) ;
@@ -2935,20 +2943,30 @@
char drive[_MAX_DRIVE];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
+ char * c = sInputfile ;
+ while (*c)
+ { /* convert / to \ */
+ if (*c == '/')
+ *c = '\\' ;
+ c++ ;
+ }
+
olddrive = _getdrive () ;
+ getcwd (olddir, sizeof (olddir) - 1) ;
+
_splitpath(sInputfile, drive, dir, fname, ext );
- _chdrive (drive[0] - 'A') ;
+ _chdrive (drive[0] - 'A' + 1) ;
#else
Dirname (sInputfile, dir, sizeof (dir) - 1) ;
-#endif
getcwd (olddir, sizeof (olddir) - 1) ;
+#endif
chdir (dir) ;
}
else
r -> bOptions |= optDisableChdir ;
-
+
if ((rc = ProcessFile (r, r -> Buf.pFile -> nFilesize)) != ok)
if (rc == rcExit)
rc = ok ;
1.18 +1 -1 embperl/epnames.h
Index: epnames.h
===================================================================
RCS file: /home/cvs/embperl/epnames.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- epnames.h 2000/04/17 21:03:15 1.17
+++ epnames.h 2000/07/17 05:16:08 1.18
@@ -96,7 +96,7 @@
#define GetSubTextPos EMBPERL_GetSubTextPos
#define SetSubTextPos EMBPERL_SetSubTextPos
#define SetupDebugger EMBPERL_SetupDebugger
-
+#define GetFileData EMBPERL_GetFileData
#define InitialReq EMBPERL_InitialReq
#define pCurrReq EMBPERL_pCurrReq
1.62 +42 -6 embperl/test.pl
Index: test.pl
===================================================================
RCS file: /home/cvs/embperl/test.pl,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -r1.61 -r1.62
--- test.pl 2000/07/16 17:45:52 1.61
+++ test.pl 2000/07/17 05:16:09 1.62
@@ -101,6 +101,7 @@
'EmbperlObject/obj/epoobj1.htm',
'EmbperlObject/obj/epoobj2.htm',
'EmbperlObject/obj/epoobj3.htm',
+ 'EmbperlObject/obj/epoobj4.htm',
) ;
@tests2 = (
@@ -286,10 +287,11 @@
@ARGVSAVE = @ARGV ;
-Getopt::Long::Configure ('bundling') ;
+eval { Getopt::Long::Configure ('bundling') } ;
+$@ = "" ;
$ret = GetOptions ("offline|o", "ep1|1", "cgi|c", "modperl|httpd|h", "execute|e",
"nokill|r", "loop|l:i",
"multchild|m", "memcheck|v", "exitonmem|g", "exitonsv", "config|f=s",
"nostart|x", "uniquefn|u",
- "quite|q", "ignoreerror|i", "tests|t", "blib|b", "help|?", "dbgbreak",
"finderr",
+ "quite|q", "ignoreerror|i", "tests|t", "blib|b", "help", "dbgbreak",
"finderr",
"ddd", "gdb", "ab:s", "start", "kill") ;
$opt_help = 1 if ($ret == 0) ;
@@ -361,8 +363,8 @@
print "--kill kill apache only\n" ;
print "\n\n" ;
print "path\t$EPPATH\n" ;
- print "httpd\t$EPHTTPD\n" ;
- print "port\t$port\n" ;
+ print "httpd\t" . ($EPHTTPD || '') . "\n" ;
+ print "port\t" . ($port || '') . "\n" ;
$fatal = 0 ;
exit (1) ;
}
@@ -689,6 +691,7 @@
use HTML::Embperl;
+use HTML::EmbperlObject ;
require HTML::Embperl::Module ;
print "ok\n";
@@ -719,6 +722,7 @@
$EP1COMPAT = 1 if ($opt_ep1) ;
@tests = @tests2 if ($EP2) ;
+$startnumber = 0 ;
if ($#ARGV >= 0)
{
@@ -729,6 +733,7 @@
elsif ($ARGV[0] =~ /^(\d+)-/)
{
my $i = $1 ;
+ $startnumber = $i ;
shift @tests while ($i-- > 0) ;
}
elsif ($ARGV[0] =~ /^\d/)
@@ -798,7 +803,7 @@
$n = 0 ;
$t_offline = 0 ;
$n_offline = 0 ;
- $testnum = -1 ;
+ $testnum = -1 + $startnumber ;
foreach $ep1compat (0, 1)
{
next if (($ep1compat && !($opt_ep1)) || (!$ep1compat &&
!($opt_offline)));
@@ -1056,6 +1061,37 @@
print "ok\n" unless ($err) ;
}
+ foreach $src ('EmbperlObject/epopage1.htm',
'EmbperlObject/sub/epopage2.htm', 'EmbperlObject/obj/epoobj3.htm')
+ {
+ if ($err == 0)
+ {
+ $src =~ m#^.*/(.*?)$# ;
+ $org = "$cmppath/$1" ;
+ $page = $src ;
+
+ $txt2 = "$src ...";
+ $txt2 .= ' ' x (30 - length ($txt2)) ;
+ print $txt2 ;
+
+ my $outdata ;
+ my @errors ;
+ unlink ($outfile) ;
+ $t1 = HTML::Embperl::Clock () ;
+ $err = HTML::EmbperlObject::Execute ({'inputfile' =>
"$EPPATH/$inpath/$src",
+ 'object_base' => 'epobase.htm',
+ 'debug' => $defaultdebug,
+ 'outputfile' => $outfile,
+ 'errors' => \@errors,
+ }) ;
+ $t_exec += HTML::Embperl::Clock () - $t1 ;
+
+ $err = CheckError (0) if ($err == 0) ;
+
+ $err = CmpFiles ($outfile, $org) if ($err == 0) ;
+ print "ok\n" unless ($err) ;
+ }
+ }
+
HTML::Embperl::Term () ;
}
}
@@ -1180,7 +1216,7 @@
$t_req = 0 ;
$n_req = 0 ;
$n = 0 ;
- $testnum = -1 ;
+ $testnum = -1 + $startnumber;
foreach $url (@tests)
{
$testnum++ ;
1.3 +0 -7 embperl/typemap
Index: typemap
===================================================================
RCS file: /home/cvs/embperl/typemap,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- typemap 2000/07/16 17:45:52 1.2
+++ typemap 2000/07/17 05:16:09 1.3
@@ -11,12 +11,6 @@
croak (\"$var is not of type HTML::Embperl::Conf\") ;
T_PTROBJ_REQ
- /*
- if (sv_derived_from ($arg, \"HTML::Embperl::Req\"))
- $var = (tReq *)(SvIV((SV *)SvRV($arg))) ;
- else
- croak (\"$var is not of type HTML::Embperl::Req\") ;
- */
{
MAGIC * mg ;
if (mg = mg_find (SvRV($arg), '~'))
@@ -43,7 +37,6 @@
$arg = &sv_undef ;
else
$arg = pSV ;
- SvREFCNT_inc (pSV) ;
}
T_PTROBJ_FILE
1.27 +21 -2 embperl/Embperl/Mail.pm
Index: Mail.pm
===================================================================
RCS file: /home/cvs/embperl/Embperl/Mail.pm,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- Mail.pm 2000/05/02 04:41:39 1.26
+++ Mail.pm 2000/07/17 05:16:20 1.27
@@ -9,7 +9,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: Mail.pm,v 1.26 2000/05/02 04:41:39 richter Exp $
+# $Id: Mail.pm,v 1.27 2000/07/17 05:16:20 richter Exp $
#
###################################################################################
@@ -32,7 +32,7 @@
@ISA = qw(HTML::Embperl);
-$VERSION = '0.01_dev-2';
+$VERSION = '1.3b4';
@@ -61,8 +61,13 @@
$req -> {mailhost} ||= $ENV{'EMBPERL_MAILHOST'} || 'localhost' ;
+ my $helo = $req -> {mailhelo} || $ENV{'EMBPERL_MAILHELO'} ;
+
my $smtp = Net::SMTP->new($req -> {mailhost},
- Debug => $req -> {maildebug} ||
$ENV{'EMBPERL_MAILDEBUG'}) or die "Cannot connect to mailhost $req->{mailhost}" ;
+ Debug => ($req -> {maildebug} ||
$ENV{'EMBPERL_MAILDEBUG'} || 0),
+ $helo?(Hello => $helo):())
+ ) or die "Cannot connect to mailhost
$req->{mailhost}" ;
+
my $from = $req -> {from} || $ENV{'EMBPERL_MAILFROM'} ;
$smtp->mail($from || "WWW-Server\@$ENV{SERVER_NAME}");
@@ -200,6 +205,13 @@
Specifies which host to use as SMTP server.
Default is B<localhost>.
+=item mailhelo
+
+Specifies which host/domain to use in the HELO/EHLO command.
+A reasonable default is normaly choosen by I<Net::SMTP>, but
+depending on your installation it may neccessary to set it
+manualy.
+
=item maildebug
Set to 1 to enable debugging of mail transfer.
@@ -230,6 +242,13 @@
Specifies which host to use as SMTP server.
Default is B<localhost>.
+
+=head2 EMBPERL_MAILHELO
+
+Specifies which host/domain to use in the HELO/EHLO command.
+A reasonable default is normaly choosen by I<Net::SMTP>, but
+depending on your installation it may neccessary to set it
+manualy.
=head2 EMBPERL_MAILFROM
1.3 +5 -5 embperl/test/cmp/eponotfound.htm
Index: eponotfound.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/eponotfound.htm,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- eponotfound.htm 2000/07/16 17:45:54 1.2
+++ eponotfound.htm 2000/07/17 05:16:21 1.3
@@ -4,13 +4,13 @@
</head>
<body>
<h1>another head from sub</h1>
-
+
Fallback PAGE
-
+
<hr> Footer <hr>
-
-
+
+
</body>
</html>
-
+
1.2 +5 -5 embperl/test/cmp/epoobj1.htm
Index: epoobj1.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/epoobj1.htm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- epoobj1.htm 2000/07/16 17:53:19 1.1
+++ epoobj1.htm 2000/07/17 05:16:21 1.2
@@ -9,13 +9,13 @@
<font size=1>title = default<br>
-----------------------------
-
+
PAGE 1
-
+
<hr> Footer <hr>
-
-
+
+
</body>
</html>
-
+
1.2 +5 -5 embperl/test/cmp/epoobj2.htm
Index: epoobj2.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/epoobj2.htm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- epoobj2.htm 2000/07/16 17:53:20 1.1
+++ epoobj2.htm 2000/07/17 05:16:21 1.2
@@ -9,13 +9,13 @@
<font size=1>title = epoobj2 -> page2<br>
-----------------------------
-
+
PAGE 2
-
+
<hr> Footer <hr>
-
-
+
+
</body>
</html>
-
+
1.2 +5 -5 embperl/test/cmp/epoobj3.htm
Index: epoobj3.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/epoobj3.htm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- epoobj3.htm 2000/07/16 17:53:20 1.1
+++ epoobj3.htm 2000/07/17 05:16:22 1.2
@@ -9,12 +9,12 @@
<font size=5>title = epoobj3 -> page3<br>
-----------------------------
-
- PAGE 3
+
+ PAGE 3
<hr> Footer <hr>
-
+
Gerald Richter / ecos (c) 2000
-
+
</body>
</html>
-
+
1.3 +5 -5 embperl/test/cmp/epopage1.htm
Index: epopage1.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/epopage1.htm,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- epopage1.htm 2000/07/16 17:45:54 1.2
+++ epopage1.htm 2000/07/17 05:16:22 1.3
@@ -4,13 +4,13 @@
</head>
<body>
<h1>head from foo</h1>
-
+
PAGE 1
-
+
<hr> Footer <hr>
-
-
+
+
</body>
</html>
-
+
1.3 +5 -5 embperl/test/cmp/epopage2.htm
Index: epopage2.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/epopage2.htm,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- epopage2.htm 2000/07/16 17:45:54 1.2
+++ epopage2.htm 2000/07/17 05:16:22 1.3
@@ -4,13 +4,13 @@
</head>
<body>
<h1>another head from sub</h1>
-
+
PAGE 2
-
+
<hr> Footer <hr>
-
-
+
+
</body>
</html>
-
+
1.17 +22 -22 embperl/test/cmp/escape.htm
Index: escape.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/escape.htm,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- escape.htm 2000/07/08 17:09:41 1.16
+++ escape.htm 2000/07/17 05:16:22 1.17
@@ -78,28 +78,28 @@
(this is the value in $a) äöüäöü???<&+
<a><BR>
(this%20is%20the%20value%20in%20$a)%20������%3F%3F%3F%3C%26%2B%20%20%20%20<a%3E<BR>
(this is the value in $a) äöüäöü???<&+
<a><BR>
-(this is the value in $a) ������???<&+ \<a><BR>
-(this is the value in $a) äöüäöü???<&+
\<a><BR>
-(this%20is%20the%20value%20in%20$a)%20������%3F%3F%3F%3C%26%2B%20%20%20%20\%3Ca%3E<BR>
-(this is the value in $a) äöüäöü???<&+
\<a><BR>
-
-Same without local:
-(this is the value in $a) ������???<&+ \<a><BR>
-(this is the value in $a) äöüäöü???<&+
<a><BR>
-(this%20is%20the%20value%20in%20$a)%20������%3F%3F%3F%3C%26%2B%20%20%20%20<a%3E<BR>
-(this is the value in $a) äöüäöü???<&+
<a><BR>
-(this is the value in $a) ������???<&+ \<a><BR>
-(this is the value in $a) äöüäöü???<&+
\<a><BR>
-(this%20is%20the%20value%20in%20$a)%20������%3F%3F%3F%3C%26%2B%20%20%20%20\%3Ca%3E<BR>
-(this is the value in $a) äöüäöü???<&+
\<a><BR>
-
-
-Control Chars 0x80-0x9f:
-€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ <BR>
-
-Control Chars 129 & 130:
-&#129;&#130;<BR>
+(this is the value in $a) ������???<&+ \<a><BR>
+(this is the value in $a) äöüäöü???<&+
\<a><BR>
+(this%20is%20the%20value%20in%20$a)%20������%3F%3F%3F%3C%26%2B%20%20%20%20\%3Ca%3E<BR>
+(this is the value in $a) äöüäöü???<&+
\<a><BR>
+
+Same without local:
+(this is the value in $a) ������???<&+ \<a><BR>
+(this is the value in $a) äöüäöü???<&+
<a><BR>
+(this%20is%20the%20value%20in%20$a)%20������%3F%3F%3F%3C%26%2B%20%20%20%20<a%3E<BR>
+(this is the value in $a) äöüäöü???<&+
<a><BR>
+(this is the value in $a) ������???<&+ \<a><BR>
+(this is the value in $a) äöüäöü???<&+
\<a><BR>
+(this%20is%20the%20value%20in%20$a)%20������%3F%3F%3F%3C%26%2B%20%20%20%20\%3Ca%3E<BR>
+(this is the value in $a) äöüäöü???<&+
\<a><BR>
+
+Control Chars 0x80-0x9f:
+€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ <BR>
+
+Control Chars 129 & 130:
+&#129;&#130;<BR>
+
0
<A HREF='http://host/script?name=My%20Name%20���'>
@@ -216,4 +216,4 @@
</body>
</html>
-
+
1.5 +1 -1 embperl/test/cmp/object.htm
Index: object.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/object.htm,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- object.htm 2000/07/08 17:09:41 1.4
+++ object.htm 2000/07/17 05:16:23 1.5
@@ -36,4 +36,4 @@
</body>
</html>
-
+
1.1 embperl/test/cmp/epoobj4.htm
Index: epoobj4.htm
===================================================================
<html>
<head>
<title>Example using Objects: <b>Embperl sub in title </b>0</title>
</head>
<body>
<h1>head from foo</h1>
<font size=9>title = <b>Embperl sub in title </b>0<br>
-----------------------------
PAGE 4
<hr> Footer <hr>
Gerald Richter / ecos (c) 2000 [page 4]
</body>
</html>
1.21 +3 -0 embperl/test/conf/httpd.conf.src
Index: httpd.conf.src
===================================================================
RCS file: /home/cvs/embperl/test/conf/httpd.conf.src,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- httpd.conf.src 2000/07/07 21:56:01 1.20
+++ httpd.conf.src 2000/07/17 05:16:25 1.21
@@ -53,6 +53,9 @@
SetEnv EMBPERL_SESSION_CLASS $EPSESSIONCLASS
PerlSetEnv SESSION_FILE_DIRECTORY $EPPATH/test/tmp
PerlSetEnv SESSION_DBI_DATASOURCE $EPSESSIONDS
+
+PerlSetEnv EMBPERL_MAILDEBUG 1
+
EOD
}
1.12 +21 -21 embperl/test/html/escape.htm
Index: escape.htm
===================================================================
RCS file: /home/cvs/embperl/test/html/escape.htm,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- escape.htm 2000/05/02 04:41:41 1.11
+++ escape.htm 2000/07/17 05:16:26 1.12
@@ -108,27 +108,27 @@
[+ local $escmode = 1 ; $b . " \\\\<a>" +]<BR>
[+ local $escmode = 2 ; $b . " \\\\<a>" +]<BR>
[+ local $escmode = 3 ; $b . " \\\\<a>" +]<BR>
-[+ local $escmode = 4 ; $b . " \\\\<a>" +]<BR>
-[+ local $escmode = 5 ; $b . " \\\\<a>" +]<BR>
-[+ local $escmode = 6 ; $b . " \\\\<a>" +]<BR>
-[+ local $escmode = 7 ; $b . " \\\\<a>" +]<BR>
-
-Same without local:
-[+ $escmode = 0 ; $b . " \\\\<a>" +]<BR>
-[+ $escmode = 1 ; $b . " \\\\<a>" +]<BR>
-[+ $escmode = 2 ; $b . " \\\\<a>" +]<BR>
-[+ $escmode = 3 ; $b . " \\\\<a>" +]<BR>
-[+ $escmode = 4 ; $b . " \\\\<a>" +]<BR>
-[+ $escmode = 5 ; $b . " \\\\<a>" +]<BR>
-[+ $escmode = 6 ; $b . " \\\\<a>" +]<BR>
-[+ $escmode = 7 ; $b . " \\\\<a>" +]<BR>
-
-
-Control Chars 0x80-0x9f:
-[+ local $escmode = 7 ; foreach (127..160) { $cc .= chr ($_) }; $cc +]<BR>
-
-Control Chars 129 & 130:
-[+ local $escmode = 7 ; "‚" +]<BR>
+[+ local $escmode = 4 ; $b . " \\\\<a>" +]<BR>
+[+ local $escmode = 5 ; $b . " \\\\<a>" +]<BR>
+[+ local $escmode = 6 ; $b . " \\\\<a>" +]<BR>
+[+ local $escmode = 7 ; $b . " \\\\<a>" +]<BR>
+
+Same without local:
+[+ $escmode = 0 ; $b . " \\\\<a>" +]<BR>
+[+ $escmode = 1 ; $b . " \\\\<a>" +]<BR>
+[+ $escmode = 2 ; $b . " \\\\<a>" +]<BR>
+[+ $escmode = 3 ; $b . " \\\\<a>" +]<BR>
+[+ $escmode = 4 ; $b . " \\\\<a>" +]<BR>
+[+ $escmode = 5 ; $b . " \\\\<a>" +]<BR>
+[+ $escmode = 6 ; $b . " \\\\<a>" +]<BR>
+[+ $escmode = 7 ; $b . " \\\\<a>" +]<BR>
+
+
+Control Chars 0x80-0x9f:
+[+ local $escmode = 7 ; foreach (127..160) { $cc .= chr ($_) }; $cc +]<BR>
+
+Control Chars 129 & 130:
+[+ local $escmode = 7 ; "‚" +]<BR>
[+ $n = 'My Name ���' ; $escmode = 0 +]
1.3 +2 -2 embperl/test/html/EmbperlObject/epofoot.htm
Index: epofoot.htm
===================================================================
RCS file: /home/cvs/embperl/test/html/EmbperlObject/epofoot.htm,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- epofoot.htm 2000/07/16 17:45:54 1.2
+++ epofoot.htm 2000/07/17 05:16:26 1.3
@@ -1,3 +1,3 @@
<hr> Footer <hr>
-
- [+ $self -> {copyright} +]
+
+ [+ $self -> {copyright} +]
1.3 +24 -24 embperl/test/html/EmbperlObject/obj/epobase.htm
Index: epobase.htm
===================================================================
RCS file: /home/cvs/embperl/test/html/EmbperlObject/obj/epobase.htm,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- epobase.htm 2000/07/16 17:45:55 1.2
+++ epobase.htm 2000/07/17 05:16:27 1.3
@@ -1,27 +1,27 @@
-[!
-
- sub new
- {
- my $self = shift ;
-
- $self -> {fontsize} = 1 ;
- }
-
- sub title
- {
- 'default' ;
- }
-
-!]
-
-[-
-$self = shift ;
-
-$self -> new ;
--]
-
-
+[!
+
+ sub new
+ {
+ my $self = shift ;
+
+ $self -> {fontsize} = 1 ;
+ }
+
+ sub title
+ {
+ 'default' ;
+ }
+
+!]
+
+[-
+$self = shift ;
+
+$self -> new ;
+-]
+
+
<html>
<head>
<title>Example using Objects: [+ $self -> title +]</title>
@@ -29,6 +29,6 @@
<body>
[- Execute ('epohead.htm') -]
[- Execute ('*') -]
- [- Execute ('epofoot.htm') -]
+ [- Execute ('epofoot.htm') -]
</body>
</html>
1.2 +2 -2 embperl/test/html/EmbperlObject/obj/epofoot.htm
Index: epofoot.htm
===================================================================
RCS file: /home/cvs/embperl/test/html/EmbperlObject/obj/epofoot.htm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- epofoot.htm 2000/07/16 17:53:20 1.1
+++ epofoot.htm 2000/07/17 05:16:27 1.2
@@ -1,3 +1,3 @@
<hr> Footer <hr>
-
- [+ $_[0] -> {copyright} +]
+
+ [+ $_[0] -> {copyright} +]
1.2 +15 -15 embperl/test/html/EmbperlObject/obj/epoobj3.htm
Index: epoobj3.htm
===================================================================
RCS file: /home/cvs/embperl/test/html/EmbperlObject/obj/epoobj3.htm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- epoobj3.htm 2000/07/16 17:53:20 1.1
+++ epoobj3.htm 2000/07/17 05:16:27 1.2
@@ -1,18 +1,18 @@
- [!
-
- sub new
- {
- my $self = shift ;
-
- $self -> {fontsize} = 5 ;
- $self -> {copyright} = 'Gerald Richter / ecos (c) 2000' ;
- }
-
- sub title
- {
- 'epoobj3 -> page3'
- }
-
+ [!
+
+ sub new
+ {
+ my $self = shift ;
+
+ $self -> {fontsize} = 5 ;
+ $self -> {copyright} = 'Gerald Richter / ecos (c) 2000' ;
+ }
+
+ sub title
+ {
+ 'epoobj3 -> page3'
+ }
+
!]
PAGE 3
1.1 embperl/test/html/EmbperlObject/obj/epoobj4.htm
Index: epoobj4.htm
===================================================================
[!
sub new
{
my $self = shift ;
$self -> {fontsize} = 9 ;
$self -> {copyright} = 'Gerald Richter / ecos (c) 2000 [page 4]' ;
}
!]
[$ sub title $]<b>Embperl sub in title </b>[$endsub$]
PAGE 4
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]