This commit was manufactured by cvs2svn to create tag 'pre_filelist'.
git-svn-id: svn://10.0.0.236/tags/pre_filelist@157873 18797224-902f-48f8-a5cc-f745e15eee43
@ -1 +0,0 @@
|
||||
CVSROOT/history
|
||||
@ -1,4 +0,0 @@
|
||||
If you change the modules file, you *MUST* run:
|
||||
check-modules.pl modules
|
||||
|
||||
*before* cvs committing the new modules file.
|
||||
@ -1,257 +0,0 @@
|
||||
#!/usr/bin/env perl
|
||||
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is this file as it was released upon February 25, 1999.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape Communications
|
||||
# Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1999 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
|
||||
#
|
||||
# check-modules.pl - Check cvs modules file for duplicates and syntax errors.
|
||||
#
|
||||
# TODO:
|
||||
# - Parse output of 'cvs co -c' command in addition to the raw file.
|
||||
#
|
||||
# Send comments, improvements, bugs to Steve Lamm (slamm@netscape.com).
|
||||
|
||||
# $Id: check-modules.pl,v 1.1 2000-06-01 11:03:22 leaf%mozilla.org Exp $
|
||||
|
||||
require 5.004;
|
||||
|
||||
use Getopt::Std;
|
||||
|
||||
sub usage
|
||||
{
|
||||
my ($progname) = $0 =~ /([^\/]+)$/;
|
||||
die "Usage: $progname [options] [<module_file>]
|
||||
Reads from stdin if no file is given.
|
||||
Options:
|
||||
-v Verbose. Print the modules and what they include.
|
||||
-h Print this usage message.
|
||||
";
|
||||
}
|
||||
|
||||
&usage if !getopts('hv');
|
||||
&usage if defined($opt_h);
|
||||
|
||||
######################################################################
|
||||
# begin main
|
||||
|
||||
|
||||
# The subroutine &parse_input creates the globals @module_names,
|
||||
# %module_tree, and %line_number (described below).
|
||||
&parse_input;
|
||||
|
||||
foreach $module (@module_names)
|
||||
{
|
||||
&check_module($module);
|
||||
}
|
||||
|
||||
# end main
|
||||
######################################################################
|
||||
# begin subroutines
|
||||
|
||||
sub parse_input
|
||||
{
|
||||
# Globals created:
|
||||
# @module_names - List of module names in the order they are seen.
|
||||
# %module_tree - Hash table of lists. Keys are module names.
|
||||
# Values are lists of module names and diretories.
|
||||
# %line_number - Hash indexed by module name and module item.
|
||||
# Values are line numbers.
|
||||
|
||||
@module_names = ();
|
||||
%module_tree = ();
|
||||
%line_number = ();
|
||||
|
||||
while (<>)
|
||||
{
|
||||
next if /^\#/ || /^\s*$/;
|
||||
|
||||
# Check for a module definition
|
||||
if (/^([_a-zA-Z0-9]+)\s+(?:-l\s+)?-a\s*(.*)$/)
|
||||
{
|
||||
my ($module_name) = $1;
|
||||
my (@sub_items) = ();
|
||||
my ($line) = $2;
|
||||
|
||||
push @module_names, $module_name;
|
||||
|
||||
# Read line continuations (i.e. lines with '\' on the end).
|
||||
while ($line =~ /\\$/)
|
||||
{
|
||||
chomp $line;
|
||||
$line =~ s/^\s*(.*?)\s*\\$/$1/;
|
||||
if (length($line) > 0)
|
||||
{
|
||||
my (@line_items) = split(/\s+/, $line);
|
||||
push @sub_items, @line_items;
|
||||
&save_line_numbers($module_name, $., @line_items);
|
||||
}
|
||||
$line = <>;
|
||||
}
|
||||
chomp $line;
|
||||
$line =~ s/^\s*(.*?)\s*$/$1/;
|
||||
my (@line_items) = split(/\s+/, $line);
|
||||
push @sub_items, @line_items;
|
||||
&save_line_numbers($module_name, $., @line_items);
|
||||
|
||||
$module_tree{$module_name} = \@sub_items;
|
||||
}
|
||||
else
|
||||
{
|
||||
die "Unexpected input: line $.: $_\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub check_module
|
||||
{
|
||||
my ($module) = $_[0];
|
||||
my ($sub_module, $sub_dir, $prev_module);
|
||||
|
||||
# Globals created:
|
||||
# %have_checked - List of modules already checked.
|
||||
# %full_list - All the directories for a module.
|
||||
# Indexed by module and sub directory.
|
||||
# Values are the module that added the directory.
|
||||
|
||||
return if defined($have_checked{$module});
|
||||
|
||||
$full_list{$module} = {};
|
||||
|
||||
foreach $sub_module ( &get_modules($module) )
|
||||
{
|
||||
&check_module($sub_module);
|
||||
|
||||
# Add the directories of the sub_module to this module
|
||||
while (($sub_dir, $prev_module) = each %{$full_list{$sub_module}})
|
||||
{
|
||||
$full_list{$module}{$sub_dir} = $prev_module;
|
||||
}
|
||||
}
|
||||
foreach $sub_dir ( &get_directories($module) )
|
||||
{
|
||||
if (defined($full_list{$module}{$sub_dir}))
|
||||
{
|
||||
my ($previous_module) = $full_list{$module}{$sub_dir};
|
||||
|
||||
&warn_multiple($sub_dir, $module, $previous_module);
|
||||
}
|
||||
else
|
||||
{
|
||||
$full_list{$module}{$sub_dir} = $module;
|
||||
|
||||
# Check if parent or child of directory was previously added
|
||||
#
|
||||
&check_inclusion($sub_dir, $module);
|
||||
}
|
||||
}
|
||||
if (defined($opt_v))
|
||||
{
|
||||
print "$module\n";
|
||||
while (($sub_dir, $prev_module) = each %{$full_list{$module}})
|
||||
{
|
||||
print " $sub_dir, $prev_module\n";
|
||||
}
|
||||
}
|
||||
$have_checked{$module} = 1;
|
||||
}
|
||||
|
||||
sub get_modules
|
||||
{
|
||||
my ($module) = $_[0];
|
||||
my (@output) = ();
|
||||
my ($sub_item);
|
||||
|
||||
foreach $sub_item ( @{ $module_tree{$module} } )
|
||||
{
|
||||
push @output, $sub_item if defined($module_tree{$sub_item});
|
||||
}
|
||||
return @output;
|
||||
}
|
||||
|
||||
sub get_directories
|
||||
{
|
||||
my ($module) = $_[0];
|
||||
my (@output) = ();
|
||||
my ($sub_item);
|
||||
|
||||
foreach $sub_item ( @{ $module_tree{$module} } )
|
||||
{
|
||||
push @output, $sub_item unless defined($module_tree{$sub_item});
|
||||
}
|
||||
return @output;
|
||||
}
|
||||
|
||||
sub save_line_numbers
|
||||
{
|
||||
my ($module, $line_num, @sub_items) = @_;
|
||||
my ($sub_item);
|
||||
|
||||
foreach $sub_item (@sub_items)
|
||||
{
|
||||
if (defined($line_number{$module}{$sub_item}))
|
||||
{
|
||||
$line_number{$module}{$sub_item} =
|
||||
"$line_number{$module}{$sub_item}, $line_num";
|
||||
}
|
||||
else
|
||||
{
|
||||
$line_number{$module}{$sub_item} = $line_num;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub warn_multiple
|
||||
{
|
||||
my ($sub_item, $module, $previous_module) = @_;
|
||||
my ($line_txt) = '';
|
||||
|
||||
my (@lines) = split(', ', $line_number{$module}{$sub_item});
|
||||
|
||||
push(@lines, split(', ', $line_number{$previous_module}{$sub_item}))
|
||||
unless $previous_module eq $module;
|
||||
|
||||
$line_txt = "lines ".join(', ', sort { $a <=> $b } @lines);
|
||||
|
||||
warn "Error: Multiple listing: $line_txt: $sub_item.\n";
|
||||
}
|
||||
|
||||
sub check_inclusion
|
||||
{
|
||||
my ($sub_dir, $module) = @_;
|
||||
my ($dir);
|
||||
|
||||
foreach $dir (keys %{$full_list{$module}})
|
||||
{
|
||||
next if $dir eq $sub_dir;
|
||||
if (length($dir) < length($sub_dir))
|
||||
{
|
||||
my ($temp) = $sub_dir;
|
||||
$sub_dir = $dir;
|
||||
$dir = $temp;
|
||||
}
|
||||
if ($dir =~ /^$sub_dir\//)
|
||||
{
|
||||
warn "Warning: $dir (line "
|
||||
.$line_number{$full_list{$module}{$dir}}{$dir}
|
||||
.") pulled by $sub_dir (line "
|
||||
.$line_number{$full_list{$module}{$sub_dir}}{$sub_dir}
|
||||
.")\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,20 +0,0 @@
|
||||
# The "checkoutlist" file is used to support additional version controlled
|
||||
# administrative files in $CVSROOT/CVSROOT, such as template files.
|
||||
#
|
||||
# The first entry on a line is a filename which will be checked out from
|
||||
# the corresponding RCS file in the $CVSROOT/CVSROOT directory.
|
||||
# The remainder of the line is an error message to use if the file cannot
|
||||
# be checked out.
|
||||
#
|
||||
# File format:
|
||||
#
|
||||
# [<whitespace>]<filename><whitespace><error message><end-of-line>
|
||||
#
|
||||
# comment lines begin with '#'
|
||||
passwd
|
||||
readers
|
||||
commitcheck.pl
|
||||
dolog.pl
|
||||
FilesToNotExport
|
||||
cvsmailfilter.pl
|
||||
sendnotification.pl
|
||||
@ -1,568 +0,0 @@
|
||||
#!/usr/bin/perl --
|
||||
# DO NOT EDIT THIS FILE! You must instead go to http://despot.mozilla.org/, and
|
||||
# tweak things from there.
|
||||
|
||||
$mode{'180'} = 'Open';
|
||||
$branch{'180'} = 'HEAD';
|
||||
$fullname{'180'} = 'accessibility';
|
||||
$mode{'52'} = 'Open';
|
||||
$branch{'52'} = 'HEAD';
|
||||
$fullname{'52'} = 'Aurora/RDF BE';
|
||||
$mode{'172'} = 'Open';
|
||||
$branch{'172'} = 'HEAD';
|
||||
$fullname{'172'} = 'BeOS-based gfx and widget';
|
||||
$mode{'53'} = 'Open';
|
||||
$branch{'53'} = 'HEAD';
|
||||
$fullname{'53'} = 'Berkeley DB';
|
||||
$mode{'166'} = 'Open';
|
||||
$branch{'166'} = 'HEAD';
|
||||
$fullname{'166'} = 'Browser';
|
||||
$mode{'55'} = 'Open';
|
||||
$branch{'55'} = 'HEAD';
|
||||
$fullname{'55'} = 'Build Config';
|
||||
$mode{'146'} = 'Restricted';
|
||||
$branch{'146'} = 'NSPRPUB_PRE_4_2_CLIENT_BRANCH';
|
||||
$fullname{'146'} = 'Client NSPR';
|
||||
$blessed{'146'} = ['sfraser%netscape.com','sdagley%mac.com','mkaply%us.ibm.com','lpham%netscape.com','jje%mac.com','granrose%netscape.com',];
|
||||
$super{'146'} = ['wchang0222%aol.com','seawood%netscape.com','darin%meer.net','leaf%mozilla.org',];
|
||||
$mode{'96'} = 'Open';
|
||||
$branch{'96'} = 'HEAD';
|
||||
$fullname{'96'} = 'Clipping and Compositing';
|
||||
$mode{'56'} = 'Open';
|
||||
$branch{'56'} = 'HEAD';
|
||||
$fullname{'56'} = 'Composer';
|
||||
$mode{'171'} = 'Open';
|
||||
$branch{'171'} = 'HEAD';
|
||||
$fullname{'171'} = 'Cookies and Permissions';
|
||||
$mode{'4'} = 'Open';
|
||||
$branch{'4'} = 'HEAD';
|
||||
$fullname{'4'} = 'default';
|
||||
$defaultid = '4';
|
||||
$mode{'3'} = 'Closed';
|
||||
$branch{'3'} = 'HEAD';
|
||||
$fullname{'3'} = 'despotaccess';
|
||||
$blessed{'3'} = [];
|
||||
$super{'3'} = ['despotdaemon%netscape.com','myk%mozilla.org',];
|
||||
$mode{'59'} = 'Restricted';
|
||||
$branch{'59'} = 'HEAD';
|
||||
$fullname{'59'} = 'Directory SDK';
|
||||
$blessed{'59'} = ['cls%seawood.org','richm%netscape.com',];
|
||||
$super{'59'} = ['leif%ogre.com','dmose%mozilla.org','mhein%sun.com','mcs%pearlcrescent.com',];
|
||||
$mode{'103'} = 'Open';
|
||||
$branch{'103'} = 'HEAD';
|
||||
$fullname{'103'} = 'Document Object Model';
|
||||
$mode{'46'} = 'Open';
|
||||
$branch{'46'} = 'HEAD';
|
||||
$fullname{'46'} = 'ef';
|
||||
$mode{'101'} = 'Open';
|
||||
$branch{'101'} = 'HEAD';
|
||||
$fullname{'101'} = 'Embeddable Web Browser';
|
||||
$mode{'181'} = 'Open';
|
||||
$branch{'181'} = 'HEAD';
|
||||
$fullname{'181'} = 'Find As You Type';
|
||||
$mode{'177'} = 'Open';
|
||||
$branch{'177'} = 'HEAD';
|
||||
$fullname{'177'} = 'GFX and Widget - General';
|
||||
$mode{'178'} = 'Open';
|
||||
$branch{'178'} = 'HEAD';
|
||||
$fullname{'178'} = 'GFX and Widget - Mac';
|
||||
$mode{'182'} = 'Open';
|
||||
$branch{'182'} = 'HEAD';
|
||||
$fullname{'182'} = 'Global Key Bindings';
|
||||
$mode{'49'} = 'Open';
|
||||
$branch{'49'} = 'HEAD';
|
||||
$fullname{'49'} = 'GTK';
|
||||
$mode{'144'} = 'Open';
|
||||
$branch{'144'} = 'HEAD';
|
||||
$fullname{'144'} = 'GTK Embedding Widget';
|
||||
$mode{'174'} = 'Open';
|
||||
$branch{'174'} = 'HEAD';
|
||||
$fullname{'174'} = 'Help System';
|
||||
$mode{'62'} = 'Open';
|
||||
$branch{'62'} = 'HEAD';
|
||||
$fullname{'62'} = 'HTML to Text/PostScript Translation';
|
||||
$mode{'67'} = 'Open';
|
||||
$branch{'67'} = 'HEAD';
|
||||
$fullname{'67'} = 'I18N Library';
|
||||
$mode{'64'} = 'Open';
|
||||
$branch{'64'} = 'HEAD';
|
||||
$fullname{'64'} = 'Image Handling: JPEG';
|
||||
$mode{'155'} = 'Open';
|
||||
$branch{'155'} = 'HEAD';
|
||||
$fullname{'155'} = 'Image Handling: MNG';
|
||||
$mode{'65'} = 'Open';
|
||||
$branch{'65'} = 'HEAD';
|
||||
$fullname{'65'} = 'Image Handling: PNG';
|
||||
$mode{'63'} = 'Open';
|
||||
$branch{'63'} = 'HEAD';
|
||||
$fullname{'63'} = 'ImageLib';
|
||||
$mode{'69'} = 'Open';
|
||||
$branch{'69'} = 'HEAD';
|
||||
$fullname{'69'} = 'Java and JS Capability-Based Security';
|
||||
$mode{'130'} = 'Open';
|
||||
$branch{'130'} = 'HEAD';
|
||||
$fullname{'130'} = 'Java APIs for DOM';
|
||||
$mode{'127'} = 'Open';
|
||||
$branch{'127'} = 'HEAD';
|
||||
$fullname{'127'} = 'Java APIs to WebShell';
|
||||
$mode{'68'} = 'Open';
|
||||
$branch{'68'} = 'HEAD';
|
||||
$fullname{'68'} = 'Java Stubs';
|
||||
$mode{'128'} = 'Open';
|
||||
$branch{'128'} = 'HEAD';
|
||||
$fullname{'128'} = 'Java to XPCOM Bridge';
|
||||
$mode{'133'} = 'Open';
|
||||
$branch{'133'} = 'HEAD';
|
||||
$fullname{'133'} = 'Java Utility Classes';
|
||||
$mode{'129'} = 'Open';
|
||||
$branch{'129'} = 'HEAD';
|
||||
$fullname{'129'} = 'Java-Implemented Plugins';
|
||||
$mode{'70'} = 'Restricted';
|
||||
$branch{'70'} = 'HEAD';
|
||||
$fullname{'70'} = 'JavaScript';
|
||||
$blessed{'70'} = ['timeless%mozdev.org','mike+mozilla%meer.net','cls%seawood.org','bratell%lysator.liu.se',];
|
||||
$super{'70'} = ['shaver%mozilla.org','rogerl33%aol.com','khanson%netscape.com','jband%netscape.com','brendan%mozilla.org',];
|
||||
$mode{'71'} = 'Open';
|
||||
$branch{'71'} = 'HEAD';
|
||||
$fullname{'71'} = 'JavaScript Debugger';
|
||||
$mode{'114'} = 'Open';
|
||||
$branch{'114'} = 'HEAD';
|
||||
$fullname{'114'} = 'js-tests';
|
||||
$mode{'72'} = 'Open';
|
||||
$branch{'72'} = 'HEAD';
|
||||
$fullname{'72'} = 'LiveConnect';
|
||||
$mode{'136'} = 'Closed';
|
||||
$branch{'136'} = 'HEAD';
|
||||
$fullname{'136'} = 'Locked-Content';
|
||||
$blessed{'136'} = [];
|
||||
$super{'136'} = ['hyatt%mozilla.org',];
|
||||
$mode{'123'} = 'Open';
|
||||
$branch{'123'} = 'HEAD';
|
||||
$fullname{'123'} = 'Mail/News';
|
||||
$mode{'165'} = 'Open';
|
||||
$branch{'165'} = 'HEAD';
|
||||
$fullname{'165'} = 'MathML';
|
||||
$mode{'124'} = 'Open';
|
||||
$branch{'124'} = 'HEAD';
|
||||
$fullname{'124'} = 'MIME';
|
||||
$mode{'157'} = 'Open';
|
||||
$branch{'157'} = 'HEAD';
|
||||
$fullname{'157'} = 'Movemail';
|
||||
$mode{'112'} = 'Open';
|
||||
$branch{'112'} = 'HEAD';
|
||||
$fullname{'112'} = 'Mozilla Tools';
|
||||
$mode{'19'} = 'Open';
|
||||
$branch{'19'} = 'HEAD';
|
||||
$fullname{'19'} = 'mozilla-toplevel';
|
||||
$mode{'147'} = 'Open';
|
||||
$branch{'147'} = 'HEAD';
|
||||
$fullname{'147'} = 'Mstone';
|
||||
$mode{'77'} = 'Open';
|
||||
$branch{'77'} = 'HEAD';
|
||||
$fullname{'77'} = 'NetLib';
|
||||
$mode{'102'} = 'Open';
|
||||
$branch{'102'} = 'HEAD';
|
||||
$fullname{'102'} = 'New HTML Parser';
|
||||
$mode{'100'} = 'Open';
|
||||
$branch{'100'} = 'HEAD';
|
||||
$fullname{'100'} = 'New HTML Style System';
|
||||
$mode{'98'} = 'Open';
|
||||
$branch{'98'} = 'HEAD';
|
||||
$fullname{'98'} = 'New Layout Engine';
|
||||
$mode{'122'} = 'Open';
|
||||
$branch{'122'} = 'HEAD';
|
||||
$fullname{'122'} = 'News';
|
||||
$mode{'78'} = 'Restricted';
|
||||
$branch{'78'} = 'HEAD';
|
||||
$fullname{'78'} = 'NSPR';
|
||||
$blessed{'78'} = ['gerv%gerv.net','sfraser%netscape.com','sdagley%mac.com',];
|
||||
$super{'78'} = ['srinivas%netscape.com','seawood%netscape.com','darin%meer.net','wchang0222%aol.com',];
|
||||
$mode{'163'} = 'Restricted';
|
||||
$branch{'163'} = 'NSS_3_3_BRANCH';
|
||||
$fullname{'163'} = 'NSS Stable Release Branch';
|
||||
$blessed{'163'} = [];
|
||||
$super{'163'} = ['tfox%netscape.com','nicolson%netscape.com','nelsonb%netscape.com','jpierre%netscape.com','ian.mcgreer%sun.com','glen.beasley%sun.com','bishakhabanerjee%netscape.com','wchang0222%aol.com','relyea%netscape.com',];
|
||||
$mode{'159'} = 'Open';
|
||||
$branch{'159'} = 'HEAD';
|
||||
$fullname{'159'} = 'NSS Trunk';
|
||||
$mode{'162'} = 'Open';
|
||||
$branch{'162'} = 'HEAD';
|
||||
$fullname{'162'} = 'P3P';
|
||||
$mode{'111'} = 'Open';
|
||||
$branch{'111'} = 'HEAD';
|
||||
$fullname{'111'} = 'PerlConnect';
|
||||
$mode{'113'} = 'Open';
|
||||
$branch{'113'} = 'HEAD';
|
||||
$fullname{'113'} = 'Photon';
|
||||
$mode{'81'} = 'Open';
|
||||
$branch{'81'} = 'HEAD';
|
||||
$fullname{'81'} = 'Plugins';
|
||||
$mode{'82'} = 'Open';
|
||||
$branch{'82'} = 'HEAD';
|
||||
$fullname{'82'} = 'Preferences';
|
||||
$mode{'120'} = 'Open';
|
||||
$branch{'120'} = 'HEAD';
|
||||
$fullname{'120'} = 'Profile Manager';
|
||||
$mode{'83'} = 'Open';
|
||||
$branch{'83'} = 'HEAD';
|
||||
$fullname{'83'} = 'Progress Window';
|
||||
$mode{'161'} = 'Open';
|
||||
$branch{'161'} = 'HEAD';
|
||||
$fullname{'161'} = 'Qt-based gfx and widget';
|
||||
$mode{'84'} = 'Open';
|
||||
$branch{'84'} = 'HEAD';
|
||||
$fullname{'84'} = 'Registry';
|
||||
$mode{'143'} = 'Open';
|
||||
$branch{'143'} = 'HEAD';
|
||||
$fullname{'143'} = 'Remote XPCOM';
|
||||
$mode{'138'} = 'Open';
|
||||
$branch{'138'} = 'HEAD';
|
||||
$fullname{'138'} = 'Rhino';
|
||||
$mode{'145'} = 'Restricted';
|
||||
$branch{'145'} = 'HEAD';
|
||||
$fullname{'145'} = 'security';
|
||||
$blessed{'145'} = ['jgmyers%speakeasy.net','gerv%gerv.net','cotter%netscape.com','cls%seawood.org','bryner%brianryner.com',];
|
||||
$super{'145'} = ['wchang0222%aol.com','tfox%netscape.com','saul.edwards%sun.com','nicolson%netscape.com','nelsonb%netscape.com','kaie%kuix.de','jpierre%netscape.com','ian.mcgreer%sun.com','glen.beasley%sun.com','christophe.ravel.bugs%sun.com','chrisk%netscape.com','bishakhabanerjee%netscape.com','thayes%netscape.com','relyea%netscape.com','ddrinan%netscape.com',];
|
||||
$mode{'151'} = 'Open';
|
||||
$branch{'151'} = 'HEAD';
|
||||
$fullname{'151'} = 'Security - Mozilla PSM Glue';
|
||||
$mode{'86'} = 'Open';
|
||||
$branch{'86'} = 'HEAD';
|
||||
$fullname{'86'} = 'Security Stubs';
|
||||
$mode{'110'} = 'Open';
|
||||
$branch{'110'} = 'HEAD';
|
||||
$fullname{'110'} = 'Silent Download';
|
||||
$mode{'115'} = 'Open';
|
||||
$branch{'115'} = 'HEAD';
|
||||
$fullname{'115'} = 'small-devices';
|
||||
$mode{'87'} = 'Open';
|
||||
$branch{'87'} = 'HEAD';
|
||||
$fullname{'87'} = 'SmartUpdate';
|
||||
$mode{'173'} = 'Open';
|
||||
$branch{'173'} = 'HEAD';
|
||||
$fullname{'173'} = 'Standalone Composer';
|
||||
$mode{'170'} = 'Open';
|
||||
$branch{'170'} = 'HEAD';
|
||||
$fullname{'170'} = 'Standalone Mail';
|
||||
$mode{'160'} = 'Open';
|
||||
$branch{'160'} = 'HEAD';
|
||||
$fullname{'160'} = 'String';
|
||||
$mode{'169'} = 'Open';
|
||||
$branch{'169'} = 'HEAD';
|
||||
$fullname{'169'} = 'toolkit';
|
||||
$mode{'154'} = 'Open';
|
||||
$branch{'154'} = 'HEAD';
|
||||
$fullname{'154'} = 'tools';
|
||||
$mode{'158'} = 'Open';
|
||||
$branch{'158'} = 'HEAD';
|
||||
$fullname{'158'} = 'URI Loader';
|
||||
$mode{'156'} = 'Open';
|
||||
$branch{'156'} = 'HEAD';
|
||||
$fullname{'156'} = 'ViXEn';
|
||||
$mode{'175'} = 'Open';
|
||||
$branch{'175'} = 'HEAD';
|
||||
$fullname{'175'} = 'Win32-Based GFX and Widget';
|
||||
$mode{'121'} = 'Open';
|
||||
$branch{'121'} = 'HEAD';
|
||||
$fullname{'121'} = 'Xlib-based gfx + widget';
|
||||
$mode{'88'} = 'Open';
|
||||
$branch{'88'} = 'HEAD';
|
||||
$fullname{'88'} = 'XML';
|
||||
$mode{'141'} = 'Open';
|
||||
$branch{'141'} = 'HEAD';
|
||||
$fullname{'141'} = 'xmlterm';
|
||||
$mode{'90'} = 'Open';
|
||||
$branch{'90'} = 'HEAD';
|
||||
$fullname{'90'} = 'XP File Handling';
|
||||
$mode{'137'} = 'Open';
|
||||
$branch{'137'} = 'HEAD';
|
||||
$fullname{'137'} = 'XPApps';
|
||||
$mode{'89'} = 'Open';
|
||||
$branch{'89'} = 'HEAD';
|
||||
$fullname{'89'} = 'XPCOM';
|
||||
$mode{'118'} = 'Open';
|
||||
$branch{'118'} = 'HEAD';
|
||||
$fullname{'118'} = 'XPConnect';
|
||||
$mode{'117'} = 'Open';
|
||||
$branch{'117'} = 'HEAD';
|
||||
$fullname{'117'} = 'XPIDL';
|
||||
$mode{'150'} = 'Open';
|
||||
$branch{'150'} = 'HEAD';
|
||||
$fullname{'150'} = 'XPInstall';
|
||||
$mode{'179'} = 'Open';
|
||||
$branch{'179'} = 'HEAD';
|
||||
$fullname{'179'} = 'XPrint';
|
||||
$mode{'106'} = 'Open';
|
||||
$branch{'106'} = 'HEAD';
|
||||
$fullname{'106'} = 'XPToolkit';
|
||||
$mode{'140'} = 'Open';
|
||||
$branch{'140'} = 'HEAD';
|
||||
$fullname{'140'} = 'XSLT Processor';
|
||||
$mode{'135'} = 'Open';
|
||||
$branch{'135'} = 'HEAD';
|
||||
$fullname{'135'} = 'xul.css';
|
||||
$mode{'93'} = 'Open';
|
||||
$branch{'93'} = 'HEAD';
|
||||
$fullname{'93'} = 'Zlib';
|
||||
sub GetT {
|
||||
($b,$_) = (@_);
|
||||
if ($b eq 'HEAD') {
|
||||
if (m:^mozilla/embedding/.*$:) {return '101';}
|
||||
if (m:^mozilla/webshell/.*$:) {return '101';}
|
||||
if (m:^mozilla/htmlparser/.*$:) {return '102';}
|
||||
if (m:^mozilla/content/base/.*$:) {return '103';}
|
||||
if (m:^mozilla/content/events/.*$:) {return '103';}
|
||||
if (m:^mozilla/content/html/content/.*$:) {return '103';}
|
||||
if (m:^mozilla/content/html/document/.*$:) {return '103';}
|
||||
if (m:^mozilla/dom/.*$:) {return '103';}
|
||||
if (m:^mozilla/js/rhino/.*$:) {return '138';}
|
||||
if (m:^mozilla/xpfe/.*$:) {return '137';}
|
||||
if (m:^mozilla/js/tests$:) {return '114';}
|
||||
if (m:^js/src/perlconnect$:) {return '111';}
|
||||
if (m:^mozilla/silentdl/.*$:) {return '110';}
|
||||
if (m:^mozilla/content/xsl/.*$:) {return '140';}
|
||||
if (m:^mozilla/extensions/transformiix/.*$:) {return '140';}
|
||||
if (m:^gfx/src/photon/.*$:) {return '113';}
|
||||
if (m:^widget/src/photon/.*$:) {return '113';}
|
||||
if (m:^mozilla/content/xul/.*$:) {return '106';}
|
||||
if (m:^mozilla/layout/xul/.*$:) {return '106';}
|
||||
if (m:^mozilla/profile$:) {return '120';}
|
||||
if (m:^mozilla/tools/.*$:) {return '112';}
|
||||
if (m:^xpcom/typelib$:) {return '117';}
|
||||
if (m:^js/src/xpconnect$:) {return '118';}
|
||||
if (m:^xpcom/reflect/xptcall$:) {return '118';}
|
||||
if (m:^xpcom/reflect/xptinfo$:) {return '118';}
|
||||
if (m:^mozilla/mailnews/news/.*$:) {return '122';}
|
||||
if (m:^mozilla/mailnews/[^/]*$:) {return '123';}
|
||||
if (m:^mozilla/mailnews/mime/[^/]*$:) {return '124';}
|
||||
if (m:^mozilla/java/xpcom/.*$:) {return '128';}
|
||||
if (m:^mozilla/java/plugins/.*$:) {return '129';}
|
||||
if (m:^mozilla/java/webclient/.*$:) {return '127';}
|
||||
if (m:^mozilla/java/dom/.*$:) {return '130';}
|
||||
if (m:^mozilla/java/util/.*$:) {return '133';}
|
||||
if (m:^CVSROOT/commitcheck\.pl$:) {return '3';}
|
||||
if (m:^CVSROOT/passwd$:) {return '3';}
|
||||
if (m:^mozilla/security/coreconf/.*$:) {return '145';}
|
||||
if (m:^mozilla/security/jss/.*$:) {return '145';}
|
||||
if (m:^mozilla/security/nss/.*$:) {return '145';}
|
||||
if (m:^mozilla/extensions/xmlterm/.*$:) {return '141';}
|
||||
if (m:^composer$:) {return '173';}
|
||||
if (m:^xpcom/remote$:) {return '143';}
|
||||
if (m:^mozilla/[^/]*$:) {return '19';}
|
||||
if (m:^embedding/browser/gtk$:) {return '144';}
|
||||
if (m:^mozilla/gfx/src/xlib/.*$:) {return '121';}
|
||||
if (m:^mozilla/widget/src/xlib/.*$:) {return '121';}
|
||||
if (m:^mozilla/widget/src/xlibxtbin/.*$:) {return '121';}
|
||||
if (m:^mozilla/mstone/.*$:) {return '147';}
|
||||
if (m:^mozilla/ef/.*$:) {return '46';}
|
||||
if (m:^mozilla/xpinstall/.*$:) {return '150';}
|
||||
if (m:^mozilla/gfx/src/gtk/.*$:) {return '49';}
|
||||
if (m:^mozilla/widget/src/gtk/.*$:) {return '49';}
|
||||
if (m:^mozilla/widget/src/gtk2/.*$:) {return '49';}
|
||||
if (m:^mozilla/widget/src/gtksuperwin/.*$:) {return '49';}
|
||||
if (m:^mozilla/widget/src/gtkxtbin/.*$:) {return '49';}
|
||||
if (m:^mozilla/security/manager/.*$:) {return '151';}
|
||||
if (m:^mozilla/rdf/.*$:) {return '52';}
|
||||
if (m:^mozilla/dbm/.*$:) {return '53';}
|
||||
if (m:^mozilla/extensions/vixen/.*$:) {return '156';}
|
||||
if (m:^mozilla/build/.*$:) {return '55';}
|
||||
if (m:^mozilla/config/.*$:) {return '55';}
|
||||
if (m:^mozilla/l10n/.*$:) {return '55';}
|
||||
if (m:^mozilla/mailnews/movemail/.*$:) {return '157';}
|
||||
if (m:^mozilla/editor/.*$:) {return '56';}
|
||||
if (m:^mozilla/uriloader/.*$:) {return '158';}
|
||||
if (m:^mozilla/directory/buildsdk\.txt$:) {return '59';}
|
||||
if (m:^mozilla/directory/c-sdk/.*$:) {return '59';}
|
||||
if (m:^mozilla/directory/ldapsdk\.mak$:) {return '59';}
|
||||
if (m:^mozilla/directory/ldapsdk\.mk$:) {return '59';}
|
||||
if (m:^mozilla/directory/Makefile$:) {return '59';}
|
||||
if (m:^gfx/src/ps/.*$:) {return '62';}
|
||||
if (m:^mozilla/string/.*$:) {return '160';}
|
||||
if (m:^mozilla/modules/libpr0n/.*$:) {return '63';}
|
||||
if (m:^mozilla/gfx/src/qt/.*$:) {return '161';}
|
||||
if (m:^mozilla/widget/src/qt/.*$:) {return '161';}
|
||||
if (m:^jpeg$:) {return '64';}
|
||||
if (m:^mozilla/extensions/p3p/.*$:) {return '162';}
|
||||
if (m:^mozilla/modules/libimg/png/.*$:) {return '65';}
|
||||
if (m:^mozilla/layout/mathml/.*$:) {return '165';}
|
||||
if (m:^mozilla/intl/.*$:) {return '67';}
|
||||
if (m:^mozilla/browser/.*$:) {return '166';}
|
||||
if (m:^mozilla/chrome/.*$:) {return '166';}
|
||||
if (m:^mozilla/toolkit/.*$:) {return '166';}
|
||||
if (m:^mozilla/modules/oji/.*$:) {return '68';}
|
||||
if (m:^mozilla/nav-java/.*$:) {return '68';}
|
||||
if (m:^mozilla/sun-java/.*$:) {return '68';}
|
||||
if (m:^mozilla/caps/.*$:) {return '69';}
|
||||
if (m:^mozilla/mail/.*$:) {return '170';}
|
||||
if (m:^js/src/*\.c$:) {return '70';}
|
||||
if (m:^js/src/*\.def$:) {return '70';}
|
||||
if (m:^js/src/*\.h$:) {return '70';}
|
||||
if (m:^js/src/*\.m*k$:) {return '70';}
|
||||
if (m:^js/src/*\.tbl$:) {return '70';}
|
||||
if (m:^js/src/*akefile.*$:) {return '70';}
|
||||
if (m:^mozilla/extensions/cookie$:) {return '171';}
|
||||
if (m:^mozilla/extensions/jsd/.*$:) {return '71';}
|
||||
if (m:^mozilla/js/jsd/.*$:) {return '71';}
|
||||
if (m:^mozilla/gfx/src/beos$:) {return '172';}
|
||||
if (m:^mozilla/widget/src/beos$:) {return '172';}
|
||||
if (m:^js/src/liveconnect/.*$:) {return '72';}
|
||||
if (m:^mozilla/extensions/help$:) {return '174';}
|
||||
if (m:^mozilla/netwerk/.*$:) {return '77';}
|
||||
if (m:^mozilla/gfx/src/windows/.*$:) {return '175';}
|
||||
if (m:^mozilla/widget/src/windows/.*$:) {return '175';}
|
||||
if (m:^mozilla/nsprpub/.*$:) {return '78';}
|
||||
if (m:^mozilla/gfx/public/.*$:) {return '177';}
|
||||
if (m:^mozilla/gfx/src/*\.cpp$:) {return '177';}
|
||||
if (m:^mozilla/gfx/src/*\.h$:) {return '177';}
|
||||
if (m:^mozilla/gfx/src/shared/.*$:) {return '177';}
|
||||
if (m:^mozilla/widget/public/.*$:) {return '177';}
|
||||
if (m:^mozilla/widget/src/xpwidgets/.*$:) {return '177';}
|
||||
if (m:^mozilla/modules/plugin/.*$:) {return '81';}
|
||||
if (m:^mozilla/gfx/src/mac/.*$:) {return '178';}
|
||||
if (m:^mozilla/widget/src/mac/.*$:) {return '178';}
|
||||
if (m:^mozilla/modules/libpref/.*$:) {return '82';}
|
||||
if (m:^mozilla/accessibility/.*$:) {return '180';}
|
||||
if (m:^mozilla/modules/progress/.*$:) {return '83';}
|
||||
if (m:^mozilla/extensions/typeaheadfind/.*$:) {return '181';}
|
||||
if (m:^mozilla/modules/libreg/.*$:) {return '84';}
|
||||
if (m:^mozilla/content/xbl/builtin/.*$:) {return '182';}
|
||||
if (m:^mozilla/modules/security/.*$:) {return '86';}
|
||||
if (m:^mozilla/modules/softupdt/.*$:) {return '87';}
|
||||
if (m:^mozilla/content/xml/.*$:) {return '88';}
|
||||
if (m:^mozilla/expat/.*$:) {return '88';}
|
||||
if (m:^mozilla/extensions/xmlextras/.*$:) {return '88';}
|
||||
if (m:^mozilla/xpcom/.*$:) {return '89';}
|
||||
if (m:^xpcom/io$:) {return '90';}
|
||||
if (m:^mozilla/modules/zlib/.*$:) {return '93';}
|
||||
if (m:^gfx/src/xprint$:) {return '179';}
|
||||
if (m:^mozilla/view/.*$:) {return '96';}
|
||||
if (m:^mozilla/layout/base/.*$:) {return '98';}
|
||||
if (m:^mozilla/layout/build/.*$:) {return '98';}
|
||||
if (m:^mozilla/layout/doc/.*$:) {return '98';}
|
||||
if (m:^mozilla/layout/html/.*$:) {return '98';}
|
||||
if (m:^mozilla/layout/macbuild/.*$:) {return '98';}
|
||||
if (m:^mozilla/layout/tools/.*$:) {return '98';}
|
||||
if (m:^modules/libpr0n/decoders/mng/.*$:) {return '155';}
|
||||
if (m:^mozilla/modules/libimg/mng/.*$:) {return '155';}
|
||||
if (m:^mozilla/content/html/style/.*$:) {return '100';}
|
||||
if (m:^mozilla/content/shared/.*$:) {return '100';}
|
||||
}
|
||||
if ($b eq 'NSPRPUB_PRE_4_2_CLIENT_BRANCH') {
|
||||
if (m:^mozilla/nsprpub/.*$:) {return '146';}
|
||||
}
|
||||
if ($b eq 'NSS_3_3_BRANCH') {
|
||||
if (m:^mozilla/security/coreconf/.*$:) {return '163';}
|
||||
if (m:^mozilla/security/nss/.*$:) {return '163';}
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$debug = 0;
|
||||
|
||||
$origrepository = shift(@ARGV);
|
||||
@files = @ARGV;
|
||||
|
||||
|
||||
$envcvsroot = $ENV{'CVSROOT'};
|
||||
open( REP, "<CVS/Repository");
|
||||
$repository = <REP>;
|
||||
chop($repository);
|
||||
close(REP);
|
||||
$repository =~ s:^$envcvsroot/::;
|
||||
|
||||
|
||||
$doit = 0;
|
||||
|
||||
$| = 1;
|
||||
|
||||
|
||||
if( $debug){
|
||||
print STDERR "----------------------------------------------\n";
|
||||
print STDERR "files: @files\n";
|
||||
print STDERR "origrepository: $origrepository\n";
|
||||
print STDERR " repository: $repository\n";
|
||||
print STDERR "----------------------------------------------\n";
|
||||
}
|
||||
|
||||
open(ENT, "<CVS/Entries" );
|
||||
while( <ENT> ){
|
||||
chop;
|
||||
($d,$fn,$rev,$mod_time,$sticky,$tag) = split(/\//);
|
||||
if ($tag =~ /^T(.*)$/) {
|
||||
$fbranch{$fn} = $1;
|
||||
}
|
||||
}
|
||||
close ENT;
|
||||
|
||||
foreach $f (@files) {
|
||||
$b = "";
|
||||
if (defined $fbranch{$f}) {$b = $fbranch{$f};}
|
||||
if ($b eq "") {$b = "HEAD";}
|
||||
$t = GetT($b, "$repository/$f");
|
||||
if ($debug) {
|
||||
print STDERR "GetT returned '$t' for '$repository/$f' branch '$b'\n";
|
||||
}
|
||||
if ($t eq "") {
|
||||
$t = $defaultid;
|
||||
}
|
||||
if (!defined $mode{$t} || $mode{$t} eq "Open") {
|
||||
next;
|
||||
}
|
||||
if ($debug) {
|
||||
print STDERR "Checking twig $t\n";
|
||||
}
|
||||
# OK, we have a match. See if we're allowed to checkin here.
|
||||
if ($username eq "") {
|
||||
$username = $ENV{"CVS_USER"} || getlogin || (getpwuid($<))[0] || "nobody";
|
||||
if ($debug) {
|
||||
print STDERR "Username is $username\n";
|
||||
print STDERR "getlogin returns " . getlogin . "\n";
|
||||
print STDERR '(getpwuid($<))[0] returns ' . (getpwuid($<))[0] . "\n";
|
||||
print STDERR "Environment:\n";
|
||||
foreach $key (sort(keys %ENV)) {
|
||||
print STDERR $key, '=', $ENV{$key}, "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
$ok = 0;
|
||||
$s = $super{$t};
|
||||
foreach $u (@$s) {
|
||||
if ($debug) {
|
||||
print STDERR "Checking against super $u\n";
|
||||
}
|
||||
if ($u eq $username) {
|
||||
$ok = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($mode{$t} eq "Restricted") {
|
||||
my $b = $blessed{$t};
|
||||
foreach $u (@$b) {
|
||||
if ($debug) {
|
||||
print STDERR "Checking against blessed $u\n";
|
||||
}
|
||||
if ($u eq $username) {
|
||||
$ok = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!$ok) {
|
||||
print STDERR "You may not check into partition $fullname{$t}\n";
|
||||
print STDERR "the file $repository/$f on branch $b\n";
|
||||
print STDERR "If you think you should be allowed to, send mail to\n";
|
||||
print STDERR "one of the below people:\n";
|
||||
$s = $super{$t};
|
||||
foreach $u (@$s) {
|
||||
$u =~ s/%/@/;
|
||||
print STDERR " $u\n";
|
||||
}
|
||||
exit 1;
|
||||
}
|
||||
}
|
||||
|
||||
exit 0;
|
||||
@ -1,16 +0,0 @@
|
||||
# The "commitinfo" file is used to control pre-commit checks.
|
||||
# The filter on the right is invoked with the repository and a list
|
||||
# of files to check. A non-zero exit of the filter program will
|
||||
# cause the commit to be aborted.
|
||||
#
|
||||
# The first entry on a line is a regular expression which is tested
|
||||
# against the directory that the change is being committed to, relative
|
||||
# to the $CVSROOT. For the first match that is found, then the remainder
|
||||
# of the line is the name of the filter to run.
|
||||
#
|
||||
# If the repository name does not match any of the regular expressions in this
|
||||
# file, the "DEFAULT" line is used, if it is specified.
|
||||
#
|
||||
# If the name "ALL" appears as a regular expression it is always used
|
||||
# in addition to the first matching regex or "DEFAULT".
|
||||
ALL $CVSROOT/CVSROOT/commitcheck.pl
|
||||
@ -1,6 +0,0 @@
|
||||
# Set this to "no" if pserver shouldn't check system users/passwords
|
||||
#SystemAuth=no
|
||||
|
||||
# Set `PreservePermissions' to `yes' to save file status information
|
||||
# in the repository.
|
||||
#PreservePermissions=no
|
||||
@ -1,42 +0,0 @@
|
||||
.gdbinit
|
||||
.HSancillary
|
||||
.Makedepend
|
||||
.makedepend
|
||||
.MCC_Cache_FAT
|
||||
.MCC_Global_History
|
||||
.md
|
||||
.pure
|
||||
made
|
||||
make.log
|
||||
make.dep
|
||||
nuke
|
||||
_jmc
|
||||
*.class
|
||||
.depends
|
||||
.deps
|
||||
.d
|
||||
*.dylib
|
||||
__.SYMDEF*
|
||||
manifest.mnw
|
||||
_gen
|
||||
_stubs
|
||||
*_DBG.OBJ
|
||||
*_DBG_EDT.OBJ
|
||||
*_OPT.OBJ
|
||||
*_OPT_EDT.OBJ
|
||||
*_DBG.OBJD
|
||||
so_locations
|
||||
*.flc
|
||||
*.map
|
||||
depend.mk
|
||||
_xpidlgen
|
||||
ti_files
|
||||
*.rpo
|
||||
.*.timestamp
|
||||
*.dll
|
||||
*.lib
|
||||
*.exp
|
||||
*.rc
|
||||
*.res
|
||||
Makefile
|
||||
|
||||
@ -1,24 +0,0 @@
|
||||
#!/bin/sh
|
||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin;export PATH
|
||||
|
||||
(
|
||||
URL="subdir=`dirname $1`&files=`basename $1`"
|
||||
|
||||
|
||||
|
||||
echo "Subject: $1"
|
||||
echo 'Content-Type: text/html; charset=us-ascii'
|
||||
echo 'Content-Transfer-Encoding: 7bit'
|
||||
echo 'Content-Disposition: inline'
|
||||
|
||||
TMP=/tmp/cvsmf.$$
|
||||
trap "rm -f $TMP" 0 1 2 15
|
||||
cat > $TMP
|
||||
BRANCH=`sed -n 's@^Revision/Branch: \(.*\)@\1@p' $TMP`
|
||||
if test -n "$BRANCH"; then
|
||||
URL="$URL&branch=$BRANCH"
|
||||
fi
|
||||
|
||||
echo '<A HREF="http://warp.netscape.com/webtools/bonsai/cvsview2.cgi?'$URL'&command=DIRECTORY">View differences</A><BR>\n'
|
||||
|
||||
) | mail $2
|
||||
@ -1,172 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
# -*- Mode: perl; indent-tabs-mode: nil -*-
|
||||
|
||||
# Arguments:
|
||||
#
|
||||
# -a Only send checkin messages which contain added files. All other checkin
|
||||
# messages will be ignored.
|
||||
# -u <url> Base URL for the Bonsai directory; "/cvsview2.cgi" will get
|
||||
# appended to this with appropriate args.
|
||||
# -h <hostname> Host whose SMTP server we will contact to send mail.
|
||||
# -s <string> String specifying dir and filenames. As generated by "%s"
|
||||
# in a CVSROOT/loginfo file
|
||||
# -f <file> A regexp. If present, then only checkins to files whose
|
||||
# name (without the directory) matches the regexp will generate mail.
|
||||
#
|
||||
# The remaining args are email addresses of people who should get notified.
|
||||
|
||||
use Socket;
|
||||
|
||||
sub get_response_code {
|
||||
my ($expecting) = @_;
|
||||
# if ($flag_debug) {
|
||||
# print STDERR "SMTP: Waiting for code $expecting\n";
|
||||
# }
|
||||
while (1) {
|
||||
my $line = <S>;
|
||||
# if ($flag_debug) {
|
||||
# print STDERR "SMTP: $line";
|
||||
# }
|
||||
if ($line =~ /^[0-9]*-/) {
|
||||
next;
|
||||
}
|
||||
if ($line =~ /(^[0-9]*) /) {
|
||||
my $code = $1;
|
||||
if ($code == $expecting) {
|
||||
# if ($flag_debug) {
|
||||
# print STDERR "SMTP: got it.\n";
|
||||
# }
|
||||
return;
|
||||
}
|
||||
die "Bad response from SMTP -- $line";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
my $debug = 0;
|
||||
my $addsonly = 0;
|
||||
my $showcommitter = 0;
|
||||
|
||||
my $mailhost = "127.0.0.1";
|
||||
my $urlbase = "";
|
||||
my $cvsargs = "";
|
||||
my $cvsroot = "";
|
||||
my @mailto;
|
||||
my $fileregexp = "";
|
||||
|
||||
my $username = $ENV{"CVS_USER"} || getlogin || (getpwuid($<))[0] || "nobody";
|
||||
|
||||
while (@ARGV) {
|
||||
my $arg = shift @ARGV;
|
||||
|
||||
if ($arg eq '-d') {
|
||||
$debug = 1;
|
||||
print STDERR "Debug turned on...\n";
|
||||
} elsif ($arg eq '-c') {
|
||||
$showcommitter = 1;
|
||||
} elsif ($arg eq '-r') {
|
||||
$cvsroot = shift @ARGV;
|
||||
} elsif ($arg eq '-h') {
|
||||
$mailhost = shift @ARGV;
|
||||
} elsif ($arg eq '-u') {
|
||||
$urlbase = shift @ARGV;
|
||||
} elsif ($arg eq '-s') {
|
||||
$cvsargs = shift @ARGV;
|
||||
} elsif ($arg eq '-f') {
|
||||
$fileregexp = shift @ARGV;
|
||||
} elsif ($arg eq '-a') {
|
||||
$addsonly = 1;
|
||||
} else {
|
||||
push(@mailto, $arg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
my $url = "";
|
||||
if ($urlbase ne "" && $cvsargs ne "") {
|
||||
my @list = split(/ /, $cvsargs);
|
||||
my $dir = shift @list;
|
||||
if ($fileregexp ne "") {
|
||||
if (grep(m/$fileregexp/, @list) <= 0) {
|
||||
exit;
|
||||
}
|
||||
}
|
||||
$url = $urlbase . "/cvsview2.cgi?command=DIRECTORY&subdir=$dir&files=" .
|
||||
join('%2B', @list);
|
||||
}
|
||||
|
||||
my $message = "";
|
||||
|
||||
if ($showcommitter) {
|
||||
$message .= "Changes committed by $username:\n\n";
|
||||
}
|
||||
|
||||
my $filesadded = 0;
|
||||
while (<>) {
|
||||
my $line = $_;
|
||||
if ($line =~ m@^ Tag: (.*)$@) {
|
||||
if ($url ne "") {
|
||||
$url .= "&branch=$1";
|
||||
}
|
||||
}
|
||||
# if we see that files have been added on this checkin, remember that fact
|
||||
#
|
||||
if ($line =~ m@^Added Files:@) {
|
||||
$filesadded = 1;
|
||||
}
|
||||
|
||||
$message .= $line;
|
||||
}
|
||||
|
||||
# bail out if this is an adds-only run and no files have been added
|
||||
#
|
||||
if ($addsonly == 1 && $filesadded == 0 ) {
|
||||
exit 0;
|
||||
}
|
||||
|
||||
if ($url ne "") {
|
||||
if ($cvsroot ne "") {
|
||||
$url .= "&root=$cvsroot";
|
||||
}
|
||||
$message = "Diffs: $url\n\n" . $message;
|
||||
}
|
||||
|
||||
|
||||
|
||||
chop(my $hostname = `/bin/hostname`);
|
||||
|
||||
my ($remote,$port, $iaddr, $paddr, $proto, $line);
|
||||
|
||||
$remote = $mailhost;
|
||||
$port = 25;
|
||||
if ($port =~ /\D/) { $port = getservbyname($port, 'tcp') }
|
||||
die "No port" unless $port;
|
||||
$iaddr = inet_aton($remote) || die "no host: $remote";
|
||||
$paddr = sockaddr_in($port, $iaddr);
|
||||
|
||||
$proto = getprotobyname('tcp');
|
||||
socket(S, PF_INET, SOCK_STREAM, $proto) || die "socket: $!";
|
||||
connect(S, $paddr) || die "connect: $!";
|
||||
select(S); $| = 1; select(STDOUT);
|
||||
|
||||
get_response_code(220);
|
||||
print S "EHLO $hostname\n";
|
||||
get_response_code(250);
|
||||
print S "MAIL FROM: cvsmailfilter\@$hostname\n";
|
||||
get_response_code(250);
|
||||
foreach $i (@mailto) {
|
||||
print S "RCPT TO: $i\n";
|
||||
get_response_code(250);
|
||||
}
|
||||
print S "DATA\n";
|
||||
get_response_code(354);
|
||||
print S "Subject: $cvsargs\n";
|
||||
print S "\n";
|
||||
|
||||
print S $message . "\n";
|
||||
print S ".\n";
|
||||
get_response_code(250);
|
||||
print S "QUIT\n";
|
||||
close(S);
|
||||
@ -1,23 +0,0 @@
|
||||
# This file affects handling of files based on their names.
|
||||
#
|
||||
# The -t/-f options allow one to treat directories of files
|
||||
# as a single file, or to transform a file in other ways on
|
||||
# its way in and out of CVS.
|
||||
#
|
||||
# The -m option specifies whether CVS attempts to merge files.
|
||||
#
|
||||
# The -k option specifies keyword expansion (e.g. -kb for binary).
|
||||
#
|
||||
# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers)
|
||||
#
|
||||
# wildcard [option value][option value]...
|
||||
#
|
||||
# where option is one of
|
||||
# -f from cvs filter value: path to filter
|
||||
# -t to cvs filter value: path to filter
|
||||
# -m update methodology value: MERGE or COPY
|
||||
# -k expansion mode value: b, o, kkv, &c
|
||||
#
|
||||
# and value is a single-quote delimited value.
|
||||
# For example:
|
||||
#*.gif -k 'b'
|
||||
270
CVSROOT/dolog.pl
@ -1,270 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use Socket;
|
||||
|
||||
$username = $ENV{"CVS_USER"} || getlogin || (getpwuid($<))[0] || "nobody";
|
||||
$envcvsroot = $ENV{'CVSROOT'};
|
||||
$cvsroot = $envcvsroot;
|
||||
$flag_debug = 0;
|
||||
$flag_tagcmd = 0;
|
||||
$repository = '';
|
||||
$repository_tag = '';
|
||||
$mailhost = 'localhost';
|
||||
|
||||
@mailto=();
|
||||
@changed_files = ();
|
||||
@added_files = ();
|
||||
@removed_files = ();
|
||||
@log_lines = ();
|
||||
@outlist = ();
|
||||
|
||||
$STATE_NONE = 0;
|
||||
$STATE_CHANGED = 1;
|
||||
$STATE_ADDED = 2;
|
||||
$STATE_REMOVED = 3;
|
||||
$STATE_LOG = 4;
|
||||
|
||||
&process_args;
|
||||
|
||||
if ($flag_debug ){
|
||||
print STDERR "----------------------------------------------\n";
|
||||
print STDERR "LOGINFO:\n";
|
||||
print STDERR " pwd:" . `pwd` . "\n";
|
||||
print STDERR " Args @ARGV\n";
|
||||
print STDERR " CVSROOT: $cvsroot\n";
|
||||
print STDERR " who: $username\n";
|
||||
print STDERR " Repository: $repository\n";
|
||||
print STDERR " mailto: @mailto\n";
|
||||
print STDERR "----------------------------------------------\n";
|
||||
}
|
||||
|
||||
if ($flag_tagcmd) {
|
||||
&process_tag_command;
|
||||
} else {
|
||||
&get_loginfo;
|
||||
&process_cvs_info;
|
||||
}
|
||||
|
||||
if( $flag_debug){
|
||||
print STDERR "----------------------------------------------\n";
|
||||
print STDERR @outlist;
|
||||
print STDERR "----------------------------------------------\n";
|
||||
}
|
||||
|
||||
&mail_notification;
|
||||
|
||||
0;
|
||||
|
||||
sub process_args {
|
||||
while (@ARGV) {
|
||||
$arg = shift @ARGV;
|
||||
|
||||
if ($arg eq '-d') {
|
||||
$flag_debug = 1;
|
||||
print STDERR "Debug turned on...\n";
|
||||
} elsif ($arg eq '-r') {
|
||||
$cvsroot = shift @ARGV;
|
||||
} elsif ($arg eq '-t') {
|
||||
$flag_tagcmd = 1;
|
||||
last; # Keep the rest in ARGV; they're handled later.
|
||||
} elsif ($arg eq '-h') {
|
||||
$mailhost = shift @ARGV;
|
||||
} else {
|
||||
push(@mailto, $arg);
|
||||
}
|
||||
}
|
||||
if( $repository eq '' ){
|
||||
open( REP, "<CVS/Repository");
|
||||
$repository = <REP>;
|
||||
chop($repository);
|
||||
close(REP);
|
||||
}
|
||||
$repository =~ s:^$cvsroot/::;
|
||||
$repository =~ s:^$envcvsroot/::;
|
||||
|
||||
if (!$flag_tagcmd) {
|
||||
if( open( REP, "<CVS/Tag") ) {
|
||||
$repository_tag = <REP>;
|
||||
chop($repository_tag);
|
||||
close(REP);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub get_loginfo {
|
||||
|
||||
if( $flag_debug){
|
||||
print STDERR "----------------------------------------------\n";
|
||||
}
|
||||
|
||||
# Iterate over the body of the message collecting information.
|
||||
#
|
||||
while (<STDIN>) {
|
||||
chop; # Drop the newline
|
||||
|
||||
if( $flag_debug){
|
||||
print STDERR "$_\n";
|
||||
}
|
||||
|
||||
if (/^In directory/) {
|
||||
next;
|
||||
}
|
||||
|
||||
if (/^Modified Files/) { $state = $STATE_CHANGED; next; }
|
||||
if (/^Added Files/) { $state = $STATE_ADDED; next; }
|
||||
if (/^Removed Files/) { $state = $STATE_REMOVED; next; }
|
||||
if (/^Log Message/) { $state = $STATE_LOG; next; }
|
||||
|
||||
s/^[ \t\n]+//; # delete leading whitespace
|
||||
s/[ \t\n]+$//; # delete trailing whitespace
|
||||
|
||||
if ($state == $STATE_CHANGED) { push(@changed_files, split); }
|
||||
if ($state == $STATE_ADDED) { push(@added_files, split); }
|
||||
if ($state == $STATE_REMOVED) { push(@removed_files, split); }
|
||||
if ($state == $STATE_LOG) { push(@log_lines, $_); }
|
||||
}
|
||||
|
||||
if( $flag_debug){
|
||||
print STDERR "----------------------------------------------\n"
|
||||
. "changed files: @changed_files\n"
|
||||
. "added files: @added_files\n"
|
||||
. "removed files: @removed_files\n";
|
||||
print STDERR "----------------------------------------------\n";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
sub process_cvs_info {
|
||||
local($d,$fn,$rev,$mod_time,$sticky,$tag,$stat,@d,$l,$rcsfile);
|
||||
if (!open(ENT, "<CVS/Entries.Log" )) {
|
||||
open(ENT, "<CVS/Entries");
|
||||
}
|
||||
$time = time;
|
||||
while( <ENT> ){
|
||||
chop;
|
||||
($d,$fn,$rev,$mod_time,$sticky,$tag) = split(/\//);
|
||||
$stat = 'C';
|
||||
for $i (@changed_files, "BEATME.NOW", @added_files ) {
|
||||
if( $i eq "BEATME.NOW" ){ $stat = 'A'; }
|
||||
if($i eq $fn ){
|
||||
$rcsfile = "$envcvsroot/$repository/$fn,v";
|
||||
if( ! -r $rcsfile ){
|
||||
$rcsfile = "$envcvsroot/$repository/Attic/$fn,v";
|
||||
}
|
||||
open(LOG, "/usr/bin/rlog -N -r$rev $rcsfile |")
|
||||
|| print STDERR "dolog.pl: Couldn't run rlog\n";
|
||||
while(<LOG>){
|
||||
if (/^date:.* author: ([^;]*);.*/) {
|
||||
$username = $1;
|
||||
if (/lines: \+([0-9]*) -([0-9]*)/) {
|
||||
$lines_added = $1;
|
||||
$lines_removed = $2;
|
||||
}
|
||||
}
|
||||
}
|
||||
close( LOG );
|
||||
push(@outlist, ("$stat|$time|$username|$cvsroot|$repository|$fn|$rev|$sticky|$tag|$lines_added|$lines_removed\n"));
|
||||
}
|
||||
}
|
||||
}
|
||||
close(ENT);
|
||||
|
||||
for $i (@removed_files) {
|
||||
push( @outlist, ("R|$time|$username|$cvsroot|$repository|$i|||$repository_tag\n"));
|
||||
}
|
||||
|
||||
push (@outlist, "LOGCOMMENT\n");
|
||||
push (@outlist, join("\n",@log_lines));
|
||||
push (@outlist, "\n:ENDLOGCOMMENT\n");
|
||||
}
|
||||
|
||||
|
||||
sub process_tag_command {
|
||||
local($str,$part,$time);
|
||||
$time = time;
|
||||
$str = "Tag|$cvsroot|$time";
|
||||
while (@ARGV) {
|
||||
$part = shift @ARGV;
|
||||
$str .= "|" . $part;
|
||||
}
|
||||
push (@outlist, ("$str\n"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
sub do_commitinfo {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
sub get_response_code {
|
||||
my ($expecting) = @_;
|
||||
# if ($flag_debug) {
|
||||
# print STDERR "SMTP: Waiting for code $expecting\n";
|
||||
# }
|
||||
while (1) {
|
||||
my $line = <S>;
|
||||
# if ($flag_debug) {
|
||||
# print STDERR "SMTP: $line";
|
||||
# }
|
||||
if ($line =~ /^[0-9]*-/) {
|
||||
next;
|
||||
}
|
||||
if ($line =~ /(^[0-9]*) /) {
|
||||
my $code = $1;
|
||||
if ($code == $expecting) {
|
||||
# if ($flag_debug) {
|
||||
# print STDERR "SMTP: got it.\n";
|
||||
# }
|
||||
return;
|
||||
}
|
||||
die "Bad response from SMTP -- $line";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
sub mail_notification {
|
||||
chop(my $hostname = `/bin/hostname`);
|
||||
|
||||
my ($remote,$port, $iaddr, $paddr, $proto, $line);
|
||||
|
||||
$remote = $mailhost;
|
||||
$port = 25;
|
||||
if ($port =~ /\D/) { $port = getservbyname($port, 'tcp') }
|
||||
die "No port" unless $port;
|
||||
$iaddr = inet_aton($remote) || die "no host: $remote";
|
||||
$paddr = sockaddr_in($port, $iaddr);
|
||||
|
||||
$proto = getprotobyname('tcp');
|
||||
socket(S, PF_INET, SOCK_STREAM, $proto) || die "socket: $!";
|
||||
connect(S, $paddr) || die "connect: $!";
|
||||
select(S); $| = 1; select(STDOUT);
|
||||
|
||||
get_response_code(220);
|
||||
print S "EHLO $hostname\n";
|
||||
get_response_code(250);
|
||||
print S "MAIL FROM: bonsai-daemon\@$hostname\n";
|
||||
get_response_code(250);
|
||||
foreach $i (@mailto) {
|
||||
print S "RCPT TO: $i\n";
|
||||
get_response_code(250);
|
||||
}
|
||||
print S "DATA\n";
|
||||
get_response_code(354);
|
||||
# Get one line starting with "354 ".
|
||||
if ($flag_tagcmd) {
|
||||
print S "Subject: cvs tag in $repository\n";
|
||||
} else {
|
||||
print S "Subject: cvs commit to $repository\n";
|
||||
}
|
||||
print S "\n";
|
||||
print S @outlist, "\n";
|
||||
print S ".\n";
|
||||
get_response_code(250);
|
||||
print S "QUIT\n";
|
||||
close(S);
|
||||
}
|
||||
@ -1,21 +0,0 @@
|
||||
# The "editinfo" file is used to allow verification of logging
|
||||
# information. It works best when a template (as specified in the
|
||||
# rcsinfo file) is provided for the logging procedure. Given a
|
||||
# template with locations for, a bug-id number, a list of people who
|
||||
# reviewed the code before it can be checked in, and an external
|
||||
# process to catalog the differences that were code reviewed, the
|
||||
# following test can be applied to the code:
|
||||
#
|
||||
# Making sure that the entered bug-id number is correct.
|
||||
# Validating that the code that was reviewed is indeed the code being
|
||||
# checked in (using the bug-id number or a seperate review
|
||||
# number to identify this particular code set.).
|
||||
#
|
||||
# If any of the above test failed, then the commit would be aborted.
|
||||
#
|
||||
# Actions such as mailing a copy of the report to each reviewer are
|
||||
# better handled by an entry in the loginfo file.
|
||||
#
|
||||
# One thing that should be noted is the the ALL keyword is not
|
||||
# supported. There can be only one entry that matches a given
|
||||
# repository.
|
||||
@ -1,40 +0,0 @@
|
||||
# The "loginfo" file controls where "cvs commit" log information
|
||||
# is sent. The first entry on a line is a regular expression which must match
|
||||
# the directory that the change is being made to, relative to the
|
||||
# $CVSROOT. If a match is found, then the remainder of the line is a filter
|
||||
# program that should expect log information on its standard input.
|
||||
#
|
||||
# If the repository name does not match any of the regular expressions in this
|
||||
# file, the "DEFAULT" line is used, if it is specified.
|
||||
#
|
||||
# If the name ALL appears as a regular expression it is always used
|
||||
# in addition to the first matching regex or DEFAULT.
|
||||
#
|
||||
# You may specify a format string as part of the
|
||||
# filter. The string is composed of a `%' followed
|
||||
# by a single format character, or followed by a set of format
|
||||
# characters surrounded by `{' and `}' as separators. The format
|
||||
# characters are:
|
||||
#
|
||||
# s = file name
|
||||
# V = old version number (pre-checkin)
|
||||
# v = new version number (post-checkin)
|
||||
#
|
||||
ALL $CVSROOT/CVSROOT/dolog.pl -h 127.0.0.1 -r /cvsroot bonsai-new-checkin-daemon@mecha.mozilla.org
|
||||
|
||||
# send mail for new files added
|
||||
ALL $CVSROOT/CVSROOT/cvsmailfilter.pl -a -u http://bonsai.mozilla.org -r /cvsroot -s %s cvs-adds@mozilla.org
|
||||
|
||||
# crypto checkins deserve more attention
|
||||
mozilla/security $CVSROOT/CVSROOT/cvsmailfilter.pl -u http://bonsai.mozilla.org -r /cvsroot -s %s mozilla-crypto-checkins@mozilla.org
|
||||
mozilla/extensions/psm-glue $CVSROOT/CVSROOT/cvsmailfilter.pl -u http://bonsai.mozilla.org -r /cvsroot -s %s mozilla-crypto-checkins@mozilla.org
|
||||
mozilla/netwerk/security $CVSROOT/CVSROOT/cvsmailfilter.pl -u http://bonsai.mozilla.org -r /cvsroot -s %s mozilla-crypto-checkins@mozilla.org
|
||||
mozilla/netwerk/protocol/http/src $CVSROOT/CVSROOT/cvsmailfilter.pl -u http://bonsai.mozilla.org -r /cvsroot -s %s mozilla-crypto-checkins@mozilla.org
|
||||
mozilla/netwerk/socket/ssl $CVSROOT/CVSROOT/cvsmailfilter.pl -u http://bonsai.mozilla.org -r /cvsroot -s %s mozilla-crypto-checkins@mozilla.org
|
||||
mozilla/netwerk/socket/tests $CVSROOT/CVSROOT/cvsmailfilter.pl -u http://bonsai.mozilla.org -r /cvsroot -s %s mozilla-crypto-checkins@mozilla.org
|
||||
mozilla/dbm $CVSROOT/CVSROOT/cvsmailfilter.pl -u http://bonsai.mozilla.org -r /cvsroot -s %s mozilla-crypto-checkins@mozilla.org
|
||||
|
||||
# misc modules
|
||||
mozilla/webtools/bugzilla $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s cvs-checkins@bugzilla.org webtools-changed@warp.mcom.com
|
||||
mozilla/webtools $CVSROOT/CVSROOT/cvsmailfilter.pl -u http://bonsai.mozilla.org -r /cvsroot -s %s webtools-changed@warp.mcom.com
|
||||
CVSROOT $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s -f modules sysalerts@mozilla.org
|
||||
810
CVSROOT/modules
@ -1,810 +0,0 @@
|
||||
# Three different line formats are valid:
|
||||
# key -a aliases...
|
||||
# key [options] directory
|
||||
# key [options] directory files...
|
||||
#
|
||||
# Where "options" are composed of:
|
||||
# -i prog Run "prog" on "cvs commit" from top-level of module.
|
||||
# -o prog Run "prog" on "cvs checkout" of module.
|
||||
# -e prog Run "prog" on "cvs export" of module.
|
||||
# -t prog Run "prog" on "cvs rtag" of module.
|
||||
# -u prog Run "prog" on "cvs update" of module.
|
||||
# -d dir Place module in directory "dir" instead of module name.
|
||||
# -l Top-level directory only -- do not recurse.
|
||||
#
|
||||
# NOTE: If you change any of the "Run" options above, you'll have to
|
||||
# release and re-checkout any working directories of these modules.
|
||||
#
|
||||
# And "directory" is a path to a directory relative to $CVSROOT.
|
||||
#
|
||||
# The "-a" option specifies an alias. An alias is interpreted as if
|
||||
# everything on the right of the "-a" had been typed on the command line.
|
||||
#
|
||||
# You can encode a module within a module by using the special '&'
|
||||
# character to interpose another module into the current module. This
|
||||
# can be useful for creating a module that consists of many directories
|
||||
# spread out over the entire source repository.
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# Module that contains the LEGAL and the LICENSE file. This should be
|
||||
# a part of every logical source pull for a component. Care should
|
||||
# be given so that this module is not specified twice for a given
|
||||
# source pull.
|
||||
#
|
||||
|
||||
MozillaLicense -a \
|
||||
mozilla/LEGAL \
|
||||
mozilla/LICENSE
|
||||
|
||||
Grendel -a \
|
||||
MozillaLicense \
|
||||
mozilla/grendel
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# Modules for the MozillaClassic Browser, based on the original
|
||||
# layout engine. If you wish to develop on the Mozilla Classic
|
||||
# codebase, pull using these modules and using the branch tag
|
||||
# MozillaSourceClassic_19981026_BRANCH.
|
||||
# These modules should be considered obsolete.
|
||||
#
|
||||
|
||||
MozillaSource -a \
|
||||
MozillaSourceWin \
|
||||
MozillaSourceMac \
|
||||
MozillaSourceUnix
|
||||
|
||||
MozillaSourceWin -a \
|
||||
MozillaSourceCommon \
|
||||
MozillaSourceWinOnly
|
||||
|
||||
MozillaSourceMac -a \
|
||||
MozillaSourceCommon \
|
||||
MozillaSourceMacOnly
|
||||
|
||||
MozillaSourceUnix -a \
|
||||
MozillaSourceCommon \
|
||||
MozillaSourceUnixOnly \
|
||||
mozilla/cmd/xfe \
|
||||
mozilla/cmd/gnomefe \
|
||||
mozilla/cmd/qtfe \
|
||||
mozilla/cmd/ybfe
|
||||
|
||||
MozillaSourceMotif -a \
|
||||
MozillaSourceCommon \
|
||||
mozilla/cmd/xfe \
|
||||
MozillaSourceUnixOnly
|
||||
|
||||
MozillaSourceQtfe -a \
|
||||
MozillaSourceCommon \
|
||||
mozilla/cmd/qtfe \
|
||||
MozillaSourceUnixOnly
|
||||
|
||||
MozillaSourceGnomefe -a \
|
||||
MozillaSourceCommon \
|
||||
mozilla/cmd/gnomefe \
|
||||
MozillaSourceUnixOnly
|
||||
|
||||
MozillaSourceYbfe -a \
|
||||
MozillaSourceCommon \
|
||||
mozilla/cmd/ybfe \
|
||||
MozillaSourceUnixOnly
|
||||
|
||||
MozillaSourceCommon -a \
|
||||
mozilla/LEGAL \
|
||||
mozilla/LICENSE \
|
||||
mozilla/base \
|
||||
mozilla/build \
|
||||
!mozilla/build/mac/client.mac \
|
||||
mozilla/include \
|
||||
mozilla/caps \
|
||||
mozilla/jpeg \
|
||||
mozilla/js \
|
||||
mozilla/lib/htmldlgs \
|
||||
mozilla/lib/layout \
|
||||
mozilla/lib/libcnv \
|
||||
mozilla/lib/libdom \
|
||||
mozilla/lib/libi18n \
|
||||
mozilla/lib/liblayer \
|
||||
mozilla/lib/libmisc \
|
||||
mozilla/lib/libmime \
|
||||
mozilla/lib/libmocha \
|
||||
mozilla/lib/libnet \
|
||||
mozilla/lib/libparse \
|
||||
mozilla/lib/libpics \
|
||||
mozilla/lib/libpwcac \
|
||||
mozilla/lib/libstyle \
|
||||
mozilla/lib/mailto \
|
||||
mozilla/lib/plugin \
|
||||
mozilla/lib/xlate \
|
||||
mozilla/lib/xp \
|
||||
mozilla/modules/calendar \
|
||||
mozilla/modules/edtplug/classes \
|
||||
mozilla/modules/edtplug/src \
|
||||
mozilla/modules/edtplug/include \
|
||||
mozilla/modules/libfont/classes \
|
||||
mozilla/modules/libfont/public \
|
||||
mozilla/modules/libfont/src \
|
||||
mozilla/modules/libhook \
|
||||
mozilla/modules/libimg \
|
||||
mozilla/modules/libnls \
|
||||
mozilla/modules/libpref \
|
||||
mozilla/modules/libreg \
|
||||
mozilla/modules/libutil \
|
||||
mozilla/modules/oji \
|
||||
mozilla/modules/plugin \
|
||||
mozilla/modules/progress/src \
|
||||
mozilla/modules/rdf \
|
||||
mozilla/modules/schedulr \
|
||||
mozilla/modules/security/freenav \
|
||||
mozilla/modules/softupdt/classes \
|
||||
mozilla/modules/softupdt/include \
|
||||
mozilla/modules/softupdt/src \
|
||||
mozilla/modules/xml \
|
||||
mozilla/modules/zlib/src \
|
||||
mozilla/nav-java/stubs \
|
||||
mozilla/network \
|
||||
mozilla/nsprpub \
|
||||
mozilla/privacy \
|
||||
mozilla/xpcom \
|
||||
mozilla/l10n \
|
||||
mozilla/dbm \
|
||||
mozilla/README
|
||||
|
||||
MozillaSourceWinOnly -a \
|
||||
mozilla/client.mak \
|
||||
mozilla/cmd/makefile.win \
|
||||
mozilla/cmd/wincom \
|
||||
mozilla/cmd/winfe \
|
||||
mozilla/config \
|
||||
mozilla/lib/makefile.win \
|
||||
mozilla/modules/coreincl \
|
||||
mozilla/modules/edtplug/makefile.win \
|
||||
mozilla/makefile.win \
|
||||
mozilla/modules/libfont/jmcgen \
|
||||
mozilla/modules/libfont/makefile.win \
|
||||
mozilla/modules/libfont/producers/makefile.win \
|
||||
mozilla/modules/libfont/producers/win \
|
||||
mozilla/modules/libfont/producers/win/classes \
|
||||
mozilla/modules/libfont/producers/win/classes/netscape \
|
||||
mozilla/modules/libfont/producers/win/src \
|
||||
mozilla/modules/makefile.win \
|
||||
mozilla/modules/progress/makefile.win \
|
||||
mozilla/modules/progress/public \
|
||||
mozilla/modules/security/makefile.win \
|
||||
mozilla/modules/softupdt/makefile.win \
|
||||
mozilla/modules/zlib/makefile.win \
|
||||
mozilla/nav-java/makefile.win \
|
||||
JavaStubWin
|
||||
|
||||
MozillaSourceUnixOnly -a \
|
||||
mozilla/.cvsignore \
|
||||
mozilla/Makefile \
|
||||
mozilla/Makefile.in \
|
||||
mozilla/configure \
|
||||
mozilla/configure.in \
|
||||
mozilla/allmakefiles.sh \
|
||||
mozilla/cmd/Makefile \
|
||||
mozilla/cmd/Makefile.in \
|
||||
mozilla/cmd/stubfe \
|
||||
mozilla/cmd/unixfe \
|
||||
mozilla/config/.cvsignore \
|
||||
mozilla/config/AIX.mk \
|
||||
mozilla/config/BSD_OS.mk \
|
||||
mozilla/config/DGUX.mk \
|
||||
mozilla/config/FreeBSD.mk \
|
||||
mozilla/config/HP-UX.mk \
|
||||
mozilla/config/IRIX.mk \
|
||||
mozilla/config/Linux.mk \
|
||||
mozilla/config/NCR.mk \
|
||||
mozilla/config/NEC.mk \
|
||||
mozilla/config/NEWS-OS.mk \
|
||||
mozilla/config/NEXTSTEP.mk \
|
||||
mozilla/config/NetBSD.mk \
|
||||
mozilla/config/OSF1.mk \
|
||||
mozilla/config/OpenBSD.mk \
|
||||
mozilla/config/QNX.mk \
|
||||
mozilla/config/Rhapsody.mk \
|
||||
mozilla/config/SCOOS.mk \
|
||||
mozilla/config/SINIX.mk \
|
||||
mozilla/config/SunOS.mk \
|
||||
mozilla/config/SunOS4.mk \
|
||||
mozilla/config/SunOS5.mk \
|
||||
mozilla/config/UNIXWARE.mk \
|
||||
mozilla/config/common.mk \
|
||||
mozilla/config/config.mk \
|
||||
mozilla/config/coreconf.mk \
|
||||
mozilla/config/rules.mk \
|
||||
mozilla/config/Makefile \
|
||||
mozilla/config/Makefile.in \
|
||||
mozilla/config/autoconf.mk.in \
|
||||
mozilla/config/bdate.c \
|
||||
mozilla/config/bdate.pl \
|
||||
mozilla/config/aboutime.pl \
|
||||
mozilla/config/bsdecho.c \
|
||||
mozilla/config/clobber_miss.pl \
|
||||
mozilla/config/config.guess \
|
||||
mozilla/config/cvsco.pl \
|
||||
mozilla/config/fastcwd.pl \
|
||||
mozilla/config/gtscc.c \
|
||||
mozilla/config/makecopy.c \
|
||||
mozilla/config/mangle.c \
|
||||
mozilla/config/mantomak.c \
|
||||
mozilla/config/mkdepend \
|
||||
mozilla/config/mkdetect \
|
||||
mozilla/config/nfspwd.pl \
|
||||
mozilla/config/nodl.pl \
|
||||
mozilla/config/nsinstall.c \
|
||||
mozilla/config/outofdate.pl \
|
||||
mozilla/config/pathsub.c \
|
||||
mozilla/config/pathsub.h \
|
||||
mozilla/config/pkg2dpth.pl \
|
||||
mozilla/config/ports \
|
||||
mozilla/config/revdepth.pl \
|
||||
mozilla/config/set-timebomb.pl \
|
||||
mozilla/config/sj.pl \
|
||||
mozilla/lib/Makefile \
|
||||
mozilla/lib/Makefile.in \
|
||||
mozilla/modules/edtplug/Makefile \
|
||||
mozilla/modules/edtplug/Makefile.in \
|
||||
mozilla/modules/libfont/jmcgen \
|
||||
mozilla/modules/libfont/Makefile \
|
||||
mozilla/modules/libfont/Makefile.in \
|
||||
mozilla/modules/libfont/producers/Makefile \
|
||||
mozilla/modules/libfont/producers/Makefile.in \
|
||||
mozilla/modules/Makefile \
|
||||
mozilla/modules/Makefile.in \
|
||||
mozilla/modules/progress/Makefile \
|
||||
mozilla/modules/progress/Makefile.in \
|
||||
mozilla/modules/progress/public \
|
||||
mozilla/modules/security/Makefile \
|
||||
mozilla/modules/security/Makefile.in \
|
||||
mozilla/modules/softupdt/Makefile \
|
||||
mozilla/modules/softupdt/Makefile.in \
|
||||
mozilla/modules/zlib/Makefile \
|
||||
mozilla/modules/zlib/Makefile.in \
|
||||
mozilla/nav-java/Makefile \
|
||||
mozilla/nav-java/Makefile.in \
|
||||
mozilla/lib/mariner \
|
||||
JavaStubUnix
|
||||
|
||||
MozillaSourceMacOnly -a \
|
||||
mozilla/config/mac \
|
||||
mozilla/config/bdate.pl \
|
||||
mozilla/config/aboutime.pl \
|
||||
mozilla/config/mac-set-timebomb.pl \
|
||||
mozilla/cmd/macfe \
|
||||
mozilla/lib/mac/AutoAdmin \
|
||||
mozilla/lib/mac/Includes \
|
||||
mozilla/lib/mac/MacMemoryAllocator \
|
||||
mozilla/lib/mac/Misc \
|
||||
mozilla/lib/mac/MoreFiles \
|
||||
mozilla/lib/mac/NSRuntime \
|
||||
mozilla/lib/mac/NSStdLib \
|
||||
mozilla/lib/mac/patches \
|
||||
mozilla/lib/mac/PowerPlant \
|
||||
mozilla/lib/mac/UserInterface \
|
||||
mozilla/modules/coreincl \
|
||||
mozilla/modules/edtplug/macbuild \
|
||||
mozilla/modules/libfont \
|
||||
mozilla/modules/progress/macbuild \
|
||||
mozilla/modules/progress/public \
|
||||
mozilla/modules/softupdt/macbuild \
|
||||
mozilla/modules/zlib/macbuild \
|
||||
mozilla/lib/mariner \
|
||||
JavaStubMac
|
||||
|
||||
JavaStubAll -a \
|
||||
JavaStubWin \
|
||||
JavaStubMac \
|
||||
JavaStubUnix
|
||||
|
||||
JavaStubCore -a \
|
||||
mozilla/sun-java/stubs/include \
|
||||
mozilla/sun-java/stubs/src
|
||||
|
||||
JavaStubMac -a \
|
||||
JavaStubCore \
|
||||
mozilla/sun-java/stubs/macbuild \
|
||||
mozilla/sun-java/stubs/macjri
|
||||
|
||||
JavaStubUnix -a \
|
||||
JavaStubCore \
|
||||
mozilla/sun-java/Makefile \
|
||||
mozilla/sun-java/Makefile.in \
|
||||
mozilla/sun-java/stubs/jri \
|
||||
mozilla/sun-java/stubs/Makefile \
|
||||
mozilla/sun-java/stubs/Makefile.in
|
||||
|
||||
JavaStubWin -a \
|
||||
JavaStubCore \
|
||||
mozilla/sun-java/makefile.win \
|
||||
mozilla/sun-java/stubs/jri \
|
||||
mozilla/sun-java/stubs/makefile.win
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# Modules for the raptor layout effort. Note that raptor dist is temporary
|
||||
# until raptor is integrated into the mainline build.
|
||||
#
|
||||
|
||||
RaptorDoc -a \
|
||||
mozilla/LICENSE \
|
||||
mozilla/LEGAL \
|
||||
mozilla/README/nglayout
|
||||
|
||||
RaptorDist -a \
|
||||
mozilla/configure.in \
|
||||
mozilla/allmakefiles.sh \
|
||||
mozilla/Makefile.in \
|
||||
mozilla/makefile.win \
|
||||
mozilla/build \
|
||||
!mozilla/build/mac/client.mac \
|
||||
mozilla/caps \
|
||||
mozilla/config \
|
||||
mozilla/dbm \
|
||||
mozilla/editor \
|
||||
mozilla/include \
|
||||
mozilla/intl \
|
||||
mozilla/jpeg \
|
||||
JSClient \
|
||||
mozilla/lib/liblayer \
|
||||
mozilla/lib/libpwcac \
|
||||
mozilla/lib/xp \
|
||||
mozilla/modules/libimg \
|
||||
mozilla/modules/libjar \
|
||||
mozilla/modules/libpref \
|
||||
mozilla/modules/libreg \
|
||||
mozilla/modules/libutil \
|
||||
mozilla/modules/oji \
|
||||
mozilla/modules/plugin \
|
||||
mozilla/modules/security/freenav \
|
||||
mozilla/modules/zlib \
|
||||
mozilla/nav-java \
|
||||
mozilla/network \
|
||||
mozilla/nsprpub \
|
||||
mozilla/rdf \
|
||||
mozilla/silentdl \
|
||||
mozilla/sun-java \
|
||||
mozilla/xpcom
|
||||
|
||||
RaptorLayout -a \
|
||||
mozilla/base \
|
||||
mozilla/dom \
|
||||
mozilla/gfx \
|
||||
mozilla/expat \
|
||||
mozilla/htmlparser \
|
||||
mozilla/layout \
|
||||
mozilla/view \
|
||||
mozilla/webshell \
|
||||
mozilla/widget
|
||||
|
||||
Raptor -a \
|
||||
RaptorDoc \
|
||||
RaptorDist \
|
||||
RaptorLayout
|
||||
|
||||
RaptorWin -a \
|
||||
Raptor
|
||||
|
||||
RaptorUnix -a \
|
||||
Raptor \
|
||||
mozilla/aclocal.m4 \
|
||||
mozilla/nglayout.mk
|
||||
|
||||
RaptorMac -a \
|
||||
Raptor \
|
||||
mozilla/build/mac \
|
||||
mozilla/cmd/macfe/applevnt \
|
||||
mozilla/cmd/macfe/central \
|
||||
mozilla/cmd/macfe/gui \
|
||||
mozilla/cmd/macfe/include \
|
||||
mozilla/cmd/macfe/pch \
|
||||
mozilla/cmd/macfe/projects \
|
||||
mozilla/cmd/macfe/utility \
|
||||
mozilla/lib/mac/MacMemoryAllocator \
|
||||
mozilla/lib/mac/Misc \
|
||||
mozilla/lib/mac/MoreFiles \
|
||||
mozilla/lib/mac/NSRuntime \
|
||||
mozilla/lib/mac/NSStdLib \
|
||||
mozilla/lib/mac/PowerPlant
|
||||
|
||||
#####################
|
||||
# An all inclusive modules for tinderbox to use
|
||||
#####################
|
||||
|
||||
RaptorAll -a \
|
||||
RaptorWin \
|
||||
RaptorUnix \
|
||||
RaptorMac
|
||||
|
||||
#####################
|
||||
# Transformiix module (xslt processor)
|
||||
#####################
|
||||
|
||||
TransformiixStandalone -a \
|
||||
mozilla/config \
|
||||
mozilla/expat \
|
||||
mozilla/extensions/transformiix
|
||||
|
||||
#######################################################################
|
||||
# Modules for the Directory SDK. There are two users of the libldap
|
||||
# Mozilla and the DirectorySDK. Maintained by Chuck Boatwright
|
||||
# cboatwri@netscape.com
|
||||
#
|
||||
|
||||
DirectorySDKSource -a \
|
||||
DirectorySDKSourceCommon \
|
||||
DirectorySDKSourceBuild
|
||||
|
||||
DirectorySDKSourceC -a \
|
||||
mozilla/directory/ldapsdk.mak \
|
||||
mozilla/directory/ldapsdk.mk \
|
||||
mozilla/directory/buildsdk.txt \
|
||||
mozilla/directory/Makefile \
|
||||
mozilla/directory/c-sdk
|
||||
|
||||
DirectorySDKSourceJava -a \
|
||||
mozilla/directory/buildjsdk.txt \
|
||||
mozilla/directory/java-sdk
|
||||
|
||||
DirectorySDKSourceCommon -a \
|
||||
DirectorySDKSourceC \
|
||||
DirectorySDKSourceJava
|
||||
|
||||
DirectorySDKSourceBuild -a \
|
||||
mozilla/config \
|
||||
mozilla/nsprpub
|
||||
|
||||
PerLDAP -a \
|
||||
mozilla/directory/perldap
|
||||
|
||||
#######################################################################
|
||||
# Modules for the Messenging Server SDK. Code maintained by Prasad Yendluri
|
||||
# (prasad@netscape.com)
|
||||
#
|
||||
|
||||
MessagingSDK -a \
|
||||
mozilla/msgsdk
|
||||
|
||||
#######################################################################
|
||||
# Modules for Calendar client.
|
||||
# (spider@netscape.com)
|
||||
#
|
||||
|
||||
CalendarClient -a \
|
||||
mozilla/calendar \
|
||||
mozilla/modules/calendar \
|
||||
mozilla/htmlparser \
|
||||
mozilla/gconfig \
|
||||
mozilla/gfx \
|
||||
mozilla/widget \
|
||||
mozilla/xpfc \
|
||||
mozilla/view
|
||||
|
||||
#######################################################################
|
||||
# Modules for the JavaScript
|
||||
# (fur@netscape.com)
|
||||
#
|
||||
|
||||
JSRef -a \
|
||||
mozilla/js/src
|
||||
|
||||
#
|
||||
# Can't pull all of js/src, because the server-style config filenames
|
||||
# are illegal on some operating systems.
|
||||
#
|
||||
JSClient -a \
|
||||
mozilla/js/Makefile.in \
|
||||
mozilla/js/makefile.win \
|
||||
mozilla/js/macbuild \
|
||||
mozilla/js/src \
|
||||
mozilla/js/.cvsignore \
|
||||
!mozilla/js/src/config \
|
||||
!mozilla/js/src/editline \
|
||||
!mozilla/js/src/liveconnect/config \
|
||||
!mozilla/js/src/mininspr \
|
||||
!mozilla/js/src/os \
|
||||
!mozilla/js/src/perlconnect \
|
||||
!mozilla/js/src/sh \
|
||||
!mozilla/js/src/xpcom
|
||||
|
||||
#######################################################################
|
||||
# Modules for SeaMonkey
|
||||
# (5.0 Browser and 5.0 Mail/News based on nglayout)
|
||||
#
|
||||
# Initial wild ass guess: cyeh@netscape.com
|
||||
# Second guess: mcafee@netscape.com
|
||||
#
|
||||
# We might want to do the platform-specific stuff like:
|
||||
# SeaMonkeyCoreFoo = SeaMonkeyCore + <stuff for platform Foo>
|
||||
# and so on, for each module.
|
||||
#
|
||||
|
||||
NSPR -a \
|
||||
mozilla/nsprpub
|
||||
|
||||
SeaMonkeyCore -a \
|
||||
mozilla/.cvsignore \
|
||||
mozilla/README \
|
||||
mozilla/README.txt \
|
||||
mozilla/client.mk \
|
||||
mozilla/client.mak \
|
||||
mozilla/configure \
|
||||
mozilla/configure.in \
|
||||
mozilla/allmakefiles.sh \
|
||||
mozilla/Makefile.in \
|
||||
mozilla/makefile.win \
|
||||
mozilla/aclocal.m4 \
|
||||
mozilla/build \
|
||||
!mozilla/build/mac/client.mac \
|
||||
mozilla/caps \
|
||||
mozilla/config \
|
||||
mozilla/dbm \
|
||||
mozilla/db/.cvsignore \
|
||||
mozilla/db/Makefile.in \
|
||||
mozilla/db/makefile.win \
|
||||
mozilla/db/mork \
|
||||
mozilla/db/mdb \
|
||||
mozilla/docshell \
|
||||
mozilla/embedding \
|
||||
mozilla/gc/boehm \
|
||||
mozilla/include \
|
||||
mozilla/intl \
|
||||
mozilla/jpeg \
|
||||
mozilla/js/jsd \
|
||||
!mozilla/js/jsd/jsdb \
|
||||
!mozilla/js/jsd/classes \
|
||||
!mozilla/js/jsd/corba \
|
||||
!mozilla/js/jsd/java \
|
||||
!mozilla/js/jsd/javawrap \
|
||||
JSClient \
|
||||
mozilla/lib/mac/MacMemoryAllocator \
|
||||
mozilla/lib/mac/Misc \
|
||||
mozilla/lib/mac/MoreFiles \
|
||||
mozilla/lib/mac/NSRuntime \
|
||||
mozilla/lib/mac/NSStdLib \
|
||||
mozilla/lib/mac/NSStartup \
|
||||
mozilla/lib/mac/PowerPlant \
|
||||
mozilla/lib/mac/InterfaceLib \
|
||||
mozilla/lib/mac/embedding \
|
||||
mozilla/modules/appfilelocprovider \
|
||||
mozilla/modules/libimg \
|
||||
mozilla/modules/libjar \
|
||||
mozilla/modules/libpref \
|
||||
mozilla/modules/libreg \
|
||||
mozilla/modules/libutil \
|
||||
mozilla/modules/mpfilelocprovider \
|
||||
mozilla/modules/oji \
|
||||
mozilla/modules/plugin \
|
||||
mozilla/modules/security/freenav \
|
||||
mozilla/modules/staticmod \
|
||||
mozilla/modules/zlib \
|
||||
mozilla/nav-java \
|
||||
mozilla/network \
|
||||
mozilla/netwerk \
|
||||
mozilla/nglayout.mk \
|
||||
mozilla/plugin/oji \
|
||||
mozilla/profile \
|
||||
mozilla/rdf \
|
||||
mozilla/string \
|
||||
mozilla/sun-java \
|
||||
mozilla/tools/leaky \
|
||||
mozilla/tools/preloader \
|
||||
mozilla/tools/elf-dynstr-gc \
|
||||
mozilla/uriloader \
|
||||
mozilla/xpcom \
|
||||
mozilla/xpinstall \
|
||||
MozillaLicense
|
||||
|
||||
SeaMonkeyLayout -a \
|
||||
SeaMonkeyCore \
|
||||
mozilla/content \
|
||||
mozilla/dom \
|
||||
mozilla/gfx \
|
||||
mozilla/htmlparser \
|
||||
mozilla/parser \
|
||||
mozilla/layout \
|
||||
mozilla/view \
|
||||
mozilla/webshell \
|
||||
mozilla/widget \
|
||||
mozilla/expat
|
||||
|
||||
SeaMonkeyXPToolKit -a \
|
||||
SeaMonkeyLayout \
|
||||
mozilla/themes \
|
||||
mozilla/xpfe
|
||||
|
||||
SeaMonkeyBrowser -a \
|
||||
mozilla/directory/xpcom \
|
||||
mozilla/editor/Makefile.in \
|
||||
mozilla/editor/public \
|
||||
mozilla/extensions \
|
||||
SeaMonkeyXPToolKit
|
||||
|
||||
# This needs work!
|
||||
SeaMonkeyMailNews -a \
|
||||
SeaMonkeyLayout \
|
||||
mozilla/mailnews \
|
||||
!mozilla/mailnews/db/mdb \
|
||||
!mozilla/mailnews/db/mork \
|
||||
|
||||
SeaMonkeyEditor -a \
|
||||
SeaMonkeyBrowser \
|
||||
mozilla/editor \
|
||||
mozilla/mailnews
|
||||
|
||||
SeaMonkeyL10n -a \
|
||||
mozilla/l10n/makefile.win \
|
||||
mozilla/l10n/makefiles.all \
|
||||
mozilla/l10n/Makefile.in \
|
||||
mozilla/l10n/langpacks/makefile.win \
|
||||
mozilla/l10n/langpacks/Makefile.in \
|
||||
mozilla/l10n/langpacks/en-DE \
|
||||
mozilla/l10n/langpacks/en-GB
|
||||
|
||||
#############################################################
|
||||
# This module is the whole banana, and this
|
||||
# is the module that tinderbox and bonsai should
|
||||
# track.
|
||||
#
|
||||
# Right now Editor pulls Browser which pulls XPToolKit
|
||||
# which pulls Layout which pulls Core. But eventually,
|
||||
# there will be more differentiation and uniqueness so
|
||||
# All will need to contain more than Editor. Perhaps it
|
||||
# will contain SeaMonkeyUnix, SeaMonkeyMac, SeaMonkeyWin
|
||||
# et cetera, et cetera, et cetera. But that is in the
|
||||
# future. --sarah
|
||||
#
|
||||
|
||||
SeaMonkeyAll -a \
|
||||
SeaMonkeyEditor \
|
||||
SeaMonkeyL10n
|
||||
|
||||
Blackwood -a \
|
||||
mozilla/java
|
||||
|
||||
SeaMonkeyBlackwood -a \
|
||||
SeaMonkeyAll \
|
||||
Blackwood
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# Alexander Larsson's GTK+ widget for embedding mozilla into
|
||||
# gtk applications.
|
||||
#
|
||||
#############################################################
|
||||
GtkMozilla -a \
|
||||
mozilla/webshell/embed/gtk
|
||||
|
||||
############################################################
|
||||
#
|
||||
# Module for Chimera, the embedded MacOSX browser.
|
||||
# Because this project is mixing a branched SeaMonkeyAll
|
||||
# with a trunk mozilla/chimera, we need a small module here
|
||||
# for tinderbox to track mozilla/chimera. This module
|
||||
# should be temporary until mozilla/chimera joins another
|
||||
# major module. -mcafee
|
||||
#
|
||||
# 3/3/03: Chimera -> Camino name change. Temporarily adding
|
||||
# new camino directory to Chimera, also adding new Camino
|
||||
# module. -mcafee
|
||||
#############################################################
|
||||
Chimera -a \
|
||||
mozilla/chimera \
|
||||
mozilla/camino \
|
||||
SeaMonkeyAll
|
||||
|
||||
Camino -a \
|
||||
mozilla/camino \
|
||||
SeaMonkeyAll
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# Modules For Webtools
|
||||
#
|
||||
#############################################################
|
||||
Bugzilla -a \
|
||||
mozilla/webtools/bugzilla
|
||||
Bonsai -a \
|
||||
mozilla/webtools/bonsai
|
||||
LXR -a \
|
||||
mozilla/webtools/lxr
|
||||
Tinderbox -a \
|
||||
mozilla/webtools/tinderbox
|
||||
Webtools -a \
|
||||
Bugzilla \
|
||||
Bonsai \
|
||||
LXR \
|
||||
Tinderbox
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# Module for the java webclient (edburns)
|
||||
#
|
||||
#############################################################
|
||||
|
||||
Webclient -a \
|
||||
mozilla/java/Makefile.in \
|
||||
mozilla/java/Makefile.win \
|
||||
mozilla/java/build.xml \
|
||||
mozilla/java/README \
|
||||
mozilla/java/README.commercial \
|
||||
mozilla/java/build \
|
||||
mozilla/java/config \
|
||||
mozilla/java/dom \
|
||||
mozilla/java/external \
|
||||
mozilla/java/makefiles \
|
||||
mozilla/java/util \
|
||||
mozilla/java/webclient
|
||||
|
||||
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# Module for iPlanet Network Security Services
|
||||
#
|
||||
#############################################################
|
||||
NSS -a \
|
||||
mozilla/security/nss \
|
||||
mozilla/security/coreconf
|
||||
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# Module for Mozilla Tinderbox
|
||||
#
|
||||
#############################################################
|
||||
MozillaTinderboxAll -a \
|
||||
SeaMonkeyAll \
|
||||
mozilla/security/psm \
|
||||
mozilla/accessible \
|
||||
mozilla/ipc/ipcd \
|
||||
mozilla/security/manager \
|
||||
mozilla/tools/trace-malloc \
|
||||
mozilla/modules/libpr0n
|
||||
|
||||
# mozilla uses mozilla/security/manager from
|
||||
# the tip, not the nss branch
|
||||
#
|
||||
# commenting out NSS because the client uses a static tag so watching
|
||||
# checkins as they happen is of no use to us
|
||||
# NSS \
|
||||
# commenting out NSPR because tinderbox is broken in such a way that
|
||||
# checkins to the branch (which we care about) do not show up but
|
||||
# checkins do the tip (which we don't care about) do. Getting rid of
|
||||
# this so its not 100% false positives.
|
||||
# NSPR \
|
||||
# same with ldap
|
||||
# mozilla/directory/c-sdk
|
||||
|
||||
# This module will let us track branches where all the subcomponents
|
||||
# are on the same tag
|
||||
MozillaBranchTinderboxAll -a \
|
||||
MozillaTinderboxAll \
|
||||
NSS \
|
||||
NSPR \
|
||||
mozilla/directory/c-sdk
|
||||
|
||||
AviaryBranchTinderbox -a \
|
||||
MozillaBranchTinderboxAll \
|
||||
mozilla/browser \
|
||||
mozilla/chrome \
|
||||
mozilla/mail \
|
||||
mozilla/toolkit
|
||||
|
||||
# thunderbird's tinderbox module
|
||||
ThunderbirdTinderbox -a \
|
||||
MozillaTinderboxAll \
|
||||
mozilla/mail \
|
||||
mozilla/chrome \
|
||||
mozilla/toolkit
|
||||
|
||||
# this is for the phoenix tinderbox
|
||||
|
||||
PhoenixTinderbox -a \
|
||||
MozillaTinderboxAll \
|
||||
mozilla/browser \
|
||||
mozilla/chrome \
|
||||
mozilla/toolkit
|
||||
@ -1,14 +0,0 @@
|
||||
# The "notify" file controls where notifications from watches set by
|
||||
# "cvs watch add" or "cvs edit" are sent. The first entry on a line is
|
||||
# a regular expression which is tested against the directory that the
|
||||
# change is being made to, relative to the $CVSROOT. If it matches,
|
||||
# then the remainder of the line is a filter program that should contain
|
||||
# one occurrence of %s for the user to notify, and information on its
|
||||
# standard input.
|
||||
#
|
||||
# "ALL" or "DEFAULT" can be used in place of the regular expression.
|
||||
#
|
||||
# For example:
|
||||
#ALL mail %s -s "CVS notification"
|
||||
|
||||
ALL $CVSROOT/CVSROOT/sendnotification.pl %s
|
||||
359
CVSROOT/passwd
@ -1,359 +0,0 @@
|
||||
# DO NOT EDIT THIS FILE! You must instead go to http://despot.mozilla.org/, and
|
||||
# tweak things from there.
|
||||
aaronleventhal%moonset.net:S0MUPohMWfaMo:cvsuser
|
||||
akhil.arora%sun.com:tG7tQfICukUNg:cvsuser
|
||||
akkzilla%shallowsky.com:LyPNKDRAkCEfM:cvsuser
|
||||
alecf%flett.org:xY/EzwiSEg43U:cvsuser
|
||||
alex%croczilla.com:.qnz.iJA.rUaQ:cvsuser
|
||||
alexsavulov%netscape.com:NL.2.L.pOoEE.:cvsuser
|
||||
alla%lysator.liu.se:PfaCJJD7S/Vyc:cvsuser
|
||||
amardare%qnx.com:.nnbfi3s/6pLw:cvsuser
|
||||
anatoliya%netscape.com:gzzdCC45etLpk:cvsuser
|
||||
andreas.otte%debitel.net:kydQ2aAIGwhkA:cvsuser
|
||||
andrew%redhat.com:Q5vhhvO.ksq/E:cvsuser
|
||||
andreww%netscape.com:VDb/gyVOKB8gg:cvsuser
|
||||
angelon%netscape.com:xLYuHRKI0gIh6:cvsuser
|
||||
ann.adamcik%sun.com:McRIlR2v7WMXQ:cvsuser
|
||||
anthonyd%netscape.com:3cZ8Ug3ggdAfE:cvsuser
|
||||
antitux%netscape.com:GPYA3.J0mZ8dg:cvsuser
|
||||
antonio.xu%sun.com:xb9jwUyu9kmog:cvsuser
|
||||
arielb%rice.edu:18fBUQf4tjW/Y:cvsuser
|
||||
arvid%quadrone.org:OlnGBWl7agA9.:cvsuser
|
||||
asa%mozilla.org:KwQFH5YHrDGVw:cvsuser
|
||||
asasaki%netscape.com:eW4lJwcDcifpA:cvsuser
|
||||
ashishbhatt%netscape.com:hAtS/UPSRHvCg:cvsuser
|
||||
ashuk%eng.sun.com:QrgopBbFpT10Y:cvsuser
|
||||
attinasi-moz%attinasi.org:KQdxTI4aFdReA:cvsuser
|
||||
av%netscape.com:GZ3mu2MifoZiU:cvsuser
|
||||
axel%pike.org:mbSWqS64YZTQw:cvsuser
|
||||
bbaetz%acm.org:JhmLaLDTsT/h2:cvsuser
|
||||
beard%netscape.com:2Eed7KIBNPtL6:cvsuser
|
||||
ben%bengoodger.com:z68cHGOZUnekA:cvsuser
|
||||
benc%meer.net:.mc9O4VQuREws:cvsuser
|
||||
bhart00%yahoo.com:AnZyRL6ytm1.Q:cvsuser
|
||||
bienvenu%nventure.com:dzcEj09V1HQLg:cvsuser
|
||||
bishakhabanerjee%netscape.com:bLgNOlaDbR.lc:cvsuser
|
||||
blakeross%telocity.com:iecsxCayirMQw:cvsuser
|
||||
blizzard%redhat.com:W86ZbnavsJzxk:cvsuser
|
||||
bmartin%netscape.com:VDvmT5ew0s2Uk:cvsuser
|
||||
bmlk%gmx.de:diOpGSeH3syIs:cvsuser
|
||||
bolian.yin%sun.com:SXDI.XmKRDr7s:cvsuser
|
||||
braddr%puremagic.com:Tzs8cIqrzzC/I:cvsuser
|
||||
brade%comcast.net:ouetdVzWLzsWs:cvsuser
|
||||
BradleyJunk%cinci.rr.com:EOOl4wp9MNcU6:cvsuser
|
||||
bratell%lysator.liu.se:GLG2cm83vaqBk:cvsuser
|
||||
brendan%mozilla.org:q5aR3MqARGBMA:cvsuser
|
||||
briane%qnx.com:pKLtqULcssSZo:cvsuser
|
||||
bruce%cubik.org:.VcS8pxE3d5rQ:cvsuser
|
||||
bryner%brianryner.com:gy5stVpStoVNw:cvsuser
|
||||
bsharma%netscape.com:vjlb1xJC7MsAk:cvsuser
|
||||
bsmedberg%covad.net:dvB/veJh3IxkM:cvsuser
|
||||
bstell%ix.netcom.com:/ZdK7gz9SA/RU:cvsuser
|
||||
bugreport%peshkin.net:PgnY246SzUcHk:cvsuser
|
||||
burnus%gmx.de:RBozBY9sekJRM:cvsuser
|
||||
bzbarsky%mit.edu:YySJ0ECW0UqcM:cvsuser
|
||||
caillon%redhat.com:crXJoEJGqOt1c:cvsuser
|
||||
carl.wong%intel.com:60H5NoMHeEpvI:cvsuser
|
||||
carosendahl%netscape.com:vzE2R0ISTc0Rs:cvsuser
|
||||
cathleen%netscape.com:g4oBIcfbxZzt.:cvsuser
|
||||
cavin%netscape.com:Wd/zikwQdE62c:cvsuser
|
||||
cbiesinger%web.de:SmMxtOg6tGNJg:cvsuser
|
||||
ccarlen%mac.com:KYg00rzfYX4vs:cvsuser
|
||||
chak%netscape.com:muP/8gmdIYQgM:cvsuser
|
||||
chofmann%mozilla.org:zSMKbARwiYniA:cvsuser
|
||||
Chris.Yeh%nokia.com:98WX9EeAZIt/6:cvsadm
|
||||
chrisk%netscape.com:iAECHtKFagLSw:cvsuser
|
||||
ChrisKarnaze%cox.net:C.H2iRqFy7CnY:cvsuser
|
||||
christophe.ravel.bugs%sun.com:m72kIhpCT13sg:cvsuser
|
||||
claudius%netscape.com:gJezy23y0r4wI:cvsuser
|
||||
cls%seawood.org:YLAr7ajnaXezg:cvsuser
|
||||
cltbld%netscape.com:mla4CZgCloBSU:cvsuser
|
||||
cmanske%jivamedia.com:wZ2fFz6Y4JIkk:cvsuser
|
||||
colin%theblakes.com:1fbT0DKTKXTsk:cvsuser
|
||||
colinp%oeone.com:o4A5a8g5U/tO2:cvsuser
|
||||
cotter%netscape.com:JZ1rqINZKa.Ig:cvsuser
|
||||
dac%x.cx:xZwzT4et.TSYY:cvsuser
|
||||
Dale.Stansberry%Nexwarecorp.com:iFmg8YUyFSpA.:cvsuser
|
||||
daniel%glazman.org:voZRrCYpgF9AU:cvsuser
|
||||
danm-moz%comcast.net:3h6FdkzmMqnyA:cvsuser
|
||||
darin%meer.net:BFlqb/kSuCdKo:cvsuser
|
||||
db48x%yahoo.com:WOXgUg7VfNR2s:cvsuser
|
||||
dbaron%dbaron.org:z3R2dyupEH6yk:cvsuser
|
||||
dbragg%netscape.com:k34vc.FRrLRYI:cvsuser
|
||||
dcone%netscape.com:dWcV1sBlGlAHU:cvsuser
|
||||
ddkilzer%theracingworld.com:srB5Z/2wN1VDw:cvsuser
|
||||
ddrinan%netscape.com:4vs6JokcLeYkQ:cvsuser
|
||||
dean_tessman%hotmail.com:AM2BZ7M0nDhlM:cvsuser
|
||||
depstein%netscape.com:OmsomooV9eTPE:cvsuser
|
||||
despotdaemon%netscape.com:zJJgZOGMRo/FE:cvsadm
|
||||
dinglis%qnx.com:ox85zqaZiiSk6:cvsuser
|
||||
djani%netscape.com:jnrv0Mv0Kb77.:cvsuser
|
||||
dkl%redhat.com:Jb37f1UZbg4g2:cvsuser
|
||||
dmose%mozilla.org:sTIo1zYddteQc:cvsadm
|
||||
donley%tekka.wwa.com:ZdWwac/UPNyG.:cvsuser
|
||||
donm%bluemartini.com:bKHsN8gBK/fp2:cvsuser
|
||||
dougt%meer.net:6Dpld8jLb0Mcg:cvsuser
|
||||
dpsuresh%netscape.net:jt.S0eDMnQVDo:cvsuser
|
||||
drepper%redhat.com:p/CH9PcK4BRCs:cvsuser
|
||||
driehuis%playbeing.org:BbR6IahGk6yGc:cvsuser
|
||||
dsirnapalli%netscape.com:hbQy6f/ZU4m7o:cvsuser
|
||||
dveditz%cruzio.com:S1X7iuOVZr0tI:cvsuser
|
||||
dwitte%stanford.edu:sFoUYfKYFCQeg:cvsuser
|
||||
edburns%acm.org:z7zqfOtPH9oic:cvsuser
|
||||
edwin%woudt.nl:8dZB6Qv1GFw4E:cvsuser
|
||||
endico%mozilla.org:yXO.M/SUdhzAc:cvsadm
|
||||
ere%atp.fi:HlHx6Z2VwOLeg:cvsuser
|
||||
ericb%neoplanet.com:D63L651L6w.a2:cvsuser
|
||||
etsai%netscape.com:b6.iRP5wVeO1s:cvsuser
|
||||
friedman%splode.com:mZ5UQ4/qb5h3E:cvsadm
|
||||
ftang%netscape.com:cjA4Oe7qangyQ:cvsuser
|
||||
gagan%netscape.com:aJDYc91m7tmpI:cvsuser
|
||||
garrett%blythe-wang.com:UXnssIXpwUtBU:cvsuser
|
||||
gayathrik00%netscape.com:gy4GP7.sWyoUs:cvsuser
|
||||
gerv%gerv.net:/3awrKKpfLPvQ:cvsuser
|
||||
gilbert.fang%sun.com:DJJSeZLDeXl0Y:cvsuser
|
||||
girish.manwani%eng.sun.com:0Nm63TloVl5Rw:cvsuser
|
||||
glen.beasley%sun.com:Bg3n.ccr13OvI:cvsuser
|
||||
grail%cafebabe.org:KsBL5nzVbWFC6:cvsuser
|
||||
granrose%netscape.com:xndKEgLhYUUUY:cvsuser
|
||||
harishd%hotmail.com:A0zdbDQ36sqs.:cvsuser
|
||||
henry.jia%sun.com:u9SJe2/103fMo:cvsuser
|
||||
hewitt%netscape.com:pE1RTplEofSd2:cvsuser
|
||||
hidday%geocities.com:A1nFYdvMQRKDI:cvsuser
|
||||
hjtoi%comcast.net:52AbDkgxmkRfY:cvsuser
|
||||
hpradhan%hotpop.com:Z9A47ej9QDVYc:cvsuser
|
||||
hwaara%chello.se:74eCB7AZi/Bm2:cvsuser
|
||||
hyatt%mozilla.org:/Sepj5wnpvupA:cvsuser
|
||||
ian.mcgreer%sun.com:86YhVbbpm8aZ2:cvsuser
|
||||
ian%hixie.ch:nibu2mA5/kgco:cvsuser
|
||||
idk%eng.sun.com:hGFoMfxrF7eCM:cvsuser
|
||||
igor%mir2.org:MM9XCaPQ9hSyA:cvsuser
|
||||
imajes%php.net:2QdOW14NQ6PdQ:cvsadm
|
||||
jab%atdot.org:EQ0cIL6giNkWw:cvsuser
|
||||
jag%tty.nl:JfxrrkZerNZv.:cvsuser
|
||||
jake%bugzilla.org:mjldF4ES.KxbI:cvsuser
|
||||
jat%princeton.edu:0P0EK1s5q3OCk:cvsuser
|
||||
javi%netscape.com:WkJc6UpXUyLVw:cvsuser
|
||||
jay.yan%sun.com:lgDae/1lMfLrk:cvsuser
|
||||
jband%netscape.com:jc1KB4qvBDWxE:cvsuser
|
||||
jcgriggs%sympatico.ca:hQ/ITeFfitEvw:cvsuser
|
||||
jdunn%maine.rr.com:nwle/bqcCtTMA:cvsuser
|
||||
jeff.dyer%compilercompany.com:O.dwVxqCyvmqQ:cvsuser
|
||||
jeff.hedlund%matrixsi.com:dUxvk4HDbIrkA:cvsuser
|
||||
jelwell%netscape.com:phAeFbVmVsIFg:cvsuser
|
||||
Jerry.Kirk%Nexwarecorp.com:iSvw9A.T6nH6w:cvsuser
|
||||
jerry.tan%sun.com:3vzkwo3LNd8Mk:cvsuser
|
||||
jglick%netscape.com:MW7f8SLLptnEw:cvsuser
|
||||
jgmyers%speakeasy.net:tj/q7ALULIlLM:cvsuser
|
||||
jim_nance%yahoo.com:MW2pItooimXQc:cvsuser
|
||||
jje%mac.com:Slemj8mwbIPao:cvsadm
|
||||
jmas%softcatala.org:PmaWVAdMzkM7A:cvsuser
|
||||
jocuri%softhome.net:icDVGeWEv1eDw:cvsuser
|
||||
joe.chou%sun.com:peT1nWrch0xGo:cvsuser
|
||||
john.marmion%ireland.sun.com:c6A3GBlY0bSbU:cvsuser
|
||||
john%johnkeiser.com:UEgKBivGIzptw:cvsuser
|
||||
joshua.xia%bea.com:qK5Olug74ZkBI:cvsuser
|
||||
jouni%heikniemi.net:ykttS9UKWXc9E:cvsuser
|
||||
jpierre%netscape.com:2ebjC0cACURyU:cvsuser
|
||||
jrgm%netscape.com:3ix9Y5PU9Qruw:cvsuser
|
||||
jruderman%hmc.edu:X40q5fD7Yno4s:cvsuser
|
||||
jshin%mailaps.org:j6/TcPcy/KYgg:cvsuser
|
||||
jst%mozilla.jstenback.com:ry1WSdsxrYVhg:cvsuser
|
||||
jsun%netscape.com:coq.3Xx7ARTjs:cvsuser
|
||||
justdave%bugzilla.org:gH/q.1W.wLBGQ:cvsadm
|
||||
kaie%kuix.de:.hgVIsvtes.Fw:cvsuser
|
||||
kairo%kairo.at:P3GfvvKlerCks:cvsuser
|
||||
katakai%japan.sun.com:qJPfrx26UNm2.:cvsuser
|
||||
keith%kvisco.com:7u.twuUBsFGJA:cvsuser
|
||||
kerz%mozillazine.org:PrxCfYo5gxNi.:cvsuser
|
||||
kestes%walrus.com:5Ld0f8MhzQggw:cvsuser
|
||||
kevin%perldap.org:OR9AnICPijq1g:cvsuser
|
||||
kiko%async.com.br:Uz8pBMTzv6gpo:cvsuser
|
||||
kin%netscape.com:RexUJ7MbhHOeE:cvsuser
|
||||
kirk.erickson%sun.com:2ju/p7xptfkFQ:cvsuser
|
||||
kjh-5727%comcast.net:rRN9eQFLs3af6:cvsuser
|
||||
kmcclusk%netscape.com:KiXYwpHlCP1nE:cvsuser
|
||||
koehler%mythrium.com:0vfTLcKn6XhV6:cvsuser
|
||||
kyle.yuan%sun.com:4pSzbqjeADpcc:cvsuser
|
||||
kysmith%netscape.com:tBE5QiCelL1mM:cvsuser
|
||||
laa%sparc.spb.su:xaXKTqerGGoxE:cvsuser
|
||||
law%netscape.com:QQU7Gc4FME9Ek:cvsuser
|
||||
leaf%mozilla.org:u8bmgbEVjQQ6k:cvsadm
|
||||
leif%ogre.com:NSpnZ.4teg8CA:cvsuser
|
||||
leila.garin%eng.sun.com:Cz4LcsTHYzTwk:cvsuser
|
||||
leon.zhang%sun.com:LUAz1d7SL5TF.:cvsuser
|
||||
loadrunner%betak.net:IUk5X6IaJ5fTM:cvsuser
|
||||
locka%iol.ie:Odt22ztoqh7Pc:cvsuser
|
||||
lordpixel%mac.com:pBoWsz5/W/1/o:cvsuser
|
||||
louie.zhao%sun.com:ajsxRr.217rWY:cvsuser
|
||||
louis.martin%eng.sun.com:QsJ91Lm0/Y/0Y:cvsuser
|
||||
lpham%netscape.com:E06CUoNSPOyqg:cvsuser
|
||||
mang%subcarrier.org:VuSc/CvF/y94A:cvsuser
|
||||
maolson%earthlink.net:k1eI.1dDx/fkI:cvsuser
|
||||
margaret.chan%sun.com:W3v8XaNRwpmZY:cvsuser
|
||||
martinl%netscape.com:tBTLPNQZ7oRdM:cvsuser
|
||||
matthias%sorted.org:OzME313V9XMNo:cvsuser
|
||||
mbarnson%sisna.com:hRMbA3bW5q6Ak:cvsuser
|
||||
mcafee%netscape.com:Y/0zK7Dff2W8.:cvsadm
|
||||
mconnor%myrealbox.com:KLpr7Zj8uPkes:cvsuser
|
||||
mcs%pearlcrescent.com:1K9aYq1ivwd6s:cvsuser
|
||||
mhammond%skippinet.com.au:T1kpFNZuhvQ0I:cvsuser
|
||||
mhein%sun.com:zDB.Gdg/nMOq6:cvsuser
|
||||
Michael.Kedl%Nexwarecorp.com:/vumJNxEIWQnk:cvsuser
|
||||
michael.lowe%bigfoot.com:SUFJXqQg3gpwo:cvsuser
|
||||
mike+mozilla%meer.net:3rKv1ZMBpeR36:cvsuser
|
||||
mike%neoplanet.com:BXgJNsh4IWFgQ:cvsuser
|
||||
mikep%oeone.com:fxxKFOIsaxlQs:cvsuser
|
||||
miodrag%netscape.com:6t6mBrr0.woK6:cvsuser
|
||||
mitchf%netscape.com:SpJhZNzzTZL5E:cvsuser
|
||||
mj%digicool.com:.QcUkkqXQe9kE:cvsuser
|
||||
mjudge%netscape.com:YwzoYiibSIGNA:cvsuser
|
||||
mkaply%us.ibm.com:1Ui2NF/0U00sI:cvsuser
|
||||
moied%netscape.com:YEBO82VsfWOlc:cvsuser
|
||||
momoi%netscape.com:cTHpmapFPYprI:cvsuser
|
||||
morse%netscape.com:1f8Ob4wB7JJ5I:cvsuser
|
||||
mostafah%oeone.com:DaYs.xDcUaa72:cvsuser
|
||||
mozeditor%floppymoose.com:n8gH7es/9NB6U:cvsuser
|
||||
mozilla.BenB%bucksch.org:7/oOTh8e41HmY:cvsuser
|
||||
mozilla%ducarroz.org:B9ih04P7FDhrg:cvsuser
|
||||
mstoltz%netscape.com:4Ddf36CZMroWw:cvsuser
|
||||
mvl%exedo.nl:kpiBYLuZnAosE:cvsuser
|
||||
mwyner%ogre.com:YTb.PSMPtP7Sw:cvsuser
|
||||
myk%mozilla.org:m/RQWKjspQj9s:cvsadm
|
||||
m_kato%ga2.so-net.ne.jp:FoloD5kECUuTo:cvsuser
|
||||
namachi%pacbell.net:qxsU3ci9Y1Y4k:cvsuser
|
||||
naving%netscape.com:TqK9Ipga8KNA6:cvsuser
|
||||
nboyd%atg.com:hbKSEw6zIzn8A:cvsuser
|
||||
neeti%netscape.com:q2ekT3ZhwHrKg:cvsuser
|
||||
neil%parkwaycc.co.uk:dIqJP4XsRGQIw:cvsuser
|
||||
nelsonb%netscape.com:AVyk3HXWf.ujs:cvsuser
|
||||
nhotta%netscape.com:7PCA6ZeTK24HQ:cvsuser
|
||||
nicolson%netscape.com:NbXo/Njwl3DYE:cvsuser
|
||||
nis%sparc.spb.su:qaN5w8ws/GMOI:cvsuser
|
||||
nisheeth%netscape.com:e69IbM7hbpN1c:cvsuser
|
||||
noririty%jcom.home.ne.jp:LILUJRbaygv6o:cvsuser
|
||||
oeschger%netscape.com:VbgM7ZeTrBdQc:cvsuser
|
||||
paper%animecity.nu:zZz20Ze5U4roc:cvsuser
|
||||
pavel%gingerall.cz:m.6fruuSee/fA:cvsuser
|
||||
pavlov%pavlov.net:Wm/3gCaQhXNLo:cvsuser
|
||||
pedemont%us.ibm.com:yXrIQ7nPbCytE:cvsuser
|
||||
pete.zha%sun.com:rXMiOKAkMlQts:cvsuser
|
||||
pete%mozdevgroup.com:8I2QCUKNKooqA:cvsuser
|
||||
peterb%oeone.com:TxT4Q17V0YIp6:cvsuser
|
||||
peterlubczynski%netscape.com:kSPTyFx/Yg.0M:cvsuser
|
||||
peterv%propagandism.org:tknmYRfnctNHY:cvsuser
|
||||
philip.zhao%sun.com:t3AHvdCfAkGOs:cvsuser
|
||||
phomoz%netscape.com:vmDEmKMt0liZM:cvsuser
|
||||
pinkerton%aol.net:SXjRJmDJDtb1U:cvsuser
|
||||
pkw%us.ibm.com:8b/bmWBPVi2ug:cvsuser
|
||||
pp%ludusdesign.com:G0MYIuYvwPznk:cvsuser
|
||||
prass%netscape.com:FR60OL5/QxDWQ:cvsuser
|
||||
preed%sigkill.com:BvqmKaKN1qcNE:cvsuser
|
||||
pschwartau%netscape.com:MEim3s/EIZWs6:cvsuser
|
||||
putterman%netscape.com:CRfRGZi9Nrtg6:cvsuser
|
||||
quy%igelaus.com.au:x9H1aMz3jpYUA:cvsuser
|
||||
racham%netscape.com:G3oNVDE5uCV0o:cvsuser
|
||||
radha%netscape.com:E8m/i8B0sIO5k:cvsuser
|
||||
ramiro%eazel.com:04T/4Hcs1Yr/c:cvsadm
|
||||
rangansen%netscape.com:cLfMytTA8Q.aY:cvsuser
|
||||
rayw%netscape.com:tnMNnv234muWY:cvsuser
|
||||
rbs%maths.uq.edu.au:2urVlBcTziPaA:cvsuser
|
||||
rcassin%supernova.org:xbcASQsSB3GNo:cvsuser
|
||||
rchen%netscape.com:aur8LEiFViHB2:cvsuser
|
||||
rdayal%netscape.com:wS397S9STmKn6:cvsuser
|
||||
realpeterv%mac.com:03s6xSCMxEKx.:cvsuser
|
||||
redfive%acm.org:bwZbPN1gYEnPo:cvsuser
|
||||
relyea%netscape.com:SnAaVLpexLWKw:cvsuser
|
||||
rginda%hacksrus.com:TRTBrAIOV/zck:cvsuser
|
||||
richm%netscape.com:yFyxcWf6.RJnc:cvsuser
|
||||
rick.ju%sun.com:O/OoCMTnW5sUE:cvsuser
|
||||
rjc%rjcdb.com:RVRRe0F5Be03c:cvsuser
|
||||
rjesup%wgate.com:5Ccmc2hO67zAk:cvsuser
|
||||
rko%netscape.com:erIlm8Cr.fpeM:cvsadm
|
||||
rlk%trfenv.com:Kg0SscFg1bZfw:cvsuser
|
||||
robin.lu%sun.com:QX/01AXloHL0A:cvsuser
|
||||
robinf%netscape.com:qsizhSBd/KLxw:cvsuser
|
||||
roc+%cs.cmu.edu:7yP.3Z8FERo/.:cvsuser
|
||||
rods%netscape.com:0IcCge9UaI6V6:cvsuser
|
||||
rogc%netscape.com:ggq89u2RGdGyc:cvsuser
|
||||
rogerl33%aol.com:EOrmrYUfmdcOk:cvsuser
|
||||
rpotts%netscape.com:S0L.1Z15bd0qA:cvsuser
|
||||
rth%cygnus.com:PgrJbhkbkSaXM:cvsuser
|
||||
ruslan%netscape.com:D.VKkgUzl9qmo:cvsuser
|
||||
rusty.lynch%intel.com:DhYR6Z5RXyqSk:cvsuser
|
||||
rweltman%netscape.com:sXP4ymRl/iKBg:cvsuser
|
||||
saari%netscape.com:8QO4pF72fYVFo:cvsuser
|
||||
saileshd%netscape.com:lUoVAFVqyyuXg:cvsuser
|
||||
samuel%sieb.net:UyA4IG.2.LceA:cvsuser
|
||||
saul.edwards%sun.com:roYr1eI1z89vU:cvsuser
|
||||
scc%mozilla.org:rSANuSFML82vc:cvsuser
|
||||
scott%scott-macgregor.org:/iUxoWYhl45Gw:cvsuser
|
||||
sdagley%mac.com:PvYFZiRMRKuG.:cvsuser
|
||||
sdv%sparc.spb.su:o7qyUidRy0Ixw:cvsuser
|
||||
sean%beatnik.com:PUH1uLgUkOHK6:cvsuser
|
||||
seawood%netscape.com:NoNERGlI7IujM:cvsuser
|
||||
selmer%netscape.com:0a0Zn2Mtb9RMM:cvsuser
|
||||
serge%netscape.com:.fjhetVN42Gtc:cvsuser
|
||||
sergei_d%fi.tartu.ee:2pMVH6CMfBao6:cvsuser
|
||||
seth%cs.brandeis.edu:NZh2SXUWQwca2:cvsuser
|
||||
sford3%swbell.net:qiBgt92c4q9VE:cvsuser
|
||||
sfraser%netscape.com:2mFWUaEqjN7lE:cvsuser
|
||||
sgehani%netscape.com:6GHPo3hAIJqxg:cvsuser
|
||||
shanjian%netscape.com:QB8g/ScTxKRkI:cvsuser
|
||||
shannond%netscape.com:oMNCZEJ1DPSKc:cvsuser
|
||||
shaver%mozilla.org:I4.grysVnENVM:cvsadm
|
||||
shawnp%earthling.net:Nkv1/z1WuxbSc:cvsuser
|
||||
sherry.shen%sun.com:NsxfPnTNAkIiA:cvsuser
|
||||
shliang%netscape.com:KO.gzVLb9PrLU:cvsuser
|
||||
shrutiv%netscape.com:3Ve5mvMx.Ze1M:cvsuser
|
||||
sicking%bigfoot.com:HmAX9bYyCA47k:cvsuser
|
||||
silver%warwickcompsoc.co.uk:w4kdm3lu7ZCUY:cvsuser
|
||||
simford.dong%sun.com:fV41vy16txOL6:cvsuser
|
||||
sman%netscape.com:gHR2VdSKyaV0Q:cvsuser
|
||||
smeredith%netscape.com:y4A/cyjrQKlq6:cvsuser
|
||||
smontagu%smontagu.org:GR7KUGsPjdY/6:cvsuser
|
||||
sonja.mirtitsch%sun.com:wchMbWjVfFXxM:cvsuser
|
||||
srilatha%netscape.com:vn.P0HO0ippg2:cvsuser
|
||||
srinivas%netscape.com:S7u05VkFOtTeQ:cvsuser
|
||||
ssaux%netscape.com:tpL9Gf.XBvolU:cvsuser
|
||||
sspitzer%mozilla.org:YY7Y4g9eYkulA:cvsuser
|
||||
ssu%netscape.com:cfNlpxCKVXQtQ:cvsuser
|
||||
Stefan.Borggraefe%gmx.de:h788WO/3xUGRc:cvsuser
|
||||
stephendonner%yahoo.com:MPo74xU9kvo/M:cvsuser
|
||||
suresh%netscape.com:XUIUMLGJA3RZ2:cvsuser
|
||||
svn%xmlterm.org:jJ1wJYK5mkg5M:cvsuser
|
||||
syd%netscape.com:CUkm3PbBnrIsk:cvsuser
|
||||
taek%netscape.com:7oZpC0ix52epo:cvsuser
|
||||
tajima%eng.sun.com:/sI8qG0LRP1mk:cvsuser
|
||||
taka%netscape.com:jPPzAmrbNd1wg:cvsuser
|
||||
talisman%anamorphic.com:KB7aseh1Ssuyg:cvsuser
|
||||
tao%netscape.com:gM5BUf7j12EIc:cvsuser
|
||||
tara%tequilarista.org:tVcSLekcNJsk2:cvsuser
|
||||
terry%mozilla.org:sYyehWIbexkrI:cvsadm
|
||||
tfox%netscape.com:tQPZKESPZltZ2:cvsuser
|
||||
tgl%sss.pgh.pa.us:rr7pe1GPkjIw6:cvsuser
|
||||
thayes%netscape.com:CLgsFPZnRpuhM:cvsuser
|
||||
thesteve%netscape.com:35.Khy1IDl2VE:cvsuser
|
||||
timeless%mozdev.org:oJ1sqLvoXLp7I:cvsuser
|
||||
tingley%sundell.net:dJuhpDRtS9J..:cvsuser
|
||||
tonyr%fbdesigns.com:B1mFZmEmKdg4E:cvsuser
|
||||
tor%cs.brown.edu:.GLVprG/lOpjM:cvsuser
|
||||
toshok%hungry.com:45BYKXpLObZ..:cvsuser
|
||||
trudelle%netscape.com:kguEx2XoA/qOQ:cvsuser
|
||||
twalker%netscape.com:h28XrHXhyvScQ:cvsuser
|
||||
t_mutreja%yahoo.com:r.isAol8Qh60w:cvsuser
|
||||
val4%cornell.edu:.MA49sSDjYK66:cvsuser
|
||||
valeski%netscape.com:UQIy1R23X0tnc:cvsuser
|
||||
varada%netscape.com:/PHzlvLt1d/Pk:cvsuser
|
||||
varga%nixcorp.com:itS5ZJXFiEJC2:cvsuser
|
||||
vidur%netscape.com:QSvSExpE4HwEE:cvsuser
|
||||
wade%ezri.org:FeXuLzEvXT132:cvsuser
|
||||
waldemar%netscape.com:hrfmZUyM.cQqw:cvsuser
|
||||
wchang0222%aol.com:qv4XOpmSQjJG2:cvsuser
|
||||
webmail%kmgerich.com:K7U1HCAoxFv2E:cvsuser
|
||||
Xiaobin.Lu%eng.Sun.com:MrrYDdtVNWvV6:cvsuser
|
||||
yokoyama%netscape.com:zC32qkz2JNuTc:cvsuser
|
||||
yueheng.xu%intel.com:oRvjQhWXcyCIU:cvsuser
|
||||
yxia%netscape.com:ilKZVJUeHDLj6:cvsuser
|
||||
zach%zachlipton.com:GLozolSujiqSo:cvsuser
|
||||
zuperdee%yahoo.com:ltcWrFvUEUYTY:cvsuser
|
||||
@ -1,13 +0,0 @@
|
||||
# The "rcsinfo" file is used to control templates with which the editor
|
||||
# is invoked on commit and import.
|
||||
#
|
||||
# The first entry on a line is a regular expression which is tested
|
||||
# against the directory that the change is being made to, relative to the
|
||||
# $CVSROOT. For the first match that is found, then the remainder of the
|
||||
# line is the name of the file that contains the template.
|
||||
#
|
||||
# If the repository name does not match any of the regular expressions in this
|
||||
# file, the "DEFAULT" line is used, if it is specified.
|
||||
#
|
||||
# If the name "ALL" appears as a regular expression it is always used
|
||||
# in addition to the first matching regex or "DEFAULT".
|
||||
@ -1,78 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use Socket;
|
||||
|
||||
sub get_response_code {
|
||||
my ($expecting) = @_;
|
||||
# if ($flag_debug) {
|
||||
# print STDERR "SMTP: Waiting for code $expecting\n";
|
||||
# }
|
||||
while (1) {
|
||||
my $line = <S>;
|
||||
# if ($flag_debug) {
|
||||
# print STDERR "SMTP: $line";
|
||||
# }
|
||||
if ($line =~ /^[0-9]*-/) {
|
||||
next;
|
||||
}
|
||||
if ($line =~ /(^[0-9]*) /) {
|
||||
my $code = $1;
|
||||
if ($code == $expecting) {
|
||||
# if ($flag_debug) {
|
||||
# print STDERR "SMTP: got it.\n";
|
||||
# }
|
||||
return;
|
||||
}
|
||||
die "Bad response from SMTP -- $line";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
my @mailto;
|
||||
my $i;
|
||||
foreach $i (@ARGV) {
|
||||
# Deal with our "%" encoding of email addresses.
|
||||
if ($i !~ /\@/) {
|
||||
$i =~ s/%/\@/;
|
||||
}
|
||||
push(@mailto, $i);
|
||||
}
|
||||
|
||||
chop(my $hostname = `/bin/hostname`);
|
||||
|
||||
my ($remote,$port, $iaddr, $paddr, $proto, $line);
|
||||
|
||||
$remote = $mailhost;
|
||||
$port = 25;
|
||||
if ($port =~ /\D/) { $port = getservbyname($port, 'tcp') }
|
||||
die "No port" unless $port;
|
||||
$iaddr = inet_aton($remote) || die "no host: $remote";
|
||||
$paddr = sockaddr_in($port, $iaddr);
|
||||
|
||||
$proto = getprotobyname('tcp');
|
||||
socket(S, PF_INET, SOCK_STREAM, $proto) || die "socket: $!";
|
||||
connect(S, $paddr) || die "connect: $!";
|
||||
select(S); $| = 1; select(STDOUT);
|
||||
|
||||
get_response_code(220);
|
||||
print S "EHLO $hostname\n";
|
||||
get_response_code(250);
|
||||
print S "MAIL FROM: cvs-notify-daemon\@$hostname\n";
|
||||
get_response_code(250);
|
||||
foreach $i (@mailto) {
|
||||
print S "RCPT TO: $i\n";
|
||||
get_response_code(250);
|
||||
}
|
||||
print S "DATA\n";
|
||||
get_response_code(354);
|
||||
# Get one line starting with "354 ".
|
||||
print S "Subject: CVS notification\n";
|
||||
print S "To: " . join(',', @mailto) . "\n";
|
||||
print S "\n";
|
||||
while (<STDIN>) {
|
||||
print S $_;
|
||||
}
|
||||
print S ".\n";
|
||||
get_response_code(250);
|
||||
print S "QUIT\n";
|
||||
close(S);
|
||||
@ -1,20 +0,0 @@
|
||||
# The "taginfo" file is used to control pre-tag checks.
|
||||
# The filter on the right is invoked with the following arguments:
|
||||
#
|
||||
# $1 -- tagname
|
||||
# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d
|
||||
# $3 -- repository
|
||||
# $4-> file revision [file revision ...]
|
||||
#
|
||||
# A non-zero exit of the filter program will cause the tag to be aborted.
|
||||
#
|
||||
# The first entry on a line is a regular expression which is tested
|
||||
# against the directory that the change is being committed to, relative
|
||||
# to the $CVSROOT. For the first match that is found, then the remainder
|
||||
# of the line is the name of the filter to run.
|
||||
#
|
||||
# If the repository name does not match any of the regular expressions in this
|
||||
# file, the "DEFAULT" line is used, if it is specified.
|
||||
#
|
||||
# If the name "ALL" appears as a regular expression it is always used
|
||||
# in addition to the first matching regex or "DEFAULT".
|
||||
@ -1,21 +0,0 @@
|
||||
# The "verifymsg" file is used to allow verification of logging
|
||||
# information. It works best when a template (as specified in the
|
||||
# rcsinfo file) is provided for the logging procedure. Given a
|
||||
# template with locations for, a bug-id number, a list of people who
|
||||
# reviewed the code before it can be checked in, and an external
|
||||
# process to catalog the differences that were code reviewed, the
|
||||
# following test can be applied to the code:
|
||||
#
|
||||
# Making sure that the entered bug-id number is correct.
|
||||
# Validating that the code that was reviewed is indeed the code being
|
||||
# checked in (using the bug-id number or a seperate review
|
||||
# number to identify this particular code set.).
|
||||
#
|
||||
# If any of the above test failed, then the commit would be aborted.
|
||||
#
|
||||
# Actions such as mailing a copy of the report to each reviewer are
|
||||
# better handled by an entry in the loginfo file.
|
||||
#
|
||||
# One thing that should be noted is the the ALL keyword is not
|
||||
# supported. There can be only one entry that matches a given
|
||||
# repository.
|
||||
@ -1,744 +0,0 @@
|
||||
/*
|
||||
* The nsinstall command for OS/2
|
||||
*
|
||||
* Our gmake makefiles use the nsinstall command to create the
|
||||
* object directories or installing headers and libs to ns/dist.
|
||||
* The shmsdos shell has nsinstall as a built-in command. However,
|
||||
* if we use another shell like MKS toolkit's sh, we need to have
|
||||
* the nsinstall command separately.
|
||||
*
|
||||
* This file was generated by modifying the Windows nsinstall.c.
|
||||
*
|
||||
* To build, say
|
||||
* icc nsinstall.c
|
||||
*/
|
||||
|
||||
#include <direct.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#define INCL_DOSFILEMGR
|
||||
#define INCL_DOSERRORS
|
||||
#define INCL_WINERRORS
|
||||
#include <os2.h>
|
||||
#pragma hdrstop
|
||||
|
||||
/*
|
||||
* sh_FileFcn --
|
||||
*
|
||||
* A function that operates on a file. The pathname is either
|
||||
* absolute or relative to the current directory, and contains
|
||||
* no wildcard characters such as * and ?. Additional arguments
|
||||
* can be passed to the function via the arg pointer.
|
||||
*/
|
||||
|
||||
typedef BOOL (*sh_FileFcn)(
|
||||
char *pathName,
|
||||
FILEFINDBUF3 *fileData,
|
||||
void *arg);
|
||||
|
||||
static int shellCp (char **pArgv);
|
||||
static int shellNsinstall (char **pArgv);
|
||||
static int shellMkdir (char **pArgv);
|
||||
static BOOL sh_EnumerateFiles(const char *pattern, const char *where,
|
||||
sh_FileFcn fileFcn, void *arg, int *nFiles);
|
||||
static const char *sh_GetLastErrorMessage(void);
|
||||
static BOOL sh_DoCopy(char *srcFileName, ULONG srcFileAttributes,
|
||||
char *dstFileName, ULONG dstFileAttributes,
|
||||
int force, int recursive);
|
||||
|
||||
static ULONG GetFileAttributes(PSZ pszFileName);
|
||||
static APIRET SetFileAttributes(PSZ pszFileName, ULONG ulFileAttributes);
|
||||
|
||||
/* changes all forward slashes in token to back slashes */
|
||||
void changeForwardSlashesTpBackSlashes ( char *arg )
|
||||
{
|
||||
if ( arg == NULL )
|
||||
return;
|
||||
|
||||
while ( *arg ) {
|
||||
if ( *arg == '/' )
|
||||
*arg = '\\';
|
||||
arg++;
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[ ])
|
||||
{
|
||||
return shellNsinstall ( argv + 1 );
|
||||
}
|
||||
|
||||
static int
|
||||
shellNsinstall (char **pArgv)
|
||||
{
|
||||
int retVal = 0; /* exit status */
|
||||
int dirOnly = 0; /* 1 if and only if -D is specified */
|
||||
char **pSrc;
|
||||
char **pDst;
|
||||
int len;
|
||||
|
||||
/*
|
||||
* Process the command-line options. We ignore the
|
||||
* options except for -D. Some options, such as -m,
|
||||
* are followed by an argument. We need to skip the
|
||||
* argument too.
|
||||
*/
|
||||
while ( *pArgv && **pArgv == '-' ) {
|
||||
char c = (*pArgv)[1]; /* The char after '-' */
|
||||
|
||||
if ( c == 'D' ) {
|
||||
dirOnly = 1;
|
||||
} else if ( c == 'm' ) {
|
||||
pArgv++; /* skip the next argument */
|
||||
}
|
||||
pArgv++;
|
||||
}
|
||||
|
||||
if ( !dirOnly ) {
|
||||
/* There are files to install. Get source files */
|
||||
if ( *pArgv ) {
|
||||
pSrc = pArgv++;
|
||||
} else {
|
||||
fprintf( stderr, "nsinstall: not enough arguments\n");
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
/* Get to last token to find destination directory */
|
||||
if ( *pArgv ) {
|
||||
pDst = pArgv++;
|
||||
if ( dirOnly && *pArgv ) {
|
||||
fprintf( stderr, "nsinstall: too many arguments with -D\n");
|
||||
return 3;
|
||||
}
|
||||
} else {
|
||||
fprintf( stderr, "nsinstall: not enough arguments\n");
|
||||
return 3;
|
||||
}
|
||||
while ( *pArgv )
|
||||
pDst = pArgv++;
|
||||
|
||||
/* remove trailing slash from desination directory */
|
||||
len = strlen( *pDst );
|
||||
if ( pDst[0][len-1] == '/' )
|
||||
pDst[0][len-1] = '\0';
|
||||
|
||||
retVal = shellMkdir ( pDst );
|
||||
if ( retVal )
|
||||
return retVal;
|
||||
if ( !dirOnly )
|
||||
retVal = shellCp ( pSrc );
|
||||
return retVal;
|
||||
}
|
||||
|
||||
static int
|
||||
shellMkdir (char **pArgv)
|
||||
{
|
||||
int retVal = 0; /* assume valid return */
|
||||
char *arg;
|
||||
char *pArg;
|
||||
char path[CCHMAXPATH];
|
||||
char tmpPath[CCHMAXPATH];
|
||||
char *pTmpPath = tmpPath;
|
||||
|
||||
/* All the options are simply ignored in this implementation */
|
||||
while ( *pArgv && **pArgv == '-' ) {
|
||||
if ( (*pArgv)[1] == 'm' ) {
|
||||
pArgv++; /* skip the next argument (mode) */
|
||||
}
|
||||
pArgv++;
|
||||
}
|
||||
|
||||
while ( *pArgv ) {
|
||||
arg = *pArgv;
|
||||
changeForwardSlashesTpBackSlashes ( arg );
|
||||
pArg = arg;
|
||||
pTmpPath = tmpPath;
|
||||
while ( 1 ) {
|
||||
/* create part of path */
|
||||
while ( *pArg ) {
|
||||
*pTmpPath++ = *pArg++;
|
||||
if ( *pArg == '\\' )
|
||||
break;
|
||||
}
|
||||
*pTmpPath = '\0';
|
||||
|
||||
/* check if directory alreay exists */
|
||||
_getcwd ( path, sizeof (path) );
|
||||
if (( _chdir ( tmpPath ) != -1 ) || ((tmpPath[1] == ':') && (tmpPath[2] == '\0'))) {
|
||||
_chdir ( path );
|
||||
} else {
|
||||
if ( _mkdir ( tmpPath ) == -1 ) {
|
||||
// while ( waitForDebug );
|
||||
printf ( "%s: ", tmpPath );
|
||||
perror ( "Could not create the directory" );
|
||||
retVal = 3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( *pArg == '\0' ) /* complete path? */
|
||||
break;
|
||||
/* loop for next directory */
|
||||
}
|
||||
|
||||
pArgv++;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
static const char *
|
||||
sh_GetLastErrorMessage()
|
||||
{
|
||||
static char buf[128];
|
||||
ERRORID error = WinGetLastError(0);
|
||||
|
||||
switch (ERRORIDSEV(error))
|
||||
{
|
||||
case SEVERITY_ERROR:
|
||||
{
|
||||
sprintf( buf, "error %d", ERRORIDERROR(error));
|
||||
break;
|
||||
}
|
||||
case SEVERITY_SEVERE:
|
||||
{
|
||||
sprintf( buf, "severe error %d", ERRORIDERROR(error));
|
||||
break;
|
||||
}
|
||||
case SEVERITY_UNRECOVERABLE:
|
||||
{
|
||||
sprintf( buf, "unrecoverable error %d", ERRORIDERROR(error));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
/*
|
||||
* struct sh_FileData --
|
||||
*
|
||||
* A pointer to the sh_FileData structure is passed into sh_RecordFileData,
|
||||
* which will fill in the fields.
|
||||
*/
|
||||
|
||||
struct sh_FileData {
|
||||
char pathName[CCHMAXPATH];
|
||||
ULONG attrFile;
|
||||
};
|
||||
|
||||
/*
|
||||
* sh_RecordFileData --
|
||||
*
|
||||
* Record the pathname and attributes of the file in
|
||||
* the sh_FileData structure pointed to by arg.
|
||||
*
|
||||
* Always return TRUE (successful completion).
|
||||
*
|
||||
* This function is intended to be passed into sh_EnumerateFiles
|
||||
* to see if a certain pattern expands to exactly one file/directory,
|
||||
* and if so, record its pathname and attributes.
|
||||
*/
|
||||
|
||||
static BOOL
|
||||
sh_RecordFileData(char *pathName, FILEFINDBUF3 *findData, void *arg)
|
||||
{
|
||||
struct sh_FileData *fData = (struct sh_FileData *) arg;
|
||||
|
||||
strcpy(fData->pathName, pathName);
|
||||
fData->attrFile = findData->attrFile;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
sh_DoCopy(char *srcFileName,
|
||||
ULONG srcFileAttributes,
|
||||
char *dstFileName,
|
||||
ULONG dstFileAttributes,
|
||||
int force,
|
||||
int recursive
|
||||
)
|
||||
{
|
||||
if (dstFileAttributes != 0xFFFFFFFF) {
|
||||
if ((dstFileAttributes & FILE_READONLY) && force) {
|
||||
dstFileAttributes &= ~FILE_READONLY;
|
||||
SetFileAttributes(dstFileName, dstFileAttributes);
|
||||
}
|
||||
}
|
||||
|
||||
if (srcFileAttributes & FILE_DIRECTORY) {
|
||||
fprintf(stderr, "nsinstall: %s is a directory\n",
|
||||
srcFileName);
|
||||
return FALSE;
|
||||
} else {
|
||||
if (DosCopy(srcFileName, dstFileName, DCPY_EXISTING) != NO_ERROR) {
|
||||
fprintf(stderr, "nsinstall: cannot copy %s to %s: %s\n",
|
||||
srcFileName, dstFileName, sh_GetLastErrorMessage());
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* struct sh_CpCmdArg --
|
||||
*
|
||||
* A pointer to the sh_CpCmdArg structure is passed into sh_CpFileCmd.
|
||||
* The sh_CpCmdArg contains information about the cp command, and
|
||||
* provide a buffer for constructing the destination file name.
|
||||
*/
|
||||
|
||||
struct sh_CpCmdArg {
|
||||
int force; /* -f option, ok to overwrite an existing
|
||||
* read-only destination file */
|
||||
int recursive; /* -r or -R option, recursively copy
|
||||
* directories. Note: this field is not used
|
||||
* by nsinstall and should always be 0. */
|
||||
char *dstFileName; /* a buffer for constructing the destination
|
||||
* file name */
|
||||
char *dstFileNameMarker; /* points to where in the dstFileName buffer
|
||||
* we should write the file component of the
|
||||
* destination file */
|
||||
};
|
||||
|
||||
/*
|
||||
* sh_CpFileCmd --
|
||||
*
|
||||
* Copy a file to the destination directory
|
||||
*
|
||||
* This function is intended to be passed into sh_EnumerateFiles to
|
||||
* copy all the files specified by the pattern to the destination
|
||||
* directory.
|
||||
*
|
||||
* Return TRUE if the file is successfully copied, and FALSE otherwise.
|
||||
*/
|
||||
|
||||
static BOOL
|
||||
sh_CpFileCmd(char *pathName, FILEFINDBUF3 *findData, void *cpArg)
|
||||
{
|
||||
BOOL retVal = TRUE;
|
||||
struct sh_CpCmdArg *arg = (struct sh_CpCmdArg *) cpArg;
|
||||
|
||||
strcpy(arg->dstFileNameMarker, findData->achName);
|
||||
return sh_DoCopy(pathName, findData->attrFile,
|
||||
arg->dstFileName, GetFileAttributes(arg->dstFileName),
|
||||
arg->force, arg->recursive);
|
||||
}
|
||||
|
||||
static int
|
||||
shellCp (char **pArgv)
|
||||
{
|
||||
int retVal = 0;
|
||||
char **pSrc;
|
||||
char **pDst;
|
||||
struct sh_CpCmdArg arg;
|
||||
struct sh_FileData dstData;
|
||||
int dstIsDir = 0;
|
||||
int n;
|
||||
|
||||
arg.force = 0;
|
||||
arg.recursive = 0;
|
||||
arg.dstFileName = dstData.pathName;
|
||||
arg.dstFileNameMarker = 0;
|
||||
|
||||
while (*pArgv && **pArgv == '-') {
|
||||
char *p = *pArgv;
|
||||
|
||||
while (*(++p)) {
|
||||
if (*p == 'f') {
|
||||
arg.force = 1;
|
||||
}
|
||||
}
|
||||
pArgv++;
|
||||
}
|
||||
|
||||
/* the first source file */
|
||||
if (*pArgv) {
|
||||
pSrc = pArgv++;
|
||||
} else {
|
||||
fprintf(stderr, "nsinstall: not enough arguments\n");
|
||||
return 3;
|
||||
}
|
||||
|
||||
/* get to the last token to find destination */
|
||||
if (*pArgv) {
|
||||
pDst = pArgv++;
|
||||
} else {
|
||||
fprintf(stderr, "nsinstall: not enough arguments\n");
|
||||
return 3;
|
||||
}
|
||||
while (*pArgv) {
|
||||
pDst = pArgv++;
|
||||
}
|
||||
|
||||
/*
|
||||
* The destination pattern must unambiguously expand to exactly
|
||||
* one file or directory.
|
||||
*/
|
||||
|
||||
changeForwardSlashesTpBackSlashes(*pDst);
|
||||
sh_EnumerateFiles(*pDst, *pDst, sh_RecordFileData, &dstData, &n);
|
||||
assert(n >= 0);
|
||||
if (n == 1) {
|
||||
/*
|
||||
* Is the destination a file or directory?
|
||||
*/
|
||||
|
||||
if (dstData.attrFile & FILE_DIRECTORY) {
|
||||
dstIsDir = 1;
|
||||
}
|
||||
} else if (n > 1) {
|
||||
fprintf(stderr, "nsinstall: %s: ambiguous destination file "
|
||||
"or directory\n", *pDst);
|
||||
return 3;
|
||||
} else {
|
||||
/*
|
||||
* n == 0, meaning that destination file or directory does
|
||||
* not exist. In this case the destination file directory
|
||||
* name must be fully specified.
|
||||
*/
|
||||
|
||||
char *p;
|
||||
|
||||
for (p = *pDst; *p; p++) {
|
||||
if (*p == '*' || *p == '?') {
|
||||
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
|
||||
*pDst);
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Do not include the trailing \, if any, unless it is a root
|
||||
* directory (\ or X:\).
|
||||
*/
|
||||
|
||||
if (p > *pDst && p[-1] == '\\' && p != *pDst + 1 && p[-2] != ':') {
|
||||
p[-1] = '\0';
|
||||
}
|
||||
strcpy(dstData.pathName, *pDst);
|
||||
dstData.attrFile = 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
/*
|
||||
* If there are two or more source files, the destination has
|
||||
* to be a directory.
|
||||
*/
|
||||
|
||||
if (pDst - pSrc > 1 && !dstIsDir) {
|
||||
fprintf(stderr, "nsinstall: cannot copy more than"
|
||||
" one file to the same destination file\n");
|
||||
return 3;
|
||||
}
|
||||
|
||||
if (dstIsDir) {
|
||||
arg.dstFileNameMarker = arg.dstFileName + strlen(arg.dstFileName);
|
||||
|
||||
/*
|
||||
* Now arg.dstFileNameMarker is pointing to the null byte at the
|
||||
* end of string. We want to make sure that there is a \ at the
|
||||
* end of string, and arg.dstFileNameMarker should point right
|
||||
* after that \.
|
||||
*/
|
||||
|
||||
if (arg.dstFileNameMarker[-1] != '\\') {
|
||||
*(arg.dstFileNameMarker++) = '\\';
|
||||
}
|
||||
}
|
||||
|
||||
if (!dstIsDir) {
|
||||
struct sh_FileData srcData;
|
||||
|
||||
assert(pDst - pSrc == 1);
|
||||
changeForwardSlashesTpBackSlashes(*pSrc);
|
||||
sh_EnumerateFiles(*pSrc, *pSrc, sh_RecordFileData, &srcData, &n);
|
||||
if (n == 0) {
|
||||
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
|
||||
*pSrc);
|
||||
retVal = 3;
|
||||
} else if (n > 1) {
|
||||
fprintf(stderr, "nsinstall: cannot copy more than one file or "
|
||||
"directory to the same destination\n");
|
||||
retVal = 3;
|
||||
} else {
|
||||
assert(n == 1);
|
||||
if (sh_DoCopy(srcData.pathName, srcData.attrFile,
|
||||
dstData.pathName, dstData.attrFile,
|
||||
arg.force, arg.recursive) == FALSE) {
|
||||
retVal = 3;
|
||||
}
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
for ( ; *pSrc != *pDst; pSrc++) {
|
||||
BOOL rv;
|
||||
|
||||
changeForwardSlashesTpBackSlashes(*pSrc);
|
||||
rv = sh_EnumerateFiles(*pSrc, *pSrc, sh_CpFileCmd, &arg, &n);
|
||||
if (rv == FALSE) {
|
||||
retVal = 3;
|
||||
} else {
|
||||
if (n == 0) {
|
||||
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
|
||||
*pSrc);
|
||||
retVal = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* sh_EnumerateFiles --
|
||||
*
|
||||
* Enumerate all the files in the specified pattern, which is a pathname
|
||||
* containing possibly wildcard characters such as * and ?. fileFcn
|
||||
* is called on each file, passing the expanded file name, a pointer
|
||||
* to the file's FILEFINDBUF3, and the arg pointer.
|
||||
*
|
||||
* It is assumed that there are no wildcard characters before the
|
||||
* character pointed to by 'where'.
|
||||
*
|
||||
* On return, *nFiles stores the number of files enumerated. *nFiles is
|
||||
* set to this number whether sh_EnumerateFiles or 'fileFcn' succeeds
|
||||
* or not.
|
||||
*
|
||||
* Return TRUE if the files are successfully enumerated and all
|
||||
* 'fileFcn' invocations succeeded. Return FALSE if something went
|
||||
* wrong.
|
||||
*/
|
||||
|
||||
static BOOL sh_EnumerateFiles(
|
||||
const char *pattern,
|
||||
const char *where,
|
||||
sh_FileFcn fileFcn,
|
||||
void *arg,
|
||||
int *nFiles
|
||||
)
|
||||
{
|
||||
FILEFINDBUF3 fileData = {0};
|
||||
HDIR hSearch;
|
||||
APIRET ulrc;
|
||||
ULONG ulFindCount = 1;
|
||||
const char *src;
|
||||
char *dst;
|
||||
char fileName[CCHMAXPATH];
|
||||
char *fileNameMarker = fileName;
|
||||
char *oldFileNameMarker;
|
||||
BOOL hasWildcard = FALSE;
|
||||
BOOL retVal = TRUE;
|
||||
BOOL patternEndsInDotStar = FALSE;
|
||||
BOOL patternEndsInDot = FALSE; /* a special case of
|
||||
* patternEndsInDotStar */
|
||||
int numDotsInPattern;
|
||||
int len;
|
||||
|
||||
/*
|
||||
* Windows expands patterns ending in ".", ".*", ".**", etc.
|
||||
* differently from the glob expansion on Unix. For example,
|
||||
* both "foo." and "foo.*" match "foo", and "*.*" matches
|
||||
* everything, including filenames with no dots. So we need
|
||||
* to throw away extra files returned by the FindNextFile()
|
||||
* function. We require that a matched filename have at least
|
||||
* the number of dots in the pattern.
|
||||
*/
|
||||
len = strlen(pattern);
|
||||
if (len >= 2) {
|
||||
/* Start from the end of pattern and go backward */
|
||||
const char *p = &pattern[len - 1];
|
||||
|
||||
/* We can have zero or more *'s */
|
||||
while (p >= pattern && *p == '*') {
|
||||
p--;
|
||||
}
|
||||
if (p >= pattern && *p == '.') {
|
||||
patternEndsInDotStar = TRUE;
|
||||
if (p == &pattern[len - 1]) {
|
||||
patternEndsInDot = TRUE;
|
||||
}
|
||||
p--;
|
||||
numDotsInPattern = 1;
|
||||
while (p >= pattern && *p != '\\') {
|
||||
if (*p == '.') {
|
||||
numDotsInPattern++;
|
||||
}
|
||||
p--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*nFiles = 0;
|
||||
|
||||
/*
|
||||
* Copy pattern to fileName, but only up to and not including
|
||||
* the first \ after the first wildcard letter.
|
||||
*
|
||||
* Make fileNameMarker point to one of the following:
|
||||
* - the start of fileName, if fileName does not contain any \.
|
||||
* - right after the \ before the first wildcard letter, if there is
|
||||
* a wildcard character.
|
||||
* - right after the last \, if there is no wildcard character.
|
||||
*/
|
||||
|
||||
dst = fileName;
|
||||
src = pattern;
|
||||
while (src < where) {
|
||||
if (*src == '\\') {
|
||||
oldFileNameMarker = fileNameMarker;
|
||||
fileNameMarker = dst + 1;
|
||||
}
|
||||
*(dst++) = *(src++);
|
||||
}
|
||||
|
||||
while (*src && *src != '*' && *src != '?') {
|
||||
if (*src == '\\') {
|
||||
oldFileNameMarker = fileNameMarker;
|
||||
fileNameMarker = dst + 1;
|
||||
}
|
||||
*(dst++) = *(src++);
|
||||
}
|
||||
|
||||
if (*src) {
|
||||
/*
|
||||
* Must have seen the first wildcard letter
|
||||
*/
|
||||
|
||||
hasWildcard = TRUE;
|
||||
while (*src && *src != '\\') {
|
||||
*(dst++) = *(src++);
|
||||
}
|
||||
}
|
||||
|
||||
/* Now src points to either null or \ */
|
||||
|
||||
assert(*src == '\0' || *src == '\\');
|
||||
assert(hasWildcard || *src == '\0');
|
||||
*dst = '\0';
|
||||
|
||||
/*
|
||||
* If the pattern does not contain any wildcard characters, then
|
||||
* we don't need to go the FindFirstFile route.
|
||||
*/
|
||||
|
||||
if (!hasWildcard) {
|
||||
/*
|
||||
* See if it is the root directory, \, or X:\.
|
||||
*/
|
||||
|
||||
assert(!strcmp(fileName, pattern));
|
||||
assert(strlen(fileName) >= 1);
|
||||
if (dst[-1] == '\\' && (dst == fileName + 1 || dst[-2] == ':')) {
|
||||
fileData.achName[0] = '\0';
|
||||
} else {
|
||||
/*
|
||||
* Do not include the trailing \, if any
|
||||
*/
|
||||
|
||||
if (dst[-1] == '\\') {
|
||||
assert(*fileNameMarker == '\0');
|
||||
dst[-1] = '\0';
|
||||
fileNameMarker = oldFileNameMarker;
|
||||
}
|
||||
strcpy(fileData.achName, fileNameMarker);
|
||||
}
|
||||
fileData.attrFile = GetFileAttributes(fileName);
|
||||
if (fileData.attrFile == 0xFFFFFFFF) {
|
||||
return TRUE;
|
||||
}
|
||||
*nFiles = 1;
|
||||
return (*fileFcn)(fileName, &fileData, arg);
|
||||
}
|
||||
|
||||
hSearch = HDIR_CREATE;
|
||||
ulrc = DosFindFirst(fileName, &hSearch, FILE_NORMAL, &fileData, sizeof(fileData),
|
||||
&ulFindCount, FIL_STANDARD);
|
||||
if (ulrc == ERROR_INVALID_HANDLE) {
|
||||
return retVal;
|
||||
}
|
||||
|
||||
do {
|
||||
if (!strcmp(fileData.achName, ".")
|
||||
|| !strcmp(fileData.achName, "..")) {
|
||||
/*
|
||||
* Skip over . and ..
|
||||
*/
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (patternEndsInDotStar) {
|
||||
int nDots = 0;
|
||||
char *p = fileData.achName;
|
||||
while (*p) {
|
||||
if (*p == '.') {
|
||||
nDots++;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
/* Now p points to the null byte at the end of file name */
|
||||
if (patternEndsInDot && (p == fileData.achName
|
||||
|| p[-1] != '.')) {
|
||||
/*
|
||||
* File name does not end in dot. Skip this file.
|
||||
* Note: windows file name probably cannot end in dot,
|
||||
* but we do this check anyway.
|
||||
*/
|
||||
continue;
|
||||
}
|
||||
if (nDots < numDotsInPattern) {
|
||||
/*
|
||||
* Not enough dots in file name. Must be an extra
|
||||
* file in matching .* pattern. Skip this file.
|
||||
*/
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
strcpy(fileNameMarker, fileData.achName);
|
||||
if (*src && *(src + 1)) {
|
||||
/*
|
||||
* More to go. Recurse.
|
||||
*/
|
||||
|
||||
int n;
|
||||
|
||||
assert(*src == '\\');
|
||||
where = fileName + strlen(fileName);
|
||||
strcat(fileName, src);
|
||||
sh_EnumerateFiles(fileName, where, fileFcn, arg, &n);
|
||||
*nFiles += n;
|
||||
} else {
|
||||
assert(strchr(fileName, '*') == NULL);
|
||||
assert(strchr(fileName, '?') == NULL);
|
||||
(*nFiles)++;
|
||||
if ((*fileFcn)(fileName, &fileData, arg) == FALSE) {
|
||||
retVal = FALSE;
|
||||
}
|
||||
}
|
||||
} while (DosFindNext(hSearch, &fileData, sizeof(fileData), &ulFindCount) == NO_ERROR);
|
||||
|
||||
DosFindClose(hSearch);
|
||||
return retVal;
|
||||
}
|
||||
|
||||
static ULONG GetFileAttributes(PSZ pszFileName)
|
||||
{
|
||||
FILESTATUS3 fsts3;
|
||||
APIRET rc;
|
||||
|
||||
rc = DosQueryPathInfo(pszFileName,
|
||||
FIL_STANDARD,
|
||||
&fsts3,
|
||||
sizeof(FILESTATUS3));
|
||||
if (rc != NO_ERROR) {
|
||||
return -1;
|
||||
} /* endif */
|
||||
return fsts3.attrFile;
|
||||
}
|
||||
|
||||
static APIRET SetFileAttributes(PSZ pszFileName, ULONG ulFileAttributes)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -1,107 +0,0 @@
|
||||
/* GLIB - Library of useful routines for C programming
|
||||
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
/* acconfig.h
|
||||
This file is in the public domain.
|
||||
|
||||
Descriptive text for the C preprocessor macros that
|
||||
the distributed Autoconf macros can define.
|
||||
No software package will use all of them; autoheader copies the ones
|
||||
your configure.in uses into your configuration header file templates.
|
||||
|
||||
The entries are in sort -df order: alphabetical, case insensitive,
|
||||
ignoring punctuation (such as underscores). Although this order
|
||||
can split up related entries, it makes it easier to check whether
|
||||
a given entry is in the file.
|
||||
|
||||
Leave the following blank line there!! Autoheader needs it. */
|
||||
|
||||
|
||||
/* Other stuff */
|
||||
|
||||
#undef ENABLE_MEM_CHECK
|
||||
#undef ENABLE_MEM_PROFILE
|
||||
|
||||
#undef G_COMPILED_WITH_DEBUGGING
|
||||
#undef G_THREADS_ENABLED
|
||||
|
||||
#undef GLIB_SIZEOF_GMUTEX
|
||||
#undef GLIB_BYTE_CONTENTS_GMUTEX
|
||||
|
||||
#undef HAVE_BROKEN_WCTYPE
|
||||
#undef HAVE_DOPRNT
|
||||
#undef HAVE_FLOAT_H
|
||||
#undef HAVE_GETPWUID_R
|
||||
#undef HAVE_GETPWUID_R_POSIX
|
||||
#undef HAVE_LIMITS_H
|
||||
#undef HAVE_LONG_DOUBLE
|
||||
#undef HAVE_POLL
|
||||
#undef HAVE_PTHREAD_GETSPECIFIC_POSIX
|
||||
#undef HAVE_PWD_H
|
||||
#undef HAVE_SYS_PARAM_H
|
||||
#undef HAVE_SYS_POLL_H
|
||||
#undef HAVE_SYS_SELECT_H
|
||||
#undef HAVE_SYS_TIME_H
|
||||
#undef HAVE_SYS_TIMES_H
|
||||
#undef HAVE_STRERROR
|
||||
#undef HAVE_STRSIGNAL
|
||||
#undef HAVE_UNISTD_H
|
||||
#undef HAVE_VALUES_H
|
||||
#undef HAVE_WCHAR_H
|
||||
#undef HAVE_WCTYPE_H
|
||||
|
||||
#undef NO_FD_SET
|
||||
#undef NO_SYS_ERRLIST
|
||||
#undef NO_SYS_SIGLIST
|
||||
#undef NO_SYS_SIGLIST_DECL
|
||||
|
||||
#undef WITH_SYMBOL_UNDERSCORE
|
||||
|
||||
#undef SIZEOF_CHAR
|
||||
#undef SIZEOF_SHORT
|
||||
#undef SIZEOF_LONG
|
||||
#undef SIZEOF_INT
|
||||
#undef SIZEOF_VOID_P
|
||||
|
||||
#undef G_VA_COPY
|
||||
#undef G_VA_COPY_AS_ARRAY
|
||||
#undef G_HAVE___INLINE
|
||||
#undef G_HAVE___INLINE__
|
||||
#undef G_HAVE_INLINE
|
||||
|
||||
#undef GLIB_MAJOR_VERSION
|
||||
#undef GLIB_MINOR_VERSION
|
||||
#undef GLIB_MICRO_VERSION
|
||||
#undef GLIB_INTERFACE_AGE
|
||||
#undef GLIB_BINARY_AGE
|
||||
|
||||
#undef WIN32
|
||||
#undef NATIVE_WIN32
|
||||
|
||||
#undef G_THREAD_SOURCE
|
||||
|
||||
/* #undef PACKAGE */
|
||||
/* #undef VERSION */
|
||||
|
||||
|
||||
|
||||
|
||||
/* Leave that blank line there!! Autoheader needs it.
|
||||
If you're adding to this file, keep in mind:
|
||||
The entries are in sort -df order: alphabetical, case insensitive,
|
||||
ignoring punctuation (such as underscores). */
|
||||
@ -1,138 +0,0 @@
|
||||
/* config.h.win32. Handcrafted for Microsoft C */
|
||||
|
||||
/* Define to empty if the keyword does not work. */
|
||||
/* #undef const */
|
||||
|
||||
/* Define if you don't have vprintf but do have _doprnt. */
|
||||
/* #undef HAVE_DOPRNT */
|
||||
|
||||
/* Define if you have <unistd.h>. */
|
||||
/* #undef HAVE_UNISTD_H */
|
||||
|
||||
/* Define if you have the vprintf function. */
|
||||
#define HAVE_VPRINTF 1
|
||||
|
||||
/* Define if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Define if your processor stores words with the most significant
|
||||
byte first (like Motorola and SPARC, unlike Intel and VAX). */
|
||||
/* #undef WORDS_BIGENDIAN */
|
||||
|
||||
/* #undef ENABLE_MEM_CHECK */
|
||||
/* #undef ENABLE_MEM_PROFILE */
|
||||
|
||||
#define G_COMPILED_WITH_DEBUGGING "minimum"
|
||||
|
||||
/* #undef HAVE_BROKEN_WCTYPE */
|
||||
/* #undef HAVE_DOPRNT */
|
||||
#define HAVE_FLOAT_H 1
|
||||
#define HAVE_LIMITS_H 1
|
||||
/* #undef HAVE_LOCALTIME_R */
|
||||
/* #undef HAVE_LONG_DOUBLE */
|
||||
/* #undef HAVE_POLL */
|
||||
/* #undef HAVE_PWD_H */
|
||||
/* #undef HAVE_SYS_PARAM_H */
|
||||
/* #undef HAVE_SYS_POLL_H */
|
||||
/* #undef HAVE_SYS_SELECT_H */
|
||||
/* #undef HAVE_SYS_TIME_H */
|
||||
/* #undef HAVE_SYS_TIMES_H */
|
||||
#define HAVE_STRERROR 1
|
||||
/* #undef HAVE_STRSIGNAL */
|
||||
/* #undef HAVE_UNISTD_H */
|
||||
/* #undef HAVE_VSNPRINTF */
|
||||
/* #undef HAVE_VALUES_H */
|
||||
#define HAVE_VPRINTF 1
|
||||
#define HAVE_WCHAR_H 1
|
||||
#define HAVE_WCTYPE_H 1
|
||||
|
||||
/* #undef NO_FD_SET */
|
||||
/* #undef NO_SYS_ERRLIST */
|
||||
#define NO_SYS_SIGLIST 1
|
||||
|
||||
/* #undef G_VA_COPY */
|
||||
/* #undef G_VA_COPY_AS_ARRAY */
|
||||
#define G_HAVE___INLINE 1
|
||||
|
||||
#define GLIB_MAJOR_VERSION 1
|
||||
#define GLIB_MINOR_VERSION 2
|
||||
#define GLIB_MICRO_VERSION 0
|
||||
#define GLIB_INTERFACE_AGE 0
|
||||
#define GLIB_BINARY_AGE 0
|
||||
|
||||
#define G_THREAD_SOURCE "gthread-posix.c"
|
||||
#define G_THREADS_IMPL_POSIX
|
||||
#define HAVE_PTHREAD_GETSPECIFIC_POSIX 1
|
||||
|
||||
/* The number of bytes in a char. */
|
||||
#define SIZEOF_CHAR 1
|
||||
|
||||
/* The number of bytes in a int. */
|
||||
#define SIZEOF_INT 4
|
||||
|
||||
/* The number of bytes in a long. */
|
||||
#define SIZEOF_LONG 4
|
||||
|
||||
/* The number of bytes in a long long. */
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
|
||||
/* The number of bytes in a short. */
|
||||
#define SIZEOF_SHORT 2
|
||||
|
||||
/* The number of bytes in a void *. */
|
||||
#define SIZEOF_VOID_P 4
|
||||
|
||||
/* Define if you have the atexit function. */
|
||||
#define HAVE_ATEXIT 1
|
||||
|
||||
/* Define if you have the lstat function. */
|
||||
/* #undef HAVE_LSTAT */
|
||||
|
||||
/* Define if you have the memmove function. */
|
||||
#define HAVE_MEMMOVE 1
|
||||
|
||||
/* Define if you have the on_exit function. */
|
||||
/* #undef HAVE_ON_EXIT */
|
||||
|
||||
/* Define if you have the strcasecmp function. */
|
||||
/* #undef HAVE_STRCASECMP ^*/
|
||||
|
||||
/* Define if you have the strerror function. */
|
||||
#define HAVE_STRERROR 1
|
||||
|
||||
/* Define if you have the strsignal function. */
|
||||
/* #undef HAVE_STRSIGNAL */
|
||||
|
||||
/* Define if you have the vsnprintf function. */
|
||||
/* #undef HAVE_VSNPRINTF */
|
||||
|
||||
/* Define if you have the <float.h> header file. */
|
||||
#define HAVE_FLOAT_H 1
|
||||
|
||||
/* Define if you have the <limits.h> header file. */
|
||||
#define HAVE_LIMITS_H 1
|
||||
|
||||
/* Define if you have the <pwd.h> header file. */
|
||||
/* #undef HAVE_PWD_H */
|
||||
|
||||
/* Define if you have the <sys/param.h> header file. */
|
||||
/* #undef HAVE_SYS_PARAM_H */
|
||||
|
||||
/* Define if you have the <sys/select.h> header file. */
|
||||
/* #undef HAVE_SYS_SELECT_H */
|
||||
|
||||
/* Define if you have the <sys/time.h> header file. */
|
||||
/* #undef HAVE_SYS_TIME_H */
|
||||
|
||||
/* Define if you have the <sys/times.h> header file. */
|
||||
/* #undef HAVE_SYS_TIMES_H */
|
||||
|
||||
/* Define if you have the <unistd.h> header file. */
|
||||
/* #undef HAVE_UNISTD_H */
|
||||
|
||||
/* Define if you have the <values.h> header file. */
|
||||
/* #undef HAVE_VALUES_H */
|
||||
|
||||
/* Define if you have the w library (-lw). */
|
||||
/* #undef HAVE_LIBW */
|
||||
|
||||
@ -1,173 +0,0 @@
|
||||
/* glibconfig.h.win32 */
|
||||
/* Handcrafted for Microsoft C. */
|
||||
|
||||
#ifndef GLIBCONFIG_H
|
||||
#define GLIBCONFIG_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#ifdef _MSC_VER
|
||||
/* Make MSVC more pedantic, this is a recommended pragma list
|
||||
* from _Win32_Programming_ by Rector and Newcomer.
|
||||
*/
|
||||
#pragma warning(error:4002)
|
||||
#pragma warning(error:4003)
|
||||
#pragma warning(1:4010)
|
||||
#pragma warning(error:4013)
|
||||
#pragma warning(1:4016)
|
||||
#pragma warning(error:4020)
|
||||
#pragma warning(error:4021)
|
||||
#pragma warning(error:4027)
|
||||
#pragma warning(error:4029)
|
||||
#pragma warning(error:4033)
|
||||
#pragma warning(error:4035)
|
||||
#pragma warning(error:4045)
|
||||
#pragma warning(error:4047)
|
||||
#pragma warning(error:4049)
|
||||
#pragma warning(error:4053)
|
||||
#pragma warning(error:4071)
|
||||
#pragma warning(disable:4101)
|
||||
#pragma warning(error:4150)
|
||||
|
||||
#pragma warning(disable:4244) /* No possible loss of data warnings */
|
||||
#pragma warning(disable:4305) /* No truncation from int to char warnings */
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
#include <limits.h>
|
||||
#include <float.h>
|
||||
|
||||
#define G_MINFLOAT FLT_MIN
|
||||
#define G_MAXFLOAT FLT_MAX
|
||||
#define G_MINDOUBLE DBL_MIN
|
||||
#define G_MAXDOUBLE DBL_MAX
|
||||
#define G_MINSHORT SHRT_MIN
|
||||
#define G_MAXSHORT SHRT_MAX
|
||||
#define G_MININT INT_MIN
|
||||
#define G_MAXINT INT_MAX
|
||||
#define G_MINLONG LONG_MIN
|
||||
#define G_MAXLONG LONG_MAX
|
||||
|
||||
typedef signed char gint8;
|
||||
typedef unsigned char guint8;
|
||||
typedef signed short gint16;
|
||||
typedef unsigned short guint16;
|
||||
typedef signed int gint32;
|
||||
typedef unsigned int guint32;
|
||||
|
||||
#define G_HAVE_GINT64 1
|
||||
|
||||
typedef __int64 gint64;
|
||||
typedef unsigned __int64 guint64;
|
||||
|
||||
#define G_GINT64_CONSTANT(val) (val##i64)
|
||||
|
||||
#define GPOINTER_TO_INT(p) ((gint)(p))
|
||||
#define GPOINTER_TO_UINT(p) ((guint)(p))
|
||||
|
||||
#define GINT_TO_POINTER(i) ((gpointer)(i))
|
||||
#define GUINT_TO_POINTER(u) ((gpointer)(u))
|
||||
|
||||
#define g_ATEXIT(proc) (atexit (proc))
|
||||
|
||||
#define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END
|
||||
|
||||
#define G_HAVE_ALLOCA 1
|
||||
#define alloca _alloca
|
||||
|
||||
#define GLIB_MAJOR_VERSION 1
|
||||
#define GLIB_MINOR_VERSION 2
|
||||
#define GLIB_MICRO_VERSION 0
|
||||
|
||||
#ifdef __cplusplus
|
||||
#define G_HAVE_INLINE 1
|
||||
#else /* !__cplusplus */
|
||||
#define G_HAVE___INLINE 1
|
||||
#endif
|
||||
|
||||
#define G_THREADS_ENABLED
|
||||
/*
|
||||
* The following program can be used to determine the magic values below:
|
||||
* #include <stdio.h>
|
||||
* #include <pthread.h>
|
||||
* main(int argc, char **argv)
|
||||
* {
|
||||
* int i;
|
||||
* pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
|
||||
* printf ("sizeof (pthread_mutex_t) = %d\n", sizeof (pthread_mutex_t));
|
||||
* printf ("PTHREAD_MUTEX_INITIALIZER = ");
|
||||
* for (i = 0; i < sizeof (pthread_mutex_t); i++)
|
||||
* printf ("%u, ", (unsigned) ((char *) &m)[i]);
|
||||
* printf ("\n");
|
||||
* exit(0);
|
||||
* }
|
||||
*/
|
||||
|
||||
typedef struct _GStaticMutex GStaticMutex;
|
||||
struct _GStaticMutex
|
||||
{
|
||||
struct _GMutex *runtime_mutex;
|
||||
union {
|
||||
/* The size of the pad array should be sizeof (pthread_mutext_t) */
|
||||
/* This value corresponds to the 1999-01-24 version of pthreads-win32 */
|
||||
char pad[36];
|
||||
double dummy_double;
|
||||
void *dummy_pointer;
|
||||
long dummy_long;
|
||||
} aligned_pad_u;
|
||||
};
|
||||
/* This should be NULL followed by the bytes in PTHREAD_MUTEX_INITIALIZER */
|
||||
#define G_STATIC_MUTEX_INIT { NULL, { { 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } }
|
||||
#define g_static_mutex_get_mutex(mutex) \
|
||||
(g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \
|
||||
g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
|
||||
|
||||
#define G_BYTE_ORDER G_LITTLE_ENDIAN
|
||||
|
||||
#define GINT16_TO_LE(val) ((gint16) (val))
|
||||
#define GUINT16_TO_LE(val) ((guint16) (val))
|
||||
#define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val))
|
||||
#define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val))
|
||||
|
||||
#define GINT32_TO_LE(val) ((gint32) (val))
|
||||
#define GUINT32_TO_LE(val) ((guint32) (val))
|
||||
#define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val))
|
||||
#define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val))
|
||||
|
||||
#define GINT64_TO_LE(val) ((gint64) (val))
|
||||
#define GUINT64_TO_LE(val) ((guint64) (val))
|
||||
#define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val))
|
||||
#define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val))
|
||||
|
||||
#define GLONG_TO_LE(val) ((glong) GINT32_TO_LE (val))
|
||||
#define GULONG_TO_LE(val) ((gulong) GUINT32_TO_LE (val))
|
||||
#define GLONG_TO_BE(val) ((glong) GINT32_TO_BE (val))
|
||||
#define GULONG_TO_BE(val) ((gulong) GUINT32_TO_BE (val))
|
||||
|
||||
#define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val))
|
||||
#define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val))
|
||||
#define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val))
|
||||
#define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val))
|
||||
|
||||
#define GLIB_SYSDEF_POLLIN = 1
|
||||
#define GLIB_SYSDEF_POLLOUT = 4
|
||||
#define GLIB_SYSDEF_POLLPRI = 2
|
||||
#define GLIB_SYSDEF_POLLERR = 8
|
||||
#define GLIB_SYSDEF_POLLHUP = 16
|
||||
#define GLIB_SYSDEF_POLLNVAL = 32
|
||||
|
||||
#define G_HAVE_WCHAR_H 1
|
||||
#define G_HAVE_WCTYPE_H 1
|
||||
|
||||
/* Define if this is Win32, possibly using the Cygwin emulation layer. */
|
||||
#define WIN32 1
|
||||
|
||||
/* Define if this is Win32 without Cygwin. */
|
||||
#define NATIVE_WIN32 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* GLIBCONFIG_H */
|
||||
@ -1,827 +0,0 @@
|
||||
/**************************************************************************
|
||||
|
||||
IDL.h (IDL parse tree and namespace components)
|
||||
|
||||
Include wide character support before this, if necessary.
|
||||
|
||||
Copyright (C) 1998, 1999 Andrew T. Veliath
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
$Id: IDL.h,v 1.1 1999-04-08 20:04:26 mccabe%netscape.com Exp $
|
||||
|
||||
***************************************************************************/
|
||||
#ifndef __IDL_H
|
||||
#define __IDL_H
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* version */
|
||||
#define LIBIDL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
|
||||
#define LIBIDL_MAJOR_VERSION 0
|
||||
#define LIBIDL_MINOR_VERSION 6
|
||||
#define LIBIDL_MICRO_VERSION 3
|
||||
#define LIBIDL_VERSION_CODE LIBIDL_VERSION(0,6,3)
|
||||
|
||||
/* miscellaneous constants */
|
||||
#define IDL_SUCCESS 0
|
||||
#define IDL_ERROR 1
|
||||
#define IDL_WARNING1 2
|
||||
#define IDL_WARNING2 3
|
||||
#define IDL_WARNING3 4
|
||||
#define IDL_WARNINGMAX IDL_WARNING3
|
||||
|
||||
/* general parse flags */
|
||||
#define IDLF_VERBOSE (1UL << 0)
|
||||
#define IDLF_NO_EVAL_CONST (1UL << 1)
|
||||
#define IDLF_COMBINE_REOPENED_MODULES (1UL << 2)
|
||||
#define IDLF_PREFIX_FILENAME (1UL << 3)
|
||||
#define IDLF_IGNORE_FORWARDS (1UL << 4)
|
||||
#define IDLF_PEDANTIC (1UL << 5)
|
||||
|
||||
/* syntax extension parse flags */
|
||||
#define IDLF_TYPECODES (1UL << 16)
|
||||
#define IDLF_XPIDL (1UL << 17)
|
||||
|
||||
/* declaration specification flags */
|
||||
#define IDLF_DECLSPEC_EXIST (1UL << 0)
|
||||
#define IDLF_DECLSPEC_INHIBIT (1UL << 1)
|
||||
|
||||
/* output flags */
|
||||
#define IDLF_OUTPUT_NO_NEWLINES (1UL << 0)
|
||||
#define IDLF_OUTPUT_NO_QUALIFY_IDENTS (1UL << 1)
|
||||
#define IDLF_OUTPUT_PROPERTIES (1UL << 2)
|
||||
#define IDLF_OUTPUT_CODEFRAGS (1UL << 3)
|
||||
|
||||
#ifdef _WIN32
|
||||
# define IDL_EXPORT __declspec (dllexport)
|
||||
# define IDL_IMPORT __declspec (dllimport)
|
||||
#else
|
||||
# define IDL_EXPORT /* empty */
|
||||
# define IDL_IMPORT extern
|
||||
#endif
|
||||
|
||||
/* type casting checks */
|
||||
#define IDL_check_cast_enable(boolean) do { \
|
||||
IDL_IMPORT int __IDL_check_type_casts; \
|
||||
__IDL_check_type_casts = (boolean); \
|
||||
} while (0)
|
||||
#define IDL_CHECK_CAST(tree, thetype, name) \
|
||||
(IDL_check_type_cast(tree, thetype, \
|
||||
__FILE__, __LINE__, \
|
||||
G_GNUC_PRETTY_FUNCTION)->u.name)
|
||||
|
||||
#ifdef G_HAVE_GINT64
|
||||
# if G_MAXLONG > 0xffffffffUL
|
||||
# define IDL_LL "l"
|
||||
# else
|
||||
# define IDL_LL "ll"
|
||||
# endif
|
||||
typedef gint64 IDL_longlong_t;
|
||||
typedef guint64 IDL_ulonglong_t;
|
||||
#else
|
||||
# define IDL_LL "l"
|
||||
typedef long IDL_longlong_t;
|
||||
typedef unsigned long IDL_ulonglong_t;
|
||||
# warning 64-bit integer type not available, using 32-bit instead
|
||||
#endif /* G_HAVE_GINT64 */
|
||||
|
||||
typedef unsigned int IDL_declspec_t;
|
||||
typedef struct _IDL_tree_node IDL_tree_node;
|
||||
typedef struct _IDL_tree_node * IDL_tree;
|
||||
|
||||
struct _IDL_LIST {
|
||||
IDL_tree data;
|
||||
IDL_tree prev;
|
||||
IDL_tree next;
|
||||
IDL_tree _tail; /* Internal use, may not be valid */
|
||||
};
|
||||
|
||||
#define IDL_LIST(a) IDL_CHECK_CAST(a, IDLN_LIST, idl_list)
|
||||
extern IDL_tree IDL_list_new (IDL_tree data);
|
||||
extern IDL_tree IDL_list_concat (IDL_tree orig,
|
||||
IDL_tree append);
|
||||
extern IDL_tree IDL_list_remove (IDL_tree list,
|
||||
IDL_tree p);
|
||||
extern int IDL_list_length (IDL_tree list);
|
||||
extern IDL_tree IDL_list_nth (IDL_tree list,
|
||||
int n);
|
||||
|
||||
struct _IDL_GENTREE {
|
||||
IDL_tree data;
|
||||
GHashTable *siblings;
|
||||
GHashTable *children;
|
||||
GHashFunc hash_func;
|
||||
GCompareFunc key_compare_func;
|
||||
IDL_tree _import; /* Internal use, do not recurse */
|
||||
char *_cur_prefix; /* Internal use */
|
||||
};
|
||||
#define IDL_GENTREE(a) IDL_CHECK_CAST(a, IDLN_GENTREE, idl_gentree)
|
||||
extern IDL_tree IDL_gentree_new (GHashFunc hash_func,
|
||||
GCompareFunc key_compare_func,
|
||||
IDL_tree data);
|
||||
extern IDL_tree IDL_gentree_new_sibling (IDL_tree from,
|
||||
IDL_tree data);
|
||||
extern IDL_tree IDL_gentree_chain_sibling (IDL_tree from,
|
||||
IDL_tree data);
|
||||
extern IDL_tree IDL_gentree_chain_child (IDL_tree from,
|
||||
IDL_tree data);
|
||||
|
||||
struct _IDL_INTEGER {
|
||||
IDL_longlong_t value;
|
||||
};
|
||||
#define IDL_INTEGER(a) IDL_CHECK_CAST(a, IDLN_INTEGER, idl_integer)
|
||||
extern IDL_tree IDL_integer_new (IDL_longlong_t value);
|
||||
|
||||
struct _IDL_STRING {
|
||||
char *value;
|
||||
};
|
||||
#define IDL_STRING(a) IDL_CHECK_CAST(a, IDLN_STRING, idl_string)
|
||||
extern IDL_tree IDL_string_new (char *value);
|
||||
|
||||
struct _IDL_WIDE_STRING {
|
||||
wchar_t *value;
|
||||
};
|
||||
#define IDL_WIDE_STRING(a) IDL_CHECK_CAST(a, IDLN_WIDE_STRING, idl_wide_string)
|
||||
extern IDL_tree IDL_wide_string_new (wchar_t *value);
|
||||
|
||||
struct _IDL_CHAR {
|
||||
char *value;
|
||||
};
|
||||
#define IDL_CHAR(a) IDL_CHECK_CAST(a, IDLN_CHAR, idl_char)
|
||||
extern IDL_tree IDL_char_new (char *value);
|
||||
|
||||
struct _IDL_WIDE_CHAR {
|
||||
wchar_t *value;
|
||||
};
|
||||
#define IDL_WIDE_CHAR(a) IDL_CHECK_CAST(a, IDLN_WIDE_CHAR, idl_wide_char)
|
||||
extern IDL_tree IDL_wide_char_new (wchar_t *value);
|
||||
|
||||
struct _IDL_FIXED {
|
||||
char *value;
|
||||
};
|
||||
#define IDL_FIXED(a) IDL_CHECK_CAST(a, IDLN_FIXED, idl_fixed)
|
||||
extern IDL_tree IDL_fixed_new (char *value);
|
||||
|
||||
struct _IDL_FLOAT {
|
||||
double value;
|
||||
};
|
||||
#define IDL_FLOAT(a) IDL_CHECK_CAST(a, IDLN_FLOAT, idl_float)
|
||||
extern IDL_tree IDL_float_new (double value);
|
||||
|
||||
struct _IDL_BOOLEAN {
|
||||
unsigned value;
|
||||
};
|
||||
#define IDL_BOOLEAN(a) IDL_CHECK_CAST(a, IDLN_BOOLEAN, idl_boolean)
|
||||
extern IDL_tree IDL_boolean_new (unsigned value);
|
||||
|
||||
struct _IDL_IDENT {
|
||||
char *str;
|
||||
char *repo_id;
|
||||
GSList *comments;
|
||||
IDL_tree _ns_ref; /* Internal use, do not recurse */
|
||||
unsigned _flags; /* Internal use */
|
||||
#define IDLF_IDENT_CASE_MISMATCH_HIT (1UL << 0)
|
||||
};
|
||||
#define IDL_IDENT(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident)
|
||||
#define IDL_IDENT_TO_NS(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident._ns_ref)
|
||||
#define IDL_IDENT_REPO_ID(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident.repo_id)
|
||||
extern IDL_tree IDL_ident_new (char *str);
|
||||
extern void IDL_queue_new_ident_comment (const char *str);
|
||||
|
||||
enum IDL_float_type {
|
||||
IDL_FLOAT_TYPE_FLOAT,
|
||||
IDL_FLOAT_TYPE_DOUBLE,
|
||||
IDL_FLOAT_TYPE_LONGDOUBLE
|
||||
};
|
||||
|
||||
struct _IDL_TYPE_FLOAT {
|
||||
enum IDL_float_type f_type;
|
||||
};
|
||||
#define IDL_TYPE_FLOAT(a) IDL_CHECK_CAST(a, IDLN_TYPE_FLOAT, idl_type_float)
|
||||
extern IDL_tree IDL_type_float_new (enum IDL_float_type f_type);
|
||||
|
||||
struct _IDL_TYPE_FIXED {
|
||||
IDL_tree positive_int_const;
|
||||
IDL_tree integer_lit;
|
||||
};
|
||||
#define IDL_TYPE_FIXED(a) IDL_CHECK_CAST(a, IDLN_TYPE_FIXED, idl_type_fixed)
|
||||
extern IDL_tree IDL_type_fixed_new (IDL_tree positive_int_const,
|
||||
IDL_tree integer_lit);
|
||||
|
||||
enum IDL_integer_type {
|
||||
IDL_INTEGER_TYPE_SHORT,
|
||||
IDL_INTEGER_TYPE_LONG,
|
||||
IDL_INTEGER_TYPE_LONGLONG
|
||||
};
|
||||
|
||||
struct _IDL_TYPE_INTEGER {
|
||||
unsigned f_signed : 1;
|
||||
enum IDL_integer_type f_type;
|
||||
};
|
||||
#define IDL_TYPE_INTEGER(a) IDL_CHECK_CAST(a, IDLN_TYPE_INTEGER, idl_type_integer)
|
||||
extern IDL_tree IDL_type_integer_new (unsigned f_signed,
|
||||
enum IDL_integer_type f_type);
|
||||
|
||||
extern IDL_tree IDL_type_char_new (void);
|
||||
extern IDL_tree IDL_type_wide_char_new (void);
|
||||
extern IDL_tree IDL_type_boolean_new (void);
|
||||
extern IDL_tree IDL_type_octet_new (void);
|
||||
extern IDL_tree IDL_type_any_new (void);
|
||||
extern IDL_tree IDL_type_object_new (void);
|
||||
extern IDL_tree IDL_type_typecode_new (void);
|
||||
|
||||
struct _IDL_TYPE_STRING {
|
||||
IDL_tree positive_int_const;
|
||||
};
|
||||
#define IDL_TYPE_STRING(a) IDL_CHECK_CAST(a, IDLN_TYPE_STRING, idl_type_string)
|
||||
extern IDL_tree IDL_type_string_new (IDL_tree positive_int_const);
|
||||
|
||||
struct _IDL_TYPE_WIDE_STRING {
|
||||
IDL_tree positive_int_const;
|
||||
};
|
||||
#define IDL_TYPE_WIDE_STRING(a) IDL_CHECK_CAST(a, IDLN_TYPE_WIDE_STRING, idl_type_wide_string)
|
||||
extern IDL_tree IDL_type_wide_string_new (IDL_tree positive_int_const);
|
||||
|
||||
struct _IDL_TYPE_ENUM {
|
||||
IDL_tree ident;
|
||||
IDL_tree enumerator_list;
|
||||
};
|
||||
#define IDL_TYPE_ENUM(a) IDL_CHECK_CAST(a, IDLN_TYPE_ENUM, idl_type_enum)
|
||||
extern IDL_tree IDL_type_enum_new (IDL_tree ident,
|
||||
IDL_tree enumerator_list);
|
||||
|
||||
struct _IDL_TYPE_ARRAY {
|
||||
IDL_tree ident;
|
||||
IDL_tree size_list;
|
||||
};
|
||||
#define IDL_TYPE_ARRAY(a) IDL_CHECK_CAST(a, IDLN_TYPE_ARRAY, idl_type_array)
|
||||
extern IDL_tree IDL_type_array_new (IDL_tree ident,
|
||||
IDL_tree size_list);
|
||||
|
||||
struct _IDL_TYPE_SEQUENCE {
|
||||
IDL_tree simple_type_spec;
|
||||
IDL_tree positive_int_const;
|
||||
};
|
||||
#define IDL_TYPE_SEQUENCE(a) IDL_CHECK_CAST(a, IDLN_TYPE_SEQUENCE, idl_type_sequence)
|
||||
extern IDL_tree IDL_type_sequence_new (IDL_tree simple_type_spec,
|
||||
IDL_tree positive_int_const);
|
||||
|
||||
struct _IDL_TYPE_STRUCT {
|
||||
IDL_tree ident;
|
||||
IDL_tree member_list;
|
||||
};
|
||||
#define IDL_TYPE_STRUCT(a) IDL_CHECK_CAST(a, IDLN_TYPE_STRUCT, idl_type_struct)
|
||||
extern IDL_tree IDL_type_struct_new (IDL_tree ident,
|
||||
IDL_tree member_list);
|
||||
|
||||
struct _IDL_TYPE_UNION {
|
||||
IDL_tree ident;
|
||||
IDL_tree switch_type_spec;
|
||||
IDL_tree switch_body;
|
||||
};
|
||||
#define IDL_TYPE_UNION(a) IDL_CHECK_CAST(a, IDLN_TYPE_UNION, idl_type_union)
|
||||
extern IDL_tree IDL_type_union_new (IDL_tree ident,
|
||||
IDL_tree switch_type_spec,
|
||||
IDL_tree switch_body);
|
||||
struct _IDL_MEMBER {
|
||||
IDL_tree type_spec;
|
||||
IDL_tree dcls;
|
||||
};
|
||||
#define IDL_MEMBER(a) IDL_CHECK_CAST(a, IDLN_MEMBER, idl_member)
|
||||
extern IDL_tree IDL_member_new (IDL_tree type_spec,
|
||||
IDL_tree dcls);
|
||||
|
||||
struct _IDL_NATIVE {
|
||||
IDL_tree ident;
|
||||
char *user_type; /* XPIDL extension */
|
||||
};
|
||||
#define IDL_NATIVE(a) IDL_CHECK_CAST(a, IDLN_NATIVE, idl_native)
|
||||
extern IDL_tree IDL_native_new (IDL_tree ident);
|
||||
|
||||
|
||||
struct _IDL_TYPE_DCL {
|
||||
IDL_tree type_spec;
|
||||
IDL_tree dcls;
|
||||
};
|
||||
#define IDL_TYPE_DCL(a) IDL_CHECK_CAST(a, IDLN_TYPE_DCL, idl_type_dcl)
|
||||
extern IDL_tree IDL_type_dcl_new (IDL_tree type_spec,
|
||||
IDL_tree dcls);
|
||||
|
||||
struct _IDL_CONST_DCL {
|
||||
IDL_tree const_type;
|
||||
IDL_tree ident;
|
||||
IDL_tree const_exp;
|
||||
};
|
||||
#define IDL_CONST_DCL(a) IDL_CHECK_CAST(a, IDLN_CONST_DCL, idl_const_dcl)
|
||||
extern IDL_tree IDL_const_dcl_new (IDL_tree const_type,
|
||||
IDL_tree ident,
|
||||
IDL_tree const_exp);
|
||||
|
||||
struct _IDL_EXCEPT_DCL {
|
||||
IDL_tree ident;
|
||||
IDL_tree members;
|
||||
};
|
||||
#define IDL_EXCEPT_DCL(a) IDL_CHECK_CAST(a, IDLN_EXCEPT_DCL, idl_except_dcl)
|
||||
extern IDL_tree IDL_except_dcl_new (IDL_tree ident,
|
||||
IDL_tree members);
|
||||
|
||||
struct _IDL_ATTR_DCL {
|
||||
unsigned f_readonly : 1;
|
||||
IDL_tree param_type_spec;
|
||||
IDL_tree simple_declarations;
|
||||
};
|
||||
#define IDL_ATTR_DCL(a) IDL_CHECK_CAST(a, IDLN_ATTR_DCL, idl_attr_dcl)
|
||||
extern IDL_tree IDL_attr_dcl_new (unsigned f_readonly,
|
||||
IDL_tree param_type_spec,
|
||||
IDL_tree simple_declarations);
|
||||
|
||||
struct _IDL_OP_DCL {
|
||||
unsigned f_noscript : 1;
|
||||
unsigned f_oneway : 1;
|
||||
/* XPIDL extension (varags) */
|
||||
unsigned f_varargs : 1;
|
||||
IDL_tree op_type_spec;
|
||||
IDL_tree ident;
|
||||
IDL_tree parameter_dcls;
|
||||
IDL_tree raises_expr;
|
||||
IDL_tree context_expr;
|
||||
};
|
||||
#define IDL_OP_DCL(a) IDL_CHECK_CAST(a, IDLN_OP_DCL, idl_op_dcl)
|
||||
extern IDL_tree IDL_op_dcl_new (unsigned f_oneway,
|
||||
IDL_tree op_type_spec,
|
||||
IDL_tree ident,
|
||||
IDL_tree parameter_dcls,
|
||||
IDL_tree raises_expr,
|
||||
IDL_tree context_expr);
|
||||
|
||||
enum IDL_param_attr {
|
||||
IDL_PARAM_IN,
|
||||
IDL_PARAM_OUT,
|
||||
IDL_PARAM_INOUT
|
||||
};
|
||||
|
||||
struct _IDL_PARAM_DCL {
|
||||
enum IDL_param_attr attr;
|
||||
IDL_tree param_type_spec;
|
||||
IDL_tree simple_declarator;
|
||||
};
|
||||
#define IDL_PARAM_DCL(a) IDL_CHECK_CAST(a, IDLN_PARAM_DCL, idl_param_dcl)
|
||||
extern IDL_tree IDL_param_dcl_new (enum IDL_param_attr attr,
|
||||
IDL_tree param_type_spec,
|
||||
IDL_tree simple_declarator);
|
||||
|
||||
struct _IDL_CASE_STMT {
|
||||
IDL_tree labels;
|
||||
IDL_tree element_spec;
|
||||
};
|
||||
#define IDL_CASE_STMT(a) IDL_CHECK_CAST(a, IDLN_CASE_STMT, idl_case_stmt)
|
||||
extern IDL_tree IDL_case_stmt_new (IDL_tree labels,
|
||||
IDL_tree element_spec);
|
||||
|
||||
struct _IDL_INTERFACE {
|
||||
IDL_tree ident;
|
||||
IDL_tree inheritance_spec;
|
||||
IDL_tree body;
|
||||
};
|
||||
#define IDL_INTERFACE(a) IDL_CHECK_CAST(a, IDLN_INTERFACE, idl_interface)
|
||||
extern IDL_tree IDL_interface_new (IDL_tree ident,
|
||||
IDL_tree inheritance_spec,
|
||||
IDL_tree body);
|
||||
|
||||
struct _IDL_FORWARD_DCL {
|
||||
IDL_tree ident;
|
||||
};
|
||||
#define IDL_FORWARD_DCL(a) IDL_CHECK_CAST(a, IDLN_FORWARD_DCL, idl_forward_dcl)
|
||||
extern IDL_tree IDL_forward_dcl_new (IDL_tree ident);
|
||||
|
||||
struct _IDL_MODULE {
|
||||
IDL_tree ident;
|
||||
IDL_tree definition_list;
|
||||
};
|
||||
#define IDL_MODULE(a) IDL_CHECK_CAST(a, IDLN_MODULE, idl_module)
|
||||
extern IDL_tree IDL_module_new (IDL_tree ident,
|
||||
IDL_tree definition_list);
|
||||
|
||||
enum IDL_binop {
|
||||
IDL_BINOP_OR,
|
||||
IDL_BINOP_XOR,
|
||||
IDL_BINOP_AND,
|
||||
IDL_BINOP_SHR,
|
||||
IDL_BINOP_SHL,
|
||||
IDL_BINOP_ADD,
|
||||
IDL_BINOP_SUB,
|
||||
IDL_BINOP_MULT,
|
||||
IDL_BINOP_DIV,
|
||||
IDL_BINOP_MOD
|
||||
};
|
||||
|
||||
struct _IDL_BINOP {
|
||||
enum IDL_binop op;
|
||||
IDL_tree left, right;
|
||||
};
|
||||
#define IDL_BINOP(a) IDL_CHECK_CAST(a, IDLN_BINOP, idl_binop)
|
||||
extern IDL_tree IDL_binop_new (enum IDL_binop op,
|
||||
IDL_tree left,
|
||||
IDL_tree right);
|
||||
|
||||
enum IDL_unaryop {
|
||||
IDL_UNARYOP_PLUS,
|
||||
IDL_UNARYOP_MINUS,
|
||||
IDL_UNARYOP_COMPLEMENT
|
||||
};
|
||||
|
||||
struct _IDL_UNARYOP {
|
||||
enum IDL_unaryop op;
|
||||
IDL_tree operand;
|
||||
};
|
||||
#define IDL_UNARYOP(a) IDL_CHECK_CAST(a, IDLN_UNARYOP, idl_unaryop)
|
||||
extern IDL_tree IDL_unaryop_new (enum IDL_unaryop op,
|
||||
IDL_tree operand);
|
||||
|
||||
/* XPIDL code fragments extension. */
|
||||
struct _IDL_CODEFRAG {
|
||||
char *desc;
|
||||
GSList *lines;
|
||||
};
|
||||
#define IDL_CODEFRAG(a) IDL_CHECK_CAST(a, IDLN_CODEFRAG, idl_codefrag)
|
||||
extern IDL_tree IDL_codefrag_new (char *desc,
|
||||
GSList *lines);
|
||||
|
||||
/*
|
||||
* IDL_tree_type - Enumerations of node types
|
||||
*
|
||||
* Note this enumerator list is subject to change in the future. A program should not need
|
||||
* more than a recompilation to adjust for a change in this list, so instead of using a
|
||||
* statically initialized jumptable, allocate an array of size IDLN_LAST and assign the
|
||||
* elements manually.
|
||||
*/
|
||||
typedef enum {
|
||||
IDLN_NONE,
|
||||
IDLN_ANY,
|
||||
|
||||
IDLN_LIST,
|
||||
IDLN_GENTREE,
|
||||
IDLN_INTEGER,
|
||||
IDLN_STRING,
|
||||
IDLN_WIDE_STRING,
|
||||
IDLN_CHAR,
|
||||
IDLN_WIDE_CHAR,
|
||||
IDLN_FIXED,
|
||||
IDLN_FLOAT,
|
||||
IDLN_BOOLEAN,
|
||||
IDLN_IDENT,
|
||||
IDLN_TYPE_DCL,
|
||||
IDLN_CONST_DCL,
|
||||
IDLN_EXCEPT_DCL,
|
||||
IDLN_ATTR_DCL,
|
||||
IDLN_OP_DCL,
|
||||
IDLN_PARAM_DCL,
|
||||
IDLN_FORWARD_DCL,
|
||||
IDLN_TYPE_INTEGER,
|
||||
IDLN_TYPE_FLOAT,
|
||||
IDLN_TYPE_FIXED,
|
||||
IDLN_TYPE_CHAR,
|
||||
IDLN_TYPE_WIDE_CHAR,
|
||||
IDLN_TYPE_STRING,
|
||||
IDLN_TYPE_WIDE_STRING,
|
||||
IDLN_TYPE_BOOLEAN,
|
||||
IDLN_TYPE_OCTET,
|
||||
IDLN_TYPE_ANY,
|
||||
IDLN_TYPE_OBJECT,
|
||||
IDLN_TYPE_TYPECODE,
|
||||
IDLN_TYPE_ENUM,
|
||||
IDLN_TYPE_SEQUENCE,
|
||||
IDLN_TYPE_ARRAY,
|
||||
IDLN_TYPE_STRUCT,
|
||||
IDLN_TYPE_UNION,
|
||||
IDLN_MEMBER,
|
||||
IDLN_NATIVE,
|
||||
IDLN_CASE_STMT,
|
||||
IDLN_INTERFACE,
|
||||
IDLN_MODULE,
|
||||
IDLN_BINOP,
|
||||
IDLN_UNARYOP,
|
||||
IDLN_CODEFRAG,
|
||||
|
||||
IDLN_LAST
|
||||
} IDL_tree_type;
|
||||
IDL_IMPORT const char * IDL_tree_type_names[];
|
||||
|
||||
struct _IDL_tree_node {
|
||||
IDL_tree_type _type;
|
||||
IDL_tree up; /* Do not recurse */
|
||||
IDL_declspec_t declspec;
|
||||
/* properties is an XPIDL extension. It is a hash table of
|
||||
* case-insensitive string keys to string values. */
|
||||
GHashTable *properties;
|
||||
int refs;
|
||||
char *_file; /* Internal use */
|
||||
int _line; /* Internal use */
|
||||
union {
|
||||
struct _IDL_LIST idl_list;
|
||||
struct _IDL_GENTREE idl_gentree;
|
||||
struct _IDL_INTEGER idl_integer;
|
||||
struct _IDL_STRING idl_string;
|
||||
struct _IDL_WIDE_STRING idl_wide_string;
|
||||
struct _IDL_CHAR idl_char;
|
||||
struct _IDL_WIDE_CHAR idl_wide_char;
|
||||
struct _IDL_FIXED idl_fixed;
|
||||
struct _IDL_FLOAT idl_float;
|
||||
struct _IDL_BOOLEAN idl_boolean;
|
||||
struct _IDL_IDENT idl_ident;
|
||||
struct _IDL_TYPE_DCL idl_type_dcl;
|
||||
struct _IDL_CONST_DCL idl_const_dcl;
|
||||
struct _IDL_EXCEPT_DCL idl_except_dcl;
|
||||
struct _IDL_ATTR_DCL idl_attr_dcl;
|
||||
struct _IDL_OP_DCL idl_op_dcl;
|
||||
struct _IDL_PARAM_DCL idl_param_dcl;
|
||||
struct _IDL_FORWARD_DCL idl_forward_dcl;
|
||||
struct _IDL_TYPE_FLOAT idl_type_float;
|
||||
struct _IDL_TYPE_FIXED idl_type_fixed;
|
||||
struct _IDL_TYPE_INTEGER idl_type_integer;
|
||||
struct _IDL_TYPE_ENUM idl_type_enum;
|
||||
struct _IDL_TYPE_STRING idl_type_string;
|
||||
struct _IDL_TYPE_WIDE_STRING idl_type_wide_string;
|
||||
struct _IDL_TYPE_SEQUENCE idl_type_sequence;
|
||||
struct _IDL_TYPE_ARRAY idl_type_array;
|
||||
struct _IDL_TYPE_STRUCT idl_type_struct;
|
||||
struct _IDL_TYPE_UNION idl_type_union;
|
||||
struct _IDL_MEMBER idl_member;
|
||||
struct _IDL_NATIVE idl_native;
|
||||
struct _IDL_CASE_STMT idl_case_stmt;
|
||||
struct _IDL_INTERFACE idl_interface;
|
||||
struct _IDL_MODULE idl_module;
|
||||
struct _IDL_BINOP idl_binop;
|
||||
struct _IDL_UNARYOP idl_unaryop;
|
||||
struct _IDL_CODEFRAG idl_codefrag;
|
||||
} u;
|
||||
};
|
||||
#define IDL_NODE_TYPE(a) ((a)->_type)
|
||||
#define IDL_NODE_TYPE_NAME(a) ((a)?IDL_tree_type_names[IDL_NODE_TYPE(a)]:"NULL")
|
||||
#define IDL_NODE_UP(a) ((a)->up)
|
||||
#define IDL_NODE_PROPERTIES(a) ((a)->properties)
|
||||
#define IDL_NODE_DECLSPEC(a) ((a)->declspec)
|
||||
#define IDL_NODE_REFS(a) ((a)->refs)
|
||||
#define IDL_NODE_IS_LITERAL(a) \
|
||||
(IDL_NODE_TYPE(a) == IDLN_INTEGER || \
|
||||
IDL_NODE_TYPE(a) == IDLN_STRING || \
|
||||
IDL_NODE_TYPE(a) == IDLN_WIDE_STRING || \
|
||||
IDL_NODE_TYPE(a) == IDLN_CHAR || \
|
||||
IDL_NODE_TYPE(a) == IDLN_WIDE_CHAR || \
|
||||
IDL_NODE_TYPE(a) == IDLN_FIXED || \
|
||||
IDL_NODE_TYPE(a) == IDLN_FLOAT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_BOOLEAN)
|
||||
#define IDL_NODE_IS_TYPE(a) \
|
||||
(IDL_NODE_TYPE(a) == IDLN_TYPE_INTEGER || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_STRING || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_WIDE_STRING || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_CHAR || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_WIDE_CHAR || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_FIXED || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_FLOAT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_BOOLEAN || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_OCTET || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_ANY || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_OBJECT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_TYPECODE || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_ENUM || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_ARRAY || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_SEQUENCE || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_STRUCT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_UNION)
|
||||
#define IDL_NODE_IS_SCOPED(a) \
|
||||
(IDL_NODE_TYPE(a) == IDLN_IDENT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_INTERFACE || \
|
||||
IDL_NODE_TYPE(a) == IDLN_MODULE || \
|
||||
IDL_NODE_TYPE(a) == IDLN_EXCEPT_DCL || \
|
||||
IDL_NODE_TYPE(a) == IDLN_OP_DCL || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_ENUM || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_STRUCT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_UNION)
|
||||
|
||||
typedef struct _IDL_ns * IDL_ns;
|
||||
|
||||
struct _IDL_ns {
|
||||
IDL_tree global;
|
||||
IDL_tree file;
|
||||
IDL_tree current;
|
||||
GHashTable *inhibits;
|
||||
GHashTable *filename_hash;
|
||||
};
|
||||
#define IDL_NS(a) (*(a))
|
||||
|
||||
typedef enum {
|
||||
IDL_INPUT_REASON_INIT,
|
||||
IDL_INPUT_REASON_FILL,
|
||||
IDL_INPUT_REASON_ABORT,
|
||||
IDL_INPUT_REASON_FINISH
|
||||
} IDL_input_reason;
|
||||
|
||||
union IDL_input_data {
|
||||
struct {
|
||||
const char *filename;
|
||||
} init;
|
||||
struct {
|
||||
char *buffer;
|
||||
size_t max_size;
|
||||
} fill;
|
||||
};
|
||||
|
||||
typedef int (*IDL_input_callback) (IDL_input_reason reason,
|
||||
union IDL_input_data *data,
|
||||
gpointer user_data);
|
||||
|
||||
typedef int (*IDL_msg_callback) (int level,
|
||||
int num,
|
||||
int line,
|
||||
const char *filename,
|
||||
const char *message);
|
||||
|
||||
typedef struct _IDL_tree_func_state IDL_tree_func_state;
|
||||
typedef struct _IDL_tree_func_data IDL_tree_func_data;
|
||||
|
||||
/* Traversal state data. Recursive walks chain states. */
|
||||
struct _IDL_tree_func_state {
|
||||
IDL_tree_func_state *up;
|
||||
IDL_tree start;
|
||||
IDL_tree_func_data *bottom;
|
||||
};
|
||||
|
||||
/* This holds a list of the up hierarchy traversed, beginning from traversal. This is
|
||||
* useful since nodes referenced after initial definition will have a different traversal
|
||||
* path than the actual up path. */
|
||||
struct _IDL_tree_func_data {
|
||||
IDL_tree_func_state *state;
|
||||
IDL_tree_func_data *up;
|
||||
IDL_tree tree;
|
||||
};
|
||||
|
||||
typedef gboolean (*IDL_tree_func) (IDL_tree_func_data *tnfd,
|
||||
gpointer user_data);
|
||||
|
||||
extern IDL_tree IDL_check_type_cast (const IDL_tree var,
|
||||
IDL_tree_type type,
|
||||
const char *file,
|
||||
int line,
|
||||
const char *function);
|
||||
|
||||
extern const char * IDL_get_libver_string (void);
|
||||
|
||||
extern const char * IDL_get_IDLver_string (void);
|
||||
|
||||
extern int IDL_parse_filename (const char *filename,
|
||||
const char *cpp_args,
|
||||
IDL_msg_callback msg_cb,
|
||||
IDL_tree *tree, IDL_ns *ns,
|
||||
unsigned long parse_flags,
|
||||
int max_msg_level);
|
||||
|
||||
extern int IDL_parse_filename_with_input (const char *filename,
|
||||
IDL_input_callback input_cb,
|
||||
gpointer input_cb_user_data,
|
||||
IDL_msg_callback msg_cb,
|
||||
IDL_tree *tree, IDL_ns *ns,
|
||||
unsigned long parse_flags,
|
||||
int max_msg_level);
|
||||
|
||||
extern int IDL_ns_prefix (IDL_ns ns,
|
||||
const char *s);
|
||||
|
||||
extern void IDL_ns_ID (IDL_ns ns,
|
||||
const char *s);
|
||||
|
||||
extern void IDL_ns_version (IDL_ns ns,
|
||||
const char *s);
|
||||
|
||||
extern int IDL_inhibit_get (void);
|
||||
|
||||
extern void IDL_inhibit_push (void);
|
||||
|
||||
extern void IDL_inhibit_pop (void);
|
||||
|
||||
extern void IDL_file_set (const char *filename,
|
||||
int line);
|
||||
|
||||
extern void IDL_file_get (const char **filename,
|
||||
int *line);
|
||||
|
||||
extern IDL_tree IDL_get_parent_node (IDL_tree p,
|
||||
IDL_tree_type type,
|
||||
int *scope_levels);
|
||||
|
||||
extern IDL_tree IDL_tree_get_scope (IDL_tree p);
|
||||
|
||||
extern int IDL_tree_get_node_info (IDL_tree tree,
|
||||
char **who,
|
||||
char **what);
|
||||
|
||||
extern void IDL_tree_error (IDL_tree p,
|
||||
const char *fmt,
|
||||
...);
|
||||
|
||||
extern void IDL_tree_warning (IDL_tree p,
|
||||
int level,
|
||||
const char *fmt,
|
||||
...);
|
||||
|
||||
extern const char * IDL_tree_property_get (IDL_tree tree,
|
||||
const char *key);
|
||||
|
||||
extern void IDL_tree_property_set (IDL_tree tree,
|
||||
const char *key,
|
||||
const char *value);
|
||||
|
||||
extern gboolean IDL_tree_property_remove (IDL_tree tree,
|
||||
const char *key);
|
||||
|
||||
extern void IDL_tree_properties_copy (IDL_tree from_tree,
|
||||
IDL_tree to_tree);
|
||||
|
||||
extern void IDL_tree_walk (IDL_tree p,
|
||||
IDL_tree_func_data *current,
|
||||
IDL_tree_func pre_tree_func,
|
||||
IDL_tree_func post_tree_func,
|
||||
gpointer user_data);
|
||||
|
||||
extern void IDL_tree_walk_in_order (IDL_tree p,
|
||||
IDL_tree_func tree_func,
|
||||
gpointer user_data);
|
||||
|
||||
extern void IDL_tree_free (IDL_tree root);
|
||||
|
||||
extern void IDL_tree_to_IDL (IDL_tree p,
|
||||
IDL_ns ns,
|
||||
FILE *output,
|
||||
unsigned long output_flags);
|
||||
|
||||
extern char * IDL_do_escapes (const char *s);
|
||||
|
||||
extern IDL_tree IDL_resolve_const_exp (IDL_tree p,
|
||||
IDL_tree_type type);
|
||||
|
||||
extern IDL_ns IDL_ns_new (void);
|
||||
|
||||
extern void IDL_ns_free (IDL_ns ns);
|
||||
|
||||
extern IDL_tree IDL_ns_resolve_this_scope_ident (IDL_ns ns,
|
||||
IDL_tree scope,
|
||||
IDL_tree ident);
|
||||
|
||||
extern IDL_tree IDL_ns_resolve_ident (IDL_ns ns,
|
||||
IDL_tree ident);
|
||||
|
||||
extern IDL_tree IDL_ns_lookup_this_scope (IDL_ns ns,
|
||||
IDL_tree scope,
|
||||
IDL_tree ident,
|
||||
gboolean *conflict);
|
||||
|
||||
extern IDL_tree IDL_ns_lookup_cur_scope (IDL_ns ns,
|
||||
IDL_tree ident,
|
||||
gboolean *conflict);
|
||||
|
||||
extern IDL_tree IDL_ns_place_new (IDL_ns ns,
|
||||
IDL_tree ident);
|
||||
|
||||
extern void IDL_ns_push_scope (IDL_ns ns,
|
||||
IDL_tree ident);
|
||||
|
||||
extern void IDL_ns_pop_scope (IDL_ns ns);
|
||||
|
||||
extern IDL_tree IDL_ns_qualified_ident_new (IDL_tree nsid);
|
||||
|
||||
extern char * IDL_ns_ident_to_qstring (IDL_tree ns_ident,
|
||||
const char *join,
|
||||
int scope_levels);
|
||||
|
||||
extern int IDL_ns_scope_levels_from_here (IDL_ns ns,
|
||||
IDL_tree ident,
|
||||
IDL_tree parent);
|
||||
|
||||
extern char * IDL_ns_ident_make_repo_id (IDL_ns ns,
|
||||
IDL_tree p,
|
||||
const char *p_prefix,
|
||||
int *major,
|
||||
int *minor);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __IDL_H */
|
||||
@ -1,64 +0,0 @@
|
||||
@echo off
|
||||
if "%MOZ_TOOLS%" == "" goto no_moz_tools
|
||||
|
||||
echo.
|
||||
echo MOZ_TOOLS is set to %MOZ_TOOLS%
|
||||
echo It should NOT be set to anything in your cygwin
|
||||
echo directory, such as c:\cygwin or c:\cygwin\bin
|
||||
echo where C:\cygwin represents where you installed cygwin.
|
||||
echo In that case files will be overwritten.
|
||||
echo.
|
||||
echo It should be set to some empty directory.
|
||||
echo. e.g.
|
||||
echo. mkdir c:\moz_tools
|
||||
echo. set MOZ_TOOLS=c:\moz_tools
|
||||
echo.
|
||||
echo Please verify this.
|
||||
echo.
|
||||
|
||||
pause
|
||||
|
||||
echo copying exes and dlls to %MOZ_TOOLS%\bin
|
||||
if not exist %MOZ_TOOLS%\bin\NUL mkdir %MOZ_TOOLS%\bin >NUL
|
||||
copy bin\x86\* %MOZ_TOOLS%\bin >NUL
|
||||
|
||||
echo copying include files to %MOZ_TOOLS%\include
|
||||
if not exist %MOZ_TOOLS%\include\NUL mkdir %MOZ_TOOLS%\include >NUL
|
||||
copy include\* %MOZ_TOOLS%\include >NUL
|
||||
|
||||
echo copying include files to %MOZ_TOOLS%\include\libIDL
|
||||
if not exist %MOZ_TOOLS%\include\libIDL\NUL mkdir %MOZ_TOOLS%\include\libIDL >NUL
|
||||
copy include\libIDL\* %MOZ_TOOLS%\include\libIDL >NUL
|
||||
|
||||
echo copying lib files to %MOZ_TOOLS%\lib
|
||||
if not exist %MOZ_TOOLS%\lib\NUL mkdir %MOZ_TOOLS%\lib >NUL
|
||||
copy lib\* %MOZ_TOOLS%\lib >NUL
|
||||
|
||||
echo.
|
||||
echo done copying
|
||||
echo.
|
||||
echo make sure that MOZ_TOOLS\bin is on your path
|
||||
echo.
|
||||
goto done
|
||||
|
||||
:no_moz_tools
|
||||
echo.
|
||||
echo. ERROR!
|
||||
echo.
|
||||
echo You need to set MOZ_TOOLS in your environment.
|
||||
echo MOZ_TOOLS should be the name of a directory that
|
||||
echo you create to hold these tools.
|
||||
echo.
|
||||
echo. e.g.
|
||||
echo. mkdir c:\moz_tools
|
||||
echo. set MOZ_TOOLS=c:\moz_tools
|
||||
echo.
|
||||
echo MOZ_TOOLS should be set permanently so that it is
|
||||
echo available to the build system whenever mozilla is building.
|
||||
echo.
|
||||
echo.
|
||||
echo Please set MOZ_TOOLS and run install.bat again
|
||||
echo.
|
||||
|
||||
:done
|
||||
pause
|
||||
@ -1,12 +0,0 @@
|
||||
Sources for glib are available from gnome.org via cvs. See cvs
|
||||
checkout instructions at http://www.gnome.org - or use
|
||||
|
||||
export CVSROOT=:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome
|
||||
cvs login (no password)
|
||||
cvs -z3 checkout glib
|
||||
|
||||
or grap a package of the sources we're currently using from
|
||||
ftp://ftp.mozilla.org/pub/mozilla/libraries/source/
|
||||
|
||||
These sources correspond to the GLIB_1_2_0 tag on the gnome cvs
|
||||
server.
|
||||
@ -1,14 +0,0 @@
|
||||
Sources for libIDL are available from gnome.org via cvs. See cvs
|
||||
checkout instructions at http://www.gnome.org - or use
|
||||
|
||||
export CVSROOT=:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome
|
||||
cvs login (no password)
|
||||
cvs -z3 checkout ORBit
|
||||
|
||||
(libIDL files are in ORBit/libIDL)
|
||||
|
||||
or grap a package of the sources we're currently using from
|
||||
ftp://ftp.mozilla.org/pub/mozilla/libraries/source/
|
||||
|
||||
These sources correspond to the LIBIDL_V0_6_3 tag on the gnome cvs
|
||||
server.
|
||||
@ -1,7 +0,0 @@
|
||||
This directory contains the source files for nsinstall.exe,
|
||||
which is used to build the Mozilla client on Win32.
|
||||
|
||||
To build nsinstall.exe, issue the command:
|
||||
nmake /f nsinstall.mak
|
||||
The output is Release\nsinstall.exe. Copy it to a directory
|
||||
on your Path.
|
||||
@ -1,697 +0,0 @@
|
||||
/*
|
||||
* The nsinstall command for Win32
|
||||
*
|
||||
* Our gmake makefiles use the nsinstall command to create the
|
||||
* object directories or installing headers and libs to ns/dist.
|
||||
* The shmsdos shell has nsinstall as a built-in command. However,
|
||||
* if we use another shell like MKS toolkit's sh, we need to have
|
||||
* the nsinstall command separately.
|
||||
*
|
||||
* This file was generated by just taking the part of shmsdos.c
|
||||
* needed by nsinstall and deleting the recursive directory copy code.
|
||||
*
|
||||
* To build, say
|
||||
* nmake /f nsinstall.mak
|
||||
*/
|
||||
|
||||
#include <direct.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <windows.h>
|
||||
#pragma hdrstop
|
||||
|
||||
/*
|
||||
* sh_FileFcn --
|
||||
*
|
||||
* A function that operates on a file. The pathname is either
|
||||
* absolute or relative to the current directory, and contains
|
||||
* no wildcard characters such as * and ?. Additional arguments
|
||||
* can be passed to the function via the arg pointer.
|
||||
*/
|
||||
|
||||
typedef BOOL (*sh_FileFcn)(
|
||||
char *pathName,
|
||||
WIN32_FIND_DATA *fileData,
|
||||
void *arg);
|
||||
|
||||
static int shellCp (char **pArgv);
|
||||
static int shellNsinstall (char **pArgv);
|
||||
static int shellMkdir (char **pArgv);
|
||||
static BOOL sh_EnumerateFiles(const char *pattern, const char *where,
|
||||
sh_FileFcn fileFcn, void *arg, int *nFiles);
|
||||
static const char *sh_GetLastErrorMessage(void);
|
||||
static BOOL sh_DoCopy(char *srcFileName, DWORD srcFileAttributes,
|
||||
char *dstFileName, DWORD dstFileAttributes,
|
||||
int force, int recursive);
|
||||
|
||||
/* changes all forward slashes in token to back slashes */
|
||||
void changeForwardSlashesTpBackSlashes ( char *arg )
|
||||
{
|
||||
if ( arg == NULL )
|
||||
return;
|
||||
|
||||
while ( *arg ) {
|
||||
if ( *arg == '/' )
|
||||
*arg = '\\';
|
||||
arg++;
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[ ])
|
||||
{
|
||||
return shellNsinstall ( argv + 1 );
|
||||
}
|
||||
|
||||
static int
|
||||
shellNsinstall (char **pArgv)
|
||||
{
|
||||
int retVal = 0; /* exit status */
|
||||
int dirOnly = 0; /* 1 if and only if -D is specified */
|
||||
char **pSrc;
|
||||
char **pDst;
|
||||
|
||||
/*
|
||||
* Process the command-line options. We ignore the
|
||||
* options except for -D. Some options, such as -m,
|
||||
* are followed by an argument. We need to skip the
|
||||
* argument too.
|
||||
*/
|
||||
while ( *pArgv && **pArgv == '-' ) {
|
||||
char c = (*pArgv)[1]; /* The char after '-' */
|
||||
|
||||
if ( c == 'D' ) {
|
||||
dirOnly = 1;
|
||||
} else if ( c == 'm' ) {
|
||||
pArgv++; /* skip the next argument */
|
||||
}
|
||||
pArgv++;
|
||||
}
|
||||
|
||||
if ( !dirOnly ) {
|
||||
/* There are files to install. Get source files */
|
||||
if ( *pArgv ) {
|
||||
pSrc = pArgv++;
|
||||
} else {
|
||||
fprintf( stderr, "nsinstall: not enough arguments\n");
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
/* Get to last token to find destination directory */
|
||||
if ( *pArgv ) {
|
||||
pDst = pArgv++;
|
||||
if ( dirOnly && *pArgv ) {
|
||||
fprintf( stderr, "nsinstall: too many arguments with -D\n");
|
||||
return 3;
|
||||
}
|
||||
} else {
|
||||
fprintf( stderr, "nsinstall: not enough arguments\n");
|
||||
return 3;
|
||||
}
|
||||
while ( *pArgv )
|
||||
pDst = pArgv++;
|
||||
|
||||
retVal = shellMkdir ( pDst );
|
||||
if ( retVal )
|
||||
return retVal;
|
||||
if ( !dirOnly )
|
||||
retVal = shellCp ( pSrc );
|
||||
return retVal;
|
||||
}
|
||||
|
||||
static int
|
||||
shellMkdir (char **pArgv)
|
||||
{
|
||||
int retVal = 0; /* assume valid return */
|
||||
char *arg;
|
||||
char *pArg;
|
||||
char path[_MAX_PATH];
|
||||
char tmpPath[_MAX_PATH];
|
||||
char *pTmpPath = tmpPath;
|
||||
|
||||
/* All the options are simply ignored in this implementation */
|
||||
while ( *pArgv && **pArgv == '-' ) {
|
||||
if ( (*pArgv)[1] == 'm' ) {
|
||||
pArgv++; /* skip the next argument (mode) */
|
||||
}
|
||||
pArgv++;
|
||||
}
|
||||
|
||||
while ( *pArgv ) {
|
||||
arg = *pArgv;
|
||||
changeForwardSlashesTpBackSlashes ( arg );
|
||||
pArg = arg;
|
||||
pTmpPath = tmpPath;
|
||||
while ( 1 ) {
|
||||
/* create part of path */
|
||||
while ( *pArg ) {
|
||||
*pTmpPath++ = *pArg++;
|
||||
if ( *pArg == '\\' )
|
||||
break;
|
||||
}
|
||||
*pTmpPath = '\0';
|
||||
|
||||
/* check if directory alreay exists */
|
||||
_getcwd ( path, sizeof (path) );
|
||||
if ( _chdir ( tmpPath ) != -1 ) {
|
||||
_chdir ( path );
|
||||
} else {
|
||||
if ( _mkdir ( tmpPath ) == -1 ) {
|
||||
// while ( waitForDebug );
|
||||
printf ( "%s: ", tmpPath );
|
||||
perror ( "Could not create the directory" );
|
||||
retVal = 3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( *pArg == '\0' ) /* complete path? */
|
||||
break;
|
||||
/* loop for next directory */
|
||||
}
|
||||
|
||||
pArgv++;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
static const char *
|
||||
sh_GetLastErrorMessage()
|
||||
{
|
||||
static char buf[128];
|
||||
|
||||
FormatMessage(
|
||||
FORMAT_MESSAGE_FROM_SYSTEM,
|
||||
NULL,
|
||||
GetLastError(),
|
||||
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* default language */
|
||||
buf,
|
||||
sizeof(buf),
|
||||
NULL
|
||||
);
|
||||
return buf;
|
||||
}
|
||||
|
||||
/*
|
||||
* struct sh_FileData --
|
||||
*
|
||||
* A pointer to the sh_FileData structure is passed into sh_RecordFileData,
|
||||
* which will fill in the fields.
|
||||
*/
|
||||
|
||||
struct sh_FileData {
|
||||
char pathName[_MAX_PATH];
|
||||
DWORD dwFileAttributes;
|
||||
};
|
||||
|
||||
/*
|
||||
* sh_RecordFileData --
|
||||
*
|
||||
* Record the pathname and attributes of the file in
|
||||
* the sh_FileData structure pointed to by arg.
|
||||
*
|
||||
* Always return TRUE (successful completion).
|
||||
*
|
||||
* This function is intended to be passed into sh_EnumerateFiles
|
||||
* to see if a certain pattern expands to exactly one file/directory,
|
||||
* and if so, record its pathname and attributes.
|
||||
*/
|
||||
|
||||
static BOOL
|
||||
sh_RecordFileData(char *pathName, WIN32_FIND_DATA *findData, void *arg)
|
||||
{
|
||||
struct sh_FileData *fData = (struct sh_FileData *) arg;
|
||||
|
||||
strcpy(fData->pathName, pathName);
|
||||
fData->dwFileAttributes = findData->dwFileAttributes;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
sh_DoCopy(char *srcFileName,
|
||||
DWORD srcFileAttributes,
|
||||
char *dstFileName,
|
||||
DWORD dstFileAttributes,
|
||||
int force,
|
||||
int recursive
|
||||
)
|
||||
{
|
||||
if (dstFileAttributes != 0xFFFFFFFF) {
|
||||
if ((dstFileAttributes & FILE_ATTRIBUTE_READONLY) && force) {
|
||||
dstFileAttributes &= ~FILE_ATTRIBUTE_READONLY;
|
||||
SetFileAttributes(dstFileName, dstFileAttributes);
|
||||
}
|
||||
}
|
||||
|
||||
if (srcFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
|
||||
fprintf(stderr, "nsinstall: %s is a directory\n",
|
||||
srcFileName);
|
||||
return FALSE;
|
||||
} else {
|
||||
if (!CopyFile(srcFileName, dstFileName, FALSE)) {
|
||||
fprintf(stderr, "nsinstall: cannot copy %s to %s: %s\n",
|
||||
srcFileName, dstFileName, sh_GetLastErrorMessage());
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* struct sh_CpCmdArg --
|
||||
*
|
||||
* A pointer to the sh_CpCmdArg structure is passed into sh_CpFileCmd.
|
||||
* The sh_CpCmdArg contains information about the cp command, and
|
||||
* provide a buffer for constructing the destination file name.
|
||||
*/
|
||||
|
||||
struct sh_CpCmdArg {
|
||||
int force; /* -f option, ok to overwrite an existing
|
||||
* read-only destination file */
|
||||
int recursive; /* -r or -R option, recursively copy
|
||||
* directories. Note: this field is not used
|
||||
* by nsinstall and should always be 0. */
|
||||
char *dstFileName; /* a buffer for constructing the destination
|
||||
* file name */
|
||||
char *dstFileNameMarker; /* points to where in the dstFileName buffer
|
||||
* we should write the file component of the
|
||||
* destination file */
|
||||
};
|
||||
|
||||
/*
|
||||
* sh_CpFileCmd --
|
||||
*
|
||||
* Copy a file to the destination directory
|
||||
*
|
||||
* This function is intended to be passed into sh_EnumerateFiles to
|
||||
* copy all the files specified by the pattern to the destination
|
||||
* directory.
|
||||
*
|
||||
* Return TRUE if the file is successfully copied, and FALSE otherwise.
|
||||
*/
|
||||
|
||||
static BOOL
|
||||
sh_CpFileCmd(char *pathName, WIN32_FIND_DATA *findData, void *cpArg)
|
||||
{
|
||||
BOOL retVal = TRUE;
|
||||
struct sh_CpCmdArg *arg = (struct sh_CpCmdArg *) cpArg;
|
||||
|
||||
strcpy(arg->dstFileNameMarker, findData->cFileName);
|
||||
return sh_DoCopy(pathName, findData->dwFileAttributes,
|
||||
arg->dstFileName, GetFileAttributes(arg->dstFileName),
|
||||
arg->force, arg->recursive);
|
||||
}
|
||||
|
||||
static int
|
||||
shellCp (char **pArgv)
|
||||
{
|
||||
int retVal = 0;
|
||||
char **pSrc;
|
||||
char **pDst;
|
||||
struct sh_CpCmdArg arg;
|
||||
struct sh_FileData dstData;
|
||||
int dstIsDir = 0;
|
||||
int n;
|
||||
|
||||
arg.force = 0;
|
||||
arg.recursive = 0;
|
||||
arg.dstFileName = dstData.pathName;
|
||||
arg.dstFileNameMarker = 0;
|
||||
|
||||
while (*pArgv && **pArgv == '-') {
|
||||
char *p = *pArgv;
|
||||
|
||||
while (*(++p)) {
|
||||
if (*p == 'f') {
|
||||
arg.force = 1;
|
||||
}
|
||||
}
|
||||
pArgv++;
|
||||
}
|
||||
|
||||
/* the first source file */
|
||||
if (*pArgv) {
|
||||
pSrc = pArgv++;
|
||||
} else {
|
||||
fprintf(stderr, "nsinstall: not enough arguments\n");
|
||||
return 3;
|
||||
}
|
||||
|
||||
/* get to the last token to find destination */
|
||||
if (*pArgv) {
|
||||
pDst = pArgv++;
|
||||
} else {
|
||||
fprintf(stderr, "nsinstall: not enough arguments\n");
|
||||
return 3;
|
||||
}
|
||||
while (*pArgv) {
|
||||
pDst = pArgv++;
|
||||
}
|
||||
|
||||
/*
|
||||
* The destination pattern must unambiguously expand to exactly
|
||||
* one file or directory.
|
||||
*/
|
||||
|
||||
changeForwardSlashesTpBackSlashes(*pDst);
|
||||
sh_EnumerateFiles(*pDst, *pDst, sh_RecordFileData, &dstData, &n);
|
||||
assert(n >= 0);
|
||||
if (n == 1) {
|
||||
/*
|
||||
* Is the destination a file or directory?
|
||||
*/
|
||||
|
||||
if (dstData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
|
||||
dstIsDir = 1;
|
||||
}
|
||||
} else if (n > 1) {
|
||||
fprintf(stderr, "nsinstall: %s: ambiguous destination file "
|
||||
"or directory\n", *pDst);
|
||||
return 3;
|
||||
} else {
|
||||
/*
|
||||
* n == 0, meaning that destination file or directory does
|
||||
* not exist. In this case the destination file directory
|
||||
* name must be fully specified.
|
||||
*/
|
||||
|
||||
char *p;
|
||||
|
||||
for (p = *pDst; *p; p++) {
|
||||
if (*p == '*' || *p == '?') {
|
||||
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
|
||||
*pDst);
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Do not include the trailing \, if any, unless it is a root
|
||||
* directory (\ or X:\).
|
||||
*/
|
||||
|
||||
if (p > *pDst && p[-1] == '\\' && p != *pDst + 1 && p[-2] != ':') {
|
||||
p[-1] = '\0';
|
||||
}
|
||||
strcpy(dstData.pathName, *pDst);
|
||||
dstData.dwFileAttributes = 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
/*
|
||||
* If there are two or more source files, the destination has
|
||||
* to be a directory.
|
||||
*/
|
||||
|
||||
if (pDst - pSrc > 1 && !dstIsDir) {
|
||||
fprintf(stderr, "nsinstall: cannot copy more than"
|
||||
" one file to the same destination file\n");
|
||||
return 3;
|
||||
}
|
||||
|
||||
if (dstIsDir) {
|
||||
arg.dstFileNameMarker = arg.dstFileName + strlen(arg.dstFileName);
|
||||
|
||||
/*
|
||||
* Now arg.dstFileNameMarker is pointing to the null byte at the
|
||||
* end of string. We want to make sure that there is a \ at the
|
||||
* end of string, and arg.dstFileNameMarker should point right
|
||||
* after that \.
|
||||
*/
|
||||
|
||||
if (arg.dstFileNameMarker[-1] != '\\') {
|
||||
*(arg.dstFileNameMarker++) = '\\';
|
||||
}
|
||||
}
|
||||
|
||||
if (!dstIsDir) {
|
||||
struct sh_FileData srcData;
|
||||
|
||||
assert(pDst - pSrc == 1);
|
||||
changeForwardSlashesTpBackSlashes(*pSrc);
|
||||
sh_EnumerateFiles(*pSrc, *pSrc, sh_RecordFileData, &srcData, &n);
|
||||
if (n == 0) {
|
||||
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
|
||||
*pSrc);
|
||||
retVal = 3;
|
||||
} else if (n > 1) {
|
||||
fprintf(stderr, "nsinstall: cannot copy more than one file or "
|
||||
"directory to the same destination\n");
|
||||
retVal = 3;
|
||||
} else {
|
||||
assert(n == 1);
|
||||
if (sh_DoCopy(srcData.pathName, srcData.dwFileAttributes,
|
||||
dstData.pathName, dstData.dwFileAttributes,
|
||||
arg.force, arg.recursive) == FALSE) {
|
||||
retVal = 3;
|
||||
}
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
for ( ; *pSrc != *pDst; pSrc++) {
|
||||
BOOL rv;
|
||||
|
||||
changeForwardSlashesTpBackSlashes(*pSrc);
|
||||
rv = sh_EnumerateFiles(*pSrc, *pSrc, sh_CpFileCmd, &arg, &n);
|
||||
if (rv == FALSE) {
|
||||
retVal = 3;
|
||||
} else {
|
||||
if (n == 0) {
|
||||
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
|
||||
*pSrc);
|
||||
retVal = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* sh_EnumerateFiles --
|
||||
*
|
||||
* Enumerate all the files in the specified pattern, which is a pathname
|
||||
* containing possibly wildcard characters such as * and ?. fileFcn
|
||||
* is called on each file, passing the expanded file name, a pointer
|
||||
* to the file's WIN32_FILE_DATA, and the arg pointer.
|
||||
*
|
||||
* It is assumed that there are no wildcard characters before the
|
||||
* character pointed to by 'where'.
|
||||
*
|
||||
* On return, *nFiles stores the number of files enumerated. *nFiles is
|
||||
* set to this number whether sh_EnumerateFiles or 'fileFcn' succeeds
|
||||
* or not.
|
||||
*
|
||||
* Return TRUE if the files are successfully enumerated and all
|
||||
* 'fileFcn' invocations succeeded. Return FALSE if something went
|
||||
* wrong.
|
||||
*/
|
||||
|
||||
static BOOL sh_EnumerateFiles(
|
||||
const char *pattern,
|
||||
const char *where,
|
||||
sh_FileFcn fileFcn,
|
||||
void *arg,
|
||||
int *nFiles
|
||||
)
|
||||
{
|
||||
WIN32_FIND_DATA fileData;
|
||||
HANDLE hSearch;
|
||||
const char *src;
|
||||
char *dst;
|
||||
char fileName[_MAX_PATH];
|
||||
char *fileNameMarker = fileName;
|
||||
char *oldFileNameMarker;
|
||||
BOOL hasWildcard = FALSE;
|
||||
BOOL retVal = TRUE;
|
||||
BOOL patternEndsInDotStar = FALSE;
|
||||
BOOL patternEndsInDot = FALSE; /* a special case of
|
||||
* patternEndsInDotStar */
|
||||
int numDotsInPattern;
|
||||
int len;
|
||||
|
||||
/*
|
||||
* Windows expands patterns ending in ".", ".*", ".**", etc.
|
||||
* differently from the glob expansion on Unix. For example,
|
||||
* both "foo." and "foo.*" match "foo", and "*.*" matches
|
||||
* everything, including filenames with no dots. So we need
|
||||
* to throw away extra files returned by the FindNextFile()
|
||||
* function. We require that a matched filename have at least
|
||||
* the number of dots in the pattern.
|
||||
*/
|
||||
len = strlen(pattern);
|
||||
if (len >= 2) {
|
||||
/* Start from the end of pattern and go backward */
|
||||
const char *p = &pattern[len - 1];
|
||||
|
||||
/* We can have zero or more *'s */
|
||||
while (p >= pattern && *p == '*') {
|
||||
p--;
|
||||
}
|
||||
if (p >= pattern && *p == '.') {
|
||||
patternEndsInDotStar = TRUE;
|
||||
if (p == &pattern[len - 1]) {
|
||||
patternEndsInDot = TRUE;
|
||||
}
|
||||
p--;
|
||||
numDotsInPattern = 1;
|
||||
while (p >= pattern && *p != '\\') {
|
||||
if (*p == '.') {
|
||||
numDotsInPattern++;
|
||||
}
|
||||
p--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*nFiles = 0;
|
||||
|
||||
/*
|
||||
* Copy pattern to fileName, but only up to and not including
|
||||
* the first \ after the first wildcard letter.
|
||||
*
|
||||
* Make fileNameMarker point to one of the following:
|
||||
* - the start of fileName, if fileName does not contain any \.
|
||||
* - right after the \ before the first wildcard letter, if there is
|
||||
* a wildcard character.
|
||||
* - right after the last \, if there is no wildcard character.
|
||||
*/
|
||||
|
||||
dst = fileName;
|
||||
src = pattern;
|
||||
while (src < where) {
|
||||
if (*src == '\\') {
|
||||
oldFileNameMarker = fileNameMarker;
|
||||
fileNameMarker = dst + 1;
|
||||
}
|
||||
*(dst++) = *(src++);
|
||||
}
|
||||
|
||||
while (*src && *src != '*' && *src != '?') {
|
||||
if (*src == '\\') {
|
||||
oldFileNameMarker = fileNameMarker;
|
||||
fileNameMarker = dst + 1;
|
||||
}
|
||||
*(dst++) = *(src++);
|
||||
}
|
||||
|
||||
if (*src) {
|
||||
/*
|
||||
* Must have seen the first wildcard letter
|
||||
*/
|
||||
|
||||
hasWildcard = TRUE;
|
||||
while (*src && *src != '\\') {
|
||||
*(dst++) = *(src++);
|
||||
}
|
||||
}
|
||||
|
||||
/* Now src points to either null or \ */
|
||||
|
||||
assert(*src == '\0' || *src == '\\');
|
||||
assert(hasWildcard || *src == '\0');
|
||||
*dst = '\0';
|
||||
|
||||
/*
|
||||
* If the pattern does not contain any wildcard characters, then
|
||||
* we don't need to go the FindFirstFile route.
|
||||
*/
|
||||
|
||||
if (!hasWildcard) {
|
||||
/*
|
||||
* See if it is the root directory, \, or X:\.
|
||||
*/
|
||||
|
||||
assert(!strcmp(fileName, pattern));
|
||||
assert(strlen(fileName) >= 1);
|
||||
if (dst[-1] == '\\' && (dst == fileName + 1 || dst[-2] == ':')) {
|
||||
fileData.cFileName[0] = '\0';
|
||||
} else {
|
||||
/*
|
||||
* Do not include the trailing \, if any
|
||||
*/
|
||||
|
||||
if (dst[-1] == '\\') {
|
||||
assert(*fileNameMarker == '\0');
|
||||
dst[-1] = '\0';
|
||||
fileNameMarker = oldFileNameMarker;
|
||||
}
|
||||
strcpy(fileData.cFileName, fileNameMarker);
|
||||
}
|
||||
fileData.dwFileAttributes = GetFileAttributes(fileName);
|
||||
if (fileData.dwFileAttributes == 0xFFFFFFFF) {
|
||||
return TRUE;
|
||||
}
|
||||
*nFiles = 1;
|
||||
return (*fileFcn)(fileName, &fileData, arg);
|
||||
}
|
||||
|
||||
hSearch = FindFirstFile(fileName, &fileData);
|
||||
if (hSearch == INVALID_HANDLE_VALUE) {
|
||||
return retVal;
|
||||
}
|
||||
|
||||
do {
|
||||
if (!strcmp(fileData.cFileName, ".")
|
||||
|| !strcmp(fileData.cFileName, "..")) {
|
||||
/*
|
||||
* Skip over . and ..
|
||||
*/
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (patternEndsInDotStar) {
|
||||
int nDots = 0;
|
||||
char *p = fileData.cFileName;
|
||||
while (*p) {
|
||||
if (*p == '.') {
|
||||
nDots++;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
/* Now p points to the null byte at the end of file name */
|
||||
if (patternEndsInDot && (p == fileData.cFileName
|
||||
|| p[-1] != '.')) {
|
||||
/*
|
||||
* File name does not end in dot. Skip this file.
|
||||
* Note: windows file name probably cannot end in dot,
|
||||
* but we do this check anyway.
|
||||
*/
|
||||
continue;
|
||||
}
|
||||
if (nDots < numDotsInPattern) {
|
||||
/*
|
||||
* Not enough dots in file name. Must be an extra
|
||||
* file in matching .* pattern. Skip this file.
|
||||
*/
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
strcpy(fileNameMarker, fileData.cFileName);
|
||||
if (*src && *(src + 1)) {
|
||||
/*
|
||||
* More to go. Recurse.
|
||||
*/
|
||||
|
||||
int n;
|
||||
|
||||
assert(*src == '\\');
|
||||
where = fileName + strlen(fileName);
|
||||
strcat(fileName, src);
|
||||
sh_EnumerateFiles(fileName, where, fileFcn, arg, &n);
|
||||
*nFiles += n;
|
||||
} else {
|
||||
assert(strchr(fileName, '*') == NULL);
|
||||
assert(strchr(fileName, '?') == NULL);
|
||||
(*nFiles)++;
|
||||
if ((*fileFcn)(fileName, &fileData, arg) == FALSE) {
|
||||
retVal = FALSE;
|
||||
}
|
||||
}
|
||||
} while (FindNextFile(hSearch, &fileData));
|
||||
|
||||
FindClose(hSearch);
|
||||
return retVal;
|
||||
}
|
||||
@ -1,141 +0,0 @@
|
||||
# NMAKE file for building nsinstall.exe.
|
||||
#
|
||||
# This file is edited from an NMAKE file generated by
|
||||
# Microsoft Developer Studio, Format Version 4.20
|
||||
#
|
||||
# To build, say
|
||||
# nmake /f nsinstall.mak CFG=Release
|
||||
# or
|
||||
# nmake /f nsinstall.mak CFG=Debug
|
||||
# If CFG is omitted, a release build is assumed.
|
||||
|
||||
!IF "$(CFG)" == ""
|
||||
CFG=Release
|
||||
!MESSAGE No configuration specified. Defaulting Release.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" != "Release" && "$(CFG)" != "Debug"
|
||||
!MESSAGE Invalid configuration "$(CFG)" specified.
|
||||
!MESSAGE You can specify a configuration when running NMAKE on this makefile
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "nsinstall.mak" CFG="Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "Release" (based on "Win32 Console Application")
|
||||
!MESSAGE "Debug" (based on "Win32 Console Application")
|
||||
!MESSAGE
|
||||
!ERROR An invalid configuration is specified.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(OS)" == "Windows_NT"
|
||||
NULL=
|
||||
!ELSE
|
||||
NULL=nul
|
||||
!ENDIF
|
||||
################################################################################
|
||||
# Begin Project
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "Release"
|
||||
|
||||
OUTDIR=.\Release
|
||||
INTDIR=.\Release
|
||||
|
||||
ALL : "$(OUTDIR)\nsinstall.exe"
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\nsinstall.obj"
|
||||
-@erase "$(OUTDIR)\nsinstall.exe"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE"\
|
||||
/Fp"$(INTDIR)/nsinstall.pch" /YX /Fo"$(INTDIR)/" /c
|
||||
CPP_OBJS=.\Release/
|
||||
CPP_SBRS=.\.
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)/nsinstall.bsc"
|
||||
BSC32_SBRS= \
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=/nologo\
|
||||
/subsystem:console /incremental:no /pdb:"$(OUTDIR)/nsinstall.pdb"\
|
||||
/out:"$(OUTDIR)/nsinstall.exe"
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\nsinstall.obj"
|
||||
|
||||
"$(OUTDIR)\nsinstall.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ELSEIF "$(CFG)" == "Debug"
|
||||
|
||||
OUTDIR=.\Debug
|
||||
INTDIR=.\Debug
|
||||
|
||||
ALL : "$(OUTDIR)\nsinstall.exe"
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\nsinstall.obj"
|
||||
-@erase "$(INTDIR)\vc40.idb"
|
||||
-@erase "$(INTDIR)\vc40.pdb"
|
||||
-@erase "$(OUTDIR)\nsinstall.exe"
|
||||
-@erase "$(OUTDIR)\nsinstall.ilk"
|
||||
-@erase "$(OUTDIR)\nsinstall.pdb"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP_PROJ=/nologo /MD /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "DEBUG"\
|
||||
/D "_CONSOLE" /Fp"$(INTDIR)/nsinstall.pch" /YX /Fo"$(INTDIR)/"\
|
||||
/Fd"$(INTDIR)/" /c
|
||||
CPP_OBJS=.\Debug/
|
||||
CPP_SBRS=.\.
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)/nsinstall.bsc"
|
||||
BSC32_SBRS= \
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=/nologo\
|
||||
/subsystem:console /incremental:yes /pdb:"$(OUTDIR)/nsinstall.pdb" /debug\
|
||||
/out:"$(OUTDIR)/nsinstall.exe"
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\nsinstall.obj"
|
||||
|
||||
"$(OUTDIR)\nsinstall.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ENDIF
|
||||
|
||||
.c{$(CPP_OBJS)}.obj:
|
||||
$(CPP) $(CPP_PROJ) $<
|
||||
|
||||
.c{$(CPP_SBRS)}.sbr:
|
||||
$(CPP) $(CPP_PROJ) $<
|
||||
|
||||
################################################################################
|
||||
# Begin Target
|
||||
|
||||
################################################################################
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\nsinstall.c
|
||||
DEP_CPP_SHMSD=\
|
||||
{$(INCLUDE)}"\sys\stat.h"\
|
||||
{$(INCLUDE)}"\sys\types.h"\
|
||||
|
||||
|
||||
"$(INTDIR)\nsinstall.obj" : $(SOURCE) $(DEP_CPP_SHMSD) "$(INTDIR)"
|
||||
|
||||
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
||||
################################################################################
|
||||
@ -1,504 +0,0 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
|
||||
|
||||
@ -1,481 +0,0 @@
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1991 Free Software Foundation, Inc.
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the library GPL. It is
|
||||
numbered 2 because it goes with version 2 of the ordinary GPL.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Library General Public License, applies to some
|
||||
specially designated Free Software Foundation software, and to any
|
||||
other libraries whose authors decide to use it. You can use it for
|
||||
your libraries, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if
|
||||
you distribute copies of the library, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link a program with the library, you must provide
|
||||
complete object files to the recipients so that they can relink them
|
||||
with the library, after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
Our method of protecting your rights has two steps: (1) copyright
|
||||
the library, and (2) offer you this license which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
Also, for each distributor's protection, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
library. If the library is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original
|
||||
version, so that any problems introduced by others will not reflect on
|
||||
the original authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that companies distributing free
|
||||
software will individually obtain patent licenses, thus in effect
|
||||
transforming the program into proprietary software. To prevent this,
|
||||
we have made it clear that any patent must be licensed for everyone's
|
||||
free use or not licensed at all.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the ordinary
|
||||
GNU General Public License, which was designed for utility programs. This
|
||||
license, the GNU Library General Public License, applies to certain
|
||||
designated libraries. This license is quite different from the ordinary
|
||||
one; be sure to read it in full, and don't assume that anything in it is
|
||||
the same as in the ordinary license.
|
||||
|
||||
The reason we have a separate public license for some libraries is that
|
||||
they blur the distinction we usually make between modifying or adding to a
|
||||
program and simply using it. Linking a program with a library, without
|
||||
changing the library, is in some sense simply using the library, and is
|
||||
analogous to running a utility program or application program. However, in
|
||||
a textual and legal sense, the linked executable is a combined work, a
|
||||
derivative of the original library, and the ordinary General Public License
|
||||
treats it as such.
|
||||
|
||||
Because of this blurred distinction, using the ordinary General
|
||||
Public License for libraries did not effectively promote software
|
||||
sharing, because most developers did not use the libraries. We
|
||||
concluded that weaker conditions might promote sharing better.
|
||||
|
||||
However, unrestricted linking of non-free programs would deprive the
|
||||
users of those programs of all benefit from the free status of the
|
||||
libraries themselves. This Library General Public License is intended to
|
||||
permit developers of non-free programs to use free libraries, while
|
||||
preserving your freedom as a user of such programs to change the free
|
||||
libraries that are incorporated in them. (We have not seen how to achieve
|
||||
this as regards changes in header files, but we have achieved it as regards
|
||||
changes in the actual functions of the Library.) The hope is that this
|
||||
will lead to faster development of free libraries.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, while the latter only
|
||||
works together with the library.
|
||||
|
||||
Note that it is possible for a library to be covered by the ordinary
|
||||
General Public License rather than by this special one.
|
||||
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library which
|
||||
contains a notice placed by the copyright holder or other authorized
|
||||
party saying it may be distributed under the terms of this Library
|
||||
General Public License (also called "this License"). Each licensee is
|
||||
addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also compile or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
c) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
d) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the source code distributed need not include anything that is normally
|
||||
distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Library General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
@ -1,8 +0,0 @@
|
||||
These libraries were compiled using .NET/VC7. The original
|
||||
sources can be found at ftp://ftp.gtk.org/pub/gtk/v1.2/glib-1.2.10.tar.gz &
|
||||
ftp://ftp.mozilla.org/pub/mozilla/libraries/source/libIDL-0.6.8.tar.gz.
|
||||
The patches used to build can be found at
|
||||
http://bugzilla.mozilla.org/show_bug.cgi?id=123743 .
|
||||
|
||||
- cls, 2002/10/18
|
||||
|
||||
@ -1,174 +0,0 @@
|
||||
/* glibconfig.h.win32 */
|
||||
/* Handcrafted for Microsoft C. */
|
||||
|
||||
#ifndef GLIBCONFIG_H
|
||||
#define GLIBCONFIG_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#ifdef _MSC_VER
|
||||
/* Make MSVC more pedantic, this is a recommended pragma list
|
||||
* from _Win32_Programming_ by Rector and Newcomer.
|
||||
*/
|
||||
#pragma warning(error:4002)
|
||||
#pragma warning(error:4003)
|
||||
#pragma warning(1:4010)
|
||||
#pragma warning(error:4013)
|
||||
#pragma warning(1:4016)
|
||||
#pragma warning(error:4020)
|
||||
#pragma warning(error:4021)
|
||||
#pragma warning(error:4027)
|
||||
#pragma warning(error:4029)
|
||||
#pragma warning(error:4033)
|
||||
#pragma warning(error:4035)
|
||||
#pragma warning(error:4045)
|
||||
#pragma warning(error:4047)
|
||||
#pragma warning(error:4049)
|
||||
#pragma warning(error:4053)
|
||||
#pragma warning(error:4071)
|
||||
#pragma warning(disable:4101)
|
||||
#pragma warning(error:4150)
|
||||
|
||||
#pragma warning(disable:4244) /* No possible loss of data warnings */
|
||||
#pragma warning(disable:4305) /* No truncation from int to char warnings */
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
#include <limits.h>
|
||||
#include <float.h>
|
||||
|
||||
#define G_MINFLOAT FLT_MIN
|
||||
#define G_MAXFLOAT FLT_MAX
|
||||
#define G_MINDOUBLE DBL_MIN
|
||||
#define G_MAXDOUBLE DBL_MAX
|
||||
#define G_MINSHORT SHRT_MIN
|
||||
#define G_MAXSHORT SHRT_MAX
|
||||
#define G_MININT INT_MIN
|
||||
#define G_MAXINT INT_MAX
|
||||
#define G_MINLONG LONG_MIN
|
||||
#define G_MAXLONG LONG_MAX
|
||||
|
||||
typedef signed char gint8;
|
||||
typedef unsigned char guint8;
|
||||
typedef signed short gint16;
|
||||
typedef unsigned short guint16;
|
||||
typedef signed int gint32;
|
||||
typedef unsigned int guint32;
|
||||
|
||||
#define G_HAVE_GINT64 1
|
||||
|
||||
typedef __int64 gint64;
|
||||
typedef unsigned __int64 guint64;
|
||||
|
||||
#define G_GINT64_CONSTANT(val) (val##i64)
|
||||
|
||||
#define GPOINTER_TO_INT(p) ((gint)(p))
|
||||
#define GPOINTER_TO_UINT(p) ((guint)(p))
|
||||
|
||||
#define GINT_TO_POINTER(i) ((gpointer)(i))
|
||||
#define GUINT_TO_POINTER(u) ((gpointer)(u))
|
||||
|
||||
#define g_ATEXIT(proc) (atexit (proc))
|
||||
|
||||
#define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END
|
||||
|
||||
#define G_HAVE_ALLOCA 1
|
||||
#define alloca _alloca
|
||||
|
||||
#define GLIB_MAJOR_VERSION 1
|
||||
#define GLIB_MINOR_VERSION 2
|
||||
#define GLIB_MICRO_VERSION 10
|
||||
|
||||
#ifdef __cplusplus
|
||||
#define G_HAVE_INLINE 1
|
||||
#else /* !__cplusplus */
|
||||
#define G_HAVE___INLINE 1
|
||||
#endif
|
||||
|
||||
#define G_THREADS_ENABLED
|
||||
/*
|
||||
* The following program can be used to determine the magic values below:
|
||||
* #include <stdio.h>
|
||||
* #include <pthread.h>
|
||||
* main(int argc, char **argv)
|
||||
* {
|
||||
* int i;
|
||||
* pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
|
||||
* printf ("sizeof (pthread_mutex_t) = %d\n", sizeof (pthread_mutex_t));
|
||||
* printf ("PTHREAD_MUTEX_INITIALIZER = ");
|
||||
* for (i = 0; i < sizeof (pthread_mutex_t); i++)
|
||||
* printf ("%u, ", ((unsigned char *) &m)[i]);
|
||||
* printf ("\n");
|
||||
* exit(0);
|
||||
* }
|
||||
*/
|
||||
|
||||
#define G_THREADS_IMPL_POSIX
|
||||
typedef struct _GStaticMutex GStaticMutex;
|
||||
struct _GStaticMutex
|
||||
{
|
||||
struct _GMutex *runtime_mutex;
|
||||
union {
|
||||
/* The size of the pad array should be sizeof (pthread_mutext_t) */
|
||||
/* This value corresponds to the 1999-04-07 version of pthreads-win32 */
|
||||
char pad[4];
|
||||
double dummy_double;
|
||||
void *dummy_pointer;
|
||||
long dummy_long;
|
||||
} aligned_pad_u;
|
||||
};
|
||||
/* This should be NULL followed by the bytes in PTHREAD_MUTEX_INITIALIZER */
|
||||
#define G_STATIC_MUTEX_INIT { NULL, { { 255, 255, 255, 255 } } }
|
||||
#define g_static_mutex_get_mutex(mutex) \
|
||||
(g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \
|
||||
g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
|
||||
|
||||
#define G_BYTE_ORDER G_LITTLE_ENDIAN
|
||||
|
||||
#define GINT16_TO_LE(val) ((gint16) (val))
|
||||
#define GUINT16_TO_LE(val) ((guint16) (val))
|
||||
#define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val))
|
||||
#define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val))
|
||||
|
||||
#define GINT32_TO_LE(val) ((gint32) (val))
|
||||
#define GUINT32_TO_LE(val) ((guint32) (val))
|
||||
#define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val))
|
||||
#define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val))
|
||||
|
||||
#define GINT64_TO_LE(val) ((gint64) (val))
|
||||
#define GUINT64_TO_LE(val) ((guint64) (val))
|
||||
#define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val))
|
||||
#define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val))
|
||||
|
||||
#define GLONG_TO_LE(val) ((glong) GINT32_TO_LE (val))
|
||||
#define GULONG_TO_LE(val) ((gulong) GUINT32_TO_LE (val))
|
||||
#define GLONG_TO_BE(val) ((glong) GINT32_TO_BE (val))
|
||||
#define GULONG_TO_BE(val) ((gulong) GUINT32_TO_BE (val))
|
||||
|
||||
#define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val))
|
||||
#define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val))
|
||||
#define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val))
|
||||
#define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val))
|
||||
|
||||
#define GLIB_SYSDEF_POLLIN = 1
|
||||
#define GLIB_SYSDEF_POLLOUT = 4
|
||||
#define GLIB_SYSDEF_POLLPRI = 2
|
||||
#define GLIB_SYSDEF_POLLERR = 8
|
||||
#define GLIB_SYSDEF_POLLHUP = 16
|
||||
#define GLIB_SYSDEF_POLLNVAL = 32
|
||||
|
||||
#define G_HAVE_WCHAR_H 1
|
||||
#define G_HAVE_WCTYPE_H 1
|
||||
|
||||
/* Define if this is Win32, possibly using the Cygwin emulation layer. */
|
||||
#define WIN32 1
|
||||
|
||||
/* Define if this is Win32 without Cygwin. */
|
||||
#define NATIVE_WIN32 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* GLIBCONFIG_H */
|
||||
@ -1,851 +0,0 @@
|
||||
/**************************************************************************
|
||||
|
||||
IDL.h (IDL parse tree and namespace components)
|
||||
|
||||
Copyright (C) 1998, 1999 Andrew T. Veliath
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
$Id: IDL.h,v 1.1 2002-10-18 08:31:49 seawood%netscape.com Exp $
|
||||
|
||||
***************************************************************************/
|
||||
#ifndef __IDL_H
|
||||
#define __IDL_H
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
/* Try to find wchar_t support */
|
||||
#include <stdlib.h>
|
||||
#if 1 /* HAVE_WCHAR_H */
|
||||
# include <wchar.h>
|
||||
#endif
|
||||
#if 0 /* HAVE_WCSTR_H */
|
||||
# include <wcstr.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* version */
|
||||
#define LIBIDL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
|
||||
#define LIBIDL_MAJOR_VERSION 0
|
||||
#define LIBIDL_MINOR_VERSION 6
|
||||
#define LIBIDL_MICRO_VERSION 8
|
||||
#define LIBIDL_VERSION_CODE LIBIDL_VERSION(0,6,8)
|
||||
|
||||
/* miscellaneous constants */
|
||||
#define IDL_SUCCESS 0
|
||||
#define IDL_ERROR 1
|
||||
#define IDL_WARNING1 2
|
||||
#define IDL_WARNING2 3
|
||||
#define IDL_WARNING3 4
|
||||
#define IDL_WARNINGMAX IDL_WARNING3
|
||||
|
||||
/* general parse flags */
|
||||
#define IDLF_VERBOSE (1UL << 0)
|
||||
#define IDLF_NO_EVAL_CONST (1UL << 1)
|
||||
#define IDLF_COMBINE_REOPENED_MODULES (1UL << 2)
|
||||
#define IDLF_PREFIX_FILENAME (1UL << 3)
|
||||
#define IDLF_IGNORE_FORWARDS (1UL << 4)
|
||||
#define IDLF_PEDANTIC (1UL << 5)
|
||||
#define IDLF_INHIBIT_TAG_ONLY (1UL << 6)
|
||||
#define IDLF_INHIBIT_INCLUDES (1UL << 7)
|
||||
|
||||
/* syntax extension parse flags */
|
||||
#define IDLF_TYPECODES (1UL << 16)
|
||||
#define IDLF_XPIDL (1UL << 17)
|
||||
#define IDLF_PROPERTIES (1UL << 18)
|
||||
#define IDLF_CODEFRAGS (1UL << 19)
|
||||
|
||||
/* declaration specification flags */
|
||||
#define IDLF_DECLSPEC_EXIST (1UL << 0)
|
||||
#define IDLF_DECLSPEC_INHIBIT (1UL << 1)
|
||||
|
||||
/* output flags */
|
||||
#define IDLF_OUTPUT_NO_NEWLINES (1UL << 0)
|
||||
#define IDLF_OUTPUT_NO_QUALIFY_IDENTS (1UL << 1)
|
||||
#define IDLF_OUTPUT_PROPERTIES (1UL << 2)
|
||||
#define IDLF_OUTPUT_CODEFRAGS (1UL << 3)
|
||||
|
||||
#ifdef _WIN32
|
||||
# define IDL_EXPORT __declspec (dllexport)
|
||||
# define IDL_IMPORT __declspec (dllimport)
|
||||
#else
|
||||
# define IDL_EXPORT /* empty */
|
||||
# define IDL_IMPORT extern
|
||||
#endif
|
||||
|
||||
/* type casting checks */
|
||||
#define IDL_check_cast_enable(boolean) do { \
|
||||
IDL_IMPORT int __IDL_check_type_casts; \
|
||||
__IDL_check_type_casts = (boolean); \
|
||||
} while (0)
|
||||
#define IDL_CHECK_CAST(tree, thetype, name) \
|
||||
(IDL_check_type_cast(tree, thetype, \
|
||||
__FILE__, __LINE__, \
|
||||
G_GNUC_PRETTY_FUNCTION)->u.name)
|
||||
|
||||
#ifdef G_HAVE_GINT64
|
||||
# if G_MAXLONG > 0xffffffffUL
|
||||
# define IDL_LL "l"
|
||||
# else
|
||||
# define IDL_LL "ll"
|
||||
# endif
|
||||
typedef gint64 IDL_longlong_t;
|
||||
typedef guint64 IDL_ulonglong_t;
|
||||
#else
|
||||
# define IDL_LL "l"
|
||||
typedef long IDL_longlong_t;
|
||||
typedef unsigned long IDL_ulonglong_t;
|
||||
# warning 64-bit integer type not available, using 32-bit instead
|
||||
#endif /* G_HAVE_GINT64 */
|
||||
|
||||
typedef unsigned int IDL_declspec_t;
|
||||
typedef struct _IDL_tree_node IDL_tree_node;
|
||||
typedef struct _IDL_tree_node * IDL_tree;
|
||||
|
||||
struct _IDL_LIST {
|
||||
IDL_tree data;
|
||||
IDL_tree prev;
|
||||
IDL_tree next;
|
||||
IDL_tree _tail; /* Internal use, may not be valid */
|
||||
};
|
||||
|
||||
#define IDL_LIST(a) IDL_CHECK_CAST(a, IDLN_LIST, idl_list)
|
||||
extern IDL_tree IDL_list_new (IDL_tree data);
|
||||
extern IDL_tree IDL_list_concat (IDL_tree orig,
|
||||
IDL_tree append);
|
||||
extern IDL_tree IDL_list_remove (IDL_tree list,
|
||||
IDL_tree p);
|
||||
extern int IDL_list_length (IDL_tree list);
|
||||
extern IDL_tree IDL_list_nth (IDL_tree list,
|
||||
int n);
|
||||
|
||||
struct _IDL_GENTREE {
|
||||
IDL_tree data;
|
||||
GHashTable *siblings;
|
||||
GHashTable *children;
|
||||
GHashFunc hash_func;
|
||||
GCompareFunc key_compare_func;
|
||||
IDL_tree _import; /* Internal use, do not recurse */
|
||||
char *_cur_prefix; /* Internal use */
|
||||
};
|
||||
#define IDL_GENTREE(a) IDL_CHECK_CAST(a, IDLN_GENTREE, idl_gentree)
|
||||
extern IDL_tree IDL_gentree_new (GHashFunc hash_func,
|
||||
GCompareFunc key_compare_func,
|
||||
IDL_tree data);
|
||||
extern IDL_tree IDL_gentree_new_sibling (IDL_tree from,
|
||||
IDL_tree data);
|
||||
extern IDL_tree IDL_gentree_chain_sibling (IDL_tree from,
|
||||
IDL_tree data);
|
||||
extern IDL_tree IDL_gentree_chain_child (IDL_tree from,
|
||||
IDL_tree data);
|
||||
|
||||
struct _IDL_INTEGER {
|
||||
IDL_longlong_t value;
|
||||
};
|
||||
#define IDL_INTEGER(a) IDL_CHECK_CAST(a, IDLN_INTEGER, idl_integer)
|
||||
extern IDL_tree IDL_integer_new (IDL_longlong_t value);
|
||||
|
||||
struct _IDL_STRING {
|
||||
char *value;
|
||||
};
|
||||
#define IDL_STRING(a) IDL_CHECK_CAST(a, IDLN_STRING, idl_string)
|
||||
extern IDL_tree IDL_string_new (char *value);
|
||||
|
||||
struct _IDL_WIDE_STRING {
|
||||
wchar_t *value;
|
||||
};
|
||||
#define IDL_WIDE_STRING(a) IDL_CHECK_CAST(a, IDLN_WIDE_STRING, idl_wide_string)
|
||||
extern IDL_tree IDL_wide_string_new (wchar_t *value);
|
||||
|
||||
struct _IDL_CHAR {
|
||||
char *value;
|
||||
};
|
||||
#define IDL_CHAR(a) IDL_CHECK_CAST(a, IDLN_CHAR, idl_char)
|
||||
extern IDL_tree IDL_char_new (char *value);
|
||||
|
||||
struct _IDL_WIDE_CHAR {
|
||||
wchar_t *value;
|
||||
};
|
||||
#define IDL_WIDE_CHAR(a) IDL_CHECK_CAST(a, IDLN_WIDE_CHAR, idl_wide_char)
|
||||
extern IDL_tree IDL_wide_char_new (wchar_t *value);
|
||||
|
||||
struct _IDL_FIXED {
|
||||
char *value;
|
||||
};
|
||||
#define IDL_FIXED(a) IDL_CHECK_CAST(a, IDLN_FIXED, idl_fixed)
|
||||
extern IDL_tree IDL_fixed_new (char *value);
|
||||
|
||||
struct _IDL_FLOAT {
|
||||
double value;
|
||||
};
|
||||
#define IDL_FLOAT(a) IDL_CHECK_CAST(a, IDLN_FLOAT, idl_float)
|
||||
extern IDL_tree IDL_float_new (double value);
|
||||
|
||||
struct _IDL_BOOLEAN {
|
||||
unsigned value;
|
||||
};
|
||||
#define IDL_BOOLEAN(a) IDL_CHECK_CAST(a, IDLN_BOOLEAN, idl_boolean)
|
||||
extern IDL_tree IDL_boolean_new (unsigned value);
|
||||
|
||||
struct _IDL_IDENT {
|
||||
char *str;
|
||||
char *repo_id;
|
||||
GSList *comments;
|
||||
IDL_tree _ns_ref; /* Internal use, do not recurse */
|
||||
unsigned _flags; /* Internal use */
|
||||
#define IDLF_IDENT_CASE_MISMATCH_HIT (1UL << 0)
|
||||
};
|
||||
#define IDL_IDENT(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident)
|
||||
#define IDL_IDENT_TO_NS(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident._ns_ref)
|
||||
#define IDL_IDENT_REPO_ID(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident.repo_id)
|
||||
extern IDL_tree IDL_ident_new (char *str);
|
||||
extern void IDL_queue_new_ident_comment (const char *str);
|
||||
|
||||
enum IDL_float_type {
|
||||
IDL_FLOAT_TYPE_FLOAT,
|
||||
IDL_FLOAT_TYPE_DOUBLE,
|
||||
IDL_FLOAT_TYPE_LONGDOUBLE
|
||||
};
|
||||
|
||||
struct _IDL_TYPE_FLOAT {
|
||||
enum IDL_float_type f_type;
|
||||
};
|
||||
#define IDL_TYPE_FLOAT(a) IDL_CHECK_CAST(a, IDLN_TYPE_FLOAT, idl_type_float)
|
||||
extern IDL_tree IDL_type_float_new (enum IDL_float_type f_type);
|
||||
|
||||
struct _IDL_TYPE_FIXED {
|
||||
IDL_tree positive_int_const;
|
||||
IDL_tree integer_lit;
|
||||
};
|
||||
#define IDL_TYPE_FIXED(a) IDL_CHECK_CAST(a, IDLN_TYPE_FIXED, idl_type_fixed)
|
||||
extern IDL_tree IDL_type_fixed_new (IDL_tree positive_int_const,
|
||||
IDL_tree integer_lit);
|
||||
|
||||
enum IDL_integer_type {
|
||||
IDL_INTEGER_TYPE_SHORT,
|
||||
IDL_INTEGER_TYPE_LONG,
|
||||
IDL_INTEGER_TYPE_LONGLONG
|
||||
};
|
||||
|
||||
struct _IDL_TYPE_INTEGER {
|
||||
unsigned f_signed : 1;
|
||||
enum IDL_integer_type f_type;
|
||||
};
|
||||
#define IDL_TYPE_INTEGER(a) IDL_CHECK_CAST(a, IDLN_TYPE_INTEGER, idl_type_integer)
|
||||
extern IDL_tree IDL_type_integer_new (unsigned f_signed,
|
||||
enum IDL_integer_type f_type);
|
||||
|
||||
extern IDL_tree IDL_type_char_new (void);
|
||||
extern IDL_tree IDL_type_wide_char_new (void);
|
||||
extern IDL_tree IDL_type_boolean_new (void);
|
||||
extern IDL_tree IDL_type_octet_new (void);
|
||||
extern IDL_tree IDL_type_any_new (void);
|
||||
extern IDL_tree IDL_type_object_new (void);
|
||||
extern IDL_tree IDL_type_typecode_new (void);
|
||||
|
||||
struct _IDL_TYPE_STRING {
|
||||
IDL_tree positive_int_const;
|
||||
};
|
||||
#define IDL_TYPE_STRING(a) IDL_CHECK_CAST(a, IDLN_TYPE_STRING, idl_type_string)
|
||||
extern IDL_tree IDL_type_string_new (IDL_tree positive_int_const);
|
||||
|
||||
struct _IDL_TYPE_WIDE_STRING {
|
||||
IDL_tree positive_int_const;
|
||||
};
|
||||
#define IDL_TYPE_WIDE_STRING(a) IDL_CHECK_CAST(a, IDLN_TYPE_WIDE_STRING, idl_type_wide_string)
|
||||
extern IDL_tree IDL_type_wide_string_new (IDL_tree positive_int_const);
|
||||
|
||||
struct _IDL_TYPE_ENUM {
|
||||
IDL_tree ident;
|
||||
IDL_tree enumerator_list;
|
||||
};
|
||||
#define IDL_TYPE_ENUM(a) IDL_CHECK_CAST(a, IDLN_TYPE_ENUM, idl_type_enum)
|
||||
extern IDL_tree IDL_type_enum_new (IDL_tree ident,
|
||||
IDL_tree enumerator_list);
|
||||
|
||||
struct _IDL_TYPE_ARRAY {
|
||||
IDL_tree ident;
|
||||
IDL_tree size_list;
|
||||
};
|
||||
#define IDL_TYPE_ARRAY(a) IDL_CHECK_CAST(a, IDLN_TYPE_ARRAY, idl_type_array)
|
||||
extern IDL_tree IDL_type_array_new (IDL_tree ident,
|
||||
IDL_tree size_list);
|
||||
|
||||
struct _IDL_TYPE_SEQUENCE {
|
||||
IDL_tree simple_type_spec;
|
||||
IDL_tree positive_int_const;
|
||||
};
|
||||
#define IDL_TYPE_SEQUENCE(a) IDL_CHECK_CAST(a, IDLN_TYPE_SEQUENCE, idl_type_sequence)
|
||||
extern IDL_tree IDL_type_sequence_new (IDL_tree simple_type_spec,
|
||||
IDL_tree positive_int_const);
|
||||
|
||||
struct _IDL_TYPE_STRUCT {
|
||||
IDL_tree ident;
|
||||
IDL_tree member_list;
|
||||
};
|
||||
#define IDL_TYPE_STRUCT(a) IDL_CHECK_CAST(a, IDLN_TYPE_STRUCT, idl_type_struct)
|
||||
extern IDL_tree IDL_type_struct_new (IDL_tree ident,
|
||||
IDL_tree member_list);
|
||||
|
||||
struct _IDL_TYPE_UNION {
|
||||
IDL_tree ident;
|
||||
IDL_tree switch_type_spec;
|
||||
IDL_tree switch_body;
|
||||
};
|
||||
#define IDL_TYPE_UNION(a) IDL_CHECK_CAST(a, IDLN_TYPE_UNION, idl_type_union)
|
||||
extern IDL_tree IDL_type_union_new (IDL_tree ident,
|
||||
IDL_tree switch_type_spec,
|
||||
IDL_tree switch_body);
|
||||
struct _IDL_MEMBER {
|
||||
IDL_tree type_spec;
|
||||
IDL_tree dcls;
|
||||
};
|
||||
#define IDL_MEMBER(a) IDL_CHECK_CAST(a, IDLN_MEMBER, idl_member)
|
||||
extern IDL_tree IDL_member_new (IDL_tree type_spec,
|
||||
IDL_tree dcls);
|
||||
|
||||
struct _IDL_NATIVE {
|
||||
IDL_tree ident;
|
||||
char *user_type; /* XPIDL extension */
|
||||
};
|
||||
#define IDL_NATIVE(a) IDL_CHECK_CAST(a, IDLN_NATIVE, idl_native)
|
||||
extern IDL_tree IDL_native_new (IDL_tree ident);
|
||||
|
||||
|
||||
struct _IDL_TYPE_DCL {
|
||||
IDL_tree type_spec;
|
||||
IDL_tree dcls;
|
||||
};
|
||||
#define IDL_TYPE_DCL(a) IDL_CHECK_CAST(a, IDLN_TYPE_DCL, idl_type_dcl)
|
||||
extern IDL_tree IDL_type_dcl_new (IDL_tree type_spec,
|
||||
IDL_tree dcls);
|
||||
|
||||
struct _IDL_CONST_DCL {
|
||||
IDL_tree const_type;
|
||||
IDL_tree ident;
|
||||
IDL_tree const_exp;
|
||||
};
|
||||
#define IDL_CONST_DCL(a) IDL_CHECK_CAST(a, IDLN_CONST_DCL, idl_const_dcl)
|
||||
extern IDL_tree IDL_const_dcl_new (IDL_tree const_type,
|
||||
IDL_tree ident,
|
||||
IDL_tree const_exp);
|
||||
|
||||
struct _IDL_EXCEPT_DCL {
|
||||
IDL_tree ident;
|
||||
IDL_tree members;
|
||||
};
|
||||
#define IDL_EXCEPT_DCL(a) IDL_CHECK_CAST(a, IDLN_EXCEPT_DCL, idl_except_dcl)
|
||||
extern IDL_tree IDL_except_dcl_new (IDL_tree ident,
|
||||
IDL_tree members);
|
||||
|
||||
struct _IDL_ATTR_DCL {
|
||||
unsigned f_readonly : 1;
|
||||
IDL_tree param_type_spec;
|
||||
IDL_tree simple_declarations;
|
||||
};
|
||||
#define IDL_ATTR_DCL(a) IDL_CHECK_CAST(a, IDLN_ATTR_DCL, idl_attr_dcl)
|
||||
extern IDL_tree IDL_attr_dcl_new (unsigned f_readonly,
|
||||
IDL_tree param_type_spec,
|
||||
IDL_tree simple_declarations);
|
||||
|
||||
struct _IDL_OP_DCL {
|
||||
unsigned __f_noscript : 1; /* Deprecated */
|
||||
unsigned f_oneway : 1;
|
||||
/* XPIDL extension (varags) */
|
||||
unsigned f_varargs : 1;
|
||||
IDL_tree op_type_spec;
|
||||
IDL_tree ident;
|
||||
IDL_tree parameter_dcls;
|
||||
IDL_tree raises_expr;
|
||||
IDL_tree context_expr;
|
||||
};
|
||||
#define IDL_OP_DCL(a) IDL_CHECK_CAST(a, IDLN_OP_DCL, idl_op_dcl)
|
||||
extern IDL_tree IDL_op_dcl_new (unsigned f_oneway,
|
||||
IDL_tree op_type_spec,
|
||||
IDL_tree ident,
|
||||
IDL_tree parameter_dcls,
|
||||
IDL_tree raises_expr,
|
||||
IDL_tree context_expr);
|
||||
|
||||
enum IDL_param_attr {
|
||||
IDL_PARAM_IN,
|
||||
IDL_PARAM_OUT,
|
||||
IDL_PARAM_INOUT
|
||||
};
|
||||
|
||||
struct _IDL_PARAM_DCL {
|
||||
enum IDL_param_attr attr;
|
||||
IDL_tree param_type_spec;
|
||||
IDL_tree simple_declarator;
|
||||
};
|
||||
#define IDL_PARAM_DCL(a) IDL_CHECK_CAST(a, IDLN_PARAM_DCL, idl_param_dcl)
|
||||
extern IDL_tree IDL_param_dcl_new (enum IDL_param_attr attr,
|
||||
IDL_tree param_type_spec,
|
||||
IDL_tree simple_declarator);
|
||||
|
||||
struct _IDL_CASE_STMT {
|
||||
IDL_tree labels;
|
||||
IDL_tree element_spec;
|
||||
};
|
||||
#define IDL_CASE_STMT(a) IDL_CHECK_CAST(a, IDLN_CASE_STMT, idl_case_stmt)
|
||||
extern IDL_tree IDL_case_stmt_new (IDL_tree labels,
|
||||
IDL_tree element_spec);
|
||||
|
||||
struct _IDL_INTERFACE {
|
||||
IDL_tree ident;
|
||||
IDL_tree inheritance_spec;
|
||||
IDL_tree body;
|
||||
};
|
||||
#define IDL_INTERFACE(a) IDL_CHECK_CAST(a, IDLN_INTERFACE, idl_interface)
|
||||
extern IDL_tree IDL_interface_new (IDL_tree ident,
|
||||
IDL_tree inheritance_spec,
|
||||
IDL_tree body);
|
||||
|
||||
struct _IDL_FORWARD_DCL {
|
||||
IDL_tree ident;
|
||||
};
|
||||
#define IDL_FORWARD_DCL(a) IDL_CHECK_CAST(a, IDLN_FORWARD_DCL, idl_forward_dcl)
|
||||
extern IDL_tree IDL_forward_dcl_new (IDL_tree ident);
|
||||
|
||||
struct _IDL_MODULE {
|
||||
IDL_tree ident;
|
||||
IDL_tree definition_list;
|
||||
};
|
||||
#define IDL_MODULE(a) IDL_CHECK_CAST(a, IDLN_MODULE, idl_module)
|
||||
extern IDL_tree IDL_module_new (IDL_tree ident,
|
||||
IDL_tree definition_list);
|
||||
|
||||
enum IDL_binop {
|
||||
IDL_BINOP_OR,
|
||||
IDL_BINOP_XOR,
|
||||
IDL_BINOP_AND,
|
||||
IDL_BINOP_SHR,
|
||||
IDL_BINOP_SHL,
|
||||
IDL_BINOP_ADD,
|
||||
IDL_BINOP_SUB,
|
||||
IDL_BINOP_MULT,
|
||||
IDL_BINOP_DIV,
|
||||
IDL_BINOP_MOD
|
||||
};
|
||||
|
||||
struct _IDL_BINOP {
|
||||
enum IDL_binop op;
|
||||
IDL_tree left, right;
|
||||
};
|
||||
#define IDL_BINOP(a) IDL_CHECK_CAST(a, IDLN_BINOP, idl_binop)
|
||||
extern IDL_tree IDL_binop_new (enum IDL_binop op,
|
||||
IDL_tree left,
|
||||
IDL_tree right);
|
||||
|
||||
enum IDL_unaryop {
|
||||
IDL_UNARYOP_PLUS,
|
||||
IDL_UNARYOP_MINUS,
|
||||
IDL_UNARYOP_COMPLEMENT
|
||||
};
|
||||
|
||||
struct _IDL_UNARYOP {
|
||||
enum IDL_unaryop op;
|
||||
IDL_tree operand;
|
||||
};
|
||||
#define IDL_UNARYOP(a) IDL_CHECK_CAST(a, IDLN_UNARYOP, idl_unaryop)
|
||||
extern IDL_tree IDL_unaryop_new (enum IDL_unaryop op,
|
||||
IDL_tree operand);
|
||||
|
||||
/* XPIDL code fragments extension. */
|
||||
struct _IDL_CODEFRAG {
|
||||
char *desc;
|
||||
GSList *lines;
|
||||
};
|
||||
#define IDL_CODEFRAG(a) IDL_CHECK_CAST(a, IDLN_CODEFRAG, idl_codefrag)
|
||||
extern IDL_tree IDL_codefrag_new (char *desc,
|
||||
GSList *lines);
|
||||
|
||||
/*
|
||||
* IDL_tree_type - Enumerations of node types
|
||||
*
|
||||
* Note this enumerator list is subject to change in the future. A program should not need
|
||||
* more than a recompilation to adjust for a change in this list, so instead of using a
|
||||
* statically initialized jumptable, allocate an array of size IDLN_LAST and assign the
|
||||
* elements manually.
|
||||
*/
|
||||
typedef enum {
|
||||
IDLN_NONE,
|
||||
IDLN_ANY,
|
||||
|
||||
IDLN_LIST,
|
||||
IDLN_GENTREE,
|
||||
IDLN_INTEGER,
|
||||
IDLN_STRING,
|
||||
IDLN_WIDE_STRING,
|
||||
IDLN_CHAR,
|
||||
IDLN_WIDE_CHAR,
|
||||
IDLN_FIXED,
|
||||
IDLN_FLOAT,
|
||||
IDLN_BOOLEAN,
|
||||
IDLN_IDENT,
|
||||
IDLN_TYPE_DCL,
|
||||
IDLN_CONST_DCL,
|
||||
IDLN_EXCEPT_DCL,
|
||||
IDLN_ATTR_DCL,
|
||||
IDLN_OP_DCL,
|
||||
IDLN_PARAM_DCL,
|
||||
IDLN_FORWARD_DCL,
|
||||
IDLN_TYPE_INTEGER,
|
||||
IDLN_TYPE_FLOAT,
|
||||
IDLN_TYPE_FIXED,
|
||||
IDLN_TYPE_CHAR,
|
||||
IDLN_TYPE_WIDE_CHAR,
|
||||
IDLN_TYPE_STRING,
|
||||
IDLN_TYPE_WIDE_STRING,
|
||||
IDLN_TYPE_BOOLEAN,
|
||||
IDLN_TYPE_OCTET,
|
||||
IDLN_TYPE_ANY,
|
||||
IDLN_TYPE_OBJECT,
|
||||
IDLN_TYPE_TYPECODE,
|
||||
IDLN_TYPE_ENUM,
|
||||
IDLN_TYPE_SEQUENCE,
|
||||
IDLN_TYPE_ARRAY,
|
||||
IDLN_TYPE_STRUCT,
|
||||
IDLN_TYPE_UNION,
|
||||
IDLN_MEMBER,
|
||||
IDLN_NATIVE,
|
||||
IDLN_CASE_STMT,
|
||||
IDLN_INTERFACE,
|
||||
IDLN_MODULE,
|
||||
IDLN_BINOP,
|
||||
IDLN_UNARYOP,
|
||||
IDLN_CODEFRAG,
|
||||
|
||||
IDLN_LAST
|
||||
} IDL_tree_type;
|
||||
IDL_IMPORT const char * IDL_tree_type_names[];
|
||||
|
||||
struct _IDL_tree_node {
|
||||
IDL_tree_type _type;
|
||||
IDL_tree up; /* Do not recurse */
|
||||
IDL_declspec_t declspec;
|
||||
GHashTable *properties;
|
||||
int refs;
|
||||
char *_file; /* Internal use */
|
||||
int _line; /* Internal use */
|
||||
union {
|
||||
struct _IDL_LIST idl_list;
|
||||
struct _IDL_GENTREE idl_gentree;
|
||||
struct _IDL_INTEGER idl_integer;
|
||||
struct _IDL_STRING idl_string;
|
||||
struct _IDL_WIDE_STRING idl_wide_string;
|
||||
struct _IDL_CHAR idl_char;
|
||||
struct _IDL_WIDE_CHAR idl_wide_char;
|
||||
struct _IDL_FIXED idl_fixed;
|
||||
struct _IDL_FLOAT idl_float;
|
||||
struct _IDL_BOOLEAN idl_boolean;
|
||||
struct _IDL_IDENT idl_ident;
|
||||
struct _IDL_TYPE_DCL idl_type_dcl;
|
||||
struct _IDL_CONST_DCL idl_const_dcl;
|
||||
struct _IDL_EXCEPT_DCL idl_except_dcl;
|
||||
struct _IDL_ATTR_DCL idl_attr_dcl;
|
||||
struct _IDL_OP_DCL idl_op_dcl;
|
||||
struct _IDL_PARAM_DCL idl_param_dcl;
|
||||
struct _IDL_FORWARD_DCL idl_forward_dcl;
|
||||
struct _IDL_TYPE_FLOAT idl_type_float;
|
||||
struct _IDL_TYPE_FIXED idl_type_fixed;
|
||||
struct _IDL_TYPE_INTEGER idl_type_integer;
|
||||
struct _IDL_TYPE_ENUM idl_type_enum;
|
||||
struct _IDL_TYPE_STRING idl_type_string;
|
||||
struct _IDL_TYPE_WIDE_STRING idl_type_wide_string;
|
||||
struct _IDL_TYPE_SEQUENCE idl_type_sequence;
|
||||
struct _IDL_TYPE_ARRAY idl_type_array;
|
||||
struct _IDL_TYPE_STRUCT idl_type_struct;
|
||||
struct _IDL_TYPE_UNION idl_type_union;
|
||||
struct _IDL_MEMBER idl_member;
|
||||
struct _IDL_NATIVE idl_native;
|
||||
struct _IDL_CASE_STMT idl_case_stmt;
|
||||
struct _IDL_INTERFACE idl_interface;
|
||||
struct _IDL_MODULE idl_module;
|
||||
struct _IDL_BINOP idl_binop;
|
||||
struct _IDL_UNARYOP idl_unaryop;
|
||||
struct _IDL_CODEFRAG idl_codefrag;
|
||||
} u;
|
||||
|
||||
/* Fields for application use */
|
||||
guint32 flags;
|
||||
gpointer data;
|
||||
};
|
||||
#define IDL_NODE_TYPE(a) ((a)->_type)
|
||||
#define IDL_NODE_TYPE_NAME(a) ((a)?IDL_tree_type_names[IDL_NODE_TYPE(a)]:"NULL")
|
||||
#define IDL_NODE_UP(a) ((a)->up)
|
||||
#define IDL_NODE_PROPERTIES(a) ((a)->properties)
|
||||
#define IDL_NODE_DECLSPEC(a) ((a)->declspec)
|
||||
#define IDL_NODE_REFS(a) ((a)->refs)
|
||||
#define IDL_NODE_IS_LITERAL(a) \
|
||||
(IDL_NODE_TYPE(a) == IDLN_INTEGER || \
|
||||
IDL_NODE_TYPE(a) == IDLN_STRING || \
|
||||
IDL_NODE_TYPE(a) == IDLN_WIDE_STRING || \
|
||||
IDL_NODE_TYPE(a) == IDLN_CHAR || \
|
||||
IDL_NODE_TYPE(a) == IDLN_WIDE_CHAR || \
|
||||
IDL_NODE_TYPE(a) == IDLN_FIXED || \
|
||||
IDL_NODE_TYPE(a) == IDLN_FLOAT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_BOOLEAN)
|
||||
#define IDL_NODE_IS_TYPE(a) \
|
||||
(IDL_NODE_TYPE(a) == IDLN_TYPE_INTEGER || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_STRING || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_WIDE_STRING || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_CHAR || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_WIDE_CHAR || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_FIXED || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_FLOAT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_BOOLEAN || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_OCTET || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_ANY || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_OBJECT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_TYPECODE || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_ENUM || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_ARRAY || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_SEQUENCE || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_STRUCT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_UNION)
|
||||
#define IDL_NODE_IS_SCOPED(a) \
|
||||
(IDL_NODE_TYPE(a) == IDLN_IDENT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_INTERFACE || \
|
||||
IDL_NODE_TYPE(a) == IDLN_MODULE || \
|
||||
IDL_NODE_TYPE(a) == IDLN_EXCEPT_DCL || \
|
||||
IDL_NODE_TYPE(a) == IDLN_OP_DCL || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_ENUM || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_STRUCT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_UNION)
|
||||
|
||||
typedef struct _IDL_ns * IDL_ns;
|
||||
|
||||
struct _IDL_ns {
|
||||
IDL_tree global;
|
||||
IDL_tree file;
|
||||
IDL_tree current;
|
||||
GHashTable *inhibits;
|
||||
GHashTable *filename_hash;
|
||||
};
|
||||
#define IDL_NS(a) (*(a))
|
||||
|
||||
typedef enum {
|
||||
IDL_INPUT_REASON_INIT,
|
||||
IDL_INPUT_REASON_FILL,
|
||||
IDL_INPUT_REASON_ABORT,
|
||||
IDL_INPUT_REASON_FINISH
|
||||
} IDL_input_reason;
|
||||
|
||||
union IDL_input_data {
|
||||
struct {
|
||||
const char *filename;
|
||||
} init;
|
||||
struct {
|
||||
char *buffer;
|
||||
size_t max_size;
|
||||
} fill;
|
||||
};
|
||||
|
||||
typedef int (*IDL_input_callback) (IDL_input_reason reason,
|
||||
union IDL_input_data *data,
|
||||
gpointer user_data);
|
||||
|
||||
typedef int (*IDL_msg_callback) (int level,
|
||||
int num,
|
||||
int line,
|
||||
const char *filename,
|
||||
const char *message);
|
||||
|
||||
typedef struct _IDL_tree_func_state IDL_tree_func_state;
|
||||
typedef struct _IDL_tree_func_data IDL_tree_func_data;
|
||||
|
||||
/* Traversal state data. Recursive walks chain states. */
|
||||
struct _IDL_tree_func_state {
|
||||
IDL_tree_func_state *up;
|
||||
IDL_tree start;
|
||||
IDL_tree_func_data *bottom;
|
||||
};
|
||||
|
||||
/* This holds a list of the up hierarchy traversed, beginning from traversal. This is
|
||||
* useful since nodes referenced after initial definition will have a different traversal
|
||||
* path than the actual up path. */
|
||||
struct _IDL_tree_func_data {
|
||||
IDL_tree_func_state *state;
|
||||
IDL_tree_func_data *up;
|
||||
IDL_tree tree;
|
||||
gint step;
|
||||
gpointer data; /* Application data */
|
||||
};
|
||||
|
||||
typedef gboolean (*IDL_tree_func) (IDL_tree_func_data *tnfd,
|
||||
gpointer user_data);
|
||||
|
||||
extern IDL_tree IDL_check_type_cast (const IDL_tree var,
|
||||
IDL_tree_type type,
|
||||
const char *file,
|
||||
int line,
|
||||
const char *function);
|
||||
|
||||
extern const char * IDL_get_libver_string (void);
|
||||
|
||||
extern const char * IDL_get_IDLver_string (void);
|
||||
|
||||
extern int IDL_parse_filename (const char *filename,
|
||||
const char *cpp_args,
|
||||
IDL_msg_callback msg_cb,
|
||||
IDL_tree *tree, IDL_ns *ns,
|
||||
unsigned long parse_flags,
|
||||
int max_msg_level);
|
||||
|
||||
extern int IDL_parse_filename_with_input (const char *filename,
|
||||
IDL_input_callback input_cb,
|
||||
gpointer input_cb_user_data,
|
||||
IDL_msg_callback msg_cb,
|
||||
IDL_tree *tree, IDL_ns *ns,
|
||||
unsigned long parse_flags,
|
||||
int max_msg_level);
|
||||
|
||||
extern int IDL_ns_prefix (IDL_ns ns,
|
||||
const char *s);
|
||||
|
||||
extern void IDL_ns_ID (IDL_ns ns,
|
||||
const char *s);
|
||||
|
||||
extern void IDL_ns_version (IDL_ns ns,
|
||||
const char *s);
|
||||
|
||||
extern int IDL_inhibit_get (void);
|
||||
|
||||
extern void IDL_inhibit_push (void);
|
||||
|
||||
extern void IDL_inhibit_pop (void);
|
||||
|
||||
extern void IDL_file_set (const char *filename,
|
||||
int line);
|
||||
|
||||
extern void IDL_file_get (const char **filename,
|
||||
int *line);
|
||||
|
||||
extern IDL_tree IDL_get_parent_node (IDL_tree p,
|
||||
IDL_tree_type type,
|
||||
int *scope_levels);
|
||||
|
||||
extern IDL_tree IDL_tree_get_scope (IDL_tree p);
|
||||
|
||||
extern int IDL_tree_get_node_info (IDL_tree tree,
|
||||
char **who,
|
||||
char **what);
|
||||
|
||||
extern void IDL_tree_error (IDL_tree p,
|
||||
const char *fmt,
|
||||
...)
|
||||
G_GNUC_PRINTF (2, 3);
|
||||
|
||||
extern void IDL_tree_warning (IDL_tree p,
|
||||
int level,
|
||||
const char *fmt,
|
||||
...)
|
||||
G_GNUC_PRINTF (3, 4);
|
||||
|
||||
extern const char * IDL_tree_property_get (IDL_tree tree,
|
||||
const char *key);
|
||||
|
||||
extern void IDL_tree_property_set (IDL_tree tree,
|
||||
const char *key,
|
||||
const char *value);
|
||||
|
||||
extern gboolean IDL_tree_property_remove (IDL_tree tree,
|
||||
const char *key);
|
||||
|
||||
extern void IDL_tree_properties_copy (IDL_tree from_tree,
|
||||
IDL_tree to_tree);
|
||||
|
||||
extern void IDL_tree_remove_inhibits (IDL_tree *tree,
|
||||
IDL_ns ns);
|
||||
|
||||
extern void IDL_tree_walk (IDL_tree p,
|
||||
IDL_tree_func_data *current,
|
||||
IDL_tree_func pre_tree_func,
|
||||
IDL_tree_func post_tree_func,
|
||||
gpointer user_data);
|
||||
|
||||
extern void IDL_tree_walk_in_order (IDL_tree p,
|
||||
IDL_tree_func tree_func,
|
||||
gpointer user_data);
|
||||
|
||||
extern void IDL_tree_free (IDL_tree root);
|
||||
|
||||
extern void IDL_tree_to_IDL (IDL_tree p,
|
||||
IDL_ns ns,
|
||||
FILE *output,
|
||||
unsigned long output_flags);
|
||||
|
||||
extern GString * IDL_tree_to_IDL_string (IDL_tree p,
|
||||
IDL_ns ns,
|
||||
unsigned long output_flags);
|
||||
|
||||
extern gchar * IDL_do_escapes (const char *s);
|
||||
|
||||
extern IDL_tree IDL_resolve_const_exp (IDL_tree p,
|
||||
IDL_tree_type type);
|
||||
|
||||
extern IDL_ns IDL_ns_new (void);
|
||||
|
||||
extern void IDL_ns_free (IDL_ns ns);
|
||||
|
||||
extern IDL_tree IDL_ns_resolve_this_scope_ident (IDL_ns ns,
|
||||
IDL_tree scope,
|
||||
IDL_tree ident);
|
||||
|
||||
extern IDL_tree IDL_ns_resolve_ident (IDL_ns ns,
|
||||
IDL_tree ident);
|
||||
|
||||
extern IDL_tree IDL_ns_lookup_this_scope (IDL_ns ns,
|
||||
IDL_tree scope,
|
||||
IDL_tree ident,
|
||||
gboolean *conflict);
|
||||
|
||||
extern IDL_tree IDL_ns_lookup_cur_scope (IDL_ns ns,
|
||||
IDL_tree ident,
|
||||
gboolean *conflict);
|
||||
|
||||
extern IDL_tree IDL_ns_place_new (IDL_ns ns,
|
||||
IDL_tree ident);
|
||||
|
||||
extern void IDL_ns_push_scope (IDL_ns ns,
|
||||
IDL_tree ident);
|
||||
|
||||
extern void IDL_ns_pop_scope (IDL_ns ns);
|
||||
|
||||
extern IDL_tree IDL_ns_qualified_ident_new (IDL_tree nsid);
|
||||
|
||||
extern gchar * IDL_ns_ident_to_qstring (IDL_tree ns_ident,
|
||||
const char *join,
|
||||
int scope_levels);
|
||||
|
||||
extern int IDL_ns_scope_levels_from_here (IDL_ns ns,
|
||||
IDL_tree ident,
|
||||
IDL_tree parent);
|
||||
|
||||
extern gchar * IDL_ns_ident_make_repo_id (IDL_ns ns,
|
||||
IDL_tree p,
|
||||
const char *p_prefix,
|
||||
int *major,
|
||||
int *minor);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __IDL_H */
|
||||
|
Before Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 20 KiB |
@ -1,40 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Product Branding Issues</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H3>
|
||||
Product Branding Instructions</H3>
|
||||
Under the terms of the Unlimited Localization Program, you must remove
|
||||
or replace all trademarked Netscape terms, brand names, icons, images,
|
||||
etc. These trademarks are listed on the page found at the following
|
||||
URL:
|
||||
|
||||
<P><A HREF="http://home.netscape.com/misc/trademarks.html#trademarks">http://home.netscape.com/misc/trademarks.html#trademarks</A>
|
||||
|
||||
<P>Please refer to that page for details. You may not release a localized
|
||||
version of the Netscape Communicator with these trademarks left in the
|
||||
product.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="usingKit.html#branding">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER><BR>
|
||||
<FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape Communications
|
||||
Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,100 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Getting Started</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H2>
|
||||
<A NAME="getting started"></A>2. Getting Started</H2>
|
||||
Before you can begin using the Windows Installer Localization Kit, you
|
||||
must install it and setup your working directories. This is a simple matter
|
||||
of unzipping the compressed kit file(s) into the proper directories. Your
|
||||
system must also meet certain requirements to run the tools needed to perform
|
||||
the localization steps described below.
|
||||
|
||||
<P>
|
||||
<HR WIDTH="50%">
|
||||
<H3>
|
||||
<A NAME="sysreqs"></A>System Requirements</H3>
|
||||
There few system requirements for the kit in the strictest sense; however,
|
||||
your choice of tools will have their own set of requirements. The
|
||||
most likely minimum configuration will be as follows:
|
||||
<UL>
|
||||
<LI>
|
||||
100% IBM compatible PC</LI>
|
||||
|
||||
<LI>
|
||||
Pentium<SUP><FONT SIZE=-1>®</FONT></SUP> processor</LI>
|
||||
|
||||
<LI>
|
||||
Microsoft<SUP><FONT SIZE=-1>®</FONT></SUP> Windows NT 3.51 or 4.0 (localized
|
||||
versions will help testing but aren't required)</LI>
|
||||
|
||||
<LI>
|
||||
16 MB RAM</LI>
|
||||
|
||||
<LI>
|
||||
30 MB available hard disk space</LI>
|
||||
|
||||
<LI>
|
||||
InstallShield International version 3.0 or other install builder software</LI>
|
||||
|
||||
<LI>
|
||||
A visual resource editor, such as those provided with Microsoft<SUP><FONT SIZE=-1>®</FONT></SUP>
|
||||
Visual C++, Borland<SUP><FONT SIZE=-1>®</FONT></SUP> C++, etc.</LI>
|
||||
|
||||
<LI>
|
||||
An active Internet connection and the ability to ftp (send and receive)
|
||||
large files</LI>
|
||||
|
||||
<LI>
|
||||
A Web browser (say, for example, Netscape Communicator ;-)</LI>
|
||||
</UL>
|
||||
|
||||
<H3>
|
||||
|
||||
<HR WIDTH="50%"></H3>
|
||||
|
||||
<H3>
|
||||
<A NAME="install"></A>Installing the Kit</H3>
|
||||
It is recommended that you install the Windows Installer Localization Kit
|
||||
into the same directory as your other Netscape/Mozilla localization kits:
|
||||
in other words, install this kit into your <B>kitRoot </B>directory.
|
||||
Place this localization kit's .ZIP file in that directory and UNZIP it
|
||||
with the -d parameter:
|
||||
|
||||
<P>PKUNZIP -d <I>filename</I>
|
||||
<UL><B>Example: <TT>PKUNZIP -d instkit</TT></B></UL>
|
||||
|
||||
<HR WIDTH="50%">
|
||||
<H3>
|
||||
<A NAME="configtool"></A>Configuring Your Tools</H3>
|
||||
Please refer to your Installshield or other install builder tool's documentation
|
||||
for set up and usage instructions.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="nomenclature.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="usingKit.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS]</A></CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER></CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,203 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>ISO Locale codes</TITLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
|
||||
<CENTER>
|
||||
<H1>
|
||||
ISO Language and Country Codes</H1></CENTER>
|
||||
2 letter language codes are derived from the ISO 639 standard; country
|
||||
codes are from ISO 3166. Here are the codes for the locales currently supported
|
||||
by the L10n kits. If an entry also includes the country code then you must
|
||||
use that as well when creating the locale directory or naming a file.
|
||||
<H3>
|
||||
ISO Language and Country Codes table</H3>
|
||||
|
||||
<TABLE BORDER=5 >
|
||||
<TR>
|
||||
<TD><U>Language Name</U></TD>
|
||||
|
||||
<TD><U>Language Code</U></TD>
|
||||
|
||||
<TD><U>Country Code</U></TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Chinese (Traditional)</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>zh</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>CN</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Chinese (Simplified)</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>zh</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>TW</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Danish</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>da</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>DK</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Dutch</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>nl</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>NL</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>French</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>fr</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>FR</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>German</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>de</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>DE</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Italian</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>it</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>IT</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Japanese</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>ja</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>JP</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Korean</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>ko</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>KR</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Portuguese</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>pt</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>BR</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Spanish</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>es</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>ES</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Swedish</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>sv</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>SE</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<CENTER><BR>
|
||||
<FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1997, Copyright Netscape Communications
|
||||
Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,99 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Kit Overview</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H3>
|
||||
<A NAME="kitoverview"></A>Kit Overview</H3>
|
||||
This kit is primarily intended for knowledgeable developers who are familiar
|
||||
with the localization process, with InstallShield or other installation
|
||||
programs, and with Windows resource editors. There are two basic
|
||||
approaches you can take to create an installer for your localized Communicator,
|
||||
Navigator or Mozilla derivative product:
|
||||
<OL>
|
||||
<LI>
|
||||
Use an existing Communicator or Navigator Export product installer as a
|
||||
base and add your localized files, or</LI>
|
||||
|
||||
<LI>
|
||||
Create your own install program and use the registry setting information
|
||||
provided by the kit.</LI>
|
||||
</OL>
|
||||
|
||||
<UL>
|
||||
<H4>
|
||||
<A NAME="method1"></A>Overview of Method 1.</H4>
|
||||
For this method you will need the following components:
|
||||
<BR>
|
||||
<UL>
|
||||
<LI>
|
||||
Your own copy of InstallShield version 3 International</LI>
|
||||
|
||||
<LI>
|
||||
The appropriate version of a Netscape Communicator or Navigator installer.</LI>
|
||||
|
||||
<LI>
|
||||
This localization kit.</LI>
|
||||
|
||||
<LI>
|
||||
A text editor.</LI>
|
||||
|
||||
<LI>
|
||||
A resource editor (e.g., MSDEV)</LI>
|
||||
</UL>
|
||||
|
||||
|
||||
<P>You will start with an Export version of a Netscape Communicator or
|
||||
Navigator installer. Then, you will extract the localizable components
|
||||
and modify them as desired. You will localize a number of strings
|
||||
contained in .INI files using a text editor. You will use a resource editor
|
||||
or the Netscape Translation Tools to localize STRINGTABLE and DIALOG resource
|
||||
types contained in two .DLLs. Once the localizable components of the installer
|
||||
are finished, you will reassemble the installer using the InstallShield
|
||||
EXE BUILDER tool, including your localized Communicator, Navigator or Mozilla
|
||||
derivative product. This process is detailed in the next section.</UL>
|
||||
|
||||
<UL>
|
||||
<H4>
|
||||
<A NAME="method2"></A>Overview of Method 2.</H4>
|
||||
For this method you will need the following components:
|
||||
<BR>
|
||||
<UL>
|
||||
<LI>
|
||||
Your own copy of any install builder software</LI>
|
||||
|
||||
<LI>
|
||||
This localization kit</LI>
|
||||
</UL>
|
||||
|
||||
|
||||
<P>You will create your own installation program in whatever fashion you
|
||||
wish. In order for your localized product to function properly, your
|
||||
installer will need to implement certain <A HREF="registrySettings.html">Windows
|
||||
registry settings</A>.</UL>
|
||||
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="projectOverview.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="kitStruct.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER><FONT SIZE=-1> 1998, Copyright Netscape Communications Corp.
|
||||
All Rights Reserved</FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,63 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Kit Structure</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H3>
|
||||
<A NAME="kitstruct"></A>Kit Structure and Organization</H3>
|
||||
When you install this localization kit you will find a number of new directories
|
||||
on your hard disk. Each directory is named so as to be fairly self-explanatory,
|
||||
but the following diagram and description may help avoid any confusion
|
||||
you may have about what's what.
|
||||
<H4>
|
||||
<IMG SRC="l10ntree.jpg" BORDER=0 HEIGHT=98 WIDTH=177></H4>
|
||||
|
||||
<H4>
|
||||
Description of Kit Directories</H4>
|
||||
|
||||
<UL>
|
||||
<LI>
|
||||
The <B><TT>kitRoot</TT> </B>directory is wherever you install the Netscape
|
||||
Localization Kits.</LI>
|
||||
|
||||
<LI>
|
||||
The <B><TT>l10nkits</TT> </B>directory contains the tools (if any) and
|
||||
documentation you need to complete your work.</LI>
|
||||
|
||||
<LI>
|
||||
Since this kit concerns the Windows client product (as opposed to our server
|
||||
products) all the relevant documentation and tools are found under the
|
||||
<B><TT>client\windows </TT></B>directory.</LI>
|
||||
|
||||
<LI>
|
||||
The <B><TT>docs</TT> </B>directory contains documentation on the kit, including
|
||||
the file you are reading now.</LI>
|
||||
</UL>
|
||||
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="kitOverview.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="nomenclature.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,51 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize AIM.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for AIM.INI</H4>
|
||||
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
|
||||
|
||||
<LI>
|
||||
Change Netscape trademarks to your own product name(s).</LI>
|
||||
</UL>
|
||||
|
||||
<B>Specific Notes:</B>
|
||||
<P>
|
||||
File Copy String=<B>Copying Netscape AOL Instant Messenger Service files...</B>
|
||||
|
||||
<P>
|
||||
Installation String=<B>Installing Netscape AOL Instant Messenger Service files...</B>
|
||||
|
||||
<P>
|
||||
Configuration String=<B>Configuring Netscape AOL Instant Messenger Service...</B>
|
||||
|
||||
<P>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<P>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,65 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize CD.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for CD.INI</H4>
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
|
||||
|
||||
<LI>
|
||||
Update the product version number as appropriate.</LI>
|
||||
|
||||
<LI>
|
||||
Modify the locale code according to the ISO 639 and ISO 3166 standards.
|
||||
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
|
||||
|
||||
<LI>
|
||||
You may need to move the placement of "%s" variables in your translation.</LI>
|
||||
|
||||
<LI>
|
||||
Do not exceed the length of US string for Deinstall Dialog Wait Message.</LI>
|
||||
|
||||
<LI>
|
||||
Change Netscape trademarks to your own product name(s).</LI>
|
||||
</UL>
|
||||
<B>Specific Notes:</B>
|
||||
|
||||
<P>Product Setup Title1= <B>Deinstaller</B>
|
||||
|
||||
<P>Product Version=<B>4.03 </B>(<B>en</B>)
|
||||
|
||||
<P>Deinstall Dialog Message=<B>Are you sure you want to deinstall</B> <B>Netscape
|
||||
Communicator 4.03</B> ?
|
||||
|
||||
<P>Deinstall Dialog Wait Message=<B>Parsing</B> <B>Netscape Communicator
|
||||
4.03 deinstall log file</B> %s (<B>this will take several minutes)...</B>
|
||||
|
||||
<P>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
<BR>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,62 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize COSMO.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for COSMO.INI</H4>
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
|
||||
|
||||
<LI>
|
||||
Update the product version number as appropriate.</LI>
|
||||
|
||||
<LI>
|
||||
Modify the locale code according to the ISO 639 and ISO 3166 standards.
|
||||
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
|
||||
</UL>
|
||||
<B>Specific Notes:</B>
|
||||
<BR>
|
||||
<BR>Installation String=<B>Installing Cosmo Player files...</B>
|
||||
|
||||
<P>Configuration String=<B>Configuring Cosmo Player...</B>
|
||||
|
||||
<P>File Copy String=<B>Copying Cosmo Player files... </B>
|
||||
|
||||
<P>Description=<B>VRML 2.0 support </B>
|
||||
|
||||
<P>[Registry Entries-Reg2]
|
||||
<BR>HKEY Value=<B>4.03 </B>(<B>en</B>)
|
||||
|
||||
<P>[Registry Entries-Reg3]
|
||||
<BR>HKEY Key Path=Software\Netscape\Cosmo\<B>4.03</B> (<B>en</B>)
|
||||
|
||||
<P>[Registry Entries-Reg4]
|
||||
<BR>HKEY Key Path=Software\Netscape\Cosmo\<B>4.03 </B>(<B>en</B>)\Main
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
<BR>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,32 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize _ISUSER.DLL</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for _ISUSER.DLL</H4>
|
||||
All dialogs in this .DLL can be localized.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table1">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,45 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize MMEDIA.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for MMEDIA.INI</H4>
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
|
||||
|
||||
</UL>
|
||||
<B>Specific Notes:</B>
|
||||
|
||||
<P>Installation String=<B>Installing Audio/Video Playback files...</B>
|
||||
|
||||
<P>Configuration String=<B>Configuring Audio/Video Playback...</B>
|
||||
|
||||
<P>File Copy String=<B>Copying Audio/Video Playback files...</B>
|
||||
|
||||
<P>Description=<B>Support for multi-media web pages</B>
|
||||
<P>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<P>
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,68 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Localizing MPLAY32.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for MPLAY32.INI</H4>
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
|
||||
|
||||
<LI>
|
||||
Update the product version number as appropriate.</LI>
|
||||
|
||||
<LI>
|
||||
Modify the locale code according to the ISO 639 and ISO 3166 standards.
|
||||
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
|
||||
|
||||
<LI>
|
||||
Change Netscape trademarks to your own product name(s).</LI>
|
||||
</UL>
|
||||
<B>Specific Notes:</B>
|
||||
|
||||
<P>Installation String=<B>Installing Netscape Media Player files...</B>
|
||||
|
||||
<P>Configuration String=<B>Configuring Netscape Media Player...</B>
|
||||
|
||||
<P>File Copy String=<B>Copying Netscape Media Player files...</B>
|
||||
|
||||
<P>Description=<B>Streaming audio support</B>
|
||||
|
||||
<P>[Default Folder-Icon2]
|
||||
<BR>ProgramFolder=[Default Folder]\<B>Utilities</B>
|
||||
|
||||
<P>[Registry Entries-Reg2]
|
||||
<BR>HKEY Value=<B>4.03 </B>(<B>en</B>)
|
||||
|
||||
<P>[Registry Entries-Reg3]
|
||||
<BR>HKEY Key Path=Software\Netscape\Media Player\<B>4.03 </B>(<B>en</B>)
|
||||
|
||||
<P>[Registry Entries-Reg4]
|
||||
<BR>HKEY Key Path=Software\Netscape\Media Player\<B>4.03 </B>(<B>en</B>)\Main
|
||||
|
||||
<P>[Registry Entries-Reg5]
|
||||
<BR>HKEY Key Path=Software\Netscape\Media Player\<B>4.03</B> (<B>en</B>)\Main
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> <BR>
|
||||
<FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape Communications
|
||||
Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,154 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize NAV40.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for NAV40.INI</H4>
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Do not exceed the length of English string if possible.</LI>
|
||||
|
||||
<LI>
|
||||
Modify the locale code according to the ISO 639 and ISO 3166 standards.
|
||||
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
|
||||
|
||||
<LI>
|
||||
The "Utilities" folder name may be localized.</LI>
|
||||
|
||||
<LI>
|
||||
"Item name" is the name that will appear under the associated icon; these
|
||||
may be localized.</LI>
|
||||
|
||||
<LI>
|
||||
You may need to move the placement of "%s" variables in your translation.</LI>
|
||||
|
||||
<LI>
|
||||
Change Netscape trademarks to your own product name(s).</LI>
|
||||
</UL>
|
||||
<B>Specific Notes:</B>
|
||||
|
||||
<P>Installation String=<B>Installing Netscape Communicator 4.03 files...</B>
|
||||
|
||||
<P>Configuration String=<B>Configuring Netscape Communicator 4.03...</B>
|
||||
|
||||
<P>File Copy String=<B>Copying Netscape Communicator 4.03 files...</B>
|
||||
|
||||
<P>Description=<B>Contains Collabra, Composer, Messenger, and Navigator</B>.
|
||||
|
||||
<P>Warn Previous Version Message=<B>Setup has detected a previous installation
|
||||
of</B> %s. <B>If you installed plugins or helper applications with a previous
|
||||
installation, you will need to reinstall them to this version of</B> <B>Communicator.</B>
|
||||
|
||||
<P>[Navigator 1]
|
||||
<BR>Message=<B>Setup has detected that an instance of Navigator is currently
|
||||
running. Please quit Navigator before running Setup.</B>
|
||||
|
||||
<P>[Navigator 2]
|
||||
<BR>Message=<B>Setup has detected that an instance of Navigator is currently
|
||||
running. Please quit</B> <B>Navigator before running Setup.</B>
|
||||
|
||||
<P>[Navigator 3]
|
||||
<BR>Message=<B>Setup has detected that an instance of Navigator is currently
|
||||
running. Please quit</B> <B>Navigator before running Setup.</B>
|
||||
|
||||
<P>[NSMail Notifier]
|
||||
<BR>Message=<B>Installation cannot continue because the Mail Notification
|
||||
program is currently running. Use your right mouse button to click the
|
||||
Mail icon next to the task bar clock and select 'Exit' to disable Mail
|
||||
Notification, then run the installer again.</B>
|
||||
|
||||
<P>[Navigator 4.05 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.05 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.04 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.04 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.03 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.02 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.02 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.01 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.01 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.0 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.0 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.0b6 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.0b6 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.0b5 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.0b5 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.0b4 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.0b4 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.0b3 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.0b3 [<B>en</B>]\Main
|
||||
|
||||
<P>[Default Folder-Icon11]
|
||||
<BR>ItemName=<B>User Profile Manager</B>
|
||||
|
||||
<P>[Default Folder-Icon12]
|
||||
<BR>ProgramFolder=[Default Folder]\<B>Utilities</B>
|
||||
<BR>ItemName=<B>User Profile Manager</B>
|
||||
|
||||
<P>[Default Folder-Icon13]
|
||||
<BR>ItemName=<B>Netscape Mail Notification</B>
|
||||
|
||||
<P>[Default Folder-Icon14]
|
||||
<BR>ProgramFolder=[Default Folder]\<B>Utilities</B>
|
||||
<BR>ItemName=<B>Netscape Mail Notification</B>
|
||||
|
||||
<P>[Registry Entries-R14]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)
|
||||
|
||||
<P>[Registry Entries-R15]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
|
||||
|
||||
<P>[Registry Entries-R16]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
|
||||
|
||||
<P>[Registry Entries-R17]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
|
||||
|
||||
<P>[Registry Entries-R18]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
|
||||
|
||||
<P>[Registry Entries-R19]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
|
||||
|
||||
<P>[Registry Entries-R37]
|
||||
<BR>HKEY Value=4.03 (<B>en</B>)
|
||||
|
||||
<P>[Registry Entries-R38]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netcaster\4.03 (<B>en</B>)\Main
|
||||
|
||||
<P>[Registry Entries-R39]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netcaster\4.03 (<B>en</B>)\Main
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER></CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,49 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize NETCAST.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for NETCAST.INI</H4>
|
||||
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
|
||||
|
||||
<LI>
|
||||
Change Netscape trademarks to your own product name(s).</LI>
|
||||
</UL>
|
||||
|
||||
<B>Specific Notes:</B>
|
||||
<P>
|
||||
Installation String=<B>Installing Netscape Netcaster files...</B>
|
||||
<P>
|
||||
Configuration String=<B>Configuring Netscape Netcaster...</B>
|
||||
<P>
|
||||
File Copy String=<B>Copying Netscape Netcaster files...</B>
|
||||
|
||||
<P>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<P>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,67 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localizing NSCONF.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for NSCONF.INI</H4>
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
|
||||
|
||||
<LI>
|
||||
Update the product version number as appropriate.</LI>
|
||||
|
||||
<LI>
|
||||
Modify the locale code according to the ISO 639 and ISO 3166 standards.
|
||||
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
|
||||
|
||||
<LI>
|
||||
Change Netscape trademarks to your own product name(s).</LI>
|
||||
</UL>
|
||||
<B>Specific Notes:</B>
|
||||
|
||||
<P>Installation String=<B>Installing Netscape Conference files...</B>
|
||||
|
||||
<P>Configuration String=<B>Configuring Netscape Conference...</B>
|
||||
|
||||
<P>File Copy String=<B>Copying Netscape Conference files...</B>
|
||||
|
||||
<P>Description=<B>Real-time collaboration and audio conferencing</B>
|
||||
|
||||
<P>[Registry Entries-Reg17]
|
||||
<BR>HKEY Value=<B>4.03</B> (<B>en</B>)
|
||||
|
||||
<P>[Registry Entries-Reg18]
|
||||
<BR>HKEY Key Path=Software\Netscape\Conference\<B>4.03 </B>(<B>en</B>)
|
||||
|
||||
<P>[Registry Entries-Reg19]
|
||||
<BR>HKEY Key Path=Software\Netscape\Conference\<B>4.03</B> (<B>en</B>)\Main
|
||||
|
||||
<P>[Registry Entries-Reg20]
|
||||
<BR>HKEY Key Path=Software\Netscape\Conference\<B>4.03</B> (<B>en</B>)\Main<BR>
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER></CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,71 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize RSUTIL.DLL</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for RSUTIL.DLL</H4>
|
||||
<B>STRINGTABLES</B><B></B>
|
||||
|
||||
<P><B><FONT COLOR="#FF0000">Do not translate the following strings:</FONT></B>
|
||||
|
||||
<P>STRING ID:
|
||||
<BR><I>1 </I>
|
||||
<BR><I>17 18 19 </I>
|
||||
<BR><I>20 21 22 23 24 25 26 27 28 29 </I>
|
||||
<BR><I>30 31 32 33 34 35 36 37 38 39 </I>
|
||||
<BR><I>40 41 42 43 44 45 46 47 48 49 </I>
|
||||
<BR><I>50 51 52 53 54 55 56 57 58 59 </I>
|
||||
<BR><I>60 61 62 63 64 65 66 67 68 69 </I>
|
||||
<BR><I>70 71 72 73 74 75 76 77 78 79 </I>
|
||||
<BR><I>80 81 82 83 85 86 88 </I>
|
||||
<BR><I>90 91 92 95 97 98 99</I>
|
||||
<BR><I>100 101 102 103 104 105 106 107 108 109</I>
|
||||
<BR><I>110 111 112 113 114</I>
|
||||
<BR><I>122 123 126 127 129</I>
|
||||
<BR><I>132 133 134 135 136 137 138 139</I>
|
||||
<BR><I>140 145 149</I>
|
||||
<BR><I>151 153 154 155 156 157 158 159</I>
|
||||
<BR><I>162 163 164 165 166 167 169 </I>
|
||||
<BR><I>170 171 172 173 174 175 176 177 178 179</I>
|
||||
<BR><I>180 181 182 183 184 185 187 188</I>
|
||||
<BR><I>190 192 193 194 195 196 197 198 199</I>
|
||||
<BR><I>200 201 202 203 204 205 206 207 208 209</I>
|
||||
<BR><I>210 211 212 213 214 215 216 217 218 219</I>
|
||||
<BR><I>220 221 222 226 227 228 229 </I>
|
||||
<BR><I>230 232 233 234 235 236 237 238 239</I>
|
||||
<BR><I>240 241 242 243 244 245 246 247 248 249</I>
|
||||
<BR><I>250 251 252 253 254 255 256 257 </I>
|
||||
<BR><I>260 261 263 264 265 266 267 269</I>
|
||||
<BR><I>270 271 272 273 274 275 276 277 278 279</I>
|
||||
<BR><I>280 281 282 283</I>
|
||||
<BR>
|
||||
<BR>
|
||||
<HR WIDTH="50%">
|
||||
<BR><B>ICONS</B>
|
||||
<BR>Replace any trademarked icons, as described in the universal localization
|
||||
program license agreement, with your own icons.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table1">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,138 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize SETUP.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for SETUP.INI</H4>
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Only translate the strings which are shown in bold type face below.</LI>
|
||||
|
||||
<LI>
|
||||
The "StartCopy Dialog Message" should be less than 256 bytes long.</LI>
|
||||
|
||||
<LI>
|
||||
For the "Multiple Components" section, both the key and the value may be
|
||||
localized (optional).</LI>
|
||||
|
||||
<LI>
|
||||
If the key "Multimedia Support" is localized then next section name should
|
||||
be identical to the localized key.</LI>
|
||||
|
||||
<LI>
|
||||
Change Netscape trademarks to your own product name(s).</LI>
|
||||
|
||||
<LI>
|
||||
Update the version number as appropriate.</LI>
|
||||
|
||||
<LI>
|
||||
Modify the locale code according to the ISO 639 and ISO 3166 standards.
|
||||
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
|
||||
</UL>
|
||||
<B>Specific Notes:</B>
|
||||
|
||||
<P>Product Setup Title1= <B>Setup</B>
|
||||
|
||||
<P>Product Version=<B>4.03 </B>(<B>en</B>)
|
||||
|
||||
<P>Deinstall Version=<B>4.03 </B>(<B>en</B>)
|
||||
|
||||
<P>License Dialog Title=<B>Software License Agreement</B>
|
||||
|
||||
<P>License Dialog Message=<B>Please read the following license agreement.
|
||||
Use the scroll bar to view the rest of this agreement.</B>
|
||||
|
||||
<P>License Dialog Question=<B>Do you accept all the terms of the preceding
|
||||
license agreement? If so, click on the Yes button. If you select No, Setup
|
||||
will close.</B>
|
||||
|
||||
<P>License Icon Description=<B>License Agreement</B>
|
||||
|
||||
<P>Welcome Dialog Title=<B>Netscape Communicator 4.03 Setup</B>
|
||||
|
||||
<P>Welcome Dialog Message=<B>Welcome to Netscape Communicator 4.03 Setup</B>.
|
||||
|
||||
<P>SetupType Dialog Title=<B>Setup Type</B>
|
||||
|
||||
<P>SetupType Dialog Message=<B>Select the type of setup you prefer.</B>
|
||||
|
||||
<P>Insufficient Space Dialog Title=<B>Insufficient Space</B>
|
||||
|
||||
<P>Insufficient Space Dialog Message=<B>The path below contains insufficient
|
||||
space.</B>
|
||||
|
||||
<P>Path Dialog Title=<B>Choose Destination Location</B>
|
||||
|
||||
<P>Path Dialog Message=<B>Please enter the location where you would like
|
||||
to install </B>Netscape Communicator 4.03
|
||||
<BR><B>components. You may type a new directory name or click the Browse
|
||||
button to find a new location.</B>
|
||||
|
||||
<P>Options Dialog Title=<B>Netscape Communicator 4.03 Options</B>
|
||||
|
||||
<P>Options Dialog Message=<B>Check the components you would like to install.</B>
|
||||
|
||||
<P>Associations Dialog Title=<B>Setup Associations</B>
|
||||
|
||||
<P>Associations Dialog Message=<B>Check the extensions you would like Communicator
|
||||
to set up. These extensions will be associated with Communicator components.</B>
|
||||
|
||||
<P>Select Folder Dialog Title=<B>Select Program Folder</B>
|
||||
|
||||
<P>StartCopy Dialog Title=<B>Start Copying Files</B>
|
||||
|
||||
<P>StartCopy Dialog Message=<B>Setup has enough information to start copying
|
||||
the program files. If you want to review or change settings, click Back.
|
||||
If you are satisfied with the current settings, click Install to begin
|
||||
copying files.</B>
|
||||
|
||||
<P>Readme Dialog Prompt=<B>Would you like to view the README file now?</B>
|
||||
|
||||
<P>Finish Dialog Prompt=<B>Setup is complete. You may run Netscape Communicator
|
||||
4.03 by double-clicking on one of the icons in the folder.</B>
|
||||
|
||||
<P>Reboot Dialog Title=<B>Restarting Windows</B>
|
||||
|
||||
<P>Reboot Dialog Message=<B>Setup has finished copying files to your computer.
|
||||
Before you can use the program, you must restart Windows or your computer.</B>
|
||||
|
||||
<P>Exit Dialog Message=<B>Are you sure you want to exit setup?</B>
|
||||
|
||||
<P>Error Resource Message1=<B>Could not load Resource: </B>%s
|
||||
<BR>Error Resource Message2=<B>Attempted to fix the problem. Please restart
|
||||
the setup application.</B>
|
||||
<BR>Error Resource Message3=<B>Could not get module handle of rsutil.dll.
|
||||
System memory could be corrupted. Please reboot and try again.</B>
|
||||
|
||||
<P>[Multiple Components]
|
||||
<BR><B>Multimedia Support</B>=<B>Extension modules for Netscape Communicator
|
||||
4.03</B>
|
||||
|
||||
<P>[<B>Multimedia Support</B>]
|
||||
<BR>Default Path=
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table1">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,55 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
|
||||
<TITLE>Localizing URLs</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H3>
|
||||
<A NAME="localizeURLs"></A>Localizing URLs</H3>
|
||||
Many resources of all types in the Communicator contain Internet addresses
|
||||
in the form of URLs (Universal Resource Locators). Most of these point
|
||||
to locations within the Netscape domain; as part of the Unlimited Localization
|
||||
Program, you can leave these as they are, or you may change them as you
|
||||
desire.
|
||||
<H3>
|
||||
Internal URLs</H3>
|
||||
There are a number of internal URLs that <FONT COLOR="#FF0000">should not
|
||||
be changed</FONT>. These are the strings that look like <B>about:[some
|
||||
value]</B>. These point to internally contained resources, such as
|
||||
the main About Communicator page. If you localize these strings you
|
||||
will not be able to load these pages. The main examples you might
|
||||
find are:
|
||||
<UL>
|
||||
<LI>
|
||||
about:</LI>
|
||||
|
||||
<LI>
|
||||
about:plugins</LI>
|
||||
|
||||
<LI>
|
||||
about:fonts</LI>
|
||||
</UL>
|
||||
For more examples and information on these internal URLs go <A HREF="http://help.netscape.com/kb/client/970513-4.html">here</A>.
|
||||
<BR>
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="usingKit.html#localizeURLs">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> <BR>
|
||||
<FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape Communications
|
||||
Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,125 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Localize these Files</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H3>
|
||||
<A NAME="localize_these_files"></A>Localize These Files</H3>
|
||||
This section tells you exactly what files need to be localized. The following
|
||||
tables contain two columns:
|
||||
<UL>
|
||||
<LI>
|
||||
The file to be localized column gives the specific file name. The path
|
||||
name <I>temp</I> refers to wherever you have copied the uncompressed installer
|
||||
files in Step 2 of the <A HREF="usingKit.html#l10nchecklist">Localization
|
||||
Checklist</A>. If the file or resource name is a hypertext link, further
|
||||
information can be found by following that link.</LI>
|
||||
|
||||
<LI>
|
||||
The purpose column describes the basic purpose of this file.</LI>
|
||||
</UL>
|
||||
<A NAME="table1"></A><FONT SIZE=-1>Table 1. Binary files to be localized</FONT>
|
||||
<TABLE BORDER >
|
||||
<TR>
|
||||
<TD><B>File to be localized </B></TD>
|
||||
|
||||
<TD><B>Purpose</B></TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><TT><A HREF="localizeRsutil.html">rsutil.dll</A></TT></TD>
|
||||
|
||||
<TD>Installer STRINGTABLE and ICON resources. </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><TT><A HREF="localizeIsuser.html">_isuser.dll</A></TT></TD>
|
||||
|
||||
<TD>Installer DIALOG resources.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
<A NAME="table2"></A><FONT SIZE=-1>Table 2. .INI files to be localized</FONT>
|
||||
<TABLE BORDER >
|
||||
<TR>
|
||||
<TD><B>File to be localized</B></TD>
|
||||
|
||||
<TD><B>Purpose</B></TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeAim.html">aim.ini</A></TD>
|
||||
|
||||
<TD>AOL Instant Messgenger initialization file.*</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeCD.html">cd.ini</A></TD>
|
||||
|
||||
<TD>Deinstaller initialization file.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeCosmo.html">cosmo.ini</A></TD>
|
||||
|
||||
<TD>Cosmo player initialization file.*</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeMmedia.html">mmedia.ini</A></TD>
|
||||
|
||||
<TD>Multimedia initialization file.*</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeMplay.html">mplay32.ini</A></TD>
|
||||
|
||||
<TD>Media Player initialization file.*</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeNav40.html">nav40.ini</A></TD>
|
||||
|
||||
<TD>Main product initialization file.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeNetcast.html">netcast.ini</A></TD>
|
||||
|
||||
<TD>Netcaster initialization file.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeNsconf.html">nsconf.ini</A></TD>
|
||||
|
||||
<TD>Netscape Conference initialization file.*</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeSetup.html">setup.ini</A></TD>
|
||||
|
||||
<TD>Main setup initialization file.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<P>
|
||||
* These files come with the Complete installer version.
|
||||
<P>
|
||||
<CENTER><TABLE COLS=1 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<P>
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,109 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Conventions</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H3>
|
||||
<A NAME="nomenclature"></A>Nomenclature and Typographical Conventions</H3>
|
||||
<B>Typographical Conventions</B>
|
||||
<BR>Words in <I>italics</I> typeface represent a variable term or phrase,
|
||||
meant to be replaced by another value at "runtime." Example:
|
||||
<UL><I>locale</I> -- replaced by a 2- or 4 letter locale code; e.g. zhtw</UL>
|
||||
Words in <B>bold</B> typeface, using a proportional font, represent a literal
|
||||
value in a string that might also contain a variable word or phrase. Example:
|
||||
<UL><B>4.03 [</B><I>locale</I><B>]</B> -- 4.03 [ ] are literal values,
|
||||
while <I>locale</I> is a variable.
|
||||
<UL> </UL>
|
||||
</UL>
|
||||
Words in a <TT>fixed width font</TT> represent file or directory names,
|
||||
or DOS or Windows commands to be typed as they appear. Sometimes,
|
||||
part or all of the path will be in <B><TT>bold</TT></B>, for emphasis.
|
||||
Examples:
|
||||
<UL>Change to the <B><TT><I>kitRoot</I>\l10nkits\client\windows\tools</TT></B><TT>
|
||||
</TT>directory
|
||||
<BR>Execute <B><TT>RTRNKIT</TT></B></UL>
|
||||
<B>Nomenclature</B>
|
||||
<BR>Throughout this document, certain terms and phrases will be used repeatedly:
|
||||
|
||||
<P><FONT SIZE=-1>Table 1. Nomenclature and Typographical Conventions</FONT>
|
||||
<TABLE BORDER >
|
||||
<TR>
|
||||
<TD><B><TT>kitRoot</TT> </B>directory </TD>
|
||||
|
||||
<TD>indicates the starting or topmost directory of the Windows Front End
|
||||
Localization Kit.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><I>platform</I></TD>
|
||||
|
||||
<TD>either 16 or 32 bit, depending on the version you are working on.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><I>locale</I></TD>
|
||||
|
||||
<TD>in general, this refers to the language into which you are localizing
|
||||
the product. The list of valid locale names is defined in the <A HREF="isocodes.htm">ISO
|
||||
Language and Country Codes Table</A>.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>localization database</TD>
|
||||
|
||||
<TD>a database generated by a leveraging tool from a set of matched binary
|
||||
resource files. </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>localization notes</TD>
|
||||
|
||||
<TD>any special instructions, including the "translate/don't translate"
|
||||
flag, associated with a given resource. Localization notes are contained
|
||||
in the localization database for each resource module.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><I>leverage</I></TD>
|
||||
|
||||
<TD>The process of merging previous localized versions of a file into a
|
||||
current version. </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>forbidden resource</TD>
|
||||
|
||||
<TD>A resource that cannot be changed from the original value without (negatively)
|
||||
impacting the functionality of the product. These are identified in the
|
||||
localization databases.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="kitStruct.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="gettingStarted.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,57 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Project Overview</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H2>
|
||||
<A NAME="overviews"></A>1. Project Overview</H2>
|
||||
|
||||
<CENTER><B><FONT COLOR="#009900">Welcome to the Communicator/Navigator
|
||||
Installer Localization Kit!</FONT></B></CENTER>
|
||||
|
||||
|
||||
<P>Under the universal localization program, you are free to create an
|
||||
installer for a localized Communicator, Navigator or Mozilla derivative
|
||||
product in any way you choose. This localization kit will assist you in
|
||||
creating a your installer for the 32-bit Windows platform. As long as you
|
||||
follow the terms of the universal localization program license agreement,
|
||||
you are free to do what you want with the resulting localized product and
|
||||
installer.
|
||||
|
||||
<P>The Netscape Communicator and Netscape Navigator 4.x installation programs
|
||||
were created with InstallShield<SUP><FONT SIZE=-1>®</FONT></SUP> version
|
||||
3. Because this is the proprietary product of InstallShield Corporation,
|
||||
Netscape cannot redistribute the complete source for these installers.
|
||||
You may, however, modify an existing Communicator or Navigator installer,
|
||||
or if you choose, you may build your own installer "from scratch".
|
||||
|
||||
<P><B>Note</B>: because of the U.S. Government's restrictions on the export
|
||||
of strong cryptography, <B>you may only distribute the "export" version</B>
|
||||
of the Netscape binaries. Please keep this in mind as you work with
|
||||
the localization kit instructions.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="splash.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="kitOverview.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,54 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Reference</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H2>
|
||||
<A NAME="reference"></A>Reference</H2>
|
||||
This section summarizes the references used throughout this document.
|
||||
In addition, other miscellaneous references may be found here.
|
||||
|
||||
<P><FONT SIZE=-1>Table 5. Reference Links</FONT>
|
||||
<TABLE BORDER COLS=3 WIDTH="100%" >
|
||||
<TR>
|
||||
<TD><A HREF="isocodes.htm">Locale Table (local)</A></TD>
|
||||
|
||||
<TD><A HREF="http://www.indigo.ie/egt/standards/iso639/iso639-en.html">Locale
|
||||
Table (remote)</A></TD>
|
||||
|
||||
<TD><A HREF="registrySettings.html">Windows Registry Settings Reference</A></TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="http://home.netscape.com/menu/intl/">Communicator International
|
||||
Features</A></TD>
|
||||
|
||||
<TD><A HREF="http://help.netscape.com/kb/client/970513-4.html"></A></TD>
|
||||
|
||||
<TD><FONT COLOR="#009900"><A HREF="charsets.htm"></A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A HREF="allxpstr.h"></A>
|
||||
|
||||
<P>
|
||||
<CENTER><TABLE COLS=1 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER></CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,612 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
|
||||
<TITLE>Windows Registry Settings</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H1>
|
||||
Windows Registry Settings</H1>
|
||||
This document is provided as a reference to the Windows registry settings
|
||||
implemented by Communicator and Navigator. You may use this as a
|
||||
guide to the registry settings you must implement if you create your own
|
||||
installation program (as opposed to localizing an existing Netscape installer).
|
||||
|
||||
<P>Note that in the Netscape installers, these settings are implemented
|
||||
only within .INI files. This simplifies modifying and localizing
|
||||
the installer. It is recommended that your installer do the same.
|
||||
|
||||
<P>You may observe the registry changes made by any product with tools
|
||||
such as <A HREF="http://www.ntinternals.com/regmon.htm">Regmon.</A> This
|
||||
may be a useful addition to your toolset.
|
||||
|
||||
<P>These notes are applicable to Netscape Communicator version 4.03.
|
||||
<BR>
|
||||
<TABLE BORDER COLS=1 WIDTH="100%" >
|
||||
<TR>
|
||||
<TD><B>MPLAY32.INI</B>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Media Player
|
||||
<BR>Name : CurrentVersion
|
||||
<BR>Value: 4.03 (en)
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Media Player\4.03 (en)
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Media Player\4.03 (en)\Main
|
||||
<BR>Name : Install Directory
|
||||
<BR>Value: [Default Path]\MPlayer
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : Program Folder
|
||||
<BR>Value: [Program Folder]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\.LAM
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: LAMDocument
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\LAMDocument\shell\open\command
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [WINSYSDIR]\mplay32.exe %1
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : (Default)
|
||||
<BR>Value: [WINDIR]\mplayer.exe %1
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\LAMDocument\DefaultIcon
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\MPlayer\npcfg32.exe ,0
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI32
|
||||
<BR>Name : LiveAudioFile
|
||||
<BR>Value: mcilma32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI
|
||||
<BR>Name : LiveAudioFile
|
||||
<BR>Value: mcilma.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI32
|
||||
<BR>Name : LiveAudioMetafile
|
||||
<BR>Value: mcilau32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc
|
||||
<BR>Name : mcilau32.dll
|
||||
<BR>Value: (MCI) Netscape Media Player
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI
|
||||
<BR>Name : LiveAudioMetafile
|
||||
<BR>Value: mcilau.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI
|
||||
Extensions
|
||||
<BR>Name : LAM
|
||||
<BR>Value: LiveAudioMetafile
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : LMA
|
||||
<BR>Value: LiveAudioFile
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : LA
|
||||
<BR>Value: LiveAudioFile
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc
|
||||
<BR>Name : mcilma32.dll
|
||||
<BR>Value: (MCI) Netscape Packetized Audio
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32
|
||||
<BR>Name : MSACM.NSPAC
|
||||
<BR>Value: NSPAC32.ACM
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc
|
||||
<BR>Name : NSPAC32.ACM
|
||||
<BR>Value: elemedia(TM) AX24000P Music Codec
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32
|
||||
<BR>Name : MSACM.voxacm118
|
||||
<BR>Value: vdk32118.acm
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc
|
||||
<BR>Name : vdk32118.acm
|
||||
<BR>Value: Voxware 32bit Codec
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32
|
||||
<BR>Name : MSACM.NSX83
|
||||
<BR>Value: NSX83P32.ACM
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc
|
||||
<BR>Name : NSX83P32.ACM
|
||||
<BR>Value: elemedia(TM) SX8300 Speech Codec
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32
|
||||
<BR>Name : MSACM.NSMLAW
|
||||
<BR>Value: NSMLAW32.DLL
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc
|
||||
<BR>Name : NSMLAW32.DLL
|
||||
<BR>Value: Netscape G.711 Decoder
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
<HR WIDTH="100%">
|
||||
<BR><B>NAV40.INI</B>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App
|
||||
Paths\Netscape.exe
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\Netscape.exe
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : Path
|
||||
<BR>Value: [Default Path]\Program
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{7865A9A1-33A8-11d0-BED9-00A02468FAB6}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\brpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{543EC0D0-6AB7-11d0-BF56-00A02468FAB6}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\brpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{543EC0D1-6AB7-11d0-BF56-00A02468FAB6}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\brpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{2D0A7D70-748C-11d0-9705-00805F8AA8B8}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\edpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{E8D6B4F0-8B58-11d0-9B63-00805F8ADDDE}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\mnpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{DDF4AB60-8B84-11d0-9B63-00805F8ADDDE}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\mnpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{CC3E2871-43CA-11d0-B6D8-00805F8ADDDE}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\mnpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{CC3E2872-43CA-11d0-B6D8-00805F8ADDDE}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\mnpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netscape Navigator
|
||||
<BR>Name : CurrentVersion
|
||||
<BR>Value: 4.03 (en)
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netscape Navigator\Users
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netscape Navigator\4.03
|
||||
(en)
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netscape Navigator\4.03
|
||||
(en)\Main
|
||||
<BR>Name : Install Directory
|
||||
<BR>Value: [Default Path]
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : Java Directory
|
||||
<BR>Value: [Default Path]\Program\Java
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : NetHelp Directory
|
||||
<BR>Value: [Default Path]\Program\NetHelp
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : Plugins Directory
|
||||
<BR>Value: [Default Path]\Program\Plugins
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : Program Folder
|
||||
<BR>Value: [Program Folder]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CURRENT_USER\Software\Netscape
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CURRENT_USER\Software\Netscape\Netscape Navigator
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CURRENT_USER\Software\Netscape\Netscape Navigator\Main
|
||||
<BR>Name : Install Directory
|
||||
<BR>Value: [Default Path]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\CLSID
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: {61D8DE20-CA9A-11CE-9EA5-0080C82BE3B6}
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\Insertable
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\protocol\StdFileEditing\server
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\Netscape.exe
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\protocol\StdFileEditing\verb\0
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: &Edit
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\open\command
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\Netscape.exe "%1"
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\print\command
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\Netscape.exe /print("%1")
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\print\ddeexec
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [print("%1")]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\PrintTo\command
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\Netscape.exe /printto("%1","%2","%3","%4")
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\PrintTo\ddeexec
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [("%1","%2","%3","%4")]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\open\ddeexec
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: "%1"
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\open\ddeexec\Application
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: NSShell
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\open\ddeexec\Topic
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: WWW_OpenURL
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\Edit\command
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\Netscape.exe -edit "%1"
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\Edit\ddeexec
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [edit("%1")]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster
|
||||
<BR>Name : CurrentVersion
|
||||
<BR>Value: 4.03 (en)
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster\4.03 (en)\Main
|
||||
<BR>Name : Install Directory
|
||||
<BR>Value: [Shell Path]\Netcast
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : Program Folder
|
||||
<BR>Value: [Program Folder]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{C98D0190-7D81-11d0-BF8D-00A02468FAB6}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\brpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{37B601C0-8AC8-11d0-83AF-00805F8A274D}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\brpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{913A4A20-8EBF-11d0-BFAB-00A02468FAB6}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\brpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\print\ddeexec\Application
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: NSShell
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\PrintTo\ddeexec\Application
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: NSShell
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\Edit\ddeexec\Application
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: NSShell
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: Hypertext Markup Language
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\telnet
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: URL:Telnet Protocol
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\telnet\shell\open\command
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: telnet %1
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
<HR WIDTH="100%">
|
||||
<BR><B>NETCAST.INI</B>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster
|
||||
<BR>Name : CurrentVersion
|
||||
<BR>Value: 1.0 (en)
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster\1.0 (en)
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster\1.0 (en)\Main
|
||||
<BR>Name : Install Directory
|
||||
<BR>Value: [Default Path]
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : Program Folder
|
||||
<BR>Value: [Program Folder]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
<HR WIDTH="100%">
|
||||
<BR><B>NSCONF.INI</B>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Conference
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Conference\CurrentVersion
|
||||
<BR>Name : Description
|
||||
<BR>Value: Conference
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : InstallDate
|
||||
<BR>Value: [TIME]
|
||||
<BR>Type : REGDB_NUMBER
|
||||
|
||||
<P>Name : Installed
|
||||
<BR>Value: 1
|
||||
<BR>Type : REGDB_NUMBER
|
||||
|
||||
<P>Name : PathName
|
||||
<BR>Value: [Default Path]
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : SoftwareType
|
||||
<BR>Value: application
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : VersionBuild
|
||||
<BR>Value: 1213
|
||||
<BR>Type : REGDB_NUMBER
|
||||
|
||||
<P>Name : VersionMajor
|
||||
<BR>Value: 1
|
||||
<BR>Type : REGDB_NUMBER
|
||||
|
||||
<P>Name : VersionMinor
|
||||
<BR>Value: 0
|
||||
<BR>Type : REGDB_NUMBER
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32
|
||||
<BR>Name : MSACM.VOXACM118
|
||||
<BR>Value: vdk32118.acm
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : MSACM.NSX83
|
||||
<BR>Value: nsx83p32.acm
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : MSACM.NSX723
|
||||
<BR>Value: sx5363s.acm
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : MSACM.NSMLAW
|
||||
<BR>Value: nsmlaw32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CURRENT_USER\Software\Netscape
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\nscfile\shell\open\command
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\NSConf32.exe -f "%1"
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Conference
|
||||
<BR>Name : CurrentVersion
|
||||
<BR>Value: 4.03 (en)
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Conference\4.03 (en)
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Conference\4.03 (en)\Main
|
||||
<BR>Name : Install Directory
|
||||
<BR>Value: [Default Path]
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : Program Folder
|
||||
<BR>Value: [Program Folder]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="kitOverview.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,53 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
|
||||
<TITLE>Reporting Bugs</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H3>
|
||||
<A NAME="reporting_bugs"></A>Reporting Bugs</H3>
|
||||
Any bugs in the localization kits you find should be reported to <A HREF="http://www.mozilla.org">mozilla.org</A>
|
||||
as soon as possible. When you report a bug, try to be as specific as you
|
||||
can about the exact steps needed to reproduce the bug. Provide a
|
||||
complete description of the problem versus the expected results.
|
||||
You should let us know if the problem is 100% reproducible (it happens
|
||||
every time), or if it is intermittant. If you think that your operating
|
||||
environment may play some factor, let us know the details of that.
|
||||
Finally, before reporting any bug, you should make sure that the problem
|
||||
doesn't also happen in the US English product (if it does, we still want
|
||||
to know, but it may not be possible to fix it through the localization
|
||||
kits or tools as they are now).
|
||||
|
||||
<P>To report a bug, post a message to the following mozilla.org newsgroup:
|
||||
<BR>
|
||||
<CENTER><A HREF="news://news.mozilla.org/netscape.public.mozilla.general">news://news.mozilla.org/netscape.public.mozilla.general</A></CENTER>
|
||||
|
||||
|
||||
<P>Be sure to include the information described above.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="testKit.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="returnKit.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,54 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
|
||||
<TITLE>Returning the Kit</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H2>
|
||||
<A NAME="returnkit"></A>5. Publishing the Finished Kit</H2>
|
||||
Once you are satisfied with the quality of your localization efforts, you
|
||||
are required by the terms of the universal localization program license
|
||||
agreement to make your localized product publicly available. The exact
|
||||
details of how you do this is up to you, the most commonly acceptable method
|
||||
is to post your localized product to a publicly accessible ftp site.
|
||||
|
||||
<P>You should post just the localized versions of the files mentioned in
|
||||
the Localize These Files section of this document. For ease of transfer,
|
||||
you may create a compressed archive in the .ZIP file format that contains
|
||||
the localized files. Create one .ZIP file for each language/platform you
|
||||
do. If you are publishing more than one language or platform, you may combine
|
||||
multiple .ZIP files into one master .ZIP file if this makes your life easier.
|
||||
|
||||
<P>If your localized product includes your own trademarks, you should identify
|
||||
these and any restrictions you are placing on their use. You must also
|
||||
include a copy of the End User License Agreement (EULA), as well as a notice
|
||||
stating that Netscape Communications is not required to support your product,
|
||||
and that you are the Licensor referred to in the EULA. Please refer to
|
||||
the Universal Localization Agreement for the exact legal requirements.
|
||||
|
||||
<P>Once your localized product is publicly available, you may inform the
|
||||
world in any manner you choose, but we encourage you to also post the download
|
||||
location to the mozilla.org Announcements newsgroup (netscape.public.mozilla.announce).
|
||||
<CENTER> <BR>
|
||||
<FONT COLOR="#008000"><FONT SIZE=+2>Congratulations! You are done!</FONT></FONT></CENTER>
|
||||
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="testKit.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,47 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Title Page</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<CENTER>
|
||||
<H1>
|
||||
NETSCAPE COMMUNICATOR</H1></CENTER>
|
||||
|
||||
<CENTER><IMG SRC="SPLASH.JPG" NOSAVE HEIGHT=261 WIDTH=390></CENTER>
|
||||
|
||||
<CENTER>
|
||||
<H1>
|
||||
Localization Kit</H1></CENTER>
|
||||
|
||||
<CENTER>
|
||||
<H3>
|
||||
for Microsoft<SUP><FONT SIZE=+0>®</FONT></SUP> Windows (32-bit version)</H3></CENTER>
|
||||
|
||||
<CENTER>
|
||||
<H3>
|
||||
Revision 1.1</H3></CENTER>
|
||||
|
||||
<CENTER>Copyright © 1994-1998 Netscape® Communications Corporation,
|
||||
All rights reserved.</CENTER>
|
||||
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="projectOverview.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,150 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Testing the Localized Resources</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H2>
|
||||
<A NAME="testkit"></A>4. Ensuring Quality</H2>
|
||||
The quality of your localized version will have a large impact on its acceptance
|
||||
in the marketplace. You can greatly enhance your chances of producing
|
||||
a quality product by using experienced and skilled localizers, and by performing
|
||||
post-translation testing.
|
||||
|
||||
<P>When performing the actual translation, you should be sensitive to a
|
||||
number of issues:
|
||||
<UL>
|
||||
<LI>
|
||||
Completeness: you should aim for as thorough a translation as possible.
|
||||
Try not to leave portions of the product untranslated. However, be aware
|
||||
that some terms may best be left in English, depending on local conventions.</LI>
|
||||
|
||||
<LI>
|
||||
Suitability: all translations should be suitable and appropriate for product,
|
||||
the language, the market and the customers you intend to reach. This
|
||||
includes using the proper technical terminology for a give platform or
|
||||
computer operation, as well as using language that is readily understood
|
||||
by the average user of the product in a given language. You should,
|
||||
where possible, try to use terminology which is similar to other products
|
||||
available on the same platform (without violating copyrights or trademarks,
|
||||
of course).</LI>
|
||||
|
||||
<LI>
|
||||
Accuracy: you should be sure your translation conveys the same meaning
|
||||
and intention as the original English.</LI>
|
||||
|
||||
<LI>
|
||||
Grammar and spelling: you should be sure your translation is grammatically
|
||||
accurate and free from spelling errors.</LI>
|
||||
</UL>
|
||||
Keep in mind that engineers do not necessarily make the best localizers!
|
||||
|
||||
<P>Once localization is complete, there are two basic types of post-translation
|
||||
testing that should be done:
|
||||
<BR>
|
||||
<TABLE BORDER WIDTH="100%" >
|
||||
<TR>
|
||||
<TD>Linguistic Review</TD>
|
||||
|
||||
<TD>Checking all translations for accuracy and appropriateness in the actual
|
||||
context in which they appear.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>Functional Testing</TD>
|
||||
|
||||
<TD>Ensuring the product still functions as designed (or at least as well
|
||||
as the US English product).</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<BR>For the linguistic review, you should have an independent reviewer
|
||||
(i.e. not the person who implemented the translations) check every string
|
||||
for the items listed above. In some cases, it may be enough to review
|
||||
the running product itself; however, it is also valuable to print out your
|
||||
translations and review them externally from the product.
|
||||
|
||||
<P>For the functional testing, your best resource are the directions contained
|
||||
in the localization notes and this document. You should review the completed
|
||||
product's localization notes with this document in hand, double checking
|
||||
that you have followed all the instructions contained here.
|
||||
|
||||
<P>Consider the following general guidelines when testing:
|
||||
<UL>
|
||||
<LI>
|
||||
It is helpful to have a second copy of the product running with the English
|
||||
version so you can compare them side by side (a second computer might be
|
||||
helpful or required for this).</LI>
|
||||
|
||||
<LI>
|
||||
Walk through every menu in each module you have localized looking for translation
|
||||
accuracy, pick letter conflicts and other problems.</LI>
|
||||
|
||||
<LI>
|
||||
Bring up as many dialogs as you can, looking for translation accuracy,
|
||||
pick letter conflicts, truncated strings and functionality issues.</LI>
|
||||
|
||||
<LI>
|
||||
Exercise the installer in as many ways as possible:</LI>
|
||||
|
||||
<UL>
|
||||
<LI>
|
||||
Select every installer option</LI>
|
||||
|
||||
<LI>
|
||||
Be sure to test the deinstaller</LI>
|
||||
|
||||
<LI>
|
||||
Look at the icons and folder names created</LI>
|
||||
|
||||
<LI>
|
||||
Use accented or multibyte file and directory names</LI>
|
||||
|
||||
<LI>
|
||||
Install to non-existant and read-only directories</LI>
|
||||
|
||||
<LI>
|
||||
Install to drives with insufficient disk space</LI>
|
||||
|
||||
<LI>
|
||||
etc.</LI>
|
||||
</UL>
|
||||
|
||||
<LI>
|
||||
If functional problems are found, you should compare the same steps you
|
||||
took in the localized product to the English product: if the two products
|
||||
fail in the same way, it is a "core" bug, which can only be fixed by changing
|
||||
the core product's executable. If the localized product fails while the
|
||||
English product does not, then it is probably a translation-related bug;
|
||||
these can be fixed by altering the way you localize the product (perhaps
|
||||
by not translating a particular item, or by translating it differently).</LI>
|
||||
</UL>
|
||||
The following section tells you how to report bugs in the localization
|
||||
kit itself, or in the core product.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="usingKit.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="reportingBugs.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,106 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Table of Contents</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H2>
|
||||
Table of Contents</H2>
|
||||
|
||||
<TABLE>
|
||||
<TR>
|
||||
<TD><FONT SIZE=+1>i. <A HREF="splash.html">Title Page</A></FONT>
|
||||
<BR> </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><FONT SIZE=+1>1. <A HREF="projectOverview.html">Project Overview</A></FONT>
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="kitOverview.html">Kit Overview</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="kitStruct.html">Structure and Organization</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="nomenclature.html">Nomenclature and Typographical Conventions<BR>
|
||||
</A> </LI>
|
||||
</UL>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><FONT SIZE=+1>2. <A HREF="gettingStarted.html">Getting Started</A></FONT>
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="gettingStarted.html#sysreqs">System Requirements</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="gettingStarted.html#install">Installing the Kit</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="gettingStarted.html#configtool">Configuring Your Tools</A></LI>
|
||||
</UL>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><FONT SIZE=+1>3. <A HREF="usingKit.html">Using the Kit</A></FONT>
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="usingKit.html#locdbf">Understanding the Localization Notes</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="usingKit.html#l10nchecklist">Localization Checklist</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="localize_these_files.html">Localize These Files</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="usingKit.html#branding">Product Branding Issues</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="usingKit.html#howtol10n">How to Localize Different Resource Types</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="localizeURL.html">Localizing URLs</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="usingKit.html#localize_stringtable">Localizing STRING TABLES</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="usingKit.html#localize_dialogs">Localizing DIALOGS</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="usingKit.html#localize_text">Localizing .INI Files</A></LI>
|
||||
</UL>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><FONT SIZE=+1>4. <A HREF="testKit.html">Ensuring Quality</A></FONT>
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="testKit.html#testkit">Test Considerations</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="reportingBugs.html">Reporting Bugs</A></LI>
|
||||
</UL>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><FONT SIZE=+1>5. <A HREF="returnKit.html">Publishing the Finished Kit</A></FONT>
|
||||
<BR> </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><FONT SIZE=+1>6. <A HREF="reference.html">References</A></FONT> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,323 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Using the Kit</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<TABLE COLS=1 WIDTH="100%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER><B><FONT COLOR="#FF0000">WARNING! Protect yourself from data loss
|
||||
by making regular backups of your work.</FONT></B></CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<H2>
|
||||
<A NAME="usekit"></A>3. Using the Kit</H2>
|
||||
Once your copy of the Windows Installer Localization Kit is correctly installed,
|
||||
you may begin your localization work by following the instructions in the
|
||||
remainder of this document. The next section discusses the contents of
|
||||
the localization notes provided with this kit. It is important that you
|
||||
work properly with the instructions contained in these files or the localized
|
||||
product you create may not function.
|
||||
<H3>
|
||||
<A NAME="locdbf"></A>Understanding the Localization Notes</H3>
|
||||
Each localized module to be installed has an associated initialization
|
||||
(.INI) file. The localization notes for these files, and for the localizable
|
||||
dynamic link libraries used by the InstallShield installer, are provided
|
||||
as HTML documentation. (There are no localization databases in this kit).
|
||||
Additionally, a section detailing the required Windows registry settings
|
||||
is also provided in HTML format.
|
||||
|
||||
<P>The next section presents the basic localization process as a checklist.
|
||||
<CENTER>
|
||||
<HR WIDTH="50%"></CENTER>
|
||||
|
||||
<H3>
|
||||
<A NAME="l10nchecklist"></A>Localization Checklist</H3>
|
||||
This checklist applies to the "<A HREF="kitOverview.html#method1">modifying
|
||||
an existing Communicator installer</A>" method. If you are <A HREF="kitOverview.html#method2">creating
|
||||
your own installer</A>, you will need to adapt this checklist accordingly.
|
||||
A reference is provided to help you implement the correct <A HREF="registrySettings.html">Windows
|
||||
registry settings</A>.
|
||||
|
||||
<P><B>1. Download an existing installer</B>
|
||||
<BR>You will need a matching installer for the product you are localizing.
|
||||
In other words, if you are localizing Netscape Communicator version 4.03,
|
||||
you need an installer for the Export version of Netscape Communicator 4.03.
|
||||
If you are localizing Mozilla Navigator version 5.0, you need an installer
|
||||
for the Export version (if any) of Mozilla Navigator version 5.0. Latest
|
||||
versions of Netscape products can be downloaded from the <A HREF="http://home.netscape.com/download/index.html">Netscape
|
||||
homepage</A>. Older versions of Netscape installers, matching the versions
|
||||
used to generate the localization kits, can be found on the <A HREF="ftp://ftp.mozilla.org/pub/l10n-kits/">mozilla.org
|
||||
ftp site</A>.
|
||||
|
||||
<P>Current Netscape installers come in two forms: base and complete. Complete
|
||||
installers include plugins and other components besides the basic Communicator
|
||||
software. You may use either installer as the foundation for your work,
|
||||
but note that there may not be localization kits for the additional components.
|
||||
Even if you choose to distribute the English version of these components,
|
||||
however, you must modify the associated initialization files, listed in
|
||||
the <A HREF="localize_these_files.html#table1">Localize These Files</A>
|
||||
page in order for the additional components to be installed properly.
|
||||
|
||||
<P><B>2. Uncompress the Installer files</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Run the installer you downloaded in step 1. This will bring up the following
|
||||
dialog (or something very similar):</LI>
|
||||
|
||||
<BR><IMG SRC="Is1.jpg" HEIGHT=101 WIDTH=364>
|
||||
<LI>
|
||||
Click yes. InstallShield will extract all the installation files to your
|
||||
temporary directory. (Usually, this will be C:\temp or something similar).
|
||||
Once this process is complete, the blue InstallShield background will display.</LI>
|
||||
|
||||
<LI>
|
||||
Without exiting the installer, locate the unpacked installer files in your
|
||||
temp directory and copy them to a new directory. Call this directory "install"
|
||||
(or something similar).</LI>
|
||||
|
||||
<LI>
|
||||
Exit the installer.</LI>
|
||||
</UL>
|
||||
<B>3. Uncompress the Deinstaller files</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Change directories to your "install" directory. Locate the file cd32*.exe
|
||||
(where * equals the version number you are working on. For example, version
|
||||
4.03 would be represented as cd32403.exe).</LI>
|
||||
|
||||
<LI>
|
||||
Execute cd32*.exe. This will bring up a dialog similar to the one shown
|
||||
is step 2. Click yes and wait until InstallShield has finished unpacking
|
||||
the deinstaller files (the blue InstallShield background will display).</LI>
|
||||
|
||||
<LI>
|
||||
Without exiting the installer, locate the unpacked deinstaller files in
|
||||
your temp directory and copy them to a new directory. Call this directory
|
||||
"deinstall" (or something similar).</LI>
|
||||
|
||||
<LI>
|
||||
Exit the installer.</LI>
|
||||
</UL>
|
||||
<B>4. Extract localizable installer .DLLs</B>
|
||||
<BR>Change directories to your "install" directory. Use the InstallShield
|
||||
tool ICOMP.EXE to extract RSUTIL.DLL and _ISUSER.DLL from _SETUP.LIB:
|
||||
<UL><TT>Example: icomp _setup.lib -d</TT></UL>
|
||||
<B>4. Localize files</B>
|
||||
<BR>Consult the <A HREF="localize_these_files.html#table1">Localize These
|
||||
Files</A> page to learn which files contain localizable resources.
|
||||
|
||||
<P>For each file to be localized, locate the associated Localization Notes
|
||||
for that file and follow them carefully.
|
||||
|
||||
<P><B>5. Replace original product files contained in nav40.z with localized
|
||||
product files</B>
|
||||
<BR>Use the ICOMP tool to replace the original (English language) Communicator
|
||||
or Navigator files with the ones you have localized using the Windows Front
|
||||
End Localization Kit.
|
||||
<UL>
|
||||
<LI>
|
||||
Make sure your localized product directory structure matches the structure
|
||||
inside the compressed file nav40.z. (If necessary, uncompress nav40.z (including
|
||||
subdirectories), and replace all the localizable files (as identified by
|
||||
the Windows Front End Localization Kit) with your localized versions).</LI>
|
||||
|
||||
<LI>
|
||||
Update nav40.z with your localized files:</LI>
|
||||
|
||||
<UL><TT>Example: icomp \<I>kitRoot</I>\products\client\windows\<I>platform</I>\<I>locale</I>\*.*
|
||||
nav40.z -i</TT></UL>
|
||||
</UL>
|
||||
<B>6. Rebuild the self-extracting deinstaller program</B>
|
||||
<BR>Use the InstallShield tool EXE Builder to reassemble the self-extracting
|
||||
deinstaller archive.
|
||||
<UL>
|
||||
<LI>
|
||||
Specify your "deinstall" directory as the source directory.</LI>
|
||||
|
||||
<LI>
|
||||
Set compression on.</LI>
|
||||
|
||||
<LI>
|
||||
Specify Setup.exe as the command line program to run when self-extraction
|
||||
is complete. (No optional parameters are required.)</LI>
|
||||
|
||||
<LI>
|
||||
Specify your "install" directory as the target directory.</LI>
|
||||
|
||||
<LI>
|
||||
Enter the name of your localized product as the application name.</LI>
|
||||
|
||||
<LI>
|
||||
Do not specify a password.</LI>
|
||||
|
||||
<LI>
|
||||
Once creation of your localized self-extracting deinstaller is complete,
|
||||
locate the file Setupex.exe in your "install" directory and rename it to
|
||||
match the original name of the deinstaller self-extracting program (e.g.,
|
||||
cd32403.exe).</LI>
|
||||
</UL>
|
||||
<B>7. Rebuild the self-extracting installer program</B>
|
||||
<BR>Use the InstallShield tool EXE Builder to reassemble the self-extracting
|
||||
installer archive.
|
||||
<UL>
|
||||
<LI>
|
||||
Specify your "install" directory as the source directory.</LI>
|
||||
|
||||
<LI>
|
||||
Set compression on.</LI>
|
||||
|
||||
<LI>
|
||||
Specify Setup.exe as the command line program to run when self-extraction
|
||||
is complete. (No optional parameters are required.)</LI>
|
||||
|
||||
<LI>
|
||||
Specify any directory you want as the target directory.</LI>
|
||||
|
||||
<LI>
|
||||
Enter the name of your localized product as the application name.</LI>
|
||||
|
||||
<LI>
|
||||
Do not specify a password.</LI>
|
||||
|
||||
<LI>
|
||||
Once creation of your localized self-extracting installer is complete,
|
||||
locate the file Setupex.exe in your target directory and rename it to something
|
||||
meaningful.</LI>
|
||||
</UL>
|
||||
<B>8. Complete post-translation processing</B>
|
||||
<BR>After translation is complete, you need to test your work and deal
|
||||
with any problems:
|
||||
<UL>
|
||||
<LI>
|
||||
Test the localized installer.</LI>
|
||||
|
||||
<LI>
|
||||
Fix translation bugs using your localization tools or a resource editor.</LI>
|
||||
|
||||
<LI>
|
||||
Fix dialog size bugs using your localization tools or a resource editor.</LI>
|
||||
|
||||
<LI>
|
||||
Report core bugs to Netscape.</LI>
|
||||
</UL>
|
||||
<B>9. Publish your localized product to the Internet</B>
|
||||
<BR>As the terms of the universal localization program license agreement
|
||||
state, your localized product
|
||||
|
||||
<P><TT>"must be made publicly available in executable code form,</TT>
|
||||
<BR><TT>free of charge, for electronic delivery via a mechanism</TT>
|
||||
<BR><TT>generally accepted in the software development</TT>
|
||||
<BR><TT>community."</TT>
|
||||
|
||||
<P>In plain English, this means you should post your localized product
|
||||
on a publicly accessible http: or ftp: server. You may also want to send
|
||||
an announcement of your product's availability to mozilla.org (though you
|
||||
are not required to do so).
|
||||
|
||||
<P>
|
||||
<HR WIDTH="50%">
|
||||
<H2>
|
||||
<A NAME="branding"></A>Product Branding Issues</H2>
|
||||
If you are using this kit under the auspices of the universal localization
|
||||
program, you must remove or replace Netscape trademarked strings, images
|
||||
and icons in your localized version. Click <A HREF="branding.html">here</A>
|
||||
for instructions.
|
||||
|
||||
<P>
|
||||
<HR WIDTH="50%">
|
||||
<H2>
|
||||
<A NAME="howtol10n"></A>How to Localize Different Resource Types</H2>
|
||||
This section provides you with general information about localizing the
|
||||
various resource types and files found with this kit.
|
||||
<H3>
|
||||
<A NAME="localize_text"></A>Localizing .INI Files</H3>
|
||||
|
||||
<UL>Most of the work for the Windows installers is localizing initialization
|
||||
(.INI) files. You may use the text editor of your choice to do this work.
|
||||
Be sure the localized files are saved as plain text only.
|
||||
<H4>
|
||||
<A NAME="locnote_ini"></A>Localization Notes</H4>
|
||||
Individual localization notes for the installer .INI files are contained
|
||||
in the individual HTML documents linked from the <A HREF="localize_these_files.html#table1">Localize
|
||||
These Files</A> page.</UL>
|
||||
|
||||
<H3>
|
||||
<A NAME="localizeURLs"></A>Localizing URLs</H3>
|
||||
|
||||
<UL>You will not likely encounter any URLs (Universal Resource Locators)
|
||||
in the installers, but if you do, how they are localized depends on whether
|
||||
you are creating a branded Netscape version or not. The rules for how to
|
||||
handle URLs are found <A HREF="localizeURL.html">here</A>.</UL>
|
||||
|
||||
<H3>
|
||||
<A NAME="localize_stringtable"></A>Localizing String Tables</H3>
|
||||
|
||||
<UL>Use the resource editor of your choice to localize STRINGTABLE resources.
|
||||
These are the most sensitive, potentially problematic resource type you
|
||||
will be working with. Therefore, you must pay close attention to the instructions
|
||||
provided in the localization notes.
|
||||
<H4>
|
||||
<A NAME="locnote_stringtable"></A>Localization Notes</H4>
|
||||
Individual localization notes for the installer resource .DLLs are contained
|
||||
in the individual HTML documents linked from the <A HREF="localize_these_files.html#table1">Localize
|
||||
These Files</A> page. This section gives you some additional general guidelines
|
||||
to follow when localizing the installer binary files.
|
||||
<UL>
|
||||
<LI>
|
||||
Some strings may contain C++ print format strings, such as %s, %ld, %lu,
|
||||
etc. Do not modify these while translating the rest of the string.</LI>
|
||||
|
||||
<LI>
|
||||
Some strings may contain new line characters: \n. In general, you should
|
||||
try leave these as you find them.</LI>
|
||||
</UL>
|
||||
</UL>
|
||||
|
||||
<H3>
|
||||
<A NAME="localize_menus"></A>Localizing Menus</H3>
|
||||
|
||||
<UL>There are no menu resources in the Windows installer</UL>
|
||||
|
||||
<H3>
|
||||
<A NAME="localize_dialogs"></A>Localizing Dialogs</H3>
|
||||
|
||||
<UL>Use the resource editor of your choice to localize and resize DIALOG
|
||||
resources. Dialog translation is usually not as tricky as localizing string
|
||||
tables; however, you should take care to assign unique pickletters to dialog
|
||||
controls.
|
||||
<H4>
|
||||
<A NAME="locnote_menus"></A>Localization Notes</H4>
|
||||
</UL>
|
||||
|
||||
<UL>Individual localization notes for the installer resource .DLLs are
|
||||
contained in the individual HTML documents linked from the <A HREF="localize_these_files.html#table1">Localize
|
||||
These Files</A> page.</UL>
|
||||
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="gettingStarted.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="testKit.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
Before Width: | Height: | Size: 19 KiB |
@ -1,40 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Product Branding Issues</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H3>
|
||||
Product Branding Instructions</H3>
|
||||
Under the terms of the Unlimited Localization Program, you must remove
|
||||
or replace all trademarked Netscape terms, brand names, icons, images,
|
||||
etc. These trademarks are listed on the page found at the following
|
||||
URL:
|
||||
|
||||
<P><A HREF="http://home.netscape.com/misc/trademarks.html#trademarks">http://home.netscape.com/misc/trademarks.html#trademarks</A>
|
||||
|
||||
<P>Please refer to that page for details. You may not release a localized
|
||||
version of the Netscape Communicator with these trademarks left in the
|
||||
product.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="usingKit.html#branding">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER><BR>
|
||||
<FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape Communications
|
||||
Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,383 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
|
||||
<TITLE>HTML Output of: C:\TEMP\CHARSET.DBF</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H1>
|
||||
CSID REFERENCE TABLE</H1>
|
||||
Use this table to determine the Character Set ID (CSID) for the character
|
||||
set you wish to use, for example, for setting the value of pref("intl.character_set")
|
||||
in ALL_PREFS.
|
||||
<BR>
|
||||
<TABLE BORDER >
|
||||
<TR>
|
||||
<TH>CSID</TH>
|
||||
|
||||
<TH>CHARSET</TH>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>0</TD>
|
||||
|
||||
<TD>CS_DEFAULT</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>1</TD>
|
||||
|
||||
<TD>CS_ASCII</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>2</TD>
|
||||
|
||||
<TD>CS_LATIN1</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>6</TD>
|
||||
|
||||
<TD>CS_MAC_ROMAN</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>10</TD>
|
||||
|
||||
<TD>CS_LATIN2</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>11</TD>
|
||||
|
||||
<TD>CS_MAC_CE</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>14</TD>
|
||||
|
||||
<TD>CS_8859_3</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>15</TD>
|
||||
|
||||
<TD>CS_8859_4</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>16</TD>
|
||||
|
||||
<TD>CS_8859_5</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>17</TD>
|
||||
|
||||
<TD>CS_8859_6</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>18</TD>
|
||||
|
||||
<TD>CS_8859_7</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>19</TD>
|
||||
|
||||
<TD>CS_8859_8</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>20</TD>
|
||||
|
||||
<TD>CS_8859_9</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>21</TD>
|
||||
|
||||
<TD>CS_SYMBOL</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>22</TD>
|
||||
|
||||
<TD>CS_DINGBATS</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>23</TD>
|
||||
|
||||
<TD>CS_DECTECH</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>27</TD>
|
||||
|
||||
<TD>CS_JISX0201</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>29</TD>
|
||||
|
||||
<TD>CS_TIS620</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>35</TD>
|
||||
|
||||
<TD>CS_UTF7</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>38</TD>
|
||||
|
||||
<TD>CS_USRDEF2</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>39</TD>
|
||||
|
||||
<TD>CS_KOI8_R</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>40</TD>
|
||||
|
||||
<TD>CS_MAC_CYRILLIC</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>41</TD>
|
||||
|
||||
<TD>CS_CP_1251</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>42</TD>
|
||||
|
||||
<TD>CS_MAC_GREEK</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>43</TD>
|
||||
|
||||
<TD>CS_CP_1253</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>44</TD>
|
||||
|
||||
<TD>CS_CP_1250</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>45</TD>
|
||||
|
||||
<TD>CS_CP_1254</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>46</TD>
|
||||
|
||||
<TD>CS_MAC_TURKISH</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>53</TD>
|
||||
|
||||
<TD>INTL_CHAR_SET_MAX</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>254</TD>
|
||||
|
||||
<TD>CS_USER_DEFINED_ENCODING</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>255</TD>
|
||||
|
||||
<TD>CS_UNKNOWN</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>260</TD>
|
||||
|
||||
<TD>CS_SJIS</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>261</TD>
|
||||
|
||||
<TD>CS_EUCJP</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>263</TD>
|
||||
|
||||
<TD>CS_BIG5</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>264</TD>
|
||||
|
||||
<TD>CS_GB_8BIT</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>265</TD>
|
||||
|
||||
<TD>CS_CNS_8BIT</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>280</TD>
|
||||
|
||||
<TD>CS_CNS11643_1</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>281</TD>
|
||||
|
||||
<TD>CS_CNS11643_2</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>282</TD>
|
||||
|
||||
<TD>CS_JISX0208</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>284</TD>
|
||||
|
||||
<TD>CS_KSC5601</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>286</TD>
|
||||
|
||||
<TD>CS_JISX0212</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>287</TD>
|
||||
|
||||
<TD>CS_GB2312</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>290</TD>
|
||||
|
||||
<TD>CS_UTF8</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>292</TD>
|
||||
|
||||
<TD>CS_NPC</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>293</TD>
|
||||
|
||||
<TD>CS_X_BIG5</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>303</TD>
|
||||
|
||||
<TD>CS_GB2312_11</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>304</TD>
|
||||
|
||||
<TD>CS_JISX0208_11</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>305</TD>
|
||||
|
||||
<TD>CS_KSC5601_11</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>306</TD>
|
||||
|
||||
<TD>CS_CNS11643_1110</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>515</TD>
|
||||
|
||||
<TD>CS_JIS</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>525</TD>
|
||||
|
||||
<TD>CS_2022_KR</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>564</TD>
|
||||
|
||||
<TD>CS_IMAP4_UTF7</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>810</TD>
|
||||
|
||||
<TD>CS_UCS2</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>811</TD>
|
||||
|
||||
<TD>CS_UCS4</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>819</TD>
|
||||
|
||||
<TD>CS_UCS2_SWAP</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>1292</TD>
|
||||
|
||||
<TD>CS_KSC_8BIT</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>2308</TD>
|
||||
|
||||
<TD>CS_SJIS_AUTO</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>2309</TD>
|
||||
|
||||
<TD>CS_EUCJP_AUTO</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>2563</TD>
|
||||
|
||||
<TD>CS_JIS_AUTO</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
@author: relliott
|
||||
<BR>@source: ftang
|
||||
<BR>@last updated: Mar. 19, 1998
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1997, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,100 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
|
||||
<TITLE>Getting Started</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H2>
|
||||
<A NAME="getting started"></A>2. Getting Started</H2>
|
||||
Before you can begin using the Windows Front End Localization Kit, you
|
||||
must install it and setup your working directories. This is a simple matter
|
||||
of unzipping the compressed kit file(s) into the proper directories. Your
|
||||
system must also meet certain requirements to run the tools needed to perform
|
||||
the localization steps described below.
|
||||
|
||||
<P>
|
||||
<HR WIDTH="50%">
|
||||
<H3>
|
||||
<A NAME="sysreqs"></A>System Requirements</H3>
|
||||
There a few system requirements for the kit in the strictest sense; however,
|
||||
your choice of tools will have their own set of requirements. The
|
||||
most likely minimum configuration will be as follows:
|
||||
<UL>
|
||||
<LI>
|
||||
100% IBM compatible PC</LI>
|
||||
|
||||
<LI>
|
||||
Pentium<SUP><FONT SIZE=-1>®</FONT></SUP> processor</LI>
|
||||
|
||||
<LI>
|
||||
Microsoft<SUP><FONT SIZE=-1>®</FONT></SUP> Windows NT 3.51 or 4.0 (localized
|
||||
versions will help testing but aren't required)</LI>
|
||||
|
||||
<LI>
|
||||
16 MB RAM</LI>
|
||||
|
||||
<LI>
|
||||
30 MB available hard disk space</LI>
|
||||
|
||||
<LI>
|
||||
A visual resource editor, such as those provided with Microsoft<SUP><FONT SIZE=-1>®</FONT></SUP>
|
||||
Visual C++, Borland<SUP><FONT SIZE=-1>®</FONT></SUP> C++, etc.</LI>
|
||||
|
||||
<LI>
|
||||
An active Internet connection and the ability to ftp (send and receive)
|
||||
large files</LI>
|
||||
|
||||
<LI>
|
||||
A Web browser (say, for example, Netscape Communicator ;-)</LI>
|
||||
</UL>
|
||||
|
||||
<H3>
|
||||
|
||||
<HR WIDTH="50%"></H3>
|
||||
|
||||
<H3>
|
||||
<A NAME="install"></A>Installing the Kit</H3>
|
||||
It is recommended that you install the Windows Front End Localization Kit
|
||||
in a brand new directory on your development machine. For example, you
|
||||
can create a \Netscape_L10N_Kits directory on your hard drive. This becomes
|
||||
your <B>kitRoot </B>directory. Place the L10n Kit's .ZIP file in
|
||||
that directory and UNZIP it with the -d parameter:
|
||||
|
||||
<P>PKUNZIP -d <I>filename</I>
|
||||
<UL><B>Example: <TT>PKUNZIP -d winfekit</TT></B></UL>
|
||||
|
||||
<HR WIDTH="50%">
|
||||
<H3>
|
||||
<A NAME="configtool"></A>Configuring Your Tools</H3>
|
||||
If you intend to use the Netscape Translation Tools, please refer to the
|
||||
<A HREF="../dogTool/dogToolUG.html">Translation Tools User Guide</A> for
|
||||
instructions on setting up and using those tools. If you intend to
|
||||
use a different localization tool, please refer to that tool's documentation
|
||||
for set up and usage instructions.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="nomenclature.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="usingKit.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS]</A></CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER></CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
Before Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 871 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 6.1 KiB |