[csw-devel] SF.net SVN: gar:[4524] csw/mgar/pkg

dmichelsen at users.sourceforge.net dmichelsen at users.sourceforge.net
Mon Apr 27 14:47:03 CEST 2009


Revision: 4524
          http://gar.svn.sourceforge.net/gar/?rev=4524&view=rev
Author:   dmichelsen
Date:     2009-04-27 12:47:02 +0000 (Mon, 27 Apr 2009)

Log Message:
-----------
gtkhtml: Add legacy build description from Michael Gernoth

Added Paths:
-----------
    csw/mgar/pkg/gtkhtml/
    csw/mgar/pkg/gtkhtml/trunk/
    csw/mgar/pkg/gtkhtml/trunk/legacy/
    csw/mgar/pkg/gtkhtml/trunk/legacy/scripts/
    csw/mgar/pkg/gtkhtml/trunk/legacy/scripts/analyzer.pl
    csw/mgar/pkg/gtkhtml/trunk/legacy/scripts/human.pl
    csw/mgar/pkg/gtkhtml/trunk/legacy/scripts/pkghelper.pl
    csw/mgar/pkg/gtkhtml/trunk/legacy/sources/
    csw/mgar/pkg/gtkhtml/trunk/legacy/sources/gtkhtml-editor.patch
    csw/mgar/pkg/gtkhtml/trunk/legacy/sources/gtkhtml-void.patch
    csw/mgar/pkg/gtkhtml/trunk/legacy/sources/gtkhtml32-htmlpainter.patch
    csw/mgar/pkg/gtkhtml/trunk/legacy/sources/orbit-idl-2.fix.patch
    csw/mgar/pkg/gtkhtml/trunk/legacy/specs/
    csw/mgar/pkg/gtkhtml/trunk/legacy/specs/Makefile
    csw/mgar/pkg/gtkhtml/trunk/legacy/specs/gtkhtml

Added: csw/mgar/pkg/gtkhtml/trunk/legacy/scripts/analyzer.pl
===================================================================
--- csw/mgar/pkg/gtkhtml/trunk/legacy/scripts/analyzer.pl	                        (rev 0)
+++ csw/mgar/pkg/gtkhtml/trunk/legacy/scripts/analyzer.pl	2009-04-27 12:47:02 UTC (rev 4524)
@@ -0,0 +1,22 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+my %counter;
+
+while (<>) {
+	if (/\"GET (\/csw\/.*) HTTP\/.\..\"/) {
+		# print "match: $1\n";
+		my $path = $1;
+
+		if ($path =~ /\/csw\/(unstable|stable)\/(sparc|i386)\/5\.(8|9|10)\/([^-]*)-.*\.pkg.gz/) {
+			# print "real match: $1 $2 $3 $4\n";
+			$counter{$4}++;
+		}
+
+	}
+}
+
+foreach my $pkg (reverse(sort {$counter{$a} <=> $counter{$b} or $b cmp $a} (keys(%counter)))) {
+	printf "% 20.20s -> %d\n", $pkg, $counter{$pkg};
+}

Added: csw/mgar/pkg/gtkhtml/trunk/legacy/scripts/human.pl
===================================================================
--- csw/mgar/pkg/gtkhtml/trunk/legacy/scripts/human.pl	                        (rev 0)
+++ csw/mgar/pkg/gtkhtml/trunk/legacy/scripts/human.pl	2009-04-27 12:47:02 UTC (rev 4524)
@@ -0,0 +1,315 @@
+#!/usr/bin/perl -w
+#
+# $Id: human.pl,v 1.1 2004/03/09 10:21:13 simigern Exp $
+#
+# Copyright (c) 2000-2001, Jeremy Mates.  This script is free
+# software; you can redistribute it and/or modify it under the same
+# terms as Perl itself.
+#
+# Run perldoc(1) on this file for additional documentation.
+#
+######################################################################
+#
+# REQUIREMENTS
+
+require 5;
+
+use strict;
+
+######################################################################
+#
+# MODULES
+
+use Carp;			# better error reporting
+use Getopt::Std;		# command line option processing
+
+######################################################################
+#
+# VARIABLES
+
+my $VERSION;
+($VERSION = '$Revision: 1.1 $ ') =~ s/[^0-9.]//g;
+
+my (%opts, $base, $regex);
+
+# various parameters that adjust how the humanization is done
+# these really should be able to be specified on the command line, or
+# read in from a prefs file somewhere, as nobody will agree as to what
+# "proper" human output should look like... :)
+my %format = (
+	     # include decimals in output? (e.g. 25.8 K vs. 26 K)
+	     'decimal' => 1,
+	     # include .0 in decmail output?
+	     'decimal_zero' => 1,
+	     # what to divide file sizes down by
+	     # 1024 is generally "Kilobytes," while 1000 is
+             # "kilobytes," technically
+	     'factor' => 1024,
+	     # percentage above which will be bumped up
+	     # (e.g. 999 bytes -> 1 K as within 5% of 1024)
+	     # set to undef to turn off
+	     'fudge' => 0.95,
+	     # lengths above which decimals will not be included
+	     # for better readability
+	     'max_human_length' => 2,
+	     # list of suffixes for human readable output
+	     'suffix' => [ '', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y' ],
+	     );
+
+# default conversion to do nothing
+$base = 1;
+
+# default to working on runs of 4 or more digits
+$regex = '(?:(?<=\s)|(?<=^))(-?\d{4,})(?:\.\d*){0,1}(?=$|\s)';
+
+######################################################################
+#
+# MAIN
+
+# parse command-line options
+getopts('h?kb:m:', \%opts);
+
+help() if exists $opts{'h'} or exists $opts{'?'};
+
+# set the base conversion factor
+if (exists $opts{'b'}) {
+    ($base) = $opts{'b'} =~ m/(\d+)/;
+    die "Error: base should be a positive integer\n" unless $base;
+}
+
+$base = 1024 if exists $opts{'k'};
+
+# set different regex if requried, add matching parens if none
+# detected in input, as we need to match *something*
+$regex = $opts{'m'} if exists $opts{'m'};
+$regex = '(' . $regex . ')' unless $regex =~ m/\(.+\)/;
+
+while (<STDIN>) {
+    s/$regex/humanize($1)/ego;
+    print;
+}
+
+exit;
+
+######################################################################
+#
+# SUBROUTINES
+
+# Inspired from GNU's df -h output, which fixes 133456345 bytes
+# to be something human readable.
+#
+# takes a number, returns formatted string.
+sub humanize {
+    my $num = shift;
+
+    # error checking on input...
+    return $num unless $num =~ m/^-?\d+$/;
+
+    # some local working variables
+    my $count = 0;
+    my $prefix = '';
+    my $tmp = '';
+    my $orig_len = length $num;
+
+    # handle negatives
+    if ($num < 0 ) {
+	$num = abs $num;
+	$prefix = '-';
+    }
+
+    # adjust number to proper base
+    $num *= $base;
+    
+    # reduce number to something readable by factor specified	
+    while ($num > $format{'factor'}) {
+	$num /= $format{'factor'};
+	$count++;
+    }
+    
+    # optionally fudge "near" values up to next higher level
+    if (defined $format{'fudge'}) {
+	if ($num > ($format{'fudge'} * $format{'factor'})) {
+	    $count++;
+	    $num /= $format{'factor'};
+	}
+    }
+    
+    # no .[1-9] decimal on longer numbers for easier reading
+    # only show decimal if format say so
+    if (length sprintf("%.f", $num) > $format{'max_human_length'} || 
+	! $format{'decimal'}) {
+
+	$tmp = sprintf("%.0f", $num);
+
+    } else {
+	$tmp = sprintf("%.1f", $num);
+	
+	# optionally hack trailing .0 as is not needed
+	$tmp =~ s/\.0$// unless $format{'decimal_zero'};
+    }
+    
+    # return number with proper style applied and leading whitespace
+    # for proper right-justification
+    $tmp = $prefix . $tmp . $format{'suffix'}->[$count];
+    return (' ' x ($orig_len - length $tmp)) . $tmp;
+}
+
+# a generic help blarb
+sub help {
+    print <<"HELP";
+Usage: $0 [opts]
+
+Script to humanize numbers in data.
+
+Options for version $VERSION:
+  -h/-?  Display this message
+
+  -b nn  Integer to offset incoming data by.
+  -k     Default incoming data to Kilobtyes.  Default: bytes.
+
+  -m rr  Regex to match what to operate on.  Default: $regex.
+
+Run perldoc(1) on this script for additional documentation.
+
+HELP
+    exit;
+}
+
+######################################################################
+#
+# DOCUMENTATION
+
+=head1 NAME
+
+human.pl - humanizes file sizes in data
+
+=head1 SYNOPSIS
+
+Make df(1) output readable on systems lacking the human output option:
+
+  $ df -k | human.pl -k
+
+=head1 DESCRIPTION
+
+Intended as a quick way to humanize the output from random programs
+that displays unreadable file sizes, such as df(1) on large file
+systems:
+
+  $ df -k | grep nfs
+  nfs:/mbt    1026892400 704296472 322595928    69%    /mbt
+
+While certain utilities now support humanized output internally, not
+all systems have those utilities.  Hence, this perl script is intended
+to fill that gap util more utilities support humanization routines
+directly.  This will become more important as file systems continue to
+grow, and the exact number of bytes something takes up less meaningful
+to the user.
+
+The data munged by this script is less accurate, in that rounding is
+done in an effort to make the numbers more readable by a human.  In
+the above case, the munged data would look like:
+
+  $ df -k | grep nfs | human.pl -k
+  nfs:/mbt    1.0T 672G 308G    69%    /mbt
+
+=head2 Normal Usage
+
+  $ human.pl [options]
+
+See L<"OPTIONS"> for details on the command line switches supported.
+
+human.pl expects the data to be humanized to come via STDIN, and
+results will be piped to STDOUT.  Input can either be from a program,
+or you can interactively type numbers into the terminal and get a
+humanized size back.
+
+=head1 OPTIONS
+
+This script currently supports the following command line switches:
+
+=over 4
+
+=item B<-h>, B<-?>
+
+Prints a brief usage note about the script.
+
+=item B<-b> I<base>
+
+Optional integer to factor the incoming data by.  The humanizing
+routine operates on bytes by default, so numbers of different formats
+will have to be adjusted accordingly.
+
+The value should be one that adjusts the incoming data to be in bytes
+format; for example, incoming data in Kilobytes would need a base of
+1024 to be converted properly to bytes, as there are 1024 bytes in
+each Kilobyte.
+
+=item B<-k>
+
+Overrides B<-b> and treats the incoming data as if in Kilobytes.
+
+=item B<-m> I<regex>
+
+Optional perl regex to specify what in the incoming data should be
+operated on; the default of digit runs of four or more characters
+should be reasonable in most cases.
+
+Your regex should match integers of some kind; otherwise, the script
+will generally do nothing with your data and not print any warnings.
+If you are matching numbers inside of a more complictated regex, you
+will need to put parentheses around the number you want changed, and
+use non-capturing parentheses for preceeding items, as only $1 is
+passed to the humanizing routine.  See perlre(1) for more details.
+
+If you leave parentheses out of your regex, they will be added around
+it by default.  This lets you supply regex like '\d{7,}' and have it
+work, which is the same as saying '(\d{7,})' in this case.
+
+=back
+
+=head1 BUGS
+
+=head2 Reporting Bugs
+
+Newer versions of this script may be available from:
+
+http://sial.org/code/perl/
+
+If the bug is in the latest version, send a report to the author.
+Patches that fix problems or add new features are welcome.
+
+=head2 Known Issues
+
+No known issues.
+
+=head1 TODO
+
+Option to read humanizing prefs from a external location would be a
+nice idea.
+
+=head1 SEE ALSO
+
+perl(1)
+
+=head1 AUTHOR
+
+Jeremy Mates, http://sial.org/contact/
+
+=head1 COPYRIGHT
+
+Copyright (c) 2000-2001, Jeremy Mates.  This script is free
+software; you can redistribute it and/or modify it under the same
+terms as Perl itself.
+
+=head1 HISTORY
+
+Inspired from the B<-h> option present in GNU df, which is sorely
+lacking in commercial varients of the same name.  (On the other hand,
+leaving the job of humanizing to an external script is probably more
+inline with the unix philosphopy of filters.)
+
+=head1 VERSION
+
+  $Id: human.pl,v 1.1 2004/03/09 10:21:13 simigern Exp $
+
+=cut

Added: csw/mgar/pkg/gtkhtml/trunk/legacy/scripts/pkghelper.pl
===================================================================
--- csw/mgar/pkg/gtkhtml/trunk/legacy/scripts/pkghelper.pl	                        (rev 0)
+++ csw/mgar/pkg/gtkhtml/trunk/legacy/scripts/pkghelper.pl	2009-04-27 12:47:02 UTC (rev 4524)
@@ -0,0 +1,696 @@
+#!/opt/csw/bin/perl -w
+use strict;
+use warnings FATAL => 'uninitialized';
+
+use FindBin qw($RealBin $RealScript);
+use File::Basename;
+use Getopt::Long;
+
+my @csw_ignore = qw(
+opt/csw
+opt/csw/bin
+opt/csw/bin/sparcv8
+opt/csw/bin/sparcv8plus
+opt/csw/bin/sparcv8plus+vis
+opt/csw/bin/sparcv9
+opt/csw/lib
+opt/csw/lib/X11
+opt/csw/lib/X11/app-defaults
+opt/csw/lib/sparcv8plus
+opt/csw/lib/sparcv8plus+vis
+opt/csw/lib/sparcv9
+opt/csw/sbin
+opt/csw/share
+opt/csw/share/doc
+opt/csw/share/info
+opt/csw/share/locale
+opt/csw/share/locale/az
+opt/csw/share/locale/az/LC_MESSAGES
+opt/csw/share/locale/be
+opt/csw/share/locale/be/LC_MESSAGES
+opt/csw/share/locale/bg
+opt/csw/share/locale/bg/LC_MESSAGES
+opt/csw/share/locale/ca
+opt/csw/share/locale/ca/LC_MESSAGES
+opt/csw/share/locale/cs
+opt/csw/share/locale/cs/LC_MESSAGES
+opt/csw/share/locale/da
+opt/csw/share/locale/da/LC_MESSAGES
+opt/csw/share/locale/de
+opt/csw/share/locale/de/LC_MESSAGES
+opt/csw/share/locale/el
+opt/csw/share/locale/el/LC_MESSAGES
+opt/csw/share/locale/en at boldquot
+opt/csw/share/locale/en at boldquot/LC_MESSAGES
+opt/csw/share/locale/en at quot
+opt/csw/share/locale/en at quot/LC_MESSAGES
+opt/csw/share/locale/es
+opt/csw/share/locale/es/LC_MESSAGES
+opt/csw/share/locale/et
+opt/csw/share/locale/et/LC_MESSAGES
+opt/csw/share/locale/eu
+opt/csw/share/locale/eu/LC_MESSAGES
+opt/csw/share/locale/fi
+opt/csw/share/locale/fi/LC_MESSAGES
+opt/csw/share/locale/fr
+opt/csw/share/locale/fr/LC_MESSAGES
+opt/csw/share/locale/ga
+opt/csw/share/locale/ga/LC_MESSAGES
+opt/csw/share/locale/gl
+opt/csw/share/locale/gl/LC_MESSAGES
+opt/csw/share/locale/he
+opt/csw/share/locale/he/LC_MESSAGES
+opt/csw/share/locale/hr
+opt/csw/share/locale/hr/LC_MESSAGES
+opt/csw/share/locale/hu
+opt/csw/share/locale/hu/LC_MESSAGES
+opt/csw/share/locale/id
+opt/csw/share/locale/id/LC_MESSAGES
+opt/csw/share/locale/it
+opt/csw/share/locale/it/LC_MESSAGES
+opt/csw/share/locale/ja
+opt/csw/share/locale/ja/LC_MESSAGES
+opt/csw/share/locale/ko
+opt/csw/share/locale/ko/LC_MESSAGES
+opt/csw/share/locale/locale.alias
+opt/csw/share/locale/lt
+opt/csw/share/locale/lt/LC_MESSAGES
+opt/csw/share/locale/nl
+opt/csw/share/locale/nl/LC_MESSAGES
+opt/csw/share/locale/nn
+opt/csw/share/locale/nn/LC_MESSAGES
+opt/csw/share/locale/no
+opt/csw/share/locale/no/LC_MESSAGES
+opt/csw/share/locale/pl
+opt/csw/share/locale/pl/LC_MESSAGES
+opt/csw/share/locale/pt
+opt/csw/share/locale/pt/LC_MESSAGES
+opt/csw/share/locale/pt_BR
+opt/csw/share/locale/pt_BR/LC_MESSAGES
+opt/csw/share/locale/ro
+opt/csw/share/locale/ro/LC_MESSAGES
+opt/csw/share/locale/ru
+opt/csw/share/locale/ru/LC_MESSAGES
+opt/csw/share/locale/sk
+opt/csw/share/locale/sk/LC_MESSAGES
+opt/csw/share/locale/sl
+opt/csw/share/locale/sl/LC_MESSAGES
+opt/csw/share/locale/sp
+opt/csw/share/locale/sp/LC_MESSAGES
+opt/csw/share/locale/sr
+opt/csw/share/locale/sr/LC_MESSAGES
+opt/csw/share/locale/sv
+opt/csw/share/locale/sv/LC_MESSAGES
+opt/csw/share/locale/tr
+opt/csw/share/locale/tr/LC_MESSAGES
+opt/csw/share/locale/uk
+opt/csw/share/locale/uk/LC_MESSAGES
+opt/csw/share/locale/vi
+opt/csw/share/locale/vi/LC_MESSAGES
+opt/csw/share/locale/wa
+opt/csw/share/locale/wa/LC_MESSAGES
+opt/csw/share/locale/zh
+opt/csw/share/locale/zh/LC_MESSAGES
+opt/csw/share/locale/zh_CN
+opt/csw/share/locale/zh_CN/LC_MESSAGES
+opt/csw/share/locale/zh_CN.GB2312
+opt/csw/share/locale/zh_CN.GB2312/LC_MESSAGES
+opt/csw/share/locale/zh_TW
+opt/csw/share/locale/zh_TW/LC_MESSAGES
+opt/csw/share/locale/zh_TW.Big5
+opt/csw/share/locale/zh_TW.Big5/LC_MESSAGES
+opt/csw/share/man
+);
+
+my @csw_dirs = qw();
+#my @csw_dirs = qw(
+#etc/init.d
+#etc/rc0.d
+#etc/rc1.d
+#etc/rc2.d
+#etc/rc3.d
+#etc/rcS.d
+#opt/csw
+#opt/csw/etc
+#opt/csw/bin
+#opt/csw/bin/sparcv8
+#opt/csw/bin/sparcv8plus
+#opt/csw/bin/sparcv8plus+vis
+#opt/csw/bin/sparcv9
+#opt/csw/sbin
+#opt/csw/share
+#opt/csw/share/doc
+#opt/csw/share/locale
+#opt/csw/share/man
+#opt/csw/share/man/man1
+#opt/csw/share/man/man2
+#opt/csw/share/man/man3
+#opt/csw/share/man/man4
+#opt/csw/share/man/man5
+#opt/csw/share/man/man6
+#opt/csw/share/man/man7
+#opt/csw/share/man/man8
+#opt/csw/share/info
+#opt/csw/lib
+#opt/csw/lib/X11
+#opt/csw/lib/X11/app-defaults
+#opt/csw/include
+#opt/csw/libexec
+#opt/csw/var
+#);
+
+my @possible_scripts = qw(request checkinstall preinstall postinstall preremove postremove);
+
+my @sunwsprolocs = ('/opt/forte11x86/SUNWspro/bin', '/opt/forte11/SUNWspro/bin', '/opt/studio/SOS11/SUNWspro/bin', '/opt/studio/SOS10/SUNWspro/bin', '/opt/forte8/SUNWspro/bin', '/opt/SUNWspro/bin');
+my $builddir     = $ENV{'BUILDDIR'} || '/opt/build/michael';
+my $packagedir   = $ENV{'PACKAGEDIR'} || "${RealBin}/../packages";
+my $content      = "/var/sadm/install/contents";
+my %options; # getopt
+
+# variables defined via eval
+my $progname     = undef;
+my $version      = undef;
+my $buildroot    = undef;
+my $category     = undef;
+my $vendor       = undef;
+my $hotline      = 'http://www.opencsw.org/bugtrack/';
+my $email        = 'michael at opencsw.org';
+my @sources      = undef;
+my $prepatch     = undef;
+my @patches      = (); # default to no patches
+my $copyright    = undef;
+my $build        = undef;
+my $suffix       = undef;
+my $rev          = undef;
+my $arch         = undef;
+my $osversion    = undef;
+my @packages     = undef;
+my @isaexecs     = ();
+my $sunwspropath = undef;
+my %attributes   = ();
+my %seenpaths    = ();
+my %contents     = ();
+
+# helper applications
+my $tar = '/opt/csw/bin/gtar';
+
+sub
+prepare
+{
+	chdir($builddir) || die("can't change to $builddir");
+
+	foreach my $source (@sources) {
+		if      (($source =~ /tar\.gz$/)
+		       ||($source =~ /tgz$/)
+		       ||($source =~ /tar\.Z$/)) {
+			system("/bin/gzcat ${RealBin}/../sources/${source} | ${tar} xf -");
+
+		} elsif ($source =~ /tar\.bz2$/) {
+			system("/bin/bzcat ${RealBin}/../sources/${source} | ${tar} xf -");
+
+		} elsif ($source =~ /tar$/) {
+			system("${tar} xf ${RealBin}/../sources/${source}");
+
+		} else {
+			die("don't know how to extrace ${source}");
+		}
+	}
+
+	if (defined($prepatch)) {
+		open(PREPATCH, "> $builddir/prepatch") || die ("can't create $builddir/prepatch: $!");
+		print PREPATCH $prepatch;
+		close(PREPATCH);
+		system("chmod +x $builddir/prepatch");
+		system("/bin/bash -x $builddir/prepatch");
+		unlink("$builddir/prepatch");
+	}
+
+	foreach my $patch (@patches) {
+		chdir("$builddir/@{$patch}[1]") || die("can't change to $builddir/@{$patch}[1]");
+		system("gpatch @{$patch}[2] < ${RealBin}/../sources/@{$patch}[0]");
+	}
+}
+
+sub probe_directory
+{
+        while (my $dir = shift) {
+                -d $dir && return $dir;
+        }
+
+        return undef;
+}
+
+
+sub
+isaexec
+{
+	foreach my $exec (@isaexecs) {
+		open(ISA, "> ${builddir}/isaexec.c") || die("can't create ${builddir}/isaexec.c for overwrite: $!");
+		print ISA <<"EOF";
+#include <unistd.h>
+
+int
+main(int argc, char *argv[], char *envp[])
+{
+	return (isaexec("${exec}", argv, envp));
+}
+EOF
+		close(ISA);
+		system("${sunwspropath}/cc -o ${buildroot}${exec} ${builddir}/isaexec.c");
+		unlink("${builddir}/isaexec.c");
+	}
+}
+
+sub
+build
+{
+	chdir($builddir) || die("can't change to $builddir");
+
+	open(BUILD, "> $builddir/build") || die ("can't create $builddir/build: $!");
+	print BUILD $build;
+	close(BUILD);
+	system("chmod +x $builddir/build");
+	system("/bin/bash -x $builddir/build");
+	unlink("$builddir/build");
+	isaexec();
+	strip();
+}
+
+sub
+compute_ownership
+{
+	my $path  = shift;
+	my $perm  = shift;
+	my $user  = 'root';
+	my $group = 'bin';
+
+	if (%attributes) {
+		$perm  = $attributes{$path}->{perm}   || $perm;
+		$user  = $attributes{$path}->{user}   || $user;
+		$group = $attributes{$path}->{group} || $group;
+	}
+
+	return "$perm $user $group\n";
+}
+
+# This functions purpose is to get sure that all directories in /path/to/file
+# are also in file list. It also accounts which filename was packaged in what
+# package. So that it possible to warn the user if a file has been packaed in
+# more than one package.
+
+sub
+verify_path
+{
+	my $r = shift;
+	my $prototype = shift;
+	my $path      = shift;
+
+	push(@{$seenpaths{$path}}, "CSW$r->{pkgname}");
+
+	# Handle symlinks in the art of etc/rcS.d/K03cswsamba=../init.d
+	$path =~ s/=.*$//;
+
+	while ('.' ne ($path = dirname($path))) {
+		if (! grep($_ =~ /^d none \/\Q${path}\E\s+/, @$prototype)) {
+			pkgproto($r, $prototype, `echo ${path} | pkgproto`);
+		}
+	}
+}
+
+sub
+pkgproto
+{
+	my $r = shift;
+	my $prototype = shift;
+
+	while (my $line = shift) {
+		my @fields = split(/\s+/, $line);
+		if ($fields[0] eq 'd') {
+			# d none opt/csw 0755 sithglan icipguru
+			if ((! ($fields[2] =~ /\//)) || (grep($fields[2] eq $_, @csw_ignore)) ) {
+				# skip toplevel dirs (opt, etc, ...)
+
+			} elsif (grep($fields[2] eq $_, @csw_dirs)) {
+				unshift(@$prototype, "$fields[0] $fields[1] /$fields[2] ? ? ?\n");
+			} else {
+				unshift(@$prototype, "$fields[0] $fields[1] /$fields[2] " . compute_ownership("/$fields[2]", "$fields[3]"));
+			}
+
+		} elsif ($fields[0] eq 'f') {
+			# f none opt/csw 0755 sithglan icipguru
+			push(@$prototype, "$fields[0] $fields[1] /$fields[2] " . compute_ownership("/$fields[2]", "$fields[3]"));
+			verify_path($r, $prototype, $fields[2]);
+
+		} elsif ( ($fields[0] eq 's')
+			||($fields[0] eq 'l')) {
+			push(@$prototype, "$fields[0] $fields[1] /$fields[2]\n");
+			verify_path($r, $prototype, $fields[2]);
+		} else {
+			die ("unknown line: <$line>");
+		}
+	}
+}
+
+sub
+generate_prototype
+{
+	my $r = shift;
+
+	my @prototype = ();
+
+	chdir($buildroot) || die("can't change to ${buildroot}: $!");
+	push(@prototype, "i pkginfo\n");
+	push(@prototype, "i depend\n");
+	if (defined(${copyright})) {
+		-f "$builddir/${copyright}" || die("can't find copyrightfile: $!");
+		system("cp $builddir/${copyright} copyright");
+		push(@prototype, "i copyright\n");
+	}
+	foreach my $file (@possible_scripts) {
+		if (defined($r->{"$file"})) {
+			-f "${RealBin}/../sources/$r->{$file}" || die("can't find $file: $!");
+			system("cp -f ${RealBin}/../sources/$r->{$file} $file");
+			push(@prototype, "i $file\n");
+		}
+	}
+
+	my @dirs  = `gfind @{$r->{filelist}} -type d | sort | uniq | pkgproto`;
+	pkgproto($r, \@prototype, @dirs);
+	my @links = `gfind @{$r->{filelist}} -type l | sort | uniq | pkgproto`;
+	pkgproto($r, \@prototype, @links);
+	my @files = `gfind @{$r->{filelist}} -type f | sort | uniq | pkgproto`;
+	pkgproto($r, \@prototype, @files);
+
+	open(PROTOTYPE, "> ${buildroot}/prototype") || die("can't open ${buildroot}/prototype for overwrite: $!");
+	print PROTOTYPE @prototype;
+	close(PROTOTYPE);
+}
+
+sub
+uniq
+{
+	my %hash; @hash{@_} = ();
+	return sort keys %hash;
+}
+
+sub
+write_dependencies
+{
+	my $r = shift || die("one reference expected");
+
+	my @out = `pkginfo`;
+	my %pkg = ();
+	foreach my $line (@out) {
+		if ($line =~ /^[^\s]+\s+([^\s]+)\s+([^\s].*)/) {
+			$pkg{$1} = "$2";
+		}
+	}
+
+	open(DEP, '> depend') || die("can't open depend file: $!");
+
+	foreach my $dep (@{$r->{dependencies}}) {
+		if (! defined($pkg{$dep})) {
+			print STDERR "WARNING: FAKEING dependency for <$dep>\n";
+			$pkg{$dep} = 'common - THIS IS A FAKE DEPENDENCY';
+		}
+		print DEP "P $dep $pkg{$dep}\n";
+	}
+
+	if (defined($r->{incompatibilities})) {
+		foreach my $inc (@{$r->{incompatibilities}}) {
+			if (! defined($pkg{$inc})) {
+				print STDERR "WARNING: FAKEING incompatibiltie for <$inc>\n";
+				$pkg{$inc} = 'common - THIS IS A FAKE INCOMPATIBILTY';
+			}
+			print DEP "I $inc $pkg{$inc}\n";
+		}
+	}
+
+	close(DEP);
+}
+
+sub
+resolve_link
+{
+	my $file = shift || die ("one argument expected");
+	my $count = 0;
+
+	chomp($file);
+
+	while ((-l $file)
+	    && ($count < 10)) {
+		my $dirname = dirname($file);
+		$file = readlink($file);
+		if(! ($file =~ /^\//)) {
+			$file = $dirname . '/' . $file;
+		} 
+		$count++;
+	}
+
+	return $file;
+}
+
+sub
+a1minusa2
+{
+	my ($a1,$a2) = @_;
+	my %h;
+	@h{@$a2} = (1) x @$a2;
+	return grep {!exists $h{$_}} @$a1;
+}
+
+sub
+populate_contents
+{
+	open(FILE, ${content}) || die("can't open ${content}: $!");
+	for my $line (<FILE>) {
+		# /etc/cron.d/queuedefs f none 0644 root sys 17 1164 1018133064 SUNWcsr
+		# 0                     1 2    3    4    5   6  7    8          9
+		my @array = split(/\s+/, $line);
+		my ($file, $type, @packages) = @array[0, 1, 9 ... $#array];
+		if ($type =~ /^f$/) {
+			push(@{$contents{$file}}, @packages);
+		}
+	}
+	close(FILE);
+}
+
+sub
+find_dependencies
+{
+	my $r = shift || die("one reference expected");
+	populate_contents();
+
+	chdir(${buildroot}) || die("can't change to ${buildroot}: $!");
+	# look for shared libaries
+	my @deps = `gfind @{$r->{filelist}} \\( -type f -perm +111 \\) -o -path opt/csw/lib/\\*.so\\* | xargs ldd 2> /dev/null | grep -v 'file not found' 2> /dev/null | grep '=>' | awk '{print \$3}'`;
+
+	# look for bangs
+	my @files = `gfind @{$r->{filelist}} -type f -perm +111`;
+	foreach my $file (@possible_scripts) {
+		-f "${buildroot}/${file}" && push(@files, "${buildroot}/${file}");
+	}
+	foreach my $file (@files) {
+		chomp($file);
+		open(FILE, $file) || die("can't open ${file}: $!");
+		my $firstline = <FILE>;
+		if ($firstline =~ /^#!\s?([^\s]+)/) {
+			push(@deps, "$1\n");
+		}
+		close(FILE);
+	}
+	
+	# resolve symlinks / substitute
+	@deps = uniq(@deps);
+	for my $element (@deps) {
+		# /bin and /lib are packages in /usr/{bin,lib}
+		$element =~ s#^/bin#/usr/bin#;
+		$element =~ s#^/lib#/usr/lib#;
+		# /opt/csw/lib/sparcv8 is a symlink to .
+		$element =~ s#^/opt/csw/lib/sparcv8#/opt/csw/lib#;
+		# Resolve links if necessary
+		$element = resolve_link($element);
+	}
+
+	# get dependencies
+	foreach my $dep (@deps) {
+		# </usr/lib/../openwin/lib/libX11.so.4>
+		$dep =~ s#\w+\/\.\.##g;
+
+		if (defined($contents{$dep})) {
+			push(@{$r->{dependencies}}, @{$contents{$dep}});
+		}
+	}
+
+	# make them uniq and don't include a dependency to the packet itself
+	@{$r->{dependencies}} = grep("CSW$r->{pkgname}" ne $_, uniq(@{$r->{dependencies}}));
+
+	if (defined($r->{exclude_dependencies})) {
+		@{$r->{dependencies}} = a1minusa2($r->{dependencies}, $r->{exclude_dependencies});
+	}
+
+	write_dependencies($r);
+}
+
+sub
+strip
+{
+	system("/usr/ccs/bin/strip ${buildroot}/opt/csw/bin/* ${buildroot}/opt/csw/bin/sparcv8/* ${buildroot}/opt/csw/bin/sparcv8plus/* ${buildroot}/opt/csw/bin/sparcv8plus+vis/* ${buildroot}/opt/csw/bin/sparcv9/* 2> /dev/null");
+}
+
+sub
+generate_pkginfo
+{
+	my $r = shift || die("one reference expected");
+
+	chdir(${buildroot}) || die("can't change to ${buildroot}: $!");
+	open(PKGINFO, '> pkginfo');
+
+print PKGINFO <<"EOF";
+PKG=CSW$r->{pkgname}
+NAME=$r->{name}
+ARCH=${arch}
+CATEGORY=${category}
+VERSION=${version}
+VENDOR=${vendor}
+HOTLINE=${hotline}
+EMAIL=${email}
+EOF
+# DESC=[Optional extra info about software. Omit this line if you wish]
+	close(PKGINFO);
+}
+
+sub
+actually_package
+{
+	my $r = shift || die("one reference expected");
+
+	my $filename="$r->{filename}-${version}-SunOS${osversion}-${arch}-CSW.pkg";
+
+	chdir(${buildroot}) || die("can't change to ${buildroot}: $!");
+	system("/usr/bin/pkgmk -o -r ${buildroot}");
+	system("/usr/bin/pkgtrans -s /var/spool/pkg ${packagedir}/$filename CSW$r->{pkgname}");
+	unlink("${packagedir}/${filename}.gz");
+	system("/usr/bin/gzip ${packagedir}/$filename");
+	system("rm -rf /var/spool/pkg/CSW$r->{pkgname}");
+}
+
+# This function makes all files not readable by me readable. This is because
+# the bang checker and pkgmk needs this. The correct permissions are allready
+# in pkginfo file so everything is as it should be.
+
+sub
+make_all_files_readable_by_user
+{ 
+	my $r = shift || die("one reference expected");
+
+	chdir(${buildroot}) || die("can't change to ${buildroot}: $!");
+	system("gfind @{$r->{filelist}} -perm -400 -o -print | xargs -x -n 1 chmod u+r");
+}
+
+sub
+mkpackage
+{
+	foreach my $r (@packages) {
+		generate_prototype($r);
+		make_all_files_readable_by_user($r);
+		generate_pkginfo($r);
+		find_dependencies($r);
+		actually_package($r);
+	}
+
+	foreach my $key (keys(%seenpaths)) {
+		if (1 < @{$seenpaths{$key}}) {
+			print "$key -> @{$seenpaths{$key}}\n";
+		}
+	}
+}
+
+if (! (-d $builddir)) {
+	mkdir("$builddir", 0755) || die("can't create $builddir: $!");
+}
+
+#main
+# {
+
+if (! GetOptions(\%options, "p", "b", "c", "s", "u", "rev=s")) {
+	print <<"__EOF__";
+${RealBin}/${RealScript} [-p] [-b] [-c] [-s] specfile ...
+
+	-p    prepare:  extract and patch sources
+	-b    build:    build and install sources into destenation
+	-c    create:   create package
+	-s    show:     show build script and exit (high precedence!)
+	-u    cleanUp:  remove ${builddir}
+	-rev  <rev>     use <rev> instead of current date
+
+	If no parameter is specified. The given specfile is processed. (eg.
+	prepared, build and packaged)
+__EOF__
+	exit(1);
+}
+
+# Unset makeflags
+$ENV{'MFLAGS'} = '';
+$ENV{'MAKEFLAGS'} = '';
+
+my $infile = shift || die('one argument expected');
+
+if (! defined($arch)) {
+	$arch = `/bin/uname -p` || die("can't get arch: $!");
+	chomp($arch);
+}
+
+$sunwspropath = probe_directory(@sunwsprolocs) || die ("couldn't find SUNWspro");
+
+eval `/bin/cat $infile`;
+
+if (! defined($rev)) {
+	$rev = $options{'rev'} || $ENV{'REV'} || `/bin/date '+20%y.%m.%d'`;
+}
+chomp ($rev);
+
+$version .= ',REV=' . ${rev};
+
+if (defined($suffix)) {
+	$version .= $suffix;
+}
+
+if (! defined($osversion)) {
+	$osversion = `/bin/uname -r`;
+	chomp($osversion);
+}
+
+if (! -d "${packagedir}") {
+	system("/bin/mkdir -p ${packagedir}");
+}
+
+if (! keys(%options)) {
+	prepare();
+	build();
+	mkpackage();
+	exit();
+}
+
+if (defined($options{'s'})) {
+	print $build;
+	exit();
+}
+
+if (defined($options{'p'})) {
+	prepare();
+}
+
+if (defined($options{'b'})) {
+	build();
+}
+
+if (defined($options{'c'})) {
+	mkpackage();
+}
+
+if (defined($options{'u'})) {
+	system("/bin/rm -rf ${builddir}");
+}
+
+# }

Added: csw/mgar/pkg/gtkhtml/trunk/legacy/sources/gtkhtml-editor.patch
===================================================================
--- csw/mgar/pkg/gtkhtml/trunk/legacy/sources/gtkhtml-editor.patch	                        (rev 0)
+++ csw/mgar/pkg/gtkhtml/trunk/legacy/sources/gtkhtml-editor.patch	2009-04-27 12:47:02 UTC (rev 4524)
@@ -0,0 +1,2334 @@
+diff -urN components/html-editor.old/Editor-common.c components/html-editor/Editor-common.c
+--- components/html-editor.old/Editor-common.c	1970-01-01 01:00:00.000000000 +0100
++++ components/html-editor/Editor-common.c	2004-03-06 23:22:34.899004000 +0100
+@@ -0,0 +1,307 @@
++/*
++ * This file was generated by orbit-idl-2 - DO NOT EDIT!
++ */
++#include <string.h>
++#define ORBIT2_STUBS_API
++#define ORBIT_IDL_C_COMMON
++#define Editor_COMMON
++#include "Editor.h"
++static const CORBA_unsigned_long ORBit_zero_int = 0;
++#if ( (TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_0 == 'E') \
++&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_1 == 'd') \
++&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_2 == 'i') \
++&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_3 == 't') \
++&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_4 == 'o') \
++&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_5 == 'r') \
++) && !defined(TC_DEF_TC_GNOME_GtkHTML_Editor_Listener)
++#define TC_DEF_TC_GNOME_GtkHTML_Editor_Listener 1
++#ifdef ORBIT_IDL_C_IMODULE_Editor
++static
++#endif
++const struct CORBA_TypeCode_struct TC_GNOME_GtkHTML_Editor_Listener_struct = {
++   {&ORBit_TypeCode_epv, ORBIT_REFCOUNT_STATIC},
++   CORBA_tk_objref,
++   0,
++   0,
++   4,
++   0,
++   0
++   ,
++   NULL,
++   CORBA_OBJECT_NIL,
++   "Listener",
++   "IDL:GNOME/GtkHTML/Editor/Listener:1.0",
++   NULL,
++   NULL,
++   -1,
++   0,
++   0, 0
++};
++#endif
++#if ( (TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_0 == 'E') \
++&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_1 == 'd') \
++&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_2 == 'i') \
++&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_3 == 't') \
++&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_4 == 'o') \
++&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_5 == 'r') \
++) && !defined(TC_DEF_TC_GNOME_GtkHTML_Editor_Engine)
++#define TC_DEF_TC_GNOME_GtkHTML_Editor_Engine 1
++#ifdef ORBIT_IDL_C_IMODULE_Editor
++static
++#endif
++const struct CORBA_TypeCode_struct TC_GNOME_GtkHTML_Editor_Engine_struct = {
++   {&ORBit_TypeCode_epv, ORBIT_REFCOUNT_STATIC},
++   CORBA_tk_objref,
++   0,
++   0,
++   4,
++   0,
++   0
++   ,
++   NULL,
++   CORBA_OBJECT_NIL,
++   "Engine",
++   "IDL:GNOME/GtkHTML/Editor/Engine:1.0",
++   NULL,
++   NULL,
++   -1,
++   0,
++   0, 0
++};
++#endif
++#if ( (TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_0 == 'E') \
++&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_1 == 'd') \
++&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_2 == 'i') \
++&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_3 == 't') \
++&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_4 == 'o') \
++&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_5 == 'r') \
++) && !defined(TC_DEF_TC_GNOME_GtkHTML_Editor_URLRequestEvent)
++#define TC_DEF_TC_GNOME_GtkHTML_Editor_URLRequestEvent 1
++static const char *anon_subnames_array6[] = {"url", "stream"};
++static const CORBA_TypeCode anon_subtypes_array7[] = {(CORBA_TypeCode) & TC_CORBA_string_struct, (CORBA_TypeCode) & TC_Bonobo_Stream_struct};
++#ifdef ORBIT_IDL_C_IMODULE_Editor
++static
++#endif
++const struct CORBA_TypeCode_struct TC_GNOME_GtkHTML_Editor_URLRequestEvent_struct = {
++   {&ORBit_TypeCode_epv, ORBIT_REFCOUNT_STATIC},
++   CORBA_tk_struct,
++   0,
++   0,
++   4,
++   0,
++   2
++   ,
++   (CORBA_TypeCode *) anon_subtypes_array7,
++   CORBA_OBJECT_NIL,
++   "URLRequestEvent",
++   "IDL:GNOME/GtkHTML/Editor/URLRequestEvent:1.0",
++   (char **) anon_subnames_array6,
++   NULL,
++   -1,
++   0,
++   0, 0
++};
++#endif
++#ifndef ORBIT_IDL_C_IMODULE_Editor
++CORBA_unsigned_long GNOME_GtkHTML_Editor_Listener__classid = 0;
++#endif
++#ifndef ORBIT_IDL_C_IMODULE_Editor
++CORBA_unsigned_long GNOME_GtkHTML_Editor_Engine__classid = 0;
++#endif
++/* Interface type data */
++static ORBit_IArg GNOME_GtkHTML_Editor_Listener_event__arginfo[] = {
++   {TC_CORBA_string, ORBit_I_ARG_IN, "name"},
++   {TC_CORBA_any, ORBit_I_ARG_IN, "arg"}
++};
++#ifdef ORBIT_IDL_C_IMODULE_Editor
++static
++#endif
++ORBit_IMethod GNOME_GtkHTML_Editor_Listener__imethods[] = {
++   {
++      {2, 2, GNOME_GtkHTML_Editor_Listener_event__arginfo, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_CORBA_any, "event", 5,
++      0
++   }
++};
++static CORBA_string GNOME_GtkHTML_Editor_Listener__base_itypes[] = {
++   "IDL:Bonobo/Unknown:1.0",
++   "IDL:omg.org/CORBA/Object:1.0"
++};
++#ifdef ORBIT_IDL_C_IMODULE_Editor
++static
++#endif
++ORBit_IInterface GNOME_GtkHTML_Editor_Listener__iinterface = {
++   TC_GNOME_GtkHTML_Editor_Listener, {1, 1, GNOME_GtkHTML_Editor_Listener__imethods, FALSE},
++   {2, 2, GNOME_GtkHTML_Editor_Listener__base_itypes, FALSE}
++};
++static ORBit_IArg GNOME_GtkHTML_Editor_Engine__set_listener__arginfo[] = {
++   {TC_GNOME_GtkHTML_Editor_Listener, ORBit_I_ARG_IN, "value"}
++};
++static ORBit_IArg GNOME_GtkHTML_Editor_Engine_runCommand__arginfo[] = {
++   {TC_CORBA_string, ORBit_I_ARG_IN, "command"}
++};
++static ORBit_IArg GNOME_GtkHTML_Editor_Engine_getParagraphData__arginfo[] = {
++   {TC_CORBA_string, ORBit_I_ARG_IN, "key"}
++};
++static ORBit_IArg GNOME_GtkHTML_Editor_Engine_setParagraphData__arginfo[] = {
++   {TC_CORBA_string, ORBit_I_ARG_IN, "key"},
++   {TC_CORBA_string, ORBit_I_ARG_IN, "value"}
++};
++static ORBit_IArg GNOME_GtkHTML_Editor_Engine_setObjectDataByType__arginfo[] = {
++   {TC_CORBA_string, ORBit_I_ARG_IN, "type_name"},
++   {TC_CORBA_string, ORBit_I_ARG_IN, "key"},
++   {TC_CORBA_string, ORBit_I_ARG_IN, "data"}
++};
++static ORBit_IArg GNOME_GtkHTML_Editor_Engine_searchByData__arginfo[] = {
++   {TC_CORBA_long, ORBit_I_ARG_IN | ORBit_I_COMMON_FIXED_SIZE, "level"},
++   {TC_CORBA_string, ORBit_I_ARG_IN, "klass"},
++   {TC_CORBA_string, ORBit_I_ARG_IN, "key"},
++   {TC_CORBA_string, ORBit_I_ARG_IN, "value"}
++};
++static ORBit_IArg GNOME_GtkHTML_Editor_Engine_insertHTML__arginfo[] = {
++   {TC_CORBA_string, ORBit_I_ARG_IN, "html"}
++};
++static ORBit_IArg GNOME_GtkHTML_Editor_Engine_undoBegin__arginfo[] = {
++   {TC_CORBA_string, ORBit_I_ARG_IN, "undo_name"},
++   {TC_CORBA_string, ORBit_I_ARG_IN, "redo_name"}
++};
++static ORBit_IArg GNOME_GtkHTML_Editor_Engine_ignoreWord__arginfo[] = {
++   {TC_CORBA_string, ORBit_I_ARG_IN, "word"}
++};
++#ifdef ORBIT_IDL_C_IMODULE_Editor
++static
++#endif
++ORBit_IMethod GNOME_GtkHTML_Editor_Engine__imethods[] = {
++   {
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_GNOME_GtkHTML_Editor_Listener, "_get_listener", 13,
++      0
++   }
++   ,{
++      {1, 1, GNOME_GtkHTML_Editor_Engine__set_listener__arginfo, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_void, "_set_listener", 13,
++      0
++   }
++   ,{
++      {1, 1, GNOME_GtkHTML_Editor_Engine_runCommand__arginfo, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_CORBA_boolean, "runCommand", 10,
++      0 | ORBit_I_COMMON_FIXED_SIZE
++   }
++   ,{
++      {1, 1, GNOME_GtkHTML_Editor_Engine_getParagraphData__arginfo, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_CORBA_string, "getParagraphData", 16,
++      0
++   }
++   ,{
++      {2, 2, GNOME_GtkHTML_Editor_Engine_setParagraphData__arginfo, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_void, "setParagraphData", 16,
++      0
++   }
++   ,{
++      {3, 3, GNOME_GtkHTML_Editor_Engine_setObjectDataByType__arginfo, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_void, "setObjectDataByType", 19,
++      0
++   }
++   ,{
++      {4, 4, GNOME_GtkHTML_Editor_Engine_searchByData__arginfo, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_CORBA_boolean, "searchByData", 12,
++      0 | ORBit_I_COMMON_FIXED_SIZE
++   }
++   ,{
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_CORBA_boolean, "isParagraphEmpty", 16,
++      0 | ORBit_I_COMMON_FIXED_SIZE
++   }
++   ,{
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_CORBA_boolean, "isPreviousParagraphEmpty", 24,
++      0 | ORBit_I_COMMON_FIXED_SIZE
++   }
++   ,{
++      {1, 1, GNOME_GtkHTML_Editor_Engine_insertHTML__arginfo, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_void, "insertHTML", 10,
++      0
++   }
++   ,{
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_void, "freeze", 6,
++      0
++   }
++   ,{
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_void, "thaw", 4,
++      0
++   }
++   ,{
++      {2, 2, GNOME_GtkHTML_Editor_Engine_undoBegin__arginfo, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_void, "undoBegin", 9,
++      0
++   }
++   ,{
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_void, "undoEnd", 7,
++      0
++   }
++   ,{
++      {1, 1, GNOME_GtkHTML_Editor_Engine_ignoreWord__arginfo, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_void, "ignoreWord", 10,
++      0
++   }
++   ,{
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_void, "dropUndo", 8,
++      0
++   }
++   ,{
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      {0, 0, NULL, FALSE},
++      TC_CORBA_boolean, "hasUndo", 7,
++      0 | ORBit_I_COMMON_FIXED_SIZE
++   }
++};
++static CORBA_string GNOME_GtkHTML_Editor_Engine__base_itypes[] = {
++   "IDL:Bonobo/Unknown:1.0",
++   "IDL:omg.org/CORBA/Object:1.0"
++};
++#ifdef ORBIT_IDL_C_IMODULE_Editor
++static
++#endif
++ORBit_IInterface GNOME_GtkHTML_Editor_Engine__iinterface = {
++   TC_GNOME_GtkHTML_Editor_Engine, {17, 17, GNOME_GtkHTML_Editor_Engine__imethods, FALSE},
++   {2, 2, GNOME_GtkHTML_Editor_Engine__base_itypes, FALSE}
++};
+diff -urN components/html-editor.old/Editor-skels.c components/html-editor/Editor-skels.c
+--- components/html-editor.old/Editor-skels.c	1970-01-01 01:00:00.000000000 +0100
++++ components/html-editor/Editor-skels.c	2004-03-06 23:22:34.869434000 +0100
+@@ -0,0 +1,426 @@
++/*
++ * This file was generated by orbit-idl-2 - DO NOT EDIT!
++ */
++#include <string.h>
++#define ORBIT2_STUBS_API
++#include "Editor.h"
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Listener_event(POA_GNOME_GtkHTML_Editor_Listener * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++						      CORBA_any * (*_impl_event) (PortableServer_Servant _servant, const CORBA_char * name, const CORBA_any * arg, CORBA_Environment * ev))
++{
++   *(CORBA_any * *) _o_retval = _impl_event(_o_servant, *(const CORBA_char * *) _o_args[0], (const CORBA_any *) _o_args[1], _o_ev);
++}
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine__get_listener(POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++							    GNOME_GtkHTML_Editor_Listener(*_impl__get_listener) (PortableServer_Servant _servant, CORBA_Environment * ev))
++{
++   *(GNOME_GtkHTML_Editor_Listener *) _o_retval = _impl__get_listener(_o_servant, _o_ev);
++}
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine__set_listener(POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++							    void (*_impl__set_listener) (PortableServer_Servant _servant, const GNOME_GtkHTML_Editor_Listener value, CORBA_Environment * ev))
++{
++   _impl__set_listener(_o_servant, *(const GNOME_GtkHTML_Editor_Listener *) _o_args[0], _o_ev);
++}
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_runCommand(POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++							 CORBA_boolean(*_impl_runCommand) (PortableServer_Servant _servant, const CORBA_char * command, CORBA_Environment * ev))
++{
++   *(CORBA_boolean *) _o_retval = _impl_runCommand(_o_servant, *(const CORBA_char * *) _o_args[0], _o_ev);
++}
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_getParagraphData(POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++							       CORBA_string(*_impl_getParagraphData) (PortableServer_Servant _servant, const CORBA_char * key, CORBA_Environment * ev))
++{
++   *(CORBA_string *) _o_retval = _impl_getParagraphData(_o_servant, *(const CORBA_char * *) _o_args[0], _o_ev);
++}
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_setParagraphData(POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++							       void (*_impl_setParagraphData) (PortableServer_Servant _servant, const CORBA_char * key, const CORBA_char * value, CORBA_Environment * ev))
++{
++   _impl_setParagraphData(_o_servant, *(const CORBA_char * *) _o_args[0], *(const CORBA_char * *) _o_args[1], _o_ev);
++}
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_setObjectDataByType(POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++								  void (*_impl_setObjectDataByType) (PortableServer_Servant _servant, const CORBA_char * type_name, const CORBA_char * key, const CORBA_char * data, CORBA_Environment * ev))
++{
++   _impl_setObjectDataByType(_o_servant, *(const CORBA_char * *) _o_args[0], *(const CORBA_char * *) _o_args[1], *(const CORBA_char * *) _o_args[2], _o_ev);
++}
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_searchByData(POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++							   CORBA_boolean(*_impl_searchByData) (PortableServer_Servant _servant, const CORBA_long level, const CORBA_char * klass, const CORBA_char * key, const CORBA_char * value, CORBA_Environment * ev))
++{
++   *(CORBA_boolean *) _o_retval = _impl_searchByData(_o_servant, *(const CORBA_long *) _o_args[0], *(const CORBA_char * *) _o_args[1], *(const CORBA_char * *) _o_args[2], *(const CORBA_char * *) _o_args[3], _o_ev);
++}
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_isParagraphEmpty(POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++							       CORBA_boolean(*_impl_isParagraphEmpty) (PortableServer_Servant _servant, CORBA_Environment * ev))
++{
++   *(CORBA_boolean *) _o_retval = _impl_isParagraphEmpty(_o_servant, _o_ev);
++}
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_isPreviousParagraphEmpty(POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++								       CORBA_boolean(*_impl_isPreviousParagraphEmpty) (PortableServer_Servant _servant, CORBA_Environment * ev))
++{
++   *(CORBA_boolean *) _o_retval = _impl_isPreviousParagraphEmpty(_o_servant, _o_ev);
++}
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_insertHTML(POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++							 void (*_impl_insertHTML) (PortableServer_Servant _servant, const CORBA_char * html, CORBA_Environment * ev))
++{
++   _impl_insertHTML(_o_servant, *(const CORBA_char * *) _o_args[0], _o_ev);
++}
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_freeze(POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++						     void (*_impl_freeze) (PortableServer_Servant _servant, CORBA_Environment * ev))
++{
++   _impl_freeze(_o_servant, _o_ev);
++}
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_thaw(POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++void (*_impl_thaw) (PortableServer_Servant _servant, CORBA_Environment * ev))
++{
++   _impl_thaw(_o_servant, _o_ev);
++}
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_undoBegin(POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++							void (*_impl_undoBegin) (PortableServer_Servant _servant, const CORBA_char * undo_name, const CORBA_char * redo_name, CORBA_Environment * ev))
++{
++   _impl_undoBegin(_o_servant, *(const CORBA_char * *) _o_args[0], *(const CORBA_char * *) _o_args[1], _o_ev);
++}
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_undoEnd(POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++						      void (*_impl_undoEnd) (PortableServer_Servant _servant, CORBA_Environment * ev))
++{
++   _impl_undoEnd(_o_servant, _o_ev);
++}
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_ignoreWord(POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++							 void (*_impl_ignoreWord) (PortableServer_Servant _servant, const CORBA_char * word, CORBA_Environment * ev))
++{
++   _impl_ignoreWord(_o_servant, *(const CORBA_char * *) _o_args[0], _o_ev);
++}
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_dropUndo(POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++						       void (*_impl_dropUndo) (PortableServer_Servant _servant, CORBA_Environment * ev))
++{
++   _impl_dropUndo(_o_servant, _o_ev);
++}
++void 
++_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_hasUndo(POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval, gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
++						      CORBA_boolean(*_impl_hasUndo) (PortableServer_Servant _servant, CORBA_Environment * ev))
++{
++   *(CORBA_boolean *) _o_retval = _impl_hasUndo(_o_servant, _o_ev);
++}
++static ORBitSmallSkeleton 
++get_skel_small_GNOME_GtkHTML_Editor_Listener(POA_GNOME_GtkHTML_Editor_Listener * servant,
++		     const char *opname, gpointer * m_data, gpointer * impl)
++{
++   switch (opname[0]) {
++	    case 'e':
++	    if (strcmp((opname + 1), "vent"))
++	       break;
++	    *impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Listener_epv->event;
++	    *m_data = (gpointer) & GNOME_GtkHTML_Editor_Listener__iinterface.methods._buffer[0];
++	    return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Listener_event;
++	    break;
++	 case 'q':
++	    if (strcmp((opname + 1), "ueryInterface"))
++	       break;
++	    *impl = (gpointer) servant->vepv->Bonobo_Unknown_epv->queryInterface;
++	    *m_data = (gpointer) & Bonobo_Unknown__iinterface.methods._buffer[2];
++	    return (ORBitSmallSkeleton) _ORBIT_skel_small_Bonobo_Unknown_queryInterface;
++	    break;
++	 case 'r':
++	    if (strcmp((opname + 1), "ef"))
++	       break;
++	    *impl = (gpointer) servant->vepv->Bonobo_Unknown_epv->ref;
++	    *m_data = (gpointer) & Bonobo_Unknown__iinterface.methods._buffer[0];
++	    return (ORBitSmallSkeleton) _ORBIT_skel_small_Bonobo_Unknown_ref;
++	    break;
++	 case 'u':
++	    if (strcmp((opname + 1), "nref"))
++	       break;
++	    *impl = (gpointer) servant->vepv->Bonobo_Unknown_epv->unref;
++	    *m_data = (gpointer) & Bonobo_Unknown__iinterface.methods._buffer[1];
++	    return (ORBitSmallSkeleton) _ORBIT_skel_small_Bonobo_Unknown_unref;
++	    break;
++	 default:
++	    break;
++   }
++   return NULL;
++}
++void 
++POA_GNOME_GtkHTML_Editor_Listener__init(PortableServer_Servant servant,
++					CORBA_Environment * env)
++{
++   static PortableServer_ClassInfo class_info = {NULL, (ORBit_small_impl_finder) & get_skel_small_GNOME_GtkHTML_Editor_Listener, "IDL:GNOME/GtkHTML/Editor/Listener:1.0", &GNOME_GtkHTML_Editor_Listener__classid, NULL, &GNOME_GtkHTML_Editor_Listener__iinterface};
++   POA_GNOME_GtkHTML_Editor_Listener__vepv *fakevepv = NULL;
++   if (((PortableServer_ServantBase *) servant)->vepv[0]->finalize == 0) {
++      ((PortableServer_ServantBase *) servant)->vepv[0]->finalize = POA_GNOME_GtkHTML_Editor_Listener__fini;
++   }
++   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
++   POA_Bonobo_Unknown__init(servant, env);
++   ORBit_classinfo_register(&class_info);
++   ORBIT_SERVANT_SET_CLASSINFO(servant, &class_info);
++   if (!class_info.vepvmap) {
++      class_info.vepvmap = g_new0(ORBit_VepvIdx, GNOME_GtkHTML_Editor_Listener__classid + 1);
++      class_info.vepvmap[Bonobo_Unknown__classid] = (((char *) &(fakevepv->Bonobo_Unknown_epv)) - ((char *) (fakevepv))) / sizeof(GFunc);
++      class_info.vepvmap[GNOME_GtkHTML_Editor_Listener__classid] = (((char *) &(fakevepv->GNOME_GtkHTML_Editor_Listener_epv)) - ((char *) (fakevepv))) / sizeof(GFunc);
++   }
++}
++void 
++POA_GNOME_GtkHTML_Editor_Listener__fini(PortableServer_Servant servant,
++					CORBA_Environment * env)
++{
++   POA_Bonobo_Unknown__fini(servant, env);
++   PortableServer_ServantBase__fini(servant, env);
++}
++static ORBitSmallSkeleton 
++get_skel_small_GNOME_GtkHTML_Editor_Engine(POA_GNOME_GtkHTML_Editor_Engine * servant,
++		     const char *opname, gpointer * m_data, gpointer * impl)
++{
++   switch (opname[0]) {
++	    case '_':
++	    switch (opname[1]) {
++		     case 'g':
++		     if (strcmp((opname + 2), "et_listener"))
++			break;
++		     *impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->_get_listener;
++		     *m_data = (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods._buffer[0];
++		     return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine__get_listener;
++		     break;
++		  case 's':
++		     if (strcmp((opname + 2), "et_listener"))
++			break;
++		     *impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->_set_listener;
++		     *m_data = (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods._buffer[1];
++		     return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine__set_listener;
++		     break;
++		  default:
++		     break;
++	    }
++	    break;
++	 case 'd':
++	    if (strcmp((opname + 1), "ropUndo"))
++	       break;
++	    *impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->dropUndo;
++	    *m_data = (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods._buffer[15];
++	    return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_dropUndo;
++	    break;
++	 case 'f':
++	    if (strcmp((opname + 1), "reeze"))
++	       break;
++	    *impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->freeze;
++	    *m_data = (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods._buffer[10];
++	    return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_freeze;
++	    break;
++	 case 'g':
++	    if (strcmp((opname + 1), "etParagraphData"))
++	       break;
++	    *impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->getParagraphData;
++	    *m_data = (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods._buffer[3];
++	    return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_getParagraphData;
++	    break;
++	 case 'h':
++	    if (strcmp((opname + 1), "asUndo"))
++	       break;
++	    *impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->hasUndo;
++	    *m_data = (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods._buffer[16];
++	    return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_hasUndo;
++	    break;
++	 case 'i':
++	    switch (opname[1]) {
++		  case 'g':
++		     if (strcmp((opname + 2), "noreWord"))
++			break;
++		     *impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->ignoreWord;
++		     *m_data = (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods._buffer[14];
++		     return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_ignoreWord;
++		     break;
++		  case 'n':
++		     if (strcmp((opname + 2), "sertHTML"))
++			break;
++		     *impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->insertHTML;
++		     *m_data = (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods._buffer[9];
++		     return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_insertHTML;
++		     break;
++		  case 's':
++		     switch (opname[2]) {
++			   case 'P':
++			      switch (opname[3]) {
++				    case 'a':
++				       if (strcmp((opname + 4), "ragraphEmpty"))
++					  break;
++				       *impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->isParagraphEmpty;
++				       *m_data = (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods._buffer[7];
++				       return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_isParagraphEmpty;
++				       break;
++				    case 'r':
++				       if (strcmp((opname + 4), "eviousParagraphEmpty"))
++					  break;
++				       *impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->isPreviousParagraphEmpty;
++				       *m_data = (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods._buffer[8];
++				       return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_isPreviousParagraphEmpty;
++				       break;
++				    default:
++				       break;
++			      }
++			      break;
++			   default:
++			      break;
++		     }
++		     break;
++		  default:
++		     break;
++	    }
++	    break;
++	 case 'q':
++	    if (strcmp((opname + 1), "ueryInterface"))
++	       break;
++	    *impl = (gpointer) servant->vepv->Bonobo_Unknown_epv->queryInterface;
++	    *m_data = (gpointer) & Bonobo_Unknown__iinterface.methods._buffer[2];
++	    return (ORBitSmallSkeleton) _ORBIT_skel_small_Bonobo_Unknown_queryInterface;
++	    break;
++	 case 'r':
++	    switch (opname[1]) {
++		  case 'e':
++		     if (strcmp((opname + 2), "f"))
++			break;
++		     *impl = (gpointer) servant->vepv->Bonobo_Unknown_epv->ref;
++		     *m_data = (gpointer) & Bonobo_Unknown__iinterface.methods._buffer[0];
++		     return (ORBitSmallSkeleton) _ORBIT_skel_small_Bonobo_Unknown_ref;
++		     break;
++		  case 'u':
++		     if (strcmp((opname + 2), "nCommand"))
++			break;
++		     *impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->runCommand;
++		     *m_data = (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods._buffer[2];
++		     return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_runCommand;
++		     break;
++		  default:
++		     break;
++	    }
++	    break;
++	 case 's':
++	    switch (opname[1]) {
++		  case 'e':
++		     switch (opname[2]) {
++			   case 'a':
++			      if (strcmp((opname + 3), "rchByData"))
++				 break;
++			      *impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->searchByData;
++			      *m_data = (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods._buffer[6];
++			      return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_searchByData;
++			      break;
++			   case 't':
++			      switch (opname[3]) {
++				    case 'O':
++				       if (strcmp((opname + 4), "bjectDataByType"))
++					  break;
++				       *impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->setObjectDataByType;
++				       *m_data = (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods._buffer[5];
++				       return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_setObjectDataByType;
++				       break;
++				    case 'P':
++				       if (strcmp((opname + 4), "aragraphData"))
++					  break;
++				       *impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->setParagraphData;
++				       *m_data = (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods._buffer[4];
++				       return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_setParagraphData;
++				       break;
++				    default:
++				       break;
++			      }
++			      break;
++			   default:
++			      break;
++		     }
++		     break;
++		  default:
++		     break;
++	    }
++	    break;
++	 case 't':
++	    if (strcmp((opname + 1), "haw"))
++	       break;
++	    *impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->thaw;
++	    *m_data = (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods._buffer[11];
++	    return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_thaw;
++	    break;
++	 case 'u':
++	    switch (opname[1]) {
++		  case 'n':
++		     switch (opname[2]) {
++			   case 'd':
++			      switch (opname[3]) {
++				    case 'o':
++				       switch (opname[4]) {
++					     case 'B':
++						if (strcmp((opname + 5), "egin"))
++						   break;
++						*impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->undoBegin;
++						*m_data = (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods._buffer[12];
++						return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_undoBegin;
++						break;
++					     case 'E':
++						if (strcmp((opname + 5), "nd"))
++						   break;
++						*impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->undoEnd;
++						*m_data = (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods._buffer[13];
++						return (ORBitSmallSkeleton) _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_undoEnd;
++						break;
++					     default:
++						break;
++				       }
++				       break;
++				    default:
++				       break;
++			      }
++			      break;
++			   case 'r':
++			      if (strcmp((opname + 3), "ef"))
++				 break;
++			      *impl = (gpointer) servant->vepv->Bonobo_Unknown_epv->unref;
++			      *m_data = (gpointer) & Bonobo_Unknown__iinterface.methods._buffer[1];
++			      return (ORBitSmallSkeleton) _ORBIT_skel_small_Bonobo_Unknown_unref;
++			      break;
++			   default:
++			      break;
++		     }
++		     break;
++		  default:
++		     break;
++	    }
++	    break;
++	 default:
++	    break;
++   }
++   return NULL;
++}
++void 
++POA_GNOME_GtkHTML_Editor_Engine__init(PortableServer_Servant servant,
++				      CORBA_Environment * env)
++{
++   static PortableServer_ClassInfo class_info = {NULL, (ORBit_small_impl_finder) & get_skel_small_GNOME_GtkHTML_Editor_Engine, "IDL:GNOME/GtkHTML/Editor/Engine:1.0", &GNOME_GtkHTML_Editor_Engine__classid, NULL, &GNOME_GtkHTML_Editor_Engine__iinterface};
++   POA_GNOME_GtkHTML_Editor_Engine__vepv *fakevepv = NULL;
++   if (((PortableServer_ServantBase *) servant)->vepv[0]->finalize == 0) {
++      ((PortableServer_ServantBase *) servant)->vepv[0]->finalize = POA_GNOME_GtkHTML_Editor_Engine__fini;
++   }
++   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
++   POA_Bonobo_Unknown__init(servant, env);
++   ORBit_classinfo_register(&class_info);
++   ORBIT_SERVANT_SET_CLASSINFO(servant, &class_info);
++   if (!class_info.vepvmap) {
++      class_info.vepvmap = g_new0(ORBit_VepvIdx, GNOME_GtkHTML_Editor_Engine__classid + 1);
++      class_info.vepvmap[Bonobo_Unknown__classid] = (((char *) &(fakevepv->Bonobo_Unknown_epv)) - ((char *) (fakevepv))) / sizeof(GFunc);
++      class_info.vepvmap[GNOME_GtkHTML_Editor_Engine__classid] = (((char *) &(fakevepv->GNOME_GtkHTML_Editor_Engine_epv)) - ((char *) (fakevepv))) / sizeof(GFunc);
++   }
++}
++void 
++POA_GNOME_GtkHTML_Editor_Engine__fini(PortableServer_Servant servant,
++				      CORBA_Environment * env)
++{
++   POA_Bonobo_Unknown__fini(servant, env);
++   PortableServer_ServantBase__fini(servant, env);
++}
+diff -urN components/html-editor.old/Editor-stubs.c components/html-editor/Editor-stubs.c
+--- components/html-editor.old/Editor-stubs.c	1970-01-01 01:00:00.000000000 +0100
++++ components/html-editor/Editor-stubs.c	2004-03-06 23:22:34.821504000 +0100
+@@ -0,0 +1,294 @@
++/*
++ * This file was generated by orbit-idl-2 - DO NOT EDIT!
++ */
++#include <string.h>
++#define ORBIT2_STUBS_API
++#include "Editor.h"
++CORBA_any *
++GNOME_GtkHTML_Editor_Listener_event(GNOME_GtkHTML_Editor_Listener _obj, const CORBA_char * name, const CORBA_any * arg, CORBA_Environment * ev)
++{
++   CORBA_any *_ORBIT_retval;
++   POA_GNOME_GtkHTML_Editor_Listener__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Listener__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Listener__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Listener__classid))->event) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_retval = _ORBIT_epv->event(ORBIT_STUB_GetServant(_obj), name, arg, ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      gpointer _args[] = {
++      (gpointer) & name, (gpointer) arg};
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Listener__iinterface.methods, 0, &_ORBIT_retval, _args, NULL, ev);
++   }
++   return _ORBIT_retval;
++}
++GNOME_GtkHTML_Editor_Listener 
++GNOME_GtkHTML_Editor_Engine__get_listener(GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev)
++{
++   GNOME_GtkHTML_Editor_Listener _ORBIT_retval;
++   POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Engine__classid))->_get_listener) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_retval = _ORBIT_epv->_get_listener(ORBIT_STUB_GetServant(_obj), ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Engine__iinterface.methods, 0, &_ORBIT_retval, NULL, NULL, ev);
++   }
++   return _ORBIT_retval;
++}
++void 
++GNOME_GtkHTML_Editor_Engine__set_listener(GNOME_GtkHTML_Editor_Engine _obj, const GNOME_GtkHTML_Editor_Listener value, CORBA_Environment * ev)
++{
++   POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Engine__classid))->_set_listener) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_epv->_set_listener(ORBIT_STUB_GetServant(_obj), value, ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      gpointer _args[] = {
++      (gpointer) & value};
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Engine__iinterface.methods, 1, NULL, _args, NULL, ev);
++   }
++}
++CORBA_boolean 
++GNOME_GtkHTML_Editor_Engine_runCommand(GNOME_GtkHTML_Editor_Engine _obj, const CORBA_char * command, CORBA_Environment * ev)
++{
++   CORBA_boolean _ORBIT_retval;
++   POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Engine__classid))->runCommand) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_retval = _ORBIT_epv->runCommand(ORBIT_STUB_GetServant(_obj), command, ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      gpointer _args[] = {
++      (gpointer) & command};
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Engine__iinterface.methods, 2, &_ORBIT_retval, _args, NULL, ev);
++   }
++   return _ORBIT_retval;
++}
++CORBA_string 
++GNOME_GtkHTML_Editor_Engine_getParagraphData(GNOME_GtkHTML_Editor_Engine _obj, const CORBA_char * key, CORBA_Environment * ev)
++{
++   CORBA_string _ORBIT_retval;
++   POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Engine__classid))->getParagraphData) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_retval = _ORBIT_epv->getParagraphData(ORBIT_STUB_GetServant(_obj), key, ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      gpointer _args[] = {
++      (gpointer) & key};
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Engine__iinterface.methods, 3, &_ORBIT_retval, _args, NULL, ev);
++   }
++   return _ORBIT_retval;
++}
++void 
++GNOME_GtkHTML_Editor_Engine_setParagraphData(GNOME_GtkHTML_Editor_Engine _obj, const CORBA_char * key, const CORBA_char * value, CORBA_Environment * ev)
++{
++   POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Engine__classid))->setParagraphData) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_epv->setParagraphData(ORBIT_STUB_GetServant(_obj), key, value, ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      gpointer _args[] = {
++      (gpointer) & key, (gpointer) & value};
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Engine__iinterface.methods, 4, NULL, _args, NULL, ev);
++   }
++}
++void 
++GNOME_GtkHTML_Editor_Engine_setObjectDataByType(GNOME_GtkHTML_Editor_Engine _obj, const CORBA_char * type_name, const CORBA_char * key, const CORBA_char * data, CORBA_Environment * ev)
++{
++   POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Engine__classid))->setObjectDataByType) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_epv->setObjectDataByType(ORBIT_STUB_GetServant(_obj), type_name, key, data, ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      gpointer _args[] = {
++      (gpointer) & type_name, (gpointer) & key, (gpointer) & data};
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Engine__iinterface.methods, 5, NULL, _args, NULL, ev);
++   }
++}
++CORBA_boolean 
++GNOME_GtkHTML_Editor_Engine_searchByData(GNOME_GtkHTML_Editor_Engine _obj, const CORBA_long level, const CORBA_char * klass, const CORBA_char * key, const CORBA_char * value, CORBA_Environment * ev)
++{
++   CORBA_boolean _ORBIT_retval;
++   POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Engine__classid))->searchByData) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_retval = _ORBIT_epv->searchByData(ORBIT_STUB_GetServant(_obj), level, klass, key, value, ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      gpointer _args[] = {
++      (gpointer) & level, (gpointer) & klass, (gpointer) & key, (gpointer) & value};
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Engine__iinterface.methods, 6, &_ORBIT_retval, _args, NULL, ev);
++   }
++   return _ORBIT_retval;
++}
++CORBA_boolean 
++GNOME_GtkHTML_Editor_Engine_isParagraphEmpty(GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev)
++{
++   CORBA_boolean _ORBIT_retval;
++   POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Engine__classid))->isParagraphEmpty) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_retval = _ORBIT_epv->isParagraphEmpty(ORBIT_STUB_GetServant(_obj), ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Engine__iinterface.methods, 7, &_ORBIT_retval, NULL, NULL, ev);
++   }
++   return _ORBIT_retval;
++}
++CORBA_boolean 
++GNOME_GtkHTML_Editor_Engine_isPreviousParagraphEmpty(GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev)
++{
++   CORBA_boolean _ORBIT_retval;
++   POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Engine__classid))->isPreviousParagraphEmpty) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_retval = _ORBIT_epv->isPreviousParagraphEmpty(ORBIT_STUB_GetServant(_obj), ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Engine__iinterface.methods, 8, &_ORBIT_retval, NULL, NULL, ev);
++   }
++   return _ORBIT_retval;
++}
++void 
++GNOME_GtkHTML_Editor_Engine_insertHTML(GNOME_GtkHTML_Editor_Engine _obj, const CORBA_char * html, CORBA_Environment * ev)
++{
++   POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Engine__classid))->insertHTML) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_epv->insertHTML(ORBIT_STUB_GetServant(_obj), html, ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      gpointer _args[] = {
++      (gpointer) & html};
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Engine__iinterface.methods, 9, NULL, _args, NULL, ev);
++   }
++}
++void 
++GNOME_GtkHTML_Editor_Engine_freeze(GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev)
++{
++   POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Engine__classid))->freeze) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_epv->freeze(ORBIT_STUB_GetServant(_obj), ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Engine__iinterface.methods, 10, NULL, NULL, NULL, ev);
++   }
++}
++void 
++GNOME_GtkHTML_Editor_Engine_thaw(GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev)
++{
++   POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Engine__classid))->thaw) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_epv->thaw(ORBIT_STUB_GetServant(_obj), ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Engine__iinterface.methods, 11, NULL, NULL, NULL, ev);
++   }
++}
++void 
++GNOME_GtkHTML_Editor_Engine_undoBegin(GNOME_GtkHTML_Editor_Engine _obj, const CORBA_char * undo_name, const CORBA_char * redo_name, CORBA_Environment * ev)
++{
++   POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Engine__classid))->undoBegin) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_epv->undoBegin(ORBIT_STUB_GetServant(_obj), undo_name, redo_name, ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      gpointer _args[] = {
++      (gpointer) & undo_name, (gpointer) & redo_name};
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Engine__iinterface.methods, 12, NULL, _args, NULL, ev);
++   }
++}
++void 
++GNOME_GtkHTML_Editor_Engine_undoEnd(GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev)
++{
++   POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Engine__classid))->undoEnd) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_epv->undoEnd(ORBIT_STUB_GetServant(_obj), ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Engine__iinterface.methods, 13, NULL, NULL, NULL, ev);
++   }
++}
++void 
++GNOME_GtkHTML_Editor_Engine_ignoreWord(GNOME_GtkHTML_Editor_Engine _obj, const CORBA_char * word, CORBA_Environment * ev)
++{
++   POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Engine__classid))->ignoreWord) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_epv->ignoreWord(ORBIT_STUB_GetServant(_obj), word, ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      gpointer _args[] = {
++      (gpointer) & word};
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Engine__iinterface.methods, 14, NULL, _args, NULL, ev);
++   }
++}
++void 
++GNOME_GtkHTML_Editor_Engine_dropUndo(GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev)
++{
++   POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Engine__classid))->dropUndo) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_epv->dropUndo(ORBIT_STUB_GetServant(_obj), ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Engine__iinterface.methods, 15, NULL, NULL, NULL, ev);
++   }
++}
++CORBA_boolean 
++GNOME_GtkHTML_Editor_Engine_hasUndo(GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev)
++{
++   CORBA_boolean _ORBIT_retval;
++   POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
++   if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
++       ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
++       (_ORBIT_epv = (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj, GNOME_GtkHTML_Editor_Engine__classid))->hasUndo) {
++      ORBIT_STUB_PreCall(_obj);
++      _ORBIT_retval = _ORBIT_epv->hasUndo(ORBIT_STUB_GetServant(_obj), ev);
++      ORBIT_STUB_PostCall(_obj);
++   } else {			/* remote marshal */
++      ORBit_small_invoke_stub_n(_obj, &GNOME_GtkHTML_Editor_Engine__iinterface.methods, 16, &_ORBIT_retval, NULL, NULL, ev);
++   }
++   return _ORBIT_retval;
++}
+diff -urN components/html-editor.old/Editor.h components/html-editor/Editor.h
+--- components/html-editor.old/Editor.h	1970-01-01 01:00:00.000000000 +0100
++++ components/html-editor/Editor.h	2004-03-06 23:22:34.941372000 +0100
+@@ -0,0 +1,223 @@
++/*
++ * This file was generated by orbit-idl-2 - DO NOT EDIT!
++ */
++#ifndef Editor_H
++#define Editor_H 1
++#include <glib.h>
++#define ORBIT_IDL_SERIAL 19
++#include <orbit/orbit-types.h>
++#ifdef __cplusplus
++extern "C" {
++#endif				/* __cplusplus */
++   /** typedefs **/
++#include <bonobo/Bonobo.h>
++#if !defined(ORBIT_DECL_GNOME_GtkHTML_Editor_Listener) && !defined(_GNOME_GtkHTML_Editor_Listener_defined)
++#define ORBIT_DECL_GNOME_GtkHTML_Editor_Listener 1
++#define _GNOME_GtkHTML_Editor_Listener_defined 1
++#define GNOME_GtkHTML_Editor_Listener__freekids CORBA_Object__freekids
++   typedef CORBA_Object GNOME_GtkHTML_Editor_Listener;
++   extern CORBA_unsigned_long GNOME_GtkHTML_Editor_Listener__classid;
++#if !defined(TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_0)
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_0 'E'
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_1 'd'
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_2 'i'
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_3 't'
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_4 'o'
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_5 'r'
++#ifdef ORBIT_IDL_C_IMODULE_Editor
++   static
++#else
++   extern
++#endif
++   const struct CORBA_TypeCode_struct TC_GNOME_GtkHTML_Editor_Listener_struct;
++#define TC_GNOME_GtkHTML_Editor_Listener ((CORBA_TypeCode)&TC_GNOME_GtkHTML_Editor_Listener_struct)
++#endif
++#endif
++#if !defined(ORBIT_DECL_GNOME_GtkHTML_Editor_Engine) && !defined(_GNOME_GtkHTML_Editor_Engine_defined)
++#define ORBIT_DECL_GNOME_GtkHTML_Editor_Engine 1
++#define _GNOME_GtkHTML_Editor_Engine_defined 1
++#define GNOME_GtkHTML_Editor_Engine__freekids CORBA_Object__freekids
++   typedef CORBA_Object GNOME_GtkHTML_Editor_Engine;
++   extern CORBA_unsigned_long GNOME_GtkHTML_Editor_Engine__classid;
++#if !defined(TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_0)
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_0 'E'
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_1 'd'
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_2 'i'
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_3 't'
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_4 'o'
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_5 'r'
++#ifdef ORBIT_IDL_C_IMODULE_Editor
++   static
++#else
++   extern
++#endif
++   const struct CORBA_TypeCode_struct TC_GNOME_GtkHTML_Editor_Engine_struct;
++#define TC_GNOME_GtkHTML_Editor_Engine ((CORBA_TypeCode)&TC_GNOME_GtkHTML_Editor_Engine_struct)
++#endif
++#endif
++#if !defined(_GNOME_GtkHTML_Editor_URLRequestEvent_defined)
++#define _GNOME_GtkHTML_Editor_URLRequestEvent_defined 1
++   typedef struct GNOME_GtkHTML_Editor_URLRequestEvent_type GNOME_GtkHTML_Editor_URLRequestEvent;
++   struct GNOME_GtkHTML_Editor_URLRequestEvent_type {
++      CORBA_string url;
++      Bonobo_Stream stream;
++   };
++#if !defined(TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_0)
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_0 'E'
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_1 'd'
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_2 'i'
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_3 't'
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_4 'o'
++#define TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_5 'r'
++#ifdef ORBIT_IDL_C_IMODULE_Editor
++   static
++#else
++   extern
++#endif
++   const struct CORBA_TypeCode_struct TC_GNOME_GtkHTML_Editor_URLRequestEvent_struct;
++#define TC_GNOME_GtkHTML_Editor_URLRequestEvent ((CORBA_TypeCode)&TC_GNOME_GtkHTML_Editor_URLRequestEvent_struct)
++#endif
++#define GNOME_GtkHTML_Editor_URLRequestEvent__alloc() ((GNOME_GtkHTML_Editor_URLRequestEvent *)ORBit_small_alloc (TC_GNOME_GtkHTML_Editor_URLRequestEvent))
++#define GNOME_GtkHTML_Editor_URLRequestEvent__freekids(m,d) ORBit_small_freekids (TC_GNOME_GtkHTML_Editor_URLRequestEvent,(m),(d))
++#endif
++   /** POA structures **/
++#ifndef _defined_POA_GNOME_GtkHTML_Editor_Listener
++#define _defined_POA_GNOME_GtkHTML_Editor_Listener 1
++   typedef struct {
++      void *_private;
++      CORBA_any *(*event) (PortableServer_Servant _servant, const CORBA_char * name, const CORBA_any * arg, CORBA_Environment * ev);
++   } POA_GNOME_GtkHTML_Editor_Listener__epv;
++   typedef struct {
++      PortableServer_ServantBase__epv *_base_epv;
++      POA_Bonobo_Unknown__epv *Bonobo_Unknown_epv;
++      POA_GNOME_GtkHTML_Editor_Listener__epv *GNOME_GtkHTML_Editor_Listener_epv;
++   } POA_GNOME_GtkHTML_Editor_Listener__vepv;
++   typedef struct {
++      void *_private;
++      POA_GNOME_GtkHTML_Editor_Listener__vepv *vepv;
++   } POA_GNOME_GtkHTML_Editor_Listener;
++   extern void POA_GNOME_GtkHTML_Editor_Listener__init(PortableServer_Servant servant, CORBA_Environment * ev);
++   extern void POA_GNOME_GtkHTML_Editor_Listener__fini(PortableServer_Servant servant, CORBA_Environment * ev);
++#endif				/* _defined_POA_GNOME_GtkHTML_Editor_Listener */
++#ifndef _defined_POA_GNOME_GtkHTML_Editor_Engine
++#define _defined_POA_GNOME_GtkHTML_Editor_Engine 1
++   typedef struct {
++      void *_private;
++       GNOME_GtkHTML_Editor_Listener(*_get_listener) (PortableServer_Servant _servant, CORBA_Environment * ev);
++      void (*_set_listener) (PortableServer_Servant _servant, const GNOME_GtkHTML_Editor_Listener value, CORBA_Environment * ev);
++       CORBA_boolean(*runCommand) (PortableServer_Servant _servant, const CORBA_char * command, CORBA_Environment * ev);
++       CORBA_string(*getParagraphData) (PortableServer_Servant _servant, const CORBA_char * key, CORBA_Environment * ev);
++      void (*setParagraphData) (PortableServer_Servant _servant, const CORBA_char * key, const CORBA_char * value, CORBA_Environment * ev);
++      void (*setObjectDataByType) (PortableServer_Servant _servant, const CORBA_char * type_name, const CORBA_char * key, const CORBA_char * data, CORBA_Environment * ev);
++       CORBA_boolean(*searchByData) (PortableServer_Servant _servant, const CORBA_long level, const CORBA_char * klass, const CORBA_char * key, const CORBA_char * value, CORBA_Environment * ev);
++       CORBA_boolean(*isParagraphEmpty) (PortableServer_Servant _servant, CORBA_Environment * ev);
++       CORBA_boolean(*isPreviousParagraphEmpty) (PortableServer_Servant _servant, CORBA_Environment * ev);
++      void (*insertHTML) (PortableServer_Servant _servant, const CORBA_char * html, CORBA_Environment * ev);
++      void (*freeze) (PortableServer_Servant _servant, CORBA_Environment * ev);
++      void (*thaw) (PortableServer_Servant _servant, CORBA_Environment * ev);
++      void (*undoBegin) (PortableServer_Servant _servant, const CORBA_char * undo_name, const CORBA_char * redo_name, CORBA_Environment * ev);
++      void (*undoEnd) (PortableServer_Servant _servant, CORBA_Environment * ev);
++      void (*ignoreWord) (PortableServer_Servant _servant, const CORBA_char * word, CORBA_Environment * ev);
++      void (*dropUndo) (PortableServer_Servant _servant, CORBA_Environment * ev);
++       CORBA_boolean(*hasUndo) (PortableServer_Servant _servant, CORBA_Environment * ev);
++   } POA_GNOME_GtkHTML_Editor_Engine__epv;
++   typedef struct {
++      PortableServer_ServantBase__epv *_base_epv;
++      POA_Bonobo_Unknown__epv *Bonobo_Unknown_epv;
++      POA_GNOME_GtkHTML_Editor_Engine__epv *GNOME_GtkHTML_Editor_Engine_epv;
++   } POA_GNOME_GtkHTML_Editor_Engine__vepv;
++   typedef struct {
++      void *_private;
++      POA_GNOME_GtkHTML_Editor_Engine__vepv *vepv;
++   } POA_GNOME_GtkHTML_Editor_Engine;
++   extern void POA_GNOME_GtkHTML_Editor_Engine__init(PortableServer_Servant servant, CORBA_Environment * ev);
++   extern void POA_GNOME_GtkHTML_Editor_Engine__fini(PortableServer_Servant servant, CORBA_Environment * ev);
++#endif				/* _defined_POA_GNOME_GtkHTML_Editor_Engine */
++   /** skel prototypes **/
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Listener_event(POA_GNOME_GtkHTML_Editor_Listener * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, CORBA_any * (*_impl_event) (PortableServer_Servant _servant, const CORBA_char * name, const CORBA_any * arg, CORBA_Environment * ev));
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine__get_listener(POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, GNOME_GtkHTML_Editor_Listener(*_impl__get_listener) (PortableServer_Servant _servant, CORBA_Environment * ev));
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine__set_listener(POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, void (*_impl__set_listener) (PortableServer_Servant _servant, const GNOME_GtkHTML_Editor_Listener value, CORBA_Environment * ev));
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_runCommand(POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, CORBA_boolean(*_impl_runCommand) (PortableServer_Servant _servant, const CORBA_char * command, CORBA_Environment * ev));
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_getParagraphData(POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, CORBA_string(*_impl_getParagraphData) (PortableServer_Servant _servant, const CORBA_char * key, CORBA_Environment * ev));
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_setParagraphData(POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, void (*_impl_setParagraphData) (PortableServer_Servant _servant, const CORBA_char * key, const CORBA_char * value, CORBA_Environment * ev));
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_setObjectDataByType(POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, void (*_impl_setObjectDataByType) (PortableServer_Servant _servant, const CORBA_char * type_name, const CORBA_char * key, const CORBA_char * data, CORBA_Environment * ev));
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_searchByData(POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, CORBA_boolean(*_impl_searchByData) (PortableServer_Servant _servant, const CORBA_long level, const CORBA_char * klass, const CORBA_char * key, const CORBA_char * value, CORBA_Environment * ev));
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_isParagraphEmpty(POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, CORBA_boolean(*_impl_isParagraphEmpty) (PortableServer_Servant _servant, CORBA_Environment * ev));
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_isPreviousParagraphEmpty(POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, CORBA_boolean(*_impl_isPreviousParagraphEmpty) (PortableServer_Servant _servant, CORBA_Environment * ev));
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_insertHTML(POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, void (*_impl_insertHTML) (PortableServer_Servant _servant, const CORBA_char * html, CORBA_Environment * ev));
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_freeze(POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, void (*_impl_freeze) (PortableServer_Servant _servant, CORBA_Environment * ev));
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_thaw(POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, void (*_impl_thaw) (PortableServer_Servant _servant, CORBA_Environment * ev));
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_undoBegin(POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, void (*_impl_undoBegin) (PortableServer_Servant _servant, const CORBA_char * undo_name, const CORBA_char * redo_name, CORBA_Environment * ev));
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_undoEnd(POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, void (*_impl_undoEnd) (PortableServer_Servant _servant, CORBA_Environment * ev));
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_ignoreWord(POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, void (*_impl_ignoreWord) (PortableServer_Servant _servant, const CORBA_char * word, CORBA_Environment * ev));
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_dropUndo(POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, void (*_impl_dropUndo) (PortableServer_Servant _servant, CORBA_Environment * ev));
++   void _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_hasUndo(POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant, gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx, CORBA_Environment * ev, CORBA_boolean(*_impl_hasUndo) (PortableServer_Servant _servant, CORBA_Environment * ev));
++   /** stub prototypes **/
++#define GNOME_GtkHTML_Editor_Listener_ref Bonobo_Unknown_ref
++#define GNOME_GtkHTML_Editor_Listener_unref Bonobo_Unknown_unref
++#define GNOME_GtkHTML_Editor_Listener_queryInterface Bonobo_Unknown_queryInterface
++   CORBA_any *GNOME_GtkHTML_Editor_Listener_event(GNOME_GtkHTML_Editor_Listener _obj, const CORBA_char * name, const CORBA_any * arg, CORBA_Environment * ev);
++#define GNOME_GtkHTML_Editor_Engine_ref Bonobo_Unknown_ref
++#define GNOME_GtkHTML_Editor_Engine_unref Bonobo_Unknown_unref
++#define GNOME_GtkHTML_Editor_Engine_queryInterface Bonobo_Unknown_queryInterface
++   GNOME_GtkHTML_Editor_Listener GNOME_GtkHTML_Editor_Engine__get_listener(GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev);
++   void GNOME_GtkHTML_Editor_Engine__set_listener(GNOME_GtkHTML_Editor_Engine _obj, const GNOME_GtkHTML_Editor_Listener value, CORBA_Environment * ev);
++   CORBA_boolean GNOME_GtkHTML_Editor_Engine_runCommand(GNOME_GtkHTML_Editor_Engine _obj, const CORBA_char * command, CORBA_Environment * ev);
++   CORBA_string GNOME_GtkHTML_Editor_Engine_getParagraphData(GNOME_GtkHTML_Editor_Engine _obj, const CORBA_char * key, CORBA_Environment * ev);
++   void GNOME_GtkHTML_Editor_Engine_setParagraphData(GNOME_GtkHTML_Editor_Engine _obj, const CORBA_char * key, const CORBA_char * value, CORBA_Environment * ev);
++   void GNOME_GtkHTML_Editor_Engine_setObjectDataByType(GNOME_GtkHTML_Editor_Engine _obj, const CORBA_char * type_name, const CORBA_char * key, const CORBA_char * data, CORBA_Environment * ev);
++   CORBA_boolean GNOME_GtkHTML_Editor_Engine_searchByData(GNOME_GtkHTML_Editor_Engine _obj, const CORBA_long level, const CORBA_char * klass, const CORBA_char * key, const CORBA_char * value, CORBA_Environment * ev);
++   CORBA_boolean GNOME_GtkHTML_Editor_Engine_isParagraphEmpty(GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev);
++   CORBA_boolean GNOME_GtkHTML_Editor_Engine_isPreviousParagraphEmpty(GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev);
++   void GNOME_GtkHTML_Editor_Engine_insertHTML(GNOME_GtkHTML_Editor_Engine _obj, const CORBA_char * html, CORBA_Environment * ev);
++   void GNOME_GtkHTML_Editor_Engine_freeze(GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev);
++   void GNOME_GtkHTML_Editor_Engine_thaw(GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev);
++   void GNOME_GtkHTML_Editor_Engine_undoBegin(GNOME_GtkHTML_Editor_Engine _obj, const CORBA_char * undo_name, const CORBA_char * redo_name, CORBA_Environment * ev);
++   void GNOME_GtkHTML_Editor_Engine_undoEnd(GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev);
++   void GNOME_GtkHTML_Editor_Engine_ignoreWord(GNOME_GtkHTML_Editor_Engine _obj, const CORBA_char * word, CORBA_Environment * ev);
++   void GNOME_GtkHTML_Editor_Engine_dropUndo(GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev);
++   CORBA_boolean GNOME_GtkHTML_Editor_Engine_hasUndo(GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev);
++   /** more internals **/
++#if !defined(MARSHAL_IMPL_GNOME_GtkHTML_Editor_URLRequestEvent_0)
++#define MARSHAL_IMPL_GNOME_GtkHTML_Editor_URLRequestEvent_0 'E'
++#define MARSHAL_IMPL_GNOME_GtkHTML_Editor_URLRequestEvent_1 'd'
++#define MARSHAL_IMPL_GNOME_GtkHTML_Editor_URLRequestEvent_2 'i'
++#define MARSHAL_IMPL_GNOME_GtkHTML_Editor_URLRequestEvent_3 't'
++#define MARSHAL_IMPL_GNOME_GtkHTML_Editor_URLRequestEvent_4 'o'
++#define MARSHAL_IMPL_GNOME_GtkHTML_Editor_URLRequestEvent_5 'r'
++#endif
++#include <orbit/orb-core/orbit-interface.h>
++#ifdef ORBIT_IDL_C_IMODULE_Editor
++   static
++#else
++   extern
++#endif
++   ORBit_IInterface GNOME_GtkHTML_Editor_Listener__iinterface;
++#define GNOME_GtkHTML_Editor_Listener_IMETHODS_LEN 1
++#ifdef ORBIT_IDL_C_IMODULE_Editor
++   static
++#else
++   extern
++#endif
++   ORBit_IMethod GNOME_GtkHTML_Editor_Listener__imethods[GNOME_GtkHTML_Editor_Listener_IMETHODS_LEN];
++#ifdef ORBIT_IDL_C_IMODULE_Editor
++   static
++#else
++   extern
++#endif
++   ORBit_IInterface GNOME_GtkHTML_Editor_Engine__iinterface;
++#define GNOME_GtkHTML_Editor_Engine_IMETHODS_LEN 17
++#ifdef ORBIT_IDL_C_IMODULE_Editor
++   static
++#else
++   extern
++#endif
++   ORBit_IMethod GNOME_GtkHTML_Editor_Engine__imethods[GNOME_GtkHTML_Editor_Engine_IMETHODS_LEN];
++#ifdef __cplusplus
++}
++#endif				/* __cplusplus */
++#ifndef EXCLUDE_ORBIT_H
++#include <orbit/orbit.h>
++#endif				/* EXCLUDE_ORBIT_H */
++#endif
++#undef ORBIT_IDL_SERIAL
+diff -urN components/html-editor.old/Spell-common.c components/html-editor/Spell-common.c
+--- components/html-editor.old/Spell-common.c	1970-01-01 01:00:00.000000000 +0100
++++ components/html-editor/Spell-common.c	2004-03-06 23:23:57.080627000 +0100
+@@ -0,0 +1,399 @@
++/*
++ * This file was generated by orbit-idl-2 - DO NOT EDIT!
++ */
++#include <string.h>
++#define ORBIT2_STUBS_API
++#define ORBIT_IDL_C_COMMON
++#define Spell_COMMON
++#include "Spell.h"
++static const CORBA_unsigned_long ORBit_zero_int = 0;
++#if ( (TC_IMPL_TC_CORBA_sequence_CORBA_string_0 == 'S') \
++&& (TC_IMPL_TC_CORBA_sequence_CORBA_string_1 == 'p') \
++&& (TC_IMPL_TC_CORBA_sequence_CORBA_string_2 == 'e') \
++&& (TC_IMPL_TC_CORBA_sequence_CORBA_string_3 == 'l') \
++&& (TC_IMPL_TC_CORBA_sequence_CORBA_string_4 == 'l') \
++) && !defined(TC_DEF_TC_CORBA_sequence_CORBA_string)
++#define TC_DEF_TC_CORBA_sequence_CORBA_string 1
++static const CORBA_TypeCode anon_subtypes_array1[] = {(CORBA_TypeCode) & TC_CORBA_string_struct};
++#ifdef ORBIT_IDL_C_IMODULE_Spell
++static
++#endif
++const struct CORBA_TypeCode_struct TC_CORBA_sequence_CORBA_string_struct = {
++   {&ORBit_TypeCode_epv, ORBIT_REFCOUNT_STATIC},
++   CORBA_tk_sequence,
++   0,
++   0,
++   4,
++   0,
++   1
++   ,
++   (CORBA_TypeCode *) anon_subtypes_array1,
++   CORBA_OBJECT_NIL,
++   NULL,
++   NULL,
++   NULL,
++   NULL,
++   -1,
++   0,
++   0, 0
++};
++#endif
++#if ( (TC_IMPL_TC_CORBA_sequence_CORBA_string_0 == 'S') \
++&& (TC_IMPL_TC_CORBA_sequence_CORBA_string_1 == 'p') \
++&& (TC_IMPL_TC_CORBA_sequence_CORBA_string_2 == 'e') \
++&& (TC_IMPL_TC_CORBA_sequence_CORBA_string_3 == 'l') \
++&& (TC_IMPL_TC_CORBA_sequence_CORBA_string_4 == 'l') \
++) && !defined(TC_DEF_TC_CORBA_sequence_CORBA_string)
++#define TC_DEF_TC_CORBA_sequence_CORBA_string 1
++static const CORBA_TypeCode anon_subtypes_array8[] = {(CORBA_TypeCode) & TC_CORBA_string_struct};
++#ifdef ORBIT_IDL_C_IMODULE_Spell
++static
++#endif
++const struct CORBA_TypeCode_struct TC_CORBA_sequence_CORBA_string_struct = {
++   {&ORBit_TypeCode_epv, ORBIT_REFCOUNT_STATIC},
++   CORBA_tk_sequence,
++   0,
++   0,
++   4,
++   0,
++   1
++   ,
++   (CORBA_TypeCode *) anon_subtypes_array8,
++   CORBA_OBJECT_NIL,
++   NULL,
++   NULL,
++   NULL,
++   NULL,
++   -1,
++   0,
++   0, 0
++};
++#endif
++#if ( (TC_IMPL_TC_GNOME_Spell_StringSeq_0 == 'S') \
++&& (TC_IMPL_TC_GNOME_Spell_StringSeq_1 == 'p') \
++&& (TC_IMPL_TC_GNOME_Spell_StringSeq_2 == 'e') \
++&& (TC_IMPL_TC_GNOME_Spell_StringSeq_3 == 'l') \
++&& (TC_IMPL_TC_GNOME_Spell_StringSeq_4 == 'l') \
++) && !defined(TC_DEF_TC_GNOME_Spell_StringSeq)
++#define TC_DEF_TC_GNOME_Spell_StringSeq 1
++static const CORBA_TypeCode anon_subtypes_array11[] = {(CORBA_TypeCode) & TC_CORBA_sequence_CORBA_string_struct};
++#ifdef ORBIT_IDL_C_IMODULE_Spell
++static
++#endif
++const struct CORBA_TypeCode_struct TC_GNOME_Spell_StringSeq_struct = {
++   {&ORBit_TypeCode_epv, ORBIT_REFCOUNT_STATIC},
++   CORBA_tk_alias,
++   0,
++   0,
++   4,
++   0,
++   1
++   ,
++   (CORBA_TypeCode *) anon_subtypes_array11,
++   CORBA_OBJECT_NIL,
++   "StringSeq",
++   "IDL:GNOME/Spell/StringSeq:1.0",
++   NULL,
++   NULL,
++   -1,
++   0,
++   0, 0
++};
++#endif
++#if ( (TC_IMPL_TC_GNOME_Spell_Language_0 == 'S') \
++&& (TC_IMPL_TC_GNOME_Spell_Language_1 == 'p') \
++&& (TC_IMPL_TC_GNOME_Spell_Language_2 == 'e') \
++&& (TC_IMPL_TC_GNOME_Spell_Language_3 == 'l') \
++&& (TC_IMPL_TC_GNOME_Spell_Language_4 == 'l') \
++) && !defined(TC_DEF_TC_GNOME_Spell_Language)
++#define TC_DEF_TC_GNOME_Spell_Language 1
++static const char *anon_subnames_array13[] = {"name", "abbreviation"};
++static const CORBA_TypeCode anon_subtypes_array14[] = {(CORBA_TypeCode) & TC_CORBA_string_struct, (CORBA_TypeCode) & TC_CORBA_string_struct};
++#ifdef ORBIT_IDL_C_IMODULE_Spell
++static
++#endif
++const struct CORBA_TypeCode_struct TC_GNOME_Spell_Language_struct = {
++   {&ORBit_TypeCode_epv, ORBIT_REFCOUNT_STATIC},
++   CORBA_tk_struct,
++   0,
++   0,
++   4,
++   0,
++   2
++   ,
++   (CORBA_TypeCode *) anon_subtypes_array14,
++   CORBA_OBJECT_NIL,
++   "Language",
++   "IDL:GNOME/Spell/Language:1.0",
++   (char **) anon_subnames_array13,
++   NULL,
++   -1,
++   0,
++   0, 0
++};
++#endif
++#if ( (TC_IMPL_TC_CORBA_sequence_GNOME_Spell_Language_0 == 'S') \
++&& (TC_IMPL_TC_CORBA_sequence_GNOME_Spell_Language_1 == 'p') \
++&& (TC_IMPL_TC_CORBA_sequence_GNOME_Spell_Language_2 == 'e') \
++&& (TC_IMPL_TC_CORBA_sequence_GNOME_Spell_Language_3 == 'l') \
++&& (TC_IMPL_TC_CORBA_sequence_GNOME_Spell_Language_4 == 'l') \
++) && !defined(TC_DEF_TC_CORBA_sequence_GNOME_Spell_Language)
++#define TC_DEF_TC_CORBA_sequence_GNOME_Spell_Language 1
++static const CORBA_TypeCode anon_subtypes_array17[] = {(CORBA_TypeCode) & TC_GNOME_Spell_Language_struct};
++#ifdef ORBIT_IDL_C_IMODULE_Spell
++static
++#endif
++const struct CORBA_TypeCode_struct TC_CORBA_sequence_GNOME_Spell_Language_struct = {
++   {&ORBit_TypeCode_epv, ORBIT_REFCOUNT_STATIC},
++   CORBA_tk_sequence,
++   0,
++   0,
++   4,
++   0,
++   1
++   ,
++   (CORBA_TypeCode *) anon_subtypes_array17,
++   CORBA_OBJECT_NIL,
++   NULL,
++   NULL,
++   NULL,
++   NULL,
++   -1,
++   0,
++   0, 0
++};
++#endif
++#if ( (TC_IMPL_TC_CORBA_sequence_GNOME_Spell_Language_0 == 'S') \
++&& (TC_IMPL_TC_CORBA_sequence_GNOME_Spell_Language_1 == 'p') \
++&& (TC_IMPL_TC_CORBA_sequence_GNOME_Spell_Language_2 == 'e') \
++&& (TC_IMPL_TC_CORBA_sequence_GNOME_Spell_Language_3 == 'l') \
++&& (TC_IMPL_TC_CORBA_sequence_GNOME_Spell_Language_4 == 'l') \
++) && !defined(TC_DEF_TC_CORBA_sequence_GNOME_Spell_Language)
++#define TC_DEF_TC_CORBA_sequence_GNOME_Spell_Language 1
++static const CORBA_TypeCode anon_subtypes_array24[] = {(CORBA_TypeCode) & TC_GNOME_Spell_Language_struct};
++#ifdef ORBIT_IDL_C_IMODULE_Spell
++static
++#endif
++const struct CORBA_TypeCode_struct TC_CORBA_sequence_GNOME_Spell_Language_struct = {
++   {&ORBit_TypeCode_epv, ORBIT_REFCOUNT_STATIC},
++   CORBA_tk_sequence,
++   0,
++   0,
++   4,
++   0,
++   1
++   ,
++   (CORBA_TypeCode *) anon_subtypes_array24,
++   CORBA_OBJECT_NIL,
++   NULL,
++   NULL,
++   NULL,
++   NULL,
++   -1,
++   0,
++   0, 0
++};
++#endif
++#if ( (TC_IMPL_TC_GNOME_Spell_LanguageSeq_0 == 'S') \
++&& (TC_IMPL_TC_GNOME_Spell_LanguageSeq_1 == 'p') \
++&& (TC_IMPL_TC_GNOME_Spell_LanguageSeq_2 == 'e') \
++&& (TC_IMPL_TC_GNOME_Spell_LanguageSeq_3 == 'l') \
++&& (TC_IMPL_TC_GNOME_Spell_LanguageSeq_4 == 'l') \
++) && !defined(TC_DEF_TC_GNOME_Spell_LanguageSeq)
++#define TC_DEF_TC_GNOME_Spell_LanguageSeq 1
++static const CORBA_TypeCode anon_subtypes_array27[] = {(CORBA_TypeCode) & TC_CORBA_sequence_GNOME_Spell_Language_struct};
++#ifdef ORBIT_IDL_C_IMODULE_Spell
++static
++#endif
++const struct CORBA_TypeCode_struct TC_GNOME_Spell_LanguageSeq_struct = {
++   {&ORBit_TypeCode_epv, ORBIT_REFCOUNT_STATIC},
++   CORBA_tk_alias,
++   0,
++   0,
++   4,
++   0,
++   1
++   ,
++   (CORBA_TypeCode *) anon_subtypes_array27,
++   CORBA_OBJECT_NIL,
++   "LanguageSeq",
++   "IDL:GNOME/Spell/LanguageSeq:1.0",
++   NULL,
++   NULL,
++   -1,
++   0,
++   0, 0
++};
++#endif
++#if ( (TC_IMPL_TC_GNOME_Spell_Dictionary_Error_0 == 'S') \
++&& (TC_IMPL_TC_GNOME_Spell_Dictionary_Error_1 == 'p') \
++&& (TC_IMPL_TC_GNOME_Spell_Dictionary_Error_2 == 'e') \
++&& (TC_IMPL_TC_GNOME_Spell_Dictionary_Error_3 == 'l') \
++&& (TC_IMPL_TC_GNOME_Spell_Dictionary_Error_4 == 'l') \
++) && !defined(TC_DEF_TC_GNOME_Spell_Dictionary_Error)
++#define TC_DEF_TC_GNOME_Spell_Dictionary_Error 1
++static const char *anon_subnames_array29[] = {"error"};
++static const CORBA_TypeCode anon_subtypes_array30[] = {(CORBA_TypeCode) & TC_CORBA_string_struct};
++#ifdef ORBIT_IDL_C_IMODULE_Spell
++static
++#endif
++const struct CORBA_TypeCode_struct TC_GNOME_Spell_Dictionary_Error_struct = {
++   {&ORBit_TypeCode_epv, ORBIT_REFCOUNT_STATIC},
++   CORBA_tk_except,
++   0,
++   0,
++   4,
++   0,
++   1
++   ,

@@ Diff output truncated at 100000 characters. @@

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the devel mailing list