This commit was manufactured by cvs2svn to create tag 'NSPR_4_9_3_BETA2'.

git-svn-id: svn://10.0.0.236/tags/NSPR_4_9_3_BETA2@264365 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
(no author) 2012-10-19 23:36:49 +00:00
parent e6f60365c2
commit ec2dca41ce
53294 changed files with 0 additions and 10485783 deletions

View File

@ -1 +0,0 @@
CVSROOT/history

View File

@ -1,4 +0,0 @@
If you change the modules file, you *MUST* run:
check-modules.pl modules
*before* cvs committing the new modules file.

View 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";
}
}
}

View File

@ -1,21 +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
readonlyusers.pl

View File

@ -1,711 +0,0 @@
#!/usr/bin/perl --
# DO NOT EDIT THIS FILE! You must instead go to https://despot.mozilla.org/, and
# tweak things from there.
$mode{'180'} = 'Closed';
$branch{'180'} = 'HEAD';
$fullname{'180'} = 'accessibility';
$blessed{'180'} = ['aaronleventhal%moonset.net',];
$super{'180'} = ['marco.zehe%googlemail.com','ginn.chen%sun.com','dbolter%mozilla.com','surkov.alexander%gmail.com',];
$mode{'188'} = 'Open';
$branch{'188'} = 'HEAD';
$fullname{'188'} = 'Application Suite';
$mode{'190'} = 'Closed';
$branch{'190'} = 'HEAD';
$fullname{'190'} = 'Bugzilla';
$blessed{'190'} = ['wurblzap%gmail.com','olav%bkor.dhs.org','ghendricks%novell.com',];
$super{'190'} = ['mkanat%bugzilla.org','lpsolit%gmail.com','justdave%bugzilla.org',];
$mode{'204'} = 'Closed';
$branch{'204'} = 'BUGZILLA-2_18-BRANCH';
$fullname{'204'} = 'Bugzilla2.18';
$blessed{'204'} = ['myk%mozilla.org','vladd%bugzilla.org','olav%bkor.dhs.org','ghendricks%novell.com',];
$super{'204'} = ['mkanat%bugzilla.org','lpsolit%gmail.com','justdave%bugzilla.org',];
$mode{'191'} = 'Closed';
$branch{'191'} = 'BUGZILLA-2_20-BRANCH';
$fullname{'191'} = 'Bugzilla2.20';
$blessed{'191'} = ['myk%mozilla.org','wurblzap%gmail.com','vladd%bugzilla.org','olav%bkor.dhs.org','ghendricks%novell.com',];
$super{'191'} = ['mkanat%bugzilla.org','lpsolit%gmail.com','justdave%bugzilla.org',];
$mode{'203'} = 'Closed';
$branch{'203'} = 'BUGZILLA-2_22-BRANCH';
$fullname{'203'} = 'Bugzilla2.22';
$blessed{'203'} = ['wurblzap%gmail.com','vladd%bugzilla.org','reed%reedloden.com','olav%bkor.dhs.org','myk%mozilla.org','ghendricks%novell.com',];
$super{'203'} = ['mkanat%bugzilla.org','lpsolit%gmail.com','justdave%bugzilla.org',];
$mode{'212'} = 'Closed';
$branch{'212'} = 'BUGZILLA-3_0-BRANCH';
$fullname{'212'} = 'Bugzilla3.0';
$blessed{'212'} = ['wurblzap%gmail.com','vladd%bugzilla.org','olav%bkor.dhs.org','myk%mozilla.org','ghendricks%novell.com',];
$super{'212'} = ['mkanat%bugzilla.org','lpsolit%gmail.com','justdave%bugzilla.org',];
$mode{'217'} = 'Closed';
$branch{'217'} = 'BUGZILLA-3_2-BRANCH';
$fullname{'217'} = 'Bugzilla3.2';
$blessed{'217'} = ['wurblzap%gmail.com','vladd%bugzilla.org','olav%bkor.dhs.org','myk%mozilla.org','ghendricks%novell.com',];
$super{'217'} = ['mkanat%bugzilla.org','lpsolit%gmail.com','justdave%bugzilla.org',];
$mode{'220'} = 'Closed';
$branch{'220'} = 'BUGZILLA-3_4-BRANCH';
$fullname{'220'} = 'Bugzilla3.4';
$blessed{'220'} = ['wurblzap%gmail.com','olav%bkor.dhs.org','ghendricks%novell.com','dlawrence%mozilla.com',];
$super{'220'} = ['mkanat%bugzilla.org','lpsolit%gmail.com','justdave%bugzilla.org',];
$mode{'214'} = 'Open';
$branch{'214'} = 'HEAD';
$fullname{'214'} = 'Build and Release Tools';
$mode{'55'} = 'Open';
$branch{'55'} = 'HEAD';
$fullname{'55'} = 'Build Config';
$mode{'226'} = 'Open';
$branch{'226'} = 'HEAD';
$fullname{'226'} = 'Build Config: comm-central';
$mode{'183'} = 'Open';
$branch{'183'} = 'HEAD';
$fullname{'183'} = 'calendar';
$mode{'210'} = 'Open';
$branch{'210'} = 'HEAD';
$fullname{'210'} = 'camino';
$mode{'211'} = 'Open';
$branch{'211'} = 'HEAD';
$fullname{'211'} = 'ChatZilla';
$mode{'146'} = 'Restricted';
$branch{'146'} = 'NSPRPUB_PRE_4_2_CLIENT_BRANCH';
$fullname{'146'} = 'Client NSPR';
$blessed{'146'} = ['sgautherie.bz%free.fr','mozilla%weilbacher.org','kaie%kuix.de','julien.pierre.boogz%sun.com','gerv%gerv.net','alexei.volkov.bugs%sun.com','unai.gaston%sun.com',];
$super{'146'} = ['ted.mielczarek%gmail.com','wtc%google.com','nelson%bolyard.com',];
$mode{'213'} = 'Open';
$branch{'213'} = 'HEAD';
$fullname{'213'} = 'Code Analysis and Debugging Tools';
$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'} = ['myk%mozilla.org','leaf%mozilla.org','despotdaemon',];
$mode{'59'} = 'Open';
$branch{'59'} = 'HEAD';
$fullname{'59'} = 'Directory SDK';
$mode{'101'} = 'Open';
$branch{'101'} = 'HEAD';
$fullname{'101'} = 'docshell';
$mode{'103'} = 'Open';
$branch{'103'} = 'HEAD';
$fullname{'103'} = 'Document Object Model';
$mode{'184'} = 'Open';
$branch{'184'} = 'HEAD';
$fullname{'184'} = 'DOM Inspector';
$mode{'208'} = 'Open';
$branch{'208'} = 'HEAD';
$fullname{'208'} = 'Embedding';
$mode{'181'} = 'Open';
$branch{'181'} = 'HEAD';
$fullname{'181'} = 'Find As You Type';
$mode{'166'} = 'Open';
$branch{'166'} = 'HEAD';
$fullname{'166'} = 'Firefox';
$mode{'182'} = 'Open';
$branch{'182'} = 'HEAD';
$fullname{'182'} = 'Global Key Bindings';
$mode{'201'} = 'Open';
$branch{'201'} = 'HEAD';
$fullname{'201'} = 'Graphics';
$mode{'144'} = 'Open';
$branch{'144'} = 'HEAD';
$fullname{'144'} = 'GTK Embedding Widget';
$mode{'102'} = 'Open';
$branch{'102'} = 'HEAD';
$fullname{'102'} = 'HTML Parser';
$mode{'67'} = 'Open';
$branch{'67'} = 'HEAD';
$fullname{'67'} = 'I18N Library';
$mode{'63'} = 'Open';
$branch{'63'} = 'HEAD';
$fullname{'63'} = 'ImageLib';
$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'} = ['vladimir%pobox.com','timeless%mozdev.org','sayrer%gmail.com','reed%reedloden.com','peterv%propagandism.org','pavlov%pavlov.net','jst%mozilla.org','jruderman%hmc.edu','jag%tty.nl','gerv%gerv.net','gavin%gavinsharp.com','dveditz%cruzio.com','dbaron%dbaron.org','daumling%adobe.com','cls%seawood.org','bzbarsky%mit.edu','bryner%brianryner.com','benjamin%smedbergs.us','bclary%bclary.com',];
$super{'70'} = ['shaver%mozilla.org','mrbkap%gmail.com','lwagner%mozilla.com','jwalden%mit.edu','jorendorff%mozilla.com','igor%mir2.org','graydon%mozilla.com','crowder%fiverocks.com','brendan%mozilla.org',];
$mode{'207'} = 'Open';
$branch{'207'} = 'HEAD';
$fullname{'207'} = 'JavaScript Debugger Backend';
$mode{'223'} = 'Open';
$branch{'223'} = 'HEAD';
$fullname{'223'} = 'js-ctypes';
$mode{'114'} = 'Open';
$branch{'114'} = 'HEAD';
$fullname{'114'} = 'js-tests';
$mode{'98'} = 'Open';
$branch{'98'} = 'HEAD';
$fullname{'98'} = 'Layout Engine';
$mode{'221'} = 'Open';
$branch{'221'} = 'HEAD';
$fullname{'221'} = 'libjar';
$mode{'72'} = 'Open';
$branch{'72'} = 'HEAD';
$fullname{'72'} = 'LiveConnect';
$mode{'123'} = 'Open';
$branch{'123'} = 'HEAD';
$fullname{'123'} = 'Mail and News Backend';
$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{'19'} = 'Open';
$branch{'19'} = 'HEAD';
$fullname{'19'} = 'mozilla-toplevel';
$mode{'77'} = 'Open';
$branch{'77'} = 'HEAD';
$fullname{'77'} = 'NetLib';
$mode{'78'} = 'Restricted';
$branch{'78'} = 'HEAD';
$fullname{'78'} = 'NSPR';
$blessed{'78'} = ['mozilla%weilbacher.org','kaie%kuix.de','christophe.ravel.bugs%sun.com','bsmith%mozilla.com','alexei.volkov.bugs%sun.com','gerv%gerv.net',];
$super{'78'} = ['ted.mielczarek%gmail.com','wtc%google.com','nelson%bolyard.com',];
$mode{'163'} = 'Restricted';
$branch{'163'} = 'NSS_3_11_BRANCH';
$fullname{'163'} = 'NSS Stable Release Branch';
$blessed{'163'} = ['gerv%gerv.net','douglas%stebila.ca',];
$super{'163'} = ['slavomir.katuscak%sun.com','kaie%kuix.de','glen.beasley%sun.com','emaldona%redhat.com','christophe.ravel.bugs%sun.com','alexei.volkov.bugs%sun.com','wtc%google.com','rrelyea%redhat.com','nelson%bolyard.com','julien.pierre.boogz%sun.com',];
$mode{'162'} = 'Open';
$branch{'162'} = 'HEAD';
$fullname{'162'} = 'P3P';
$mode{'209'} = 'Open';
$branch{'209'} = 'HEAD';
$fullname{'209'} = 'Party Tool';
$mode{'225'} = 'Open';
$branch{'225'} = 'HEAD';
$fullname{'225'} = 'Penelope';
$mode{'81'} = 'Open';
$branch{'81'} = 'HEAD';
$fullname{'81'} = 'Plugins';
$mode{'82'} = 'Open';
$branch{'82'} = 'HEAD';
$fullname{'82'} = 'Preferences';
$mode{'69'} = 'Open';
$branch{'69'} = 'HEAD';
$fullname{'69'} = 'Privilege Manager';
$mode{'219'} = 'Open';
$branch{'219'} = 'HEAD';
$fullname{'219'} = 'PyXPCOM';
$mode{'161'} = 'Open';
$branch{'161'} = 'HEAD';
$fullname{'161'} = 'Qt-based gfx and widget';
$mode{'52'} = 'Open';
$branch{'52'} = 'HEAD';
$fullname{'52'} = 'RDF';
$mode{'84'} = 'Open';
$branch{'84'} = 'HEAD';
$fullname{'84'} = 'Registry';
$mode{'113'} = 'Open';
$branch{'113'} = 'HEAD';
$fullname{'113'} = 'REMOVEME - Photon';
$mode{'121'} = 'Open';
$branch{'121'} = 'HEAD';
$fullname{'121'} = 'REMOVEME - Xlib-based gfx and widget';
$mode{'179'} = 'Open';
$branch{'179'} = 'HEAD';
$fullname{'179'} = 'REMOVEME - XPrint';
$mode{'138'} = 'Open';
$branch{'138'} = 'HEAD';
$fullname{'138'} = 'Rhino';
$mode{'145'} = 'Restricted';
$branch{'145'} = 'HEAD';
$fullname{'145'} = 'security';
$blessed{'145'} = ['bsmith%mozilla.com','unai.gaston%sun.com','slavomir.katuscak%sun.com','gerv%gerv.net','douglas%stebila.ca',];
$super{'145'} = ['kaie%kuix.de','julien.pierre.boogz%sun.com','glen.beasley%sun.com','emaldona%redhat.com','christophe.ravel.bugs%sun.com','alexei.volkov.bugs%sun.com','wtc%google.com','rrelyea%redhat.com','nelson%bolyard.com',];
$mode{'151'} = 'Open';
$branch{'151'} = 'HEAD';
$fullname{'151'} = 'Security - Mozilla PSM Glue';
$mode{'173'} = 'Open';
$branch{'173'} = 'HEAD';
$fullname{'173'} = 'Standalone Composer';
$mode{'216'} = 'Open';
$branch{'216'} = 'HEAD';
$fullname{'216'} = 'storage';
$mode{'160'} = 'Open';
$branch{'160'} = 'HEAD';
$fullname{'160'} = 'String';
$mode{'100'} = 'Open';
$branch{'100'} = 'HEAD';
$fullname{'100'} = 'Style System';
$mode{'187'} = 'Open';
$branch{'187'} = 'HEAD';
$fullname{'187'} = 'SVG';
$mode{'205'} = 'Restricted';
$branch{'205'} = 'HEAD';
$fullname{'205'} = 'Tamarin';
$blessed{'205'} = [];
$super{'205'} = ['treilly%adobe.com','tierney%adobe.com','stejohns%adobe.com','brendan%mozilla.org','jodyer%adobe.com','edwsmith%adobe.com',];
$mode{'215'} = 'Open';
$branch{'215'} = 'HEAD';
$fullname{'215'} = 'Test Harness';
$mode{'202'} = 'Open';
$branch{'202'} = 'HEAD';
$fullname{'202'} = 'Testing Infrastructure';
$mode{'170'} = 'Open';
$branch{'170'} = 'HEAD';
$fullname{'170'} = 'Thunderbird';
$mode{'169'} = 'Open';
$branch{'169'} = 'HEAD';
$fullname{'169'} = 'toolkit';
$mode{'185'} = 'Open';
$branch{'185'} = 'HEAD';
$fullname{'185'} = 'Update Service';
$mode{'71'} = 'Open';
$branch{'71'} = 'HEAD';
$fullname{'71'} = 'Venkman';
$mode{'96'} = 'Open';
$branch{'96'} = 'HEAD';
$fullname{'96'} = 'View System';
$mode{'177'} = 'Open';
$branch{'177'} = 'HEAD';
$fullname{'177'} = 'Widget';
$mode{'172'} = 'Open';
$branch{'172'} = 'HEAD';
$fullname{'172'} = 'Widget - BeOS';
$mode{'49'} = 'Open';
$branch{'49'} = 'HEAD';
$fullname{'49'} = 'Widget - GTK';
$mode{'178'} = 'Open';
$branch{'178'} = 'HEAD';
$fullname{'178'} = 'Widget - Mac OS X';
$mode{'175'} = 'Open';
$branch{'175'} = 'HEAD';
$fullname{'175'} = 'Widget - Windows';
$mode{'199'} = 'Open';
$branch{'199'} = 'HEAD';
$fullname{'199'} = 'XBL';
$mode{'88'} = 'Open';
$branch{'88'} = 'HEAD';
$fullname{'88'} = 'XML';
$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{'206'} = 'Open';
$branch{'206'} = 'HEAD';
$fullname{'206'} = 'xptcall';
$mode{'106'} = 'Open';
$branch{'106'} = 'HEAD';
$fullname{'106'} = 'XPToolkit';
$mode{'140'} = 'Open';
$branch{'140'} = 'HEAD';
$fullname{'140'} = 'XSLT Processor';
$mode{'200'} = 'Open';
$branch{'200'} = 'HEAD';
$fullname{'200'} = 'XTF';
sub GetT {
($b,$_) = (@_);
if ($b eq 'BUGZILLA-2_18-BRANCH') {
if (m:^mozilla/webtools/bugzilla/.*$:) {return '204';}
}
if ($b eq 'BUGZILLA-2_20-BRANCH') {
if (m:^mozilla/webtools/bugzilla/.*$:) {return '191';}
}
if ($b eq 'BUGZILLA-2_22-BRANCH') {
if (m:^mozilla/webtools/bugzilla/.*$:) {return '203';}
}
if ($b eq 'BUGZILLA-3_0-BRANCH') {
if (m:^mozilla/webtools/bugzilla/.*$:) {return '212';}
}
if ($b eq 'BUGZILLA-3_2-BRANCH') {
if (m:^mozilla/webtools/bugzilla/.*$:) {return '217';}
}
if ($b eq 'BUGZILLA-3_4-BRANCH') {
if (m:^mozilla/webtools/bugzilla/.*$:) {return '220';}
}
if ($b eq 'HEAD') {
if (m:^mozilla/modules/libreg/.*$:) {return '84';}
if (m:^mozilla/java/webclient/.*$:) {return '127';}
if (m:^mozilla/content/svg/.*$:) {return '187';}
if (m:^mozilla/layout/svg/.*$:) {return '187';}
if (m:^db/sqlite3/.*$:) {return '216';}
if (m:^storage/.*$:) {return '216';}
if (m:^mozilla/java/dom/.*$:) {return '130';}
if (m:^mozilla/extensions/help/.*$:) {return '188';}
if (m:^mozilla/suite/.*$:) {return '188';}
if (m:^mozilla/content/xml/.*$:) {return '88';}
if (m:^mozilla/extensions/xmlextras/.*$:) {return '88';}
if (m:^mozilla/parser/expat/.*$:) {return '88';}
if (m:^mozilla/java/util/.*$:) {return '133';}
if (m:^mozilla/startupcache/.*$:) {return '89';}
if (m:^mozilla/tools/wizards/.*$:) {return '89';}
if (m:^mozilla/xpcom/[^/]*$:) {return '89';}
if (m:^mozilla/xpcom/base/.*$:) {return '89';}
if (m:^mozilla/xpcom/build/.*$:) {return '89';}
if (m:^mozilla/xpcom/components/.*$:) {return '89';}
if (m:^mozilla/xpcom/ds/.*$:) {return '89';}
if (m:^mozilla/xpcom/glue/.*$:) {return '89';}
if (m:^mozilla/xpcom/proxy/.*$:) {return '89';}
if (m:^mozilla/xpcom/sample/.*$:) {return '89';}
if (m:^mozilla/xpcom/stub/.*$:) {return '89';}
if (m:^mozilla/xpcom/tests/.*$:) {return '89';}
if (m:^mozilla/xpcom/threads/.*$:) {return '89';}
if (m:^mozilla/xpcom/tools/.*$:) {return '89';}
if (m:^mozilla/xpcom/windbgdlg/.*$:) {return '89';}
if (m:^mozilla/content/xbl/[^/]*$:) {return '199';}
if (m:^mozilla/content/xbl/public/.*$:) {return '199';}
if (m:^mozilla/content/xbl/src/.*$:) {return '199';}
if (m:^mozilla/webtools/bugzilla/.*$:) {return '190';}
if (m:^mozilla/xpcom/reflect/xptcall/.*$:) {return '206';}
if (m:^mozilla/content/xtf/.*$:) {return '200';}
if (m:^mozilla/layout/xtf/.*$:) {return '200';}
if (m:^mozilla/gfx/[^/]*$:) {return '201';}
if (m:^mozilla/gfx/cairo/.*$:) {return '201';}
if (m:^mozilla/gfx/public/.*$:) {return '201';}
if (m:^mozilla/gfx/src/[^/]*$:) {return '201';}
if (m:^mozilla/gfx/src/gtk/.*$:) {return '201';}
if (m:^mozilla/gfx/src/mac/.*$:) {return '201';}
if (m:^mozilla/gfx/src/shared/.*$:) {return '201';}
if (m:^mozilla/gfx/src/thebes/.*$:) {return '201';}
if (m:^mozilla/gfx/src/windows/.*$:) {return '201';}
if (m:^mozilla/gfx/thebes/.*$:) {return '201';}
if (m:^mozilla/modules/lcms/.*$:) {return '201';}
if (m:^mozilla/gfx/src/xprint/.*$:) {return '179';}
if (m:^mozilla/view/.*$:) {return '96';}
if (m:^mozilla/layout/[^/]*$:) {return '98';}
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/forms/.*$:) {return '98';}
if (m:^mozilla/layout/generic/.*$:) {return '98';}
if (m:^mozilla/layout/html/.*$:) {return '98';}
if (m:^mozilla/layout/macbuild/.*$:) {return '98';}
if (m:^mozilla/layout/printing/.*$:) {return '98';}
if (m:^mozilla/layout/tables/.*$:) {return '98';}
if (m:^mozilla/layout/tools/.*$:) {return '98';}
if (m:^mozilla/xpinstall/.*$:) {return '150';}
if (m:^CVSROOT/commitcheck\.pl$:) {return '3';}
if (m:^CVSROOT/passwd$:) {return '3';}
if (m:^modules/libjar$:) {return '221';}
if (m:^mozilla/security/manager/.*$:) {return '151';}
if (m:^mozilla/js/src/ctypes/.*$:) {return '223';}
if (m:^mozilla/layout/style/.*$:) {return '100';}
if (m:^mozilla/webtools/addons/.*$:) {return '185';}
if (m:^mozilla/webtools/aus/.*$:) {return '185';}
if (m:^mozilla/webtools/update/.*$:) {return '185';}
if (m:^mozilla/penelope/$:) {return '225';}
if (m:^mozilla/dbm/.*$:) {return '145';}
if (m:^mozilla/security/coreconf/.*$:) {return '145';}
if (m:^mozilla/security/dbm/.*$:) {return '145';}
if (m:^mozilla/security/jss/.*$:) {return '145';}
if (m:^mozilla/security/nss/.*$:) {return '145';}
if (m:^mozilla/security/tinderbox/.*$:) {return '145';}
if (m:^mozilla/security/tinderlight/.*$:) {return '145';}
if (m:^mozilla/docshell/.*$:) {return '101';}
if (m:^mozilla/uriloader/.*$:) {return '101';}
if (m:^mozilla/webshell/.*$:) {return '101';}
if (m:^mozilla/mailnews/local/src/nsMovemail.*$:) {return '157';}
if (m:^mozilla/composer/.*$:) {return '173';}
if (m:^mozilla/parser/htmlparser$:) {return '102';}
if (m:^mozilla/embedding/.*$:) {return '208';}
if (m:^mozilla/[^/]*$:) {return '19';}
if (m:^mozilla/tools/README$:) {return '19';}
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/dom/base/.*$:) {return '103';}
if (m:^mozilla/dom/interfaces/.*$:) {return '103';}
if (m:^mozilla/dom/locales/.*$:) {return '103';}
if (m:^mozilla/dom/public/.*$:) {return '103';}
if (m:^mozilla/dom/src/.*$:) {return '103';}
if (m:^mozilla/dom/tests/.*$:) {return '103';}
if (m:^extension/python$:) {return '219';}
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/js/rhino/.*$:) {return '138';}
if (m:^mozilla/string/.*$:) {return '160';}
if (m:^mozilla/xpcom/string/.*$:) {return '160';}
if (m:^mozilla/webtools/partytool/.*$:) {return '209';}
if (m:^mozilla/xpfe/.*$:) {return '137';}
if (m:^mozilla/widget/src/qt/.*$:) {return '161';}
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/js/tests/.*$:) {return '114';}
if (m:^mozilla/rdf/.*$:) {return '52';}
if (m:^mozilla/extensions/p3p/.*$:) {return '162';}
if (m:^mozilla/build/.*$:) {return '55';}
if (m:^mozilla/config/.*$:) {return '55';}
if (m:^mozilla/tools/cross-commit$:) {return '55';}
if (m:^mozilla/tools/cvs2hg-import\.py$:) {return '55';}
if (m:^mozilla/tools/cvsmgmt/.*$:) {return '55';}
if (m:^mozilla/tools/elf-dynstr-gc/.*$:) {return '55';}
if (m:^mozilla/tools/relic/.*$:) {return '55';}
if (m:^mozilla/tools/trees\.pl$:) {return '55';}
if (m:^mozilla/content/xslt/.*$:) {return '140';}
if (m:^mozilla/extensions/transformiix/.*$:) {return '140';}
if (m:^mozilla/layout/mathml/.*$:) {return '165';}
if (m:^mozilla/editor/.*$:) {return '56';}
if (m:^mozilla/calendar/.*$:) {return '183';}
if (m:^mozilla/browser/.*$:) {return '166';}
if (m:^mozilla/other-licenses/branding/firefox/.*$:) {return '166';}
if (m:^mozilla/directory/.*$:) {return '59';}
if (m:^mozilla/gfx/src/photon/.*$:) {return '113';}
if (m:^mozilla/widget/src/photon/.*$:) {return '113';}
if (m:^mozilla/chrome/.*$:) {return '169';}
if (m:^mozilla/profile/.*$:) {return '169';}
if (m:^mozilla/toolkit/.*$:) {return '169';}
if (m:^mozilla/xulrunner/.*$:) {return '169';}
if (m:^mozilla/jpeg/.*$:) {return '63';}
if (m:^mozilla/modules/libimg/png/.*$:) {return '63';}
if (m:^mozilla/modules/libpr0n/.*$:) {return '63';}
if (m:^mozilla/modules/zlib/.*$:) {return '63';}
if (m:^mozilla/content/xul/.*$:) {return '106';}
if (m:^mozilla/layout/xul/.*$:) {return '106';}
if (m:^mozilla/mail/.*$:) {return '170';}
if (m:^mozilla/other-licenses/branding/thunderbird/.*$:) {return '170';}
if (m:^mozilla/testing/.*$:) {return '202';}
if (m:^mozilla/tools/httptester/.*$:) {return '202';}
if (m:^mozilla/tools/page-loader/.*$:) {return '202';}
if (m:^mozilla/tools/test-harness/.*$:) {return '202';}
if (m:^mozilla/tools/tests/.*$:) {return '202';}
if (m:^mozilla/tools/testserver/.*$:) {return '202';}
if (m:^mozilla/tools/testy/.*$:) {return '202';}
if (m:^mozilla/extensions/cookie/.*$:) {return '171';}
if (m:^mozilla/netwerk/cookie/.*$:) {return '171';}
if (m:^mozilla/intl/.*$:) {return '67';}
if (m:^mozilla/extensions/irc/.*$:) {return '211';}
if (m:^mozilla/widget/src/beos/.*$:) {return '172';}
if (m:^mozilla/modules/oji/.*$:) {return '68';}
if (m:^mozilla/nav-java/.*$:) {return '68';}
if (m:^mozilla/sun-java/.*$:) {return '68';}
if (m:^mozilla/tools/botrunner\.py$:) {return '214';}
if (m:^mozilla/tools/build-environment/.*$:) {return '214';}
if (m:^mozilla/tools/build/.*$:) {return '214';}
if (m:^mozilla/tools/buildbot-configs/.*$:) {return '214';}
if (m:^mozilla/tools/buildbot/.*$:) {return '214';}
if (m:^mozilla/tools/buildbotcustom/.*$:) {return '214';}
if (m:^mozilla/tools/l10n/.*$:) {return '214';}
if (m:^mozilla/tools/MozBuild/.*$:) {return '214';}
if (m:^mozilla/tools/patcher-configs/.*$:) {return '214';}
if (m:^mozilla/tools/patcher/.*$:) {return '214';}
if (m:^mozilla/tools/release/.*$:) {return '214';}
if (m:^mozilla/tools/tinderbox-configs/.*$:) {return '214';}
if (m:^mozilla/tools/tinderbox/.*$:) {return '214';}
if (m:^mozilla/tools/update-packaging/.*$:) {return '214';}
if (m:^mozilla/caps/.*$:) {return '69';}
if (m:^mozilla/tools/codesighs/.*$:) {return '213';}
if (m:^mozilla/tools/debug/.*$:) {return '213';}
if (m:^mozilla/tools/dreftool/.*$:) {return '213';}
if (m:^mozilla/tools/dumpdeps/.*$:) {return '213';}
if (m:^mozilla/tools/footprint/.*$:) {return '213';}
if (m:^mozilla/tools/jprof/.*$:) {return '213';}
if (m:^mozilla/tools/leaky/.*$:) {return '213';}
if (m:^mozilla/tools/memory/.*$:) {return '213';}
if (m:^mozilla/tools/module-deps/.*$:) {return '213';}
if (m:^mozilla/tools/performance/.*$:) {return '213';}
if (m:^mozilla/tools/post_compile/.*$:) {return '213';}
if (m:^mozilla/tools/preloader/.*$:) {return '213';}
if (m:^mozilla/tools/rb/.*$:) {return '213';}
if (m:^mozilla/tools/reorder/.*$:) {return '213';}
if (m:^mozilla/tools/trace-malloc/.*$:) {return '213';}
if (m:^mozilla/tools/uuiddeps/.*$:) {return '213';}
if (m:^mozilla/widget/src/windows/.*$:) {return '175';}
if (m:^mozilla/js/src/[^/]*$:) {return '70';}
if (m:^mozilla/js/src/config/.*$:) {return '70';}
if (m:^mozilla/js/src/editline/.*$:) {return '70';}
if (m:^mozilla/js/src/fdlibm/.*$:) {return '70';}
if (m:^mozilla/xpcom/typelib/.*$:) {return '117';}
if (m:^mozilla/camino/.*$:) {return '210';}
if (m:^mozilla/extensions/venkman/.*$:) {return '71';}
if (m:^mozilla/js/src/xpconnect/.*$:) {return '118';}
if (m:^mozilla/widget/[^/]*$:) {return '177';}
if (m:^mozilla/widget/public/.*$:) {return '177';}
if (m:^mozilla/widget/src/[^/]*$:) {return '177';}
if (m:^mozilla/widget/src/xpwidgets/.*$:) {return '177';}
if (m:^mozilla/js/src/liveconnect/.*$:) {return '72';}
if (m:^mozilla/js/jsd/.*$:) {return '207';}
if (m:^mozilla/widget/src/cocoa/.*$:) {return '178';}
if (m:^mozilla/netwerk/[^/]*$:) {return '77';}
if (m:^mozilla/netwerk/base/.*$:) {return '77';}
if (m:^mozilla/netwerk/build/.*$:) {return '77';}
if (m:^mozilla/netwerk/cache/.*$:) {return '77';}
if (m:^mozilla/netwerk/dns/.*$:) {return '77';}
if (m:^mozilla/netwerk/locales/.*$:) {return '77';}
if (m:^mozilla/netwerk/mime/.*$:) {return '77';}
if (m:^mozilla/netwerk/protocol/.*$:) {return '77';}
if (m:^mozilla/netwerk/resources/.*$:) {return '77';}
if (m:^mozilla/netwerk/socket/.*$:) {return '77';}
if (m:^mozilla/netwerk/streamconv/.*$:) {return '77';}
if (m:^mozilla/netwerk/system/.*$:) {return '77';}
if (m:^mozilla/netwerk/test/.*$:) {return '77';}
if (m:^mozilla/netwerk/testserver/.*$:) {return '77';}
if (m:^mozilla/mailnews/[^/]*$:) {return '123';}
if (m:^mozilla/accessibility/.*$:) {return '180';}
if (m:^mozilla/nsprpub/.*$:) {return '78';}
if (m:^mozilla/mailnews/mime/[^/]*$:) {return '124';}
if (m:^mozilla/extensions/typeaheadfind/.*$:) {return '181';}
if (m:^mozilla/dom/plugins/.*$:) {return '81';}
if (m:^mozilla/modules/plugin/.*$:) {return '81';}
if (m:^mozilla/extensions/java$:) {return '128';}
if (m:^mozilla/content/xbl/builtin/.*$:) {return '182';}
if (m:^mozilla/modules/libpref/.*$:) {return '82';}
if (m:^mozilla/java/plugins/.*$:) {return '129';}
if (m:^mozilla/extensions/inspector/.*$:) {return '184';}
if (m:^mozilla/layout/inspector/.*$:) {return '184';}
}
if ($b eq 'NSPRPUB_PRE_4_2_CLIENT_BRANCH') {
if (m:^mozilla/nsprpub/.*$:) {return '146';}
}
if ($b eq 'NSS_3_11_BRANCH') {
if (m:^mozilla/dbm/.*$:) {return '163';}
if (m:^mozilla/security/coreconf/.*$:) {return '163';}
if (m:^mozilla/security/dbm/.*$:) {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;

View File

@ -1,17 +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
ALL $CVSROOT/CVSROOT/readonlyusers.pl

View File

@ -1,8 +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
LockDir=/var/lock/cvsroot

View File

@ -1,48 +0,0 @@
__.SYMDEF*
_gen
_jmc
_stubs
_xpidlgen
._.DS_Store
._.FBCIndex
._.FBCLockFolder
.*.timestamp
.d
.depends
.deps
.DS_Store
.FBCIndex
.FBCLockFolder
.gdbinit
.HSancillary
.makedepend
.Makedepend
.MCC_Cache_FAT
.MCC_Global_History
.md
.pure
*_DBG_EDT.OBJ
*_DBG.OBJ
*_DBG.OBJD
*_OPT_EDT.OBJ
*_OPT.OBJ
*.class
*.dll
*.dylib
*.exp
*.flc
*.lib
*.map
*.pdb
*.rc
*.res
*.rpo
depend.mk
made
make.dep
make.log
Makefile
manifest.mnw
nuke
so_locations
ti_files

View File

@ -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

View File

@ -1,134 +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 strict;
use Mail::Mailer;
my $debug = 0;
my $addsonly = 0;
my $showcommitter = 0;
# Set use_sendmail = 0 to send mail via $mailhost using SMTP
my $use_sendmail = 0;
my $mailhost = "smtp.mozilla.org";
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(':', @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 = `hostname --fqdn`);
my $mailer;
if ($use_sendmail) {
$mailer = Mail::Mailer->new("sendmail");
} else {
$mailer = Mail::Mailer->new("smtp", Server => $mailhost);
}
die("Failed to send mail notification\n") if !defined($mailer);
my %headers;
$headers{'From'} = "$username <cvsmailfilter\@$hostname>";
$headers{'To'} = \@mailto;
$headers{'Subject'} = $cvsargs;
$headers{'MIME-Version'} = '1.0';
$headers{'Content-Type'} = 'text/plain; charset=UTF-8'; # assume everything is UTF-8
$headers{'Content-Transfer-Encoding'} = '8bit';
$headers{'Content-Disposition'} = 'inline';
$mailer->open(\%headers);
print $mailer $message;
$mailer->close;

View File

@ -1,27 +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'
*.png -k 'b'
*.gif -k 'b'
*.jpg -k 'b'
*.jpeg -k 'b'

View File

@ -1,512 +0,0 @@
#! /usr/bin/perl
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# 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 the Bonsai CVS tool.
#
# The Initial Developer of the Original Code is Netscape Communications
# Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s): Mike Taylor <bear@code-bear.com>
# Christopher Seawood <cls@seawood.org>
# You need to put this in your CVSROOT directory, and check it in. (Change the
# first line above to point to a real live perl5.) Add "dolog.pl" to
# CVSROOT/checkoutlist, and check it in. Then, add a line to your
# CVSROOT/loginfo file that says something like:
#
# ALL $CVSROOT/CVSROOT/dolog.pl [-u ${USER}] -r /cvsroot bonsai-checkin-daemon@my.bonsai.machine
#
# or if you do not want to use SMTP at all, add:
#
# ALL ( $CVSROOT/CVSROOT/dolog.pl -r /cvsroot -n | /bonsai/handleCheckinMail.pl )
#
# Replace "/cvsroot" with the name of the CVS root directory, and
# "my.bonsai.machine" with the name of the machine Bonsai runs on.
# Now, on my.bonsai.machine, add a mail alias so that mail sent to
# "bonsai-checkin-daemon" will get piped to handleCheckinMail.pl.
use bytes;
use File::Basename;
use Mail::Mailer;
# Set use_sendmail = 0 to send mail via $mailhost using SMTP
$use_sendmail = 0;
$username = $ENV{"CVS_USER"} || getlogin || (getpwuid($<))[0] || "nobody";
$envcvsroot = $ENV{'CVSROOT'};
$cvsroot = $envcvsroot;
$flag_debug = 0;
$flag_tagcmd = 0;
$repository = '';
$repository_tag = '';
$mailhost = 'smtp.mozilla.org';
$rlogcommand = '/usr/bin/rlog';
$output2mail = 1;
@mailto = ();
@changed_files = ();
@added_files = ();
@removed_files = ();
@log_lines = ();
@outlist = ();
@import_tags = ();
@import_new_files = ();
@import_changed_files = ();
$STATE_NONE = 0;
$STATE_CHANGED = 1;
$STATE_ADDED = 2;
$STATE_REMOVED = 3;
$STATE_LOG = 4;
$STATE_IMPORT_STATUS = 5;
$STATE_IMPORT_TAGS = 6;
$STATE_IMPORT_FILES = 7;
&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:\n";
print STDERR @outlist;
print STDERR "----------------------------------------------\n";
}
if ($output2mail) {
&mail_notification;
} else {
&stdout_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 '-u') {
$username = 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;
} elsif ($arg eq '-n') {
$output2mail = 0;
} else {
push(@mailto, $arg);
}
}
if ($repository eq '') {
open(REP, "<CVS/Repository");
$repository = <REP>;
chop($repository);
close(REP);
}
$repository =~ s:^$cvsroot/::;
$repository =~ s:^$envcvsroot/::;
}
sub get_loginfo {
if ($flag_debug) {
print STDERR "----------------------------------------------\n";
}
# Iterate over the body of the message collecting information.
#
$state = $STATE_NONE;
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_LOG && /^Tag:/) { ($repository_tag = $_) =~ s/^Tag:\s*(\S+).*/$1/; }
if ($state == $STATE_CHANGED && !(/^Tag:/)) { push(@changed_files, split); }
if ($state == $STATE_ADDED && !(/^Tag:/)) { push(@added_files, split); }
if ($state == $STATE_REMOVED && !(/^Tag:/)) { push(@removed_files, split); }
if ($state == $STATE_LOG && (m/^Status:$/)) {
push(@log_lines, $_);
$state = $STATE_IMPORT_STATUS;
next;
}
if ($state == $STATE_IMPORT_STATUS) {
my ($itag, $istat, @rest);
while (<STDIN>) {
chomp;
print STDERR "$_\n" if ($flag_debug);
push(@log_lines, $_);
if ($state == $STATE_IMPORT_STATUS) {
next if (m/^\s*$/);
if (m/^Vendor Tag:/) {
($vendor_tag = $_) =~ s/^Vendor Tag:\s+([\w-]+).*/$1/;
$state = $STATE_IMPORT_TAGS;
next;
} else {
$state = $STATE_LOG;
last;
}
}
if ($state == $STATE_IMPORT_TAGS) {
if (m/^\s*$/) {
$state = $STATE_IMPORT_FILES;
} else {
($itag = $_) =~ s/^(Release Tags:)?\s+([\w-]+).*/$2/;
push(@import_tags, $itag);
}
next;
}
if ($state == $STATE_IMPORT_FILES) {
if (m/^\s*$/) {
$state = $STATE_LOG;
last;
}
($istat, @rest) = split(/ /, $_, 2);
if ($istat eq 'N') {
push(@import_new_files, @rest);
} elsif ($istat eq 'U') {
push(@import_changed_files, @rest);
}
# Ignore everything else
next;
}
}
}
if ($state == $STATE_LOG) { push(@log_lines, $_); }
}
# If any of the filenames in the arrays below contain spaces,
# things get broken later on in the code.
# fix the filename array by using the get_filename sub.
@fixed_changed_files = @{&get_filename("C", @changed_files)};
@fixed_added_files = @{&get_filename("A", @added_files)};
@fixed_removed_files = @{&get_filename("R", @removed_files)};
@fixed_import_new_files = @{&get_filename("I", @import_new_files)};
@fixed_import_changed_files = @{&get_filename("I", @import_changed_files)};
# now replace the old broken arrays with the new fixed arrays and
# carry on.
@changed_files = @fixed_changed_files;
@added_files = @fixed_added_files;
@removed_files = @fixed_removed_files;
@import_new_files = @fixed_import_new_files;
@import_changed_files = @fixed_import_changed_files;
if ($flag_debug) {
print STDERR "----------------------------------------------\n"
. "changed files: @changed_files\n"
. "added files: @added_files\n"
. "removed files: @removed_files\n"
. "new imported files: @import_new_files\n"
. "changed imported files: @import_changed_files\n";
print STDERR "----------------------------------------------\n";
}
}
sub get_filename {
my ($state, @files) = @_;
my @fixed_files;
my $FILE_EXIST = 0;
my $FILE_CHECKED = 0;
my $file;
my $partial_file;
my $path, $apath;
if ($flag_debug) {
print STDERR "\n-- get_filename ------------------------\n";
}
foreach my $scalar (@files) {
if ($FILE_CHECKED && ! $FILE_EXISTS) {
$file = "$partial_file $scalar";
} else{
$file = $scalar;
}
if ($state eq "I") {
$path = "$envcvsroot/$file";
$apath = "$envcvsroot/Attic/$file";
} else {
$path = "$envcvsroot/$repository/$file";
$apath = "$envcvsroot/$repository/Attic/$file";
}
if ($flag_debug) {
print STDERR "changed file: $file\n";
print STDERR "path: $path\n";
}
if (-r "$path,v" || -r "$apath,v") {
push(@fixed_files, $file);
$FILE_EXISTS = 1;
$FILE_CHECKED = 1;
if ($flag_debug){
print STDERR "file exists\n";
}
} else {
$partial_file = $file;
$FILE_EXISTS = 0;
$FILE_CHECKED = 1;
if ($flag_debug) {
print STDERR "file does not exist\n";
}
}
}
if ($flag_debug) {
print STDERR "\@fixed_files: @fixed_files\n";
print STDERR "-------------------------------------------\n\n";
}
return \@fixed_files;
}
sub process_cvs_info {
local($d,$fn,$rev,$mod_time,$sticky,$tag,$stat,@d,$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";
}
$rlogcmd = "$rlogcommand -N -r$rev " . shell_escape($rcsfile);
open(LOG, "$rlogcmd |")
|| 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"));
}
my $headrev;
my $found_desc;
# Process new imported files
foreach $fn (@import_new_files) {
my ($file, $dir, $suffix) = &fileparse($fn, ",v");
$dir =~ s@/$@@;
$found_desc = 0;
$headrev = 0;
$lines_added = 0;
$lines_removed = 0;
$rcsfile = "$envcvsroot/$dir/${file},v";
if (! -r $rcsfile) {
$rcsfile = "$envcvsroot/$dir/Attic/${file},v";
}
$rlogcmd = "$rlogcommand -N " . &shell_escape($rcsfile);
open(LOG, "$rlogcmd |") ||
print STDERR "dolog.pl: Couldn't run import rlog\n";
while (<LOG>) {
$found_desc++, next if (m/^description:$/);
$headrev = $1 if (!$found_desc && m/^head: (\d+[\.\d+]+)$/);
$rev = $1 if (m/^revision (\d+[\.\d+]+)$/);
if (m/^date:.* author: ([^;]*);.*/) {
$username = $1;
if (m/lines: \+([0-9]*) -([0-9]*)/) {
$lines_added = $1;
$lines_removed = $2;
}
# Add the head revision entry
if ($headrev eq $rev) {
push(@outlist,
("A|$time|$username|$cvsroot|$dir|$file|$headrev|" .
"||$lines_added|$lines_removed\n"));
last;
}
}
}
close(LOG);
}
# Process changed imported files
my $search_tag = $import_tags[0];
my ($search_rev, $found_rev, $found_srev);
foreach $fn (@import_changed_files) {
my ($file, $dir, $suffix) = &fileparse($fn, ",v");
$dir =~ s@/$@@;
$found_desc = 0;
$found_rev = 0;
$found_srev = 0;
$search_rev = '';
$lines_added = 0;
$lines_removed = 0;
last if (!defined($search_tag));
$rcsfile = "$envcvsroot/$dir/${file},v";
if (! -r $rcsfile) {
$rcsfile = "$envcvsroot/$dir/Attic/${file},v";
}
$rlogcmd = "$rlogcommand " . &shell_escape($rcsfile);
open(LOG, "$rlogcmd |") ||
print STDERR "dolog.pl: Couldn't run import rlog\n";
while (<LOG>) {
$found_desc++, next if (m/^description:$/);
if (!$found_desc && m/^\s*$search_tag: (\d+[\.\d+]+)$/) {
$search_rev = $1;
$found_srev++;
next;
}
if (!$found_desc && $found_srev && m/^\s*[\w-]+: $search_rev$/) {
# Revision already exists so no actual changes
# were made during this import, so do nothing
last;
}
$found_rev++, next if ($found_srev && m/^revision $search_rev$/);
if ($found_rev && m/^date:.* author: ([^;]*);.*/) {
$username = $1;
if (m/lines: \+([0-9]*) -([0-9]*)/) {
$lines_added = $1;
$lines_removed = $2;
}
push(@outlist,
("C|$time|$username|$cvsroot|$dir|$file|$search_rev|" .
"$search_tag||$lines_added|$lines_removed\n"));
last;
}
}
close(LOG);
}
# make sure dolog has something to parse when it sends its load off
if (!scalar(@log_lines)) {
push @log_lines, "EMPTY LOG MESSAGE";
}
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 mail_notification {
chop(my $hostname = `hostname --fqdn`);
my $mailer;
if ($use_sendmail) {
$mailer = Mail::Mailer->new("sendmail");
} else {
$mailer = Mail::Mailer->new("smtp", Server => $mailhost);
}
die("Failed to send mail notification\n") if !defined($mailer);
my %headers;
$headers{'From'} = "bonsai-daemon\@$hostname";
$headers{'To'} = \@mailto;
if ($flag_tagcmd) {
$headers{'Subject'} = "cvs tag in $repository";
} else {
$headers{'Subject'} = "cvs commit to $repository";
}
$mailer->open(\%headers);
print $mailer @outlist;
$mailer->close;
}
sub stdout_notification {
chop(my $hostname = `hostname`);
print "MAIL FROM: bonsai-daemon\@$hostname\n";
print "RCPT TO: root\@localhost\n";
print "DATA\n";
if ($flag_tagcmd) {
print "Subject: cvs tag in $repository\n";
} else {
print "Subject: cvs commit to $repository\n";
}
print "\n";
print @outlist, "\n";
print ".\n";
}
# Quotify a string, suitable for invoking a shell process
sub shell_escape {
my ($file) = @_;
$file =~ s/([ \"\'\?\$\&\|\!<>\(\)\[\]\;\:])/\\$1/g;
return $file;
}

View File

@ -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.

View File

@ -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-checkin-daemon@bonsai.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 -c -u http://bonsai.mozilla.org -r /cvsroot -s %s dev-tech-crypto-checkins@lists.mozilla.org
mozilla/extensions/psm-glue $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s dev-tech-crypto-checkins@lists.mozilla.org
mozilla/netwerk/security $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s dev-tech-crypto-checkins@lists.mozilla.org
mozilla/netwerk/protocol/http/src $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s dev-tech-crypto-checkins@lists.mozilla.org
mozilla/netwerk/socket/ssl $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s dev-tech-crypto-checkins@lists.mozilla.org
mozilla/netwerk/socket/tests $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s dev-tech-crypto-checkins@lists.mozilla.org
mozilla/dbm $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s dev-tech-crypto-checkins@lists.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
mozilla/testing/performance/talos $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s dev-tree-management@lists.mozilla.org
CVSROOT $CVSROOT/CVSROOT/cvsmailfilter.pl -c -u http://bonsai.mozilla.org -r /cvsroot -s %s -f modules sysalerts@mozilla.org

View File

@ -1,866 +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
Testopia -a \
mozilla/webtools/testopia
Webtools -a \
Bugzilla \
Bonsai \
LXR \
Tinderbox
#############################################################
#
# Module for the java webclient (edburns)
#
#############################################################
Webclient -a \
mozilla/java/Makefile.in \
mozilla/java/build.xml \
mozilla/java/README \
mozilla/java/config \
mozilla/java/dom/README \
mozilla/java/dom/build.xml \
mozilla/java/dom/classes \
mozilla/java/dom/jni \
mozilla/java/dom/src \
mozilla/java/external \
mozilla/java/makefiles \
mozilla/java/util \
mozilla/java/webclient \
mozilla/java/webclient/README \
mozilla/java/webclient/build-tests.xml \
mozilla/java/webclient/build.xml \
mozilla/java/webclient/classes_spec \
mozilla/java/webclient/config \
mozilla/java/webclient/src_ie \
mozilla/java/webclient/src_moz \
mozilla/java/webclient/src_share \
mozilla/java/webclient/test/automated \
mozilla/java/webclient/test/manual \
mozilla/java/dist
#############################################################
#
# Modules for Network Security Services
# Java Security Services
#
#############################################################
NSS -a \
mozilla/dbm \
mozilla/security/dbm \
mozilla/security/nss \
mozilla/security/coreconf
JSS -a \
mozilla/security/jss
SecurityServices -a \
mozilla/security/tinderbox \
NSPR \
NSS \
JSS
#############################################################
#
# Module for Mozilla Tinderbox
#
#############################################################
CoreTinderboxAll -a \
SeaMonkeyAll \
mozilla/security/psm \
mozilla/accessible \
mozilla/ipc/ipcd \
mozilla/security/manager \
mozilla/tools/trace-malloc \
mozilla/modules/lcms \
mozilla/modules/libpr0n \
mozilla/modules/libmar \
mozilla/modules/libbz2 \
mozilla/toolkit \
mozilla/storage \
mozilla/db/morkreader \
mozilla/db/sqlite3 \
mozilla/memory/jemalloc \
TestHarness
# should this be called SuiteTinderboxAll ?
MozillaTinderboxAll -a \
CoreTinderboxAll \
mozilla/suite \
mozilla/xulrunner
# 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
CoreBranchTinderboxAll -a \
CoreTinderboxAll \
NSS \
NSPR \
mozilla/directory/c-sdk
# should this be called SuiteBranchTinderboxAll ?
MozillaBranchTinderboxAll -a \
CoreBranchTinderboxAll \
mozilla/suite
AviaryBranchTinderbox -a \
CoreBranchTinderboxAll \
mozilla/browser \
mozilla/chrome \
mozilla/mail
# thunderbird's tinderbox module
ThunderbirdTinderbox -a \
CoreTinderboxAll \
mozilla/mail \
mozilla/chrome
# this is for the phoenix tinderbox
PhoenixTinderbox -a \
CoreTinderboxAll \
mozilla/browser \
mozilla/chrome \
!mozilla/extensions/irc
# For special trees like Mozilla 1.8 --chase
AviarySuiteBranchTinderbox -a \
CoreBranchTinderboxAll \
mozilla/browser \
mozilla/chrome \
mozilla/mail \
mozilla/suite
# Test Harness code
TestHarness -a \
mozilla/tools/test-harness/xpcshell-simple \
mozilla/testing/crashtest \
mozilla/testing/mochitest

View File

@ -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

View File

@ -1,336 +0,0 @@
# DO NOT EDIT THIS FILE! You must instead go to https://despot.mozilla.org/, and
# tweak things from there.
aaronleventhal%moonset.net:S0MUPohMWfaMo:cvsuser
aaronr%us.ibm.com:Fk/Gm8/Pavt5E:cvsuser
ajschult%verizon.net:586bcad8BLjJ.:cvsuser
akkzilla%shallowsky.com:LyPNKDRAkCEfM:cvsuser
alecf%flett.org:xY/EzwiSEg43U:cvsuser
alex%croczilla.com:.qnz.iJA.rUaQ:cvsuser
alexei.volkov.bugs%sun.com:4kk40jCYel.cQ:cvsuser
alfred.peng%sun.com:XeuD7j8pQQlfU:cvsuser
allan%beaufour.dk:HqCPQ9INvQHOk:cvsuser
alqahira%ardisson.org:/Q09uNupx65ko:cvsuser
amardare%qnx.com:.nnbfi3s/6pLw:cvsuser
andreas.otte%debitel.net:kydQ2aAIGwhkA:cvsuser
annie.sullivan%gmail.com:udBz8JbukFZ8I:cvsuser
anodelman%mozilla.com:GbVxnw5oI8qDM:cvsuser
anton.bobrov%sun.com:I/GPt4WI84v2s:cvsuser
antonio.gomes%indt.org.br:5Th4Q/mTAB6fg:cvsuser
aravind%mozilla.com:QBQ7ZP8fvKCk2:cvsuser
asa%mozilla.org:KwQFH5YHrDGVw:cvsuser
asac%jwsdot.com:5Ttz4cO1tOAUI:cvsuser
asasaki%mozilla.com:OvcxjU43UXiZU:cvsuser
asqueella%gmail.com:.UwhPbirT2aic:cvsuser
atremon%elansoftware.com:W3ra7Lu0bCR92:cvsuser
ause%sun.com:J7sS6Z5BS4BsA:cvsuser
axel%pike.org:J0ntXH8PN.yTA:cvsuser
bbaetz%acm.org:JhmLaLDTsT/h2:cvsuser
bclary%bclary.com:TYy8zRTOlkZWU:cvsuser
bear%mozilla.com:QPUD827Visics:cvsuser
beckley%qualcomm.com:oqzqNk6Hm.K52:cvsuser
benc%meer.net:.mc9O4VQuREws:cvsuser
beng%bengoodger.com:qP3ON3NucalGw:cvsuser
benjamin%smedbergs.us:dvB/veJh3IxkM:cvsuser
bent.mozilla%gmail.com:VTFl7s.ZNXBIc:cvsuser
bhearsum%mozilla.com:bc9sC.7gLvhWA:cvsuser
bienvenu%nventure.com:dzcEj09V1HQLg:cvsuser
biswatosh.chakraborty%sun.com:Cj89QwJpG0/hc:cvsuser
blassey%mozilla.com:gIEKQwXOhM9z2:cvsuser
blizzard%mozilla.com:qNva3X2geFCuY:cvsuser
bmlk%gmx.de:diOpGSeH3syIs:cvsuser
bobbyholley%gmail.com:UEdaVxj7BVsMY:cvsuser
brade%comcast.net:ouetdVzWLzsWs:cvsuser
BradleyJunk%cinci.rr.com:EOOl4wp9MNcU6:cvsuser
brendan%mozilla.org:N7wZcaY7Bs9nw:cvsadm
brettw%gmail.com:Jm1XbKZwUGoHs:cvsuser
browning%uwalumni.com:MgeOzDk/xxhD6:cvsuser
bryner%brianryner.com:gy5stVpStoVNw:cvsuser
bugreport%peshkin.net:PgnY246SzUcHk:cvsuser
bugzilla%babylonsounds.com:/Cu/c717IBD1w:cvsuser
bugzilla%glob.com.au:O.LFwfIctGxh6:cvsuser
bugzilla%standard8.plus.com:lmzqmqShGzGYs:cvsuser
burnus%gmx.de:RBozBY9sekJRM:cvsuser
bz%barnson.org:hRMbA3bW5q6Ak:cvsuser
bzbarsky%mit.edu:YySJ0ECW0UqcM:cvsuser
caillon%redhat.com:S5LpV7HM4OOzo:cvsuser
callek%gmail.com:7c0ZoYCqNF3qk:cvsuser
catlee%mozilla.com:eY4mh1o1mljjg:cvsuser
cbarrett%mozilla.com:TFDyorFt/0ICk:cvsuser
cbiesinger%gmail.com:SmMxtOg6tGNJg:cvsuser
ccooper%deadsquid.com:.a8HcC8mM7pks:cvsuser
Chris.Yeh%nokia.com:98WX9EeAZIt/6:cvsuser
christophe.ravel.bugs%sun.com:m72kIhpCT13sg:cvsuser
cls%seawood.org:YLAr7ajnaXezg:cvsuser
cltbld%netscape.com:mla4CZgCloBSU:cvsuser
cmp%mozilla.org:N6s8fO4X.RRV.:cvsuser
cpeyer%adobe.com:/J3KHO2IWNqBk:cvsuser
crowder%fiverocks.com:nTJiASZEqtksI:cvsuser
cst%yecc.com:FsXA0AnQhG/kg:cvsuser
ctalbert%mozilla.com:9UNADg/pEZyzA:cvsuser
daniel%glazman.org:voZRrCYpgF9AU:cvsuser
danm-moz%comcast.net:3h6FdkzmMqnyA:cvsuser
dansmith%adobe.com:XXuMiHbfmTlRQ:cvsuser
dao%mozilla.com:s.1QwzYPRMD5c:cvsuser
darin%meer.net:BFlqb/kSuCdKo:cvsuser
daumling%adobe.com:PZxEWCXipcjEI:cvsuser
david%bozemanpass.com:CSVK8gML2ph9c:cvsuser
db48x%yahoo.com:WOXgUg7VfNR2s:cvsuser
dbaron%dbaron.org:Ufu45S7XqztOY:cvsuser
dbolter%mozilla.com:Pj95SMWINbfQY:cvsuser
dcamp%mozilla.com:8J1lYA6aDXWgI:cvsuser
dean_tessman%hotmail.com:AM2BZ7M0nDhlM:cvsuser
deb%dria.org:tevrBpdIX/IAw:cvsuser
despotdaemon:zJJgZOGMRo/FE:cvsadm
dholbert%cs.stanford.edu:DP/HW2hXEZoDg:cvsuser
diegohcg%gmail.com:Vs/1h.ZP6RmZg:cvsuser
dietrich%mozilla.com:V5GbjeqBWgCQc:cvsuser
dlawrence%mozilla.com:Jb37f1UZbg4g2:cvsuser
dmandelin%mozilla.com:omKcEsk6wjg9s:cvsuser
dmose%mozilla.org:sTIo1zYddteQc:cvsadm
dolske%mozilla.com:yYw1gOmZMtaAM:cvsuser
doronr%us.ibm.com:BntrR9DKOvfRw:cvsuser
douglas%stebila.ca:FtOKWYCG./BN6:cvsuser
dougt%meer.net:QzucPi4akyAvo:cvsuser
driehuis%playbeing.org:BbR6IahGk6yGc:cvsuser
dschaffe%adobe.com:IVaq/BhZhOKOc:cvsuser
dtownsend%oxymoronical.com:azpGlFWejkYvY:cvsuser
dveditz%cruzio.com:S1X7iuOVZr0tI:cvsuser
dwitte%mozilla.com:atobJ8YkJm/x.:cvsuser
edburns%acm.org:z7zqfOtPH9oic:cvsuser
edward.lee%engineering.uiuc.edu:JQQPKcRtozeJY:cvsuser
ehsan.akhgari%gmail.com:ZAquXcDKuPuNk:cvsuser
emaijala%kolumbus.fi:HlHx6Z2VwOLeg:cvsuser
emaldona%redhat.com:E.pBgfrTvGowM:cvsuser
enndeakin%gmail.com:gQGH2TE1LSHR.:cvsuser
erhyuan%pacbell.net:b6.iRP5wVeO1s:cvsuser
erik%dasbistro.com:RleOQJ5O4vqSI:cvsuser
erik%vanderpoel.org:UIUlMPWTelYIE:cvsuser
Evan.Yan%Sun.COM:y6fet2ZQuQjxw:cvsuser
fantasai.cvs%inkedblade.net:.wuTh0oK1y23M:cvsuser
firefox%blakeross.com:iecsxCayirMQw:cvsuser
flamingice%sourmilk.net:9xh1/DFw2ODOU:cvsuser
florian%queze.net:fYk7exIMhk3I.:cvsuser
gandalf%firefox.pl:gag9.o44ly07A:cvsuser
gavin%gavinsharp.com:pMMNzxf5m93DM:cvsuser
gavin%picsel.com:3fMXVt7Cqmgo.:cvsuser
gerv%gerv.net:/3awrKKpfLPvQ:cvsuser
ghendricks%novell.com:EHmq1PZa1a00s:cvsuser
gijskruitbosch%gmail.com:9n2/iwbsnMyiw:cvsuser
ginn.chen%sun.com:.yE1Sk2DszKf2:cvsuser
glen.beasley%sun.com:Bg3n.ccr13OvI:cvsuser
gozer%mozillamessaging.com:Qbfiaq/6nsg6s:cvsuser
graydon%mozilla.com:oifQirJbZia3U:cvsuser
guy.pyrzak%gmail.com:aCVt2H8vDraHM:cvsuser
hannes%helma.at:kf..K/fIFAHks:cvsuser
hjtoi%comcast.net:52AbDkgxmkRfY:cvsuser
honzab.moz%firemni.cz:r0fsdafA2Nd2M:cvsuser
hpradhan%hotpop.com:Z9A47ej9QDVYc:cvsuser
hwaara%gmail.com:74eCB7AZi/Bm2:cvsuser
ian%hixie.ch:nibu2mA5/kgco:cvsuser
iann_cvs%blueyonder.co.uk:bVhEvG7dtzxWg:cvsuser
igor%mir2.org:MM9XCaPQ9hSyA:cvsuser
inonit%inonit.com:Om4RcBfTOXpSw:cvsuser
ispiked%gmail.com:fIoVRIBQ9Yf26:cvsuser
jag%tty.nl:JfxrrkZerNZv.:cvsuser
jake%bugzilla.org:mjldF4ES.KxbI:cvsuser
Jan.Varga%gmail.com:itS5ZJXFiEJC2:cvsuser
jasone%canonware.com:Oe69thka5Drg2:cvsuser
jay%mozilla.org:./8ppoCBU7xKE:cvsuser
jdrew%mozilla.com:H94cmzCtc22L6:cvsuser
jeff.hedlund%matrixsi.com:dUxvk4HDbIrkA:cvsuser
jgmyers%speakeasy.net:tj/q7ALULIlLM:cvsuser
jhopkins%mozillamessaging.com:F3Gyejh.h.L3I:cvsuser
jim_nance%yahoo.com:MW2pItooimXQc:cvsuser
jmathies%mozilla.com:JMun7n79fcZrE:cvsuser
jminta%gmail.com:xECVGDTSeqbz2:cvsuser
jodyer%adobe.com:RSXkcpr/Wp4VE:cvsuser
joe%retrovirus.com:qUSVkAd/h8mko:cvsuser
john%johnkeiser.com:UEgKBivGIzptw:cvsuser
johnath%mozilla.com:kyyPyUgFhqYjQ:cvsuser
jonas%sicking.cc:HmAX9bYyCA47k:cvsuser
jorendorff%mozilla.com:E.PR9.l6FO.0I:cvsuser
joshmoz%gmail.com:X9Pi3H9iwCIb2:cvsuser
jouni%heikniemi.net:ykttS9UKWXc9E:cvsuser
jresig%mozilla.com:6cSYi6oRTWDoE:cvsuser
jruderman%hmc.edu:mwr0yF3PJ5H2g:cvsuser
jscott%mozilla.com:PcwAYdu4UOrto:cvsuser
jshin1987%gmail.com:j6/TcPcy/KYgg:cvsuser
jst%mozilla.org:ry1WSdsxrYVhg:cvsuser
julien.pierre.boogz%sun.com:2ebjC0cACURyU:cvsuser
justdave%bugzilla.org:Xi4EgN7Xvi7z6:cvsadm
justin%mozilla.com:44P/1lpTCFMo.:cvsadm
jwalden%mit.edu:DYcaTEuBX5WEA:cvsuser
jwatt%jwatt.org:rQgtjD.FtjqWY:cvsuser
kaie%kuix.de:.hgVIsvtes.Fw:cvsuser
kairo%kairo.at:P3GfvvKlerCks:cvsuser
karl.kornel%mindspeed.com:9Vq/LWyYItegs:cvsuser
karlt+%karlt.net:w1Gi9UP1A0i4Y:cvsuser
katakai%japan.sun.com:qJPfrx26UNm2.:cvsuser
kerz%mozillazine.org:PrxCfYo5gxNi.:cvsuser
kestesisme%yahoo.com:5Ld0f8MhzQggw:cvsuser
kevin.heart%gmail.com:8lliOE5JWdETk:cvsuser
kherron%fmailbox.com:rRN9eQFLs3af6:cvsuser
kieran%eternal.undonet.com:gVVzTaNHTa3HE:cvsuser
kiko%async.com.br:Uz8pBMTzv6gpo:cvsuser
kinmoz%netscape.net:RexUJ7MbhHOeE:cvsuser
Kurt.Zenker%sun.com:PxXscXmcBiCWY:cvsuser
kyle.yuan%sun.com:4pSzbqjeADpcc:cvsuser
lars%mozilla.com:OIS1qjX2A4hPY:cvsuser
lars%trolltech.com:sGvT16I8vdbYY:cvsuser
leaf%mozilla.org:yDi7DUMDdLeDk:cvsuser
leif%ogre.com:NSpnZ.4teg8CA:cvsuser
leon.sha%sun.com:VfiWfb3UX3.Iw:cvsuser
lianliming%gmail.com:q1NmFx6CiR/cE:cvsuser
light%rathedg.com:G9NscomPqxBJg:cvsuser
locka%iol.ie:Odt22ztoqh7Pc:cvsuser
longsonr%gmail.com:n0H6qvTySWbsY:cvsuser
lordpixel%mac.com:pBoWsz5/W/1/o:cvsuser
louie.zhao%sun.com:ajsxRr.217rWY:cvsuser
lpsolit%gmail.com:s2V0JuW2d3qG.:cvsuser
lwagner%mozilla.com:nn8UYSg1EVCR6:cvsuser
marco.zehe%googlemail.com:/.MEQU1hGEtlE:cvsuser
marco%gnome.org:zKqukw72.KsUw:cvsuser
mark.finkle%gmail.com:.CMOa5pzz2ey6:cvsuser
mark%lussumo.com:dNKgwl4OUxxHY:cvsuser
mark%moxienet.com:xXj.wmda2UrCM:cvsuser
mark%plogs.net:9a8m5d2zmZBzA:cvsuser
marria%gmail.com:UXJ8PJcEKNij2:cvsuser
martijn.martijn%gmail.com:dQsvqxjujoE9g:cvsuser
masayuki%d-toybox.com:Px8OA0y98uKTY:cvsuser
mats.palmgren%bredband.net:xBfocrUUc/wis:cvsuser
mattwillis%gmail.com:TiZNJlJ.RHoBs:cvsuser
mattyt%tpg.com.au:c/z7/vNQ/Vv1I:cvsuser
mcafee%mocha.com:Y/0zK7Dff2W8.:cvsuser
mcharleb%qualcomm.com:Uyg8fRoqDJSPE:cvsuser
mconnor%steelgryphon.com:KLpr7Zj8uPkes:cvsuser
mcs%pearlcrescent.com:1K9aYq1ivwd6s:cvsuser
mcsmurf%mcsmurf.de:zYsbEuLO7wm76:cvsuser
mgalli%geckonnection.com:Myf1X1IRZtvK6:cvsuser
mhammond%skippinet.com.au:T1kpFNZuhvQ0I:cvsuser
michael.buettner%sun.com:NkL7l4mYwuirs:cvsuser
mike%meer.net:3rKv1ZMBpeR36:cvsuser
mkanat%bugzilla.org:UsNXKY7u6ozDw:cvsuser
mkaply%us.ibm.com:1Ui2NF/0U00sI:cvsuser
mkmelin+mozilla%iki.fi:6koUOtAKdEXB2:cvsuser
mnyromyr%tprac.de:8JwFnN3UC8w.w:cvsuser
morgamic%mozilla.com:oMf2l.pEwcLAc:cvsuser
mostafah%oeone.com:DaYs.xDcUaa72:cvsuser
mozilla.BenB%bucksch.org:7/oOTh8e41HmY:cvsuser
mozilla.mano%sent.com:rXnDyx.hnVKyk:cvsuser
mozilla%boelzle.org:IhnkPcmU2aaTM:cvsuser
mozilla%colinogilvie.co.uk:JlBNqlkELDhhI:cvsuser
mozilla%justcameron.com:eCz/XDzlP8Cwg:cvsuser
mozilla%kewis.ch:K/pXr12MlfCWc:cvsuser
mozilla%weilbacher.org:eoZapDeWw57LY:cvsuser
mozmail%daveliebreich.com:P3fSEyqi8O9S2yba:cvsuser
mozpreed%sigkill.com:BvqmKaKN1qcNE:cvsadm
mrbkap%gmail.com:UMeeFwmDqd7II:cvsuser
mschroeder%mozilla.x-home.org:iWrL1IFBbV/sw:cvsuser
mstange%themasta.com:xXppy8/VqgZYk:cvsuser
mvl%exedo.nl:kpiBYLuZnAosE:cvsuser
myk%mozilla.org:UPia1WceZof6E:cvsadm
m_kato%ga2.so-net.ne.jp:FoloD5kECUuTo:cvsuser
nboyd%atg.com:hbKSEw6zIzn8A:cvsuser
neil.williams%sun.com:5demyASX0XQLE:cvsuser
neil%parkwaycc.co.uk:dIqJP4XsRGQIw:cvsuser
nelson%bolyard.com:AVyk3HXWf.ujs:cvsuser
nhosoi%redhat.com:Kc7DN3G6DWNVc:cvsuser
nick.kreeger%park.edu:8w9jrG44s9v9o:cvsuser
nkwan%redhat.com:Evx20xUpj8Gk2:cvsuser
nrthomas%gmail.com:39NAPUEFnNHP.:cvsuser
olav%bkor.dhs.org:fuDFH7wT/SfrM:cvsuser
Olli.Pettay%helsinki.fi:JNyNghF5OJ9Xo:cvsuser
oremj%mozilla.com:Vu3lChH7COMLs:cvsadm
pamg.bugs%gmail.com:t.cstj7r1wyFo:cvsuser
paper%animecity.nu:zZz20Ze5U4roc:cvsuser
pavlov%pavlov.net:Wm/3gCaQhXNLo:cvsuser
pcbeard%mac.com:2Eed7KIBNPtL6:cvsuser
pedemont%us.ibm.com:yXrIQ7nPbCytE:cvsuser
pete%mozdevgroup.com:8I2QCUKNKooqA:cvsuser
peterv%propagandism.org:tknmYRfnctNHY:cvsuser
philringnalda%gmail.com:QfBdPW0n3i/vE:cvsuser
Pidgeot18%gmail.com:3AKyGBnLGhuQk:cvsuser
pinkerton%aol.net:SXjRJmDJDtb1U:cvsuser
pkasting%google.com:LyTm7xG6RxIAo:cvsuser
pkw%us.ibm.com:8b/bmWBPVi2ug:cvsuser
prasad%medhas.org:UFVpNiIq80k0w:cvsuser
psychoticwolf%carolina.rr.com:utvOR5.5Us.kU:cvsuser
ptran%mozilla.com:.vSQA1Tg/CD9.:cvsadm
p_ch%verizon.net:9sotrJUSTkw2o:cvsuser
rbs%maths.uq.edu.au:2urVlBcTziPaA:cvsuser
rcampbell%mozilla.com:/T/10DQgIOWm6:cvsuser
redfive%acm.org:bwZbPN1gYEnPo:cvsuser
reed%reedloden.com:hTsN0cuIWUQL2:cvsadm
rflint%ryanflint.com:6jZQWQz6aMM6E:cvsuser
rginda%hacksrus.com:TRTBrAIOV/zck:cvsuser
richard.freedman%sun.com:8SW/naR5ntHSs:cvsuser
richm%stanfordalumni.org:CMqOc556cwVPA:cvsuser
rick.ju%sun.com:O/OoCMTnW5sUE:cvsuser
rj.keller%beonex.com:Kg0SscFg1bZfw:cvsuser
rjesup%wgate.com:5Ccmc2hO67zAk:cvsuser
robarnold%cmu.edu:ID9AnqMmrJIH2:cvsuser
robert%accettura.com:ofCq6Xe9Mdsk6:cvsuser
robert%roberthelmer.com:8wnUosvUV2zI.:cvsuser
robin.lu%sun.com:QX/01AXloHL0A:cvsuser
rob_strong%exchangecode.com:QcQeM1Fhopr1A:cvsuser
roc+%cs.cmu.edu:7yP.3Z8FERo/.:cvsuser
romaxa%gmail.com:ERMq0/01GM3DU:cvsuser
rrelyea%redhat.com:SnAaVLpexLWKw:cvsuser
samuel%sieb.net:UyA4IG.2.LceA:cvsuser
sancus%off.net:Z1FCTZbwRr8xI:cvsuser
sayrer%gmail.com:Bi0wR2pc2rfyE:cvsuser
scc%mozilla.org:rSANuSFML82vc:cvsuser
schrep%mozilla.com:HOyCtawx2RMLg:cvsuser
scootermorris%comcast.net:wQk4tagONTuMg:cvsuser
scott%scott-macgregor.org:/iUxoWYhl45Gw:cvsuser
sdwilsh%shawnwilsher.com:vlJz/BjeP89rw:cvsuser
sebo.moz%googlemail.com:lC8mJxyQ4sjDA:cvsuser
sergei_d%fi.tartu.ee:2pMVH6CMfBao6:cvsuser
sgautherie.bz%free.fr:zRDfcZjqityUw:cvsuser
sharparrow1%yahoo.com:.ksEGiKJj1sdU:cvsuser
shaver%mozilla.org:I4.grysVnENVM:cvsadm
silver%warwickcompsoc.co.uk:jn1zaL3oWEYT6:cvsuser
simford%yahoo.com:fV41vy16txOL6:cvsuser
slavomir.katuscak%sun.com:zzZvFAbWtnVt6:cvsuser
smfr%smfr.org:2mFWUaEqjN7lE:cvsuser
smichaud%pobox.com:LVTaYwQdcsyLA:cvsuser
smontagu%smontagu.org:GR7KUGsPjdY/6:cvsuser
sparkins%redhat.com:v47uXV/9jevOo:cvsuser
sspitzer%mozilla.org:6pWx3PlzU0tYQ:cvsuser
ssu0262%aol.com:cfNlpxCKVXQtQ:cvsuser
Stefan.Borggraefe%gmx.de:h788WO/3xUGRc:cvsuser
stefanh%inbox.com:hWmK3E9KdRisc:cvsuser
steffen.wilberg%web.de:Sj/Ybb7X9aaRI:cvsuser
stephen%noved.org:eUTehPWJZ96oI:cvsuser
stridey%gmail.com:1dIxxxcOFboTM:cvsuser
stuart.morgan%alumni.case.edu:osIW3RwEUQsgM:cvsuser
surkov.alexander%gmail.com:j7fhI7d42nVNU:cvsuser
szegedia%freemail.hu:wnmu1pi.2s982:cvsuser
ted.mielczarek%gmail.com:RZ395urzBvt8Q:cvsuser
tglek%mozilla.com:WvBRjnHMP9ZTU:cvsuser
thomas.benisch%sun.com:VS9sGUhKBH37s:cvsuser
tierney%adobe.com:/l37fMGOOoRuA:cvsuser
timeless%mozdev.org:/rmja24l1sOYs:cvsuser
toddw%activestate.com:7bfDWjDX3IqGk:cvsuser
tony%ponderer.org:I25wmbIx2NMV.:cvsuser
tor%cs.brown.edu:.GLVprG/lOpjM:cvsuser
travis%sedsystems.ca:GeYiqvJTK4qvM:cvsuser
treilly%adobe.com:.NcUbzHumfIHE:cvsuser
treydrake%yahoo.com:Y6aSEsZf.GcP2:cvsuser
ulf%loop.to:nyAdDm7URuxog:cvsuser
uriber%gmail.com:UbuwPpUMiAJGI:cvsuser
vitaly%rathedg.com:gCpWN92cgp7aU:cvsuser
vladimir%pobox.com:ZcFYwCPC7dvjE:cvsuser
wclouser%mozilla.com:7kMqx9pigCvx2:cvsuser
webmail%kmgerich.com:K7U1HCAoxFv2E:cvsuser
wildriding%gmail.com:C5sZHT45QR.ks:cvsuser
wolfe%lobo.us:lv89GmGhY7/16:cvsuser
wr%rosenauer.org:ZfCN63R6WKPWc:cvsuser
wsharp%adobe.com:k/vjPPnrjMKsQ:cvsuser
wtc%google.com:qv4XOpmSQjJG2:cvsuser
wurblzap%gmail.com:pto2PHYncXBQY:cvsuser
Xiaobin.Lu%eng.Sun.com:MrrYDdtVNWvV6:cvsuser
yinbolian%gmail.com:SXDI.XmKRDr7s:cvsuser
zach%zachlipton.com:GLozolSujiqSo:cvsuser
zack%kde.org:OcOf3QFUvN/v2:cvsuser
zhayupeng%gmail.com:rXMiOKAkMlQts:cvsuser

View File

@ -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".

View File

View File

@ -1,47 +0,0 @@
#!/usr/bin/perl
#
# This is a simple script that forces specified users to
# have read-only access to the CVS repository when using SSH.
# This must be done in a pre-commit check script, as SSH users
# must have an account on the server with access to the repository.
# Returning "0" means the account is allowed to check-in. Any other
# return type will stop the commit from occurring.
#
# Authors: Reed Loden <reed@mozilla.com>
# Aravind Gottipati <aravind@mozilla.com>
#
# To make it work, you need to add the script name to
# CVSROOT/checkoutlist so that the script is checked out correctly
# on the CVS server.
# Also, you need to add a line to your
# CVSROOT/commitinfo file that says something like:
#
# ALL $CVSROOT/CVSROOT/readonlyusers.pl
use strict;
use warnings;
# Hash of read-only users
my %read_only_users = (
'calbld' => 1,
'caminobld' => 1,
'ffxbld' => 1,
'l10nbld' => 1,
'nobody' => 1,
'stgbld' => 1,
'qabld' => 1,
'unittest' => 1,
'trybld' => 1,
'xrbld' => 1
);
my $username = $ENV{'CVS_USER'} || getlogin || (getpwuid($<))[0] || 'nobody';
if (exists $read_only_users{$username}) {
print STDERR "The $username account is not permitted to check-in to this CVS repository.\n";
print STDERR "If you think it should be allowed to do so, please contact\n";
print STDERR "the system administrators at sysadmins\@mozilla.org.\n";
exit 1;
}
exit 0;

View File

@ -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 = "localhost";
$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);

View File

@ -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".

View File

@ -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.

View File

@ -1,2 +0,0 @@

View File

@ -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;
}

View File

@ -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). */

View File

@ -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 */

File diff suppressed because it is too large Load Diff

View File

@ -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 */

View File

@ -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 */

View File

@ -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

Binary file not shown.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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;
}

View File

@ -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
################################################################################

View File

@ -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!

View File

@ -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!

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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 */

View File

@ -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 */

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@ -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.&nbsp; 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.&nbsp; You may not release a localized
version of the Netscape Communicator with these trademarks left in the
product.
<BR>&nbsp;
<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>

View File

@ -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.&nbsp; The
most likely minimum configuration will be as follows:
<UL>
<LI>
100% IBM compatible PC</LI>
<LI>
Pentium<SUP><FONT SIZE=-1>&reg;</FONT></SUP> processor</LI>
<LI>
Microsoft<SUP><FONT SIZE=-1>&reg;</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>&reg;</FONT></SUP>
Visual C++, Borland<SUP><FONT SIZE=-1>&reg;</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.&nbsp;
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:&nbsp; <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>&nbsp;
<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>

View File

@ -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>

View File

@ -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.&nbsp; 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>&nbsp;
<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.&nbsp; Then, you will extract the localizable components
and modify them as desired.&nbsp; 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.&nbsp; 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>&nbsp;
<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.&nbsp; 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>
&nbsp;
<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>
&nbsp;
<CENTER><FONT SIZE=-1>&nbsp;1998, Copyright Netscape Communications Corp.
All Rights Reserved</FONT></CENTER>
</BODY>
</HTML>

View File

@ -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>
&nbsp;
<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>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
</BODY>
</HTML>

View File

@ -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>

View File

@ -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&nbsp; deinstall log file</B> %s (<B>this will take several minutes)...</B>
<P>&nbsp;
<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>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
<BR>&nbsp;
</BODY>
</HTML>

View File

@ -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>&nbsp;
<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...&nbsp;</B>
<P>Description=<B>VRML 2.0 support&nbsp;</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>&nbsp;
<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>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
<BR>&nbsp;
</BODY>
</HTML>

View File

@ -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>&nbsp;
<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>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@ -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>

View File

@ -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>&nbsp;
<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>&nbsp;<BR>
<FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape Communications
Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@ -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>

View File

@ -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>

View File

@ -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>
&nbsp;
</BODY>
</HTML>

View File

@ -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&nbsp;</I>
<BR><I>17 18 19&nbsp;</I>
<BR><I>20 21 22 23 24 25 26 27 28 29&nbsp;</I>
<BR><I>30 31 32 33 34 35 36 37 38 39&nbsp;</I>
<BR><I>40 41 42 43 44 45 46 47 48 49&nbsp;</I>
<BR><I>50 51 52 53 54 55 56 57 58 59&nbsp;</I>
<BR><I>60 61 62 63 64 65 66 67 68 69&nbsp;</I>
<BR><I>70 71 72 73 74 75 76 77 78 79&nbsp;</I>
<BR><I>80 81 82 83 85 86 88&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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>&nbsp;
<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>&nbsp;
<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>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@ -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>&nbsp;
<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>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@ -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>.&nbsp; These are the strings that look like <B>about:[some
value]</B>.&nbsp; These point to internally contained resources, such as
the main About Communicator page.&nbsp; If you localize these strings you
will not be able to load these pages.&nbsp; 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>&nbsp;
<BR>&nbsp;
<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>&nbsp;<BR>
<FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape Communications
Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@ -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&nbsp;</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.&nbsp;</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>

View File

@ -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."&nbsp; 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>&nbsp;</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.&nbsp; 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&nbsp;</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.&nbsp;</TD>
</TR>
<TR>
<TD>localization notes</TD>
<TD>any special instructions, including the "translate/don't translate"
flag, associated with a given resource.&nbsp; 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.&nbsp;</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>
&nbsp;
<BR>&nbsp;
<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>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@ -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>&reg;</FONT></SUP> version
3.&nbsp; Because this is the proprietary product of InstallShield Corporation,
Netscape cannot redistribute the complete source for these installers.&nbsp;
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.&nbsp; Please keep this in mind as you work with
the localization kit instructions.
<BR>&nbsp;
<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>
&nbsp;
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@ -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.&nbsp;
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>&nbsp;
<CENTER><TABLE COLS=1 WIDTH="50%" >
<TR>
<TD>
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
</TD>
</TR>
</TABLE></CENTER>
<CENTER>&nbsp;</CENTER>
<CENTER></CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@ -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.&nbsp; 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.&nbsp; 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>&nbsp;
<TABLE BORDER COLS=1 WIDTH="100%" >
<TR>
<TD><B>MPLAY32.INI</B>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Media Player&nbsp;
<BR>Name : CurrentVersion&nbsp;
<BR>Value: 4.03 (en)&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Media Player\4.03 (en)&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Media Player\4.03 (en)\Main&nbsp;
<BR>Name : Install Directory&nbsp;
<BR>Value: [Default Path]\MPlayer&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : Program Folder&nbsp;
<BR>Value: [Program Folder]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\.LAM&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: LAMDocument&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\LAMDocument\shell\open\command&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [WINSYSDIR]\mplay32.exe %1&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : (Default)&nbsp;
<BR>Value: [WINDIR]\mplayer.exe %1&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\LAMDocument\DefaultIcon&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\MPlayer\npcfg32.exe ,0&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI32&nbsp;
<BR>Name : LiveAudioFile&nbsp;
<BR>Value: mcilma32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI&nbsp;
<BR>Name : LiveAudioFile&nbsp;
<BR>Value: mcilma.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI32&nbsp;
<BR>Name : LiveAudioMetafile&nbsp;
<BR>Value: mcilau32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc&nbsp;
<BR>Name : mcilau32.dll&nbsp;
<BR>Value: (MCI) Netscape Media Player&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI&nbsp;
<BR>Name : LiveAudioMetafile&nbsp;
<BR>Value: mcilau.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI
Extensions&nbsp;
<BR>Name : LAM&nbsp;
<BR>Value: LiveAudioMetafile&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : LMA&nbsp;
<BR>Value: LiveAudioFile&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : LA&nbsp;
<BR>Value: LiveAudioFile&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc&nbsp;
<BR>Name : mcilma32.dll&nbsp;
<BR>Value: (MCI) Netscape Packetized Audio&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32&nbsp;
<BR>Name : MSACM.NSPAC&nbsp;
<BR>Value: NSPAC32.ACM&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc&nbsp;
<BR>Name : NSPAC32.ACM&nbsp;
<BR>Value: elemedia(TM) AX24000P Music Codec&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32&nbsp;
<BR>Name : MSACM.voxacm118&nbsp;
<BR>Value: vdk32118.acm&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc&nbsp;
<BR>Name : vdk32118.acm&nbsp;
<BR>Value: Voxware 32bit Codec&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32&nbsp;
<BR>Name : MSACM.NSX83&nbsp;
<BR>Value: NSX83P32.ACM&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc&nbsp;
<BR>Name : NSX83P32.ACM&nbsp;
<BR>Value: elemedia(TM) SX8300 Speech Codec&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32&nbsp;
<BR>Name : MSACM.NSMLAW&nbsp;
<BR>Value: NSMLAW32.DLL&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc&nbsp;
<BR>Name : NSMLAW32.DLL&nbsp;
<BR>Value: Netscape G.711 Decoder&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>
<HR WIDTH="100%">
<BR><B>NAV40.INI</B>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App
Paths\Netscape.exe&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\Netscape.exe&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : Path&nbsp;
<BR>Value: [Default Path]\Program&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{7865A9A1-33A8-11d0-BED9-00A02468FAB6}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\brpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{543EC0D0-6AB7-11d0-BF56-00A02468FAB6}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\brpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{543EC0D1-6AB7-11d0-BF56-00A02468FAB6}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\brpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{2D0A7D70-748C-11d0-9705-00805F8AA8B8}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\edpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{E8D6B4F0-8B58-11d0-9B63-00805F8ADDDE}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\mnpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{DDF4AB60-8B84-11d0-9B63-00805F8ADDDE}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\mnpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{CC3E2871-43CA-11d0-B6D8-00805F8ADDDE}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\mnpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{CC3E2872-43CA-11d0-B6D8-00805F8ADDDE}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\mnpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netscape Navigator&nbsp;
<BR>Name : CurrentVersion&nbsp;
<BR>Value: 4.03 (en)&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netscape Navigator\Users&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netscape Navigator\4.03
(en)&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netscape Navigator\4.03
(en)\Main&nbsp;
<BR>Name : Install Directory&nbsp;
<BR>Value: [Default Path]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : Java Directory&nbsp;
<BR>Value: [Default Path]\Program\Java&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : NetHelp Directory&nbsp;
<BR>Value: [Default Path]\Program\NetHelp&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : Plugins Directory&nbsp;
<BR>Value: [Default Path]\Program\Plugins&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : Program Folder&nbsp;
<BR>Value: [Program Folder]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CURRENT_USER\Software\Netscape&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CURRENT_USER\Software\Netscape\Netscape Navigator&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CURRENT_USER\Software\Netscape\Netscape Navigator\Main&nbsp;
<BR>Name : Install Directory&nbsp;
<BR>Value: [Default Path]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\CLSID&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: {61D8DE20-CA9A-11CE-9EA5-0080C82BE3B6}&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\Insertable&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\protocol\StdFileEditing\server&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\Netscape.exe&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\protocol\StdFileEditing\verb\0&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: &amp;Edit&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\open\command&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\Netscape.exe "%1"&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\print\command&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\Netscape.exe /print("%1")&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\print\ddeexec&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [print("%1")]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\PrintTo\command&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\Netscape.exe /printto("%1","%2","%3","%4")&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\PrintTo\ddeexec&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [("%1","%2","%3","%4")]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\open\ddeexec&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: "%1"&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\open\ddeexec\Application&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: NSShell&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\open\ddeexec\Topic&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: WWW_OpenURL&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\Edit\command&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\Netscape.exe -edit "%1"&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\Edit\ddeexec&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [edit("%1")]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster&nbsp;
<BR>Name : CurrentVersion&nbsp;
<BR>Value: 4.03 (en)&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster\4.03 (en)\Main&nbsp;
<BR>Name : Install Directory&nbsp;
<BR>Value: [Shell Path]\Netcast&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : Program Folder&nbsp;
<BR>Value: [Program Folder]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{C98D0190-7D81-11d0-BF8D-00A02468FAB6}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\brpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{37B601C0-8AC8-11d0-83AF-00805F8A274D}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\brpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\CLSID\{913A4A20-8EBF-11d0-BFAB-00A02468FAB6}\InprocServer32&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\Program\brpref32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\print\ddeexec\Application&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: NSShell&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\PrintTo\ddeexec\Application&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: NSShell&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\Edit\ddeexec\Application&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: NSShell&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\NetscapeMarkup&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: Hypertext Markup Language&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\telnet&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: URL:Telnet Protocol&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\telnet\shell\open\command&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: telnet %1&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>
<HR WIDTH="100%">
<BR><B>NETCAST.INI</B>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster&nbsp;
<BR>Name : CurrentVersion&nbsp;
<BR>Value: 1.0 (en)&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster\1.0 (en)&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster\1.0 (en)\Main&nbsp;
<BR>Name : Install Directory&nbsp;
<BR>Value: [Default Path]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : Program Folder&nbsp;
<BR>Value: [Program Folder]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>
<HR WIDTH="100%">
<BR><B>NSCONF.INI</B>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Conference&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Conference\CurrentVersion&nbsp;
<BR>Name : Description&nbsp;
<BR>Value: Conference&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : InstallDate&nbsp;
<BR>Value: [TIME]&nbsp;
<BR>Type : REGDB_NUMBER&nbsp;
<P>Name : Installed&nbsp;
<BR>Value: 1&nbsp;
<BR>Type : REGDB_NUMBER&nbsp;
<P>Name : PathName&nbsp;
<BR>Value: [Default Path]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : SoftwareType&nbsp;
<BR>Value: application&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : VersionBuild&nbsp;
<BR>Value: 1213&nbsp;
<BR>Type : REGDB_NUMBER&nbsp;
<P>Name : VersionMajor&nbsp;
<BR>Value: 1&nbsp;
<BR>Type : REGDB_NUMBER&nbsp;
<P>Name : VersionMinor&nbsp;
<BR>Value: 0&nbsp;
<BR>Type : REGDB_NUMBER&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32&nbsp;
<BR>Name : MSACM.VOXACM118&nbsp;
<BR>Value: vdk32118.acm&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : MSACM.NSX83&nbsp;
<BR>Value: nsx83p32.acm&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : MSACM.NSX723&nbsp;
<BR>Value: sx5363s.acm&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : MSACM.NSMLAW&nbsp;
<BR>Value: nsmlaw32.dll&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CURRENT_USER\Software\Netscape&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_CLASSES_ROOT\nscfile\shell\open\command&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value: [Default Path]\NSConf32.exe -f "%1"&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Conference&nbsp;
<BR>Name : CurrentVersion&nbsp;
<BR>Value: 4.03 (en)&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Conference\4.03 (en)&nbsp;
<BR>Name : (Default)&nbsp;
<BR>Value:&nbsp;
<BR>Type :&nbsp;
<BR>&nbsp;
<P>Key&nbsp; : HKEY_LOCAL_MACHINE\Software\Netscape\Conference\4.03 (en)\Main&nbsp;
<BR>Name : Install Directory&nbsp;
<BR>Value: [Default Path]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<P>Name : Program Folder&nbsp;
<BR>Value: [Program Folder]&nbsp;
<BR>Type : REGDB_STRING&nbsp;
<BR>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<BR>&nbsp;
<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>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@ -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.&nbsp; Provide a
complete description of the problem versus the expected results.&nbsp;
You should let us know if the problem is 100% reproducible (it happens
every time), or if it is intermittant.&nbsp; If you think that your operating
environment may play some factor, let us know the details of that.&nbsp;
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>&nbsp;
<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>&nbsp;
<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>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@ -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>&nbsp;<BR>
<FONT COLOR="#008000"><FONT SIZE=+2>Congratulations! You are done!</FONT></FONT></CENTER>
&nbsp;
<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>

View File

@ -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>&reg;</FONT></SUP> Windows (32-bit version)</H3></CENTER>
<CENTER>
<H3>
Revision 1.1</H3></CENTER>
<CENTER>Copyright &copy; 1994-1998 Netscape&reg; Communications Corporation,
All rights reserved.</CENTER>
&nbsp;
<BR>&nbsp;
<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>&nbsp;</CENTER>
</BODY>
</HTML>

View File

@ -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.&nbsp; 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.&nbsp;
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.&nbsp; 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.&nbsp; 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>&nbsp;
<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>
&nbsp;
<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.&nbsp; 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>&nbsp;
<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>&nbsp;</CENTER>
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
&nbsp;
</BODY>
</HTML>

View File

@ -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>&nbsp;
<BR>&nbsp;</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>1. <A HREF="projectOverview.html">Project Overview</A></FONT>&nbsp;
<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>&nbsp;&nbsp;</LI>
</UL>
</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>2. <A HREF="gettingStarted.html">Getting Started</A></FONT>&nbsp;
<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>
&nbsp;</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>3. <A HREF="usingKit.html">Using the Kit</A></FONT>&nbsp;
<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>
&nbsp;</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>4. <A HREF="testKit.html">Ensuring Quality</A></FONT>&nbsp;
<UL>
<LI>
<A HREF="testKit.html#testkit">Test Considerations</A></LI>
<LI>
<A HREF="reportingBugs.html">Reporting Bugs</A></LI>
</UL>
&nbsp;</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>5. <A HREF="returnKit.html">Publishing the Finished Kit</A></FONT>&nbsp;
<BR>&nbsp;</TD>
</TR>
<TR>
<TD><FONT SIZE=+1>6. <A HREF="reference.html">References</A></FONT>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
</BODY>
</HTML>

View File

@ -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">
&nbsp;
<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>
&nbsp;
<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>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because it is too large Load Diff

View File

@ -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.&nbsp; 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.&nbsp; You may not release a localized
version of the Netscape Communicator with these trademarks left in the
product.
<BR>&nbsp;
<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>

View File

@ -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&nbsp; pref("intl.character_set")
in ALL_PREFS.
<BR>&nbsp;
<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>

View File

@ -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.&nbsp; The
most likely minimum configuration will be as follows:
<UL>
<LI>
100% IBM compatible PC</LI>
<LI>
Pentium<SUP><FONT SIZE=-1>&reg;</FONT></SUP> processor</LI>
<LI>
Microsoft<SUP><FONT SIZE=-1>&reg;</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>&reg;</FONT></SUP>
Visual C++, Borland<SUP><FONT SIZE=-1>&reg;</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.&nbsp; 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:&nbsp; <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.&nbsp; If you intend to
use a different localization tool, please refer to that tool's documentation
for set up and usage instructions.
<BR>&nbsp;
<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>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 871 B

Some files were not shown because too many files have changed in this diff Show More