This commit was manufactured by cvs2svn to create tag 'NSS_3_14_RTM'.
git-svn-id: svn://10.0.0.236/tags/NSS_3_14_RTM@264351 18797224-902f-48f8-a5cc-f745e15eee43
@ -1 +0,0 @@
|
||||
CVSROOT/history
|
||||
@ -1,4 +0,0 @@
|
||||
If you change the modules file, you *MUST* run:
|
||||
check-modules.pl modules
|
||||
|
||||
*before* cvs committing the new modules file.
|
||||
@ -1,257 +0,0 @@
|
||||
#!/usr/bin/env perl
|
||||
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is this file as it was released upon February 25, 1999.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape Communications
|
||||
# Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1999 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
|
||||
#
|
||||
# check-modules.pl - Check cvs modules file for duplicates and syntax errors.
|
||||
#
|
||||
# TODO:
|
||||
# - Parse output of 'cvs co -c' command in addition to the raw file.
|
||||
#
|
||||
# Send comments, improvements, bugs to Steve Lamm (slamm@netscape.com).
|
||||
|
||||
# $Id: check-modules.pl,v 1.1 2000-06-01 11:03:22 leaf%mozilla.org Exp $
|
||||
|
||||
require 5.004;
|
||||
|
||||
use Getopt::Std;
|
||||
|
||||
sub usage
|
||||
{
|
||||
my ($progname) = $0 =~ /([^\/]+)$/;
|
||||
die "Usage: $progname [options] [<module_file>]
|
||||
Reads from stdin if no file is given.
|
||||
Options:
|
||||
-v Verbose. Print the modules and what they include.
|
||||
-h Print this usage message.
|
||||
";
|
||||
}
|
||||
|
||||
&usage if !getopts('hv');
|
||||
&usage if defined($opt_h);
|
||||
|
||||
######################################################################
|
||||
# begin main
|
||||
|
||||
|
||||
# The subroutine &parse_input creates the globals @module_names,
|
||||
# %module_tree, and %line_number (described below).
|
||||
&parse_input;
|
||||
|
||||
foreach $module (@module_names)
|
||||
{
|
||||
&check_module($module);
|
||||
}
|
||||
|
||||
# end main
|
||||
######################################################################
|
||||
# begin subroutines
|
||||
|
||||
sub parse_input
|
||||
{
|
||||
# Globals created:
|
||||
# @module_names - List of module names in the order they are seen.
|
||||
# %module_tree - Hash table of lists. Keys are module names.
|
||||
# Values are lists of module names and diretories.
|
||||
# %line_number - Hash indexed by module name and module item.
|
||||
# Values are line numbers.
|
||||
|
||||
@module_names = ();
|
||||
%module_tree = ();
|
||||
%line_number = ();
|
||||
|
||||
while (<>)
|
||||
{
|
||||
next if /^\#/ || /^\s*$/;
|
||||
|
||||
# Check for a module definition
|
||||
if (/^([_a-zA-Z0-9]+)\s+(?:-l\s+)?-a\s*(.*)$/)
|
||||
{
|
||||
my ($module_name) = $1;
|
||||
my (@sub_items) = ();
|
||||
my ($line) = $2;
|
||||
|
||||
push @module_names, $module_name;
|
||||
|
||||
# Read line continuations (i.e. lines with '\' on the end).
|
||||
while ($line =~ /\\$/)
|
||||
{
|
||||
chomp $line;
|
||||
$line =~ s/^\s*(.*?)\s*\\$/$1/;
|
||||
if (length($line) > 0)
|
||||
{
|
||||
my (@line_items) = split(/\s+/, $line);
|
||||
push @sub_items, @line_items;
|
||||
&save_line_numbers($module_name, $., @line_items);
|
||||
}
|
||||
$line = <>;
|
||||
}
|
||||
chomp $line;
|
||||
$line =~ s/^\s*(.*?)\s*$/$1/;
|
||||
my (@line_items) = split(/\s+/, $line);
|
||||
push @sub_items, @line_items;
|
||||
&save_line_numbers($module_name, $., @line_items);
|
||||
|
||||
$module_tree{$module_name} = \@sub_items;
|
||||
}
|
||||
else
|
||||
{
|
||||
die "Unexpected input: line $.: $_\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub check_module
|
||||
{
|
||||
my ($module) = $_[0];
|
||||
my ($sub_module, $sub_dir, $prev_module);
|
||||
|
||||
# Globals created:
|
||||
# %have_checked - List of modules already checked.
|
||||
# %full_list - All the directories for a module.
|
||||
# Indexed by module and sub directory.
|
||||
# Values are the module that added the directory.
|
||||
|
||||
return if defined($have_checked{$module});
|
||||
|
||||
$full_list{$module} = {};
|
||||
|
||||
foreach $sub_module ( &get_modules($module) )
|
||||
{
|
||||
&check_module($sub_module);
|
||||
|
||||
# Add the directories of the sub_module to this module
|
||||
while (($sub_dir, $prev_module) = each %{$full_list{$sub_module}})
|
||||
{
|
||||
$full_list{$module}{$sub_dir} = $prev_module;
|
||||
}
|
||||
}
|
||||
foreach $sub_dir ( &get_directories($module) )
|
||||
{
|
||||
if (defined($full_list{$module}{$sub_dir}))
|
||||
{
|
||||
my ($previous_module) = $full_list{$module}{$sub_dir};
|
||||
|
||||
&warn_multiple($sub_dir, $module, $previous_module);
|
||||
}
|
||||
else
|
||||
{
|
||||
$full_list{$module}{$sub_dir} = $module;
|
||||
|
||||
# Check if parent or child of directory was previously added
|
||||
#
|
||||
&check_inclusion($sub_dir, $module);
|
||||
}
|
||||
}
|
||||
if (defined($opt_v))
|
||||
{
|
||||
print "$module\n";
|
||||
while (($sub_dir, $prev_module) = each %{$full_list{$module}})
|
||||
{
|
||||
print " $sub_dir, $prev_module\n";
|
||||
}
|
||||
}
|
||||
$have_checked{$module} = 1;
|
||||
}
|
||||
|
||||
sub get_modules
|
||||
{
|
||||
my ($module) = $_[0];
|
||||
my (@output) = ();
|
||||
my ($sub_item);
|
||||
|
||||
foreach $sub_item ( @{ $module_tree{$module} } )
|
||||
{
|
||||
push @output, $sub_item if defined($module_tree{$sub_item});
|
||||
}
|
||||
return @output;
|
||||
}
|
||||
|
||||
sub get_directories
|
||||
{
|
||||
my ($module) = $_[0];
|
||||
my (@output) = ();
|
||||
my ($sub_item);
|
||||
|
||||
foreach $sub_item ( @{ $module_tree{$module} } )
|
||||
{
|
||||
push @output, $sub_item unless defined($module_tree{$sub_item});
|
||||
}
|
||||
return @output;
|
||||
}
|
||||
|
||||
sub save_line_numbers
|
||||
{
|
||||
my ($module, $line_num, @sub_items) = @_;
|
||||
my ($sub_item);
|
||||
|
||||
foreach $sub_item (@sub_items)
|
||||
{
|
||||
if (defined($line_number{$module}{$sub_item}))
|
||||
{
|
||||
$line_number{$module}{$sub_item} =
|
||||
"$line_number{$module}{$sub_item}, $line_num";
|
||||
}
|
||||
else
|
||||
{
|
||||
$line_number{$module}{$sub_item} = $line_num;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub warn_multiple
|
||||
{
|
||||
my ($sub_item, $module, $previous_module) = @_;
|
||||
my ($line_txt) = '';
|
||||
|
||||
my (@lines) = split(', ', $line_number{$module}{$sub_item});
|
||||
|
||||
push(@lines, split(', ', $line_number{$previous_module}{$sub_item}))
|
||||
unless $previous_module eq $module;
|
||||
|
||||
$line_txt = "lines ".join(', ', sort { $a <=> $b } @lines);
|
||||
|
||||
warn "Error: Multiple listing: $line_txt: $sub_item.\n";
|
||||
}
|
||||
|
||||
sub check_inclusion
|
||||
{
|
||||
my ($sub_dir, $module) = @_;
|
||||
my ($dir);
|
||||
|
||||
foreach $dir (keys %{$full_list{$module}})
|
||||
{
|
||||
next if $dir eq $sub_dir;
|
||||
if (length($dir) < length($sub_dir))
|
||||
{
|
||||
my ($temp) = $sub_dir;
|
||||
$sub_dir = $dir;
|
||||
$dir = $temp;
|
||||
}
|
||||
if ($dir =~ /^$sub_dir\//)
|
||||
{
|
||||
warn "Warning: $dir (line "
|
||||
.$line_number{$full_list{$module}{$dir}}{$dir}
|
||||
.") pulled by $sub_dir (line "
|
||||
.$line_number{$full_list{$module}{$sub_dir}}{$sub_dir}
|
||||
.")\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,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
|
||||
@ -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;
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -1,24 +0,0 @@
|
||||
#!/bin/sh
|
||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin;export PATH
|
||||
|
||||
(
|
||||
URL="subdir=`dirname $1`&files=`basename $1`"
|
||||
|
||||
|
||||
|
||||
echo "Subject: $1"
|
||||
echo 'Content-Type: text/html; charset=us-ascii'
|
||||
echo 'Content-Transfer-Encoding: 7bit'
|
||||
echo 'Content-Disposition: inline'
|
||||
|
||||
TMP=/tmp/cvsmf.$$
|
||||
trap "rm -f $TMP" 0 1 2 15
|
||||
cat > $TMP
|
||||
BRANCH=`sed -n 's@^Revision/Branch: \(.*\)@\1@p' $TMP`
|
||||
if test -n "$BRANCH"; then
|
||||
URL="$URL&branch=$BRANCH"
|
||||
fi
|
||||
|
||||
echo '<A HREF="http://warp.netscape.com/webtools/bonsai/cvsview2.cgi?'$URL'&command=DIRECTORY">View differences</A><BR>\n'
|
||||
|
||||
) | mail $2
|
||||
@ -1,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;
|
||||
@ -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'
|
||||
512
CVSROOT/dolog.pl
@ -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;
|
||||
}
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
# The "editinfo" file is used to allow verification of logging
|
||||
# information. It works best when a template (as specified in the
|
||||
# rcsinfo file) is provided for the logging procedure. Given a
|
||||
# template with locations for, a bug-id number, a list of people who
|
||||
# reviewed the code before it can be checked in, and an external
|
||||
# process to catalog the differences that were code reviewed, the
|
||||
# following test can be applied to the code:
|
||||
#
|
||||
# Making sure that the entered bug-id number is correct.
|
||||
# Validating that the code that was reviewed is indeed the code being
|
||||
# checked in (using the bug-id number or a seperate review
|
||||
# number to identify this particular code set.).
|
||||
#
|
||||
# If any of the above test failed, then the commit would be aborted.
|
||||
#
|
||||
# Actions such as mailing a copy of the report to each reviewer are
|
||||
# better handled by an entry in the loginfo file.
|
||||
#
|
||||
# One thing that should be noted is the the ALL keyword is not
|
||||
# supported. There can be only one entry that matches a given
|
||||
# repository.
|
||||
@ -1,40 +0,0 @@
|
||||
# The "loginfo" file controls where "cvs commit" log information
|
||||
# is sent. The first entry on a line is a regular expression which must match
|
||||
# the directory that the change is being made to, relative to the
|
||||
# $CVSROOT. If a match is found, then the remainder of the line is a filter
|
||||
# program that should expect log information on its standard input.
|
||||
#
|
||||
# If the repository name does not match any of the regular expressions in this
|
||||
# file, the "DEFAULT" line is used, if it is specified.
|
||||
#
|
||||
# If the name ALL appears as a regular expression it is always used
|
||||
# in addition to the first matching regex or DEFAULT.
|
||||
#
|
||||
# You may specify a format string as part of the
|
||||
# filter. The string is composed of a `%' followed
|
||||
# by a single format character, or followed by a set of format
|
||||
# characters surrounded by `{' and `}' as separators. The format
|
||||
# characters are:
|
||||
#
|
||||
# s = file name
|
||||
# V = old version number (pre-checkin)
|
||||
# v = new version number (post-checkin)
|
||||
#
|
||||
ALL $CVSROOT/CVSROOT/dolog.pl -h 127.0.0.1 -r /cvsroot bonsai-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
|
||||
866
CVSROOT/modules
@ -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
|
||||
|
||||
@ -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
|
||||
336
CVSROOT/passwd
@ -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
|
||||
@ -1,13 +0,0 @@
|
||||
# The "rcsinfo" file is used to control templates with which the editor
|
||||
# is invoked on commit and import.
|
||||
#
|
||||
# The first entry on a line is a regular expression which is tested
|
||||
# against the directory that the change is being made to, relative to the
|
||||
# $CVSROOT. For the first match that is found, then the remainder of the
|
||||
# line is the name of the file that contains the template.
|
||||
#
|
||||
# If the repository name does not match any of the regular expressions in this
|
||||
# file, the "DEFAULT" line is used, if it is specified.
|
||||
#
|
||||
# If the name "ALL" appears as a regular expression it is always used
|
||||
# in addition to the first matching regex or "DEFAULT".
|
||||
@ -1,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;
|
||||
@ -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);
|
||||
@ -1,20 +0,0 @@
|
||||
# The "taginfo" file is used to control pre-tag checks.
|
||||
# The filter on the right is invoked with the following arguments:
|
||||
#
|
||||
# $1 -- tagname
|
||||
# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d
|
||||
# $3 -- repository
|
||||
# $4-> file revision [file revision ...]
|
||||
#
|
||||
# A non-zero exit of the filter program will cause the tag to be aborted.
|
||||
#
|
||||
# The first entry on a line is a regular expression which is tested
|
||||
# against the directory that the change is being committed to, relative
|
||||
# to the $CVSROOT. For the first match that is found, then the remainder
|
||||
# of the line is the name of the filter to run.
|
||||
#
|
||||
# If the repository name does not match any of the regular expressions in this
|
||||
# file, the "DEFAULT" line is used, if it is specified.
|
||||
#
|
||||
# If the name "ALL" appears as a regular expression it is always used
|
||||
# in addition to the first matching regex or "DEFAULT".
|
||||
@ -1,21 +0,0 @@
|
||||
# The "verifymsg" file is used to allow verification of logging
|
||||
# information. It works best when a template (as specified in the
|
||||
# rcsinfo file) is provided for the logging procedure. Given a
|
||||
# template with locations for, a bug-id number, a list of people who
|
||||
# reviewed the code before it can be checked in, and an external
|
||||
# process to catalog the differences that were code reviewed, the
|
||||
# following test can be applied to the code:
|
||||
#
|
||||
# Making sure that the entered bug-id number is correct.
|
||||
# Validating that the code that was reviewed is indeed the code being
|
||||
# checked in (using the bug-id number or a seperate review
|
||||
# number to identify this particular code set.).
|
||||
#
|
||||
# If any of the above test failed, then the commit would be aborted.
|
||||
#
|
||||
# Actions such as mailing a copy of the report to each reviewer are
|
||||
# better handled by an entry in the loginfo file.
|
||||
#
|
||||
# One thing that should be noted is the the ALL keyword is not
|
||||
# supported. There can be only one entry that matches a given
|
||||
# repository.
|
||||
@ -1,2 +0,0 @@
|
||||
|
||||
|
||||
@ -1,744 +0,0 @@
|
||||
/*
|
||||
* The nsinstall command for OS/2
|
||||
*
|
||||
* Our gmake makefiles use the nsinstall command to create the
|
||||
* object directories or installing headers and libs to ns/dist.
|
||||
* The shmsdos shell has nsinstall as a built-in command. However,
|
||||
* if we use another shell like MKS toolkit's sh, we need to have
|
||||
* the nsinstall command separately.
|
||||
*
|
||||
* This file was generated by modifying the Windows nsinstall.c.
|
||||
*
|
||||
* To build, say
|
||||
* icc nsinstall.c
|
||||
*/
|
||||
|
||||
#include <direct.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#define INCL_DOSFILEMGR
|
||||
#define INCL_DOSERRORS
|
||||
#define INCL_WINERRORS
|
||||
#include <os2.h>
|
||||
#pragma hdrstop
|
||||
|
||||
/*
|
||||
* sh_FileFcn --
|
||||
*
|
||||
* A function that operates on a file. The pathname is either
|
||||
* absolute or relative to the current directory, and contains
|
||||
* no wildcard characters such as * and ?. Additional arguments
|
||||
* can be passed to the function via the arg pointer.
|
||||
*/
|
||||
|
||||
typedef BOOL (*sh_FileFcn)(
|
||||
char *pathName,
|
||||
FILEFINDBUF3 *fileData,
|
||||
void *arg);
|
||||
|
||||
static int shellCp (char **pArgv);
|
||||
static int shellNsinstall (char **pArgv);
|
||||
static int shellMkdir (char **pArgv);
|
||||
static BOOL sh_EnumerateFiles(const char *pattern, const char *where,
|
||||
sh_FileFcn fileFcn, void *arg, int *nFiles);
|
||||
static const char *sh_GetLastErrorMessage(void);
|
||||
static BOOL sh_DoCopy(char *srcFileName, ULONG srcFileAttributes,
|
||||
char *dstFileName, ULONG dstFileAttributes,
|
||||
int force, int recursive);
|
||||
|
||||
static ULONG GetFileAttributes(PSZ pszFileName);
|
||||
static APIRET SetFileAttributes(PSZ pszFileName, ULONG ulFileAttributes);
|
||||
|
||||
/* changes all forward slashes in token to back slashes */
|
||||
void changeForwardSlashesTpBackSlashes ( char *arg )
|
||||
{
|
||||
if ( arg == NULL )
|
||||
return;
|
||||
|
||||
while ( *arg ) {
|
||||
if ( *arg == '/' )
|
||||
*arg = '\\';
|
||||
arg++;
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[ ])
|
||||
{
|
||||
return shellNsinstall ( argv + 1 );
|
||||
}
|
||||
|
||||
static int
|
||||
shellNsinstall (char **pArgv)
|
||||
{
|
||||
int retVal = 0; /* exit status */
|
||||
int dirOnly = 0; /* 1 if and only if -D is specified */
|
||||
char **pSrc;
|
||||
char **pDst;
|
||||
int len;
|
||||
|
||||
/*
|
||||
* Process the command-line options. We ignore the
|
||||
* options except for -D. Some options, such as -m,
|
||||
* are followed by an argument. We need to skip the
|
||||
* argument too.
|
||||
*/
|
||||
while ( *pArgv && **pArgv == '-' ) {
|
||||
char c = (*pArgv)[1]; /* The char after '-' */
|
||||
|
||||
if ( c == 'D' ) {
|
||||
dirOnly = 1;
|
||||
} else if ( c == 'm' ) {
|
||||
pArgv++; /* skip the next argument */
|
||||
}
|
||||
pArgv++;
|
||||
}
|
||||
|
||||
if ( !dirOnly ) {
|
||||
/* There are files to install. Get source files */
|
||||
if ( *pArgv ) {
|
||||
pSrc = pArgv++;
|
||||
} else {
|
||||
fprintf( stderr, "nsinstall: not enough arguments\n");
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
/* Get to last token to find destination directory */
|
||||
if ( *pArgv ) {
|
||||
pDst = pArgv++;
|
||||
if ( dirOnly && *pArgv ) {
|
||||
fprintf( stderr, "nsinstall: too many arguments with -D\n");
|
||||
return 3;
|
||||
}
|
||||
} else {
|
||||
fprintf( stderr, "nsinstall: not enough arguments\n");
|
||||
return 3;
|
||||
}
|
||||
while ( *pArgv )
|
||||
pDst = pArgv++;
|
||||
|
||||
/* remove trailing slash from desination directory */
|
||||
len = strlen( *pDst );
|
||||
if ( pDst[0][len-1] == '/' )
|
||||
pDst[0][len-1] = '\0';
|
||||
|
||||
retVal = shellMkdir ( pDst );
|
||||
if ( retVal )
|
||||
return retVal;
|
||||
if ( !dirOnly )
|
||||
retVal = shellCp ( pSrc );
|
||||
return retVal;
|
||||
}
|
||||
|
||||
static int
|
||||
shellMkdir (char **pArgv)
|
||||
{
|
||||
int retVal = 0; /* assume valid return */
|
||||
char *arg;
|
||||
char *pArg;
|
||||
char path[CCHMAXPATH];
|
||||
char tmpPath[CCHMAXPATH];
|
||||
char *pTmpPath = tmpPath;
|
||||
|
||||
/* All the options are simply ignored in this implementation */
|
||||
while ( *pArgv && **pArgv == '-' ) {
|
||||
if ( (*pArgv)[1] == 'm' ) {
|
||||
pArgv++; /* skip the next argument (mode) */
|
||||
}
|
||||
pArgv++;
|
||||
}
|
||||
|
||||
while ( *pArgv ) {
|
||||
arg = *pArgv;
|
||||
changeForwardSlashesTpBackSlashes ( arg );
|
||||
pArg = arg;
|
||||
pTmpPath = tmpPath;
|
||||
while ( 1 ) {
|
||||
/* create part of path */
|
||||
while ( *pArg ) {
|
||||
*pTmpPath++ = *pArg++;
|
||||
if ( *pArg == '\\' )
|
||||
break;
|
||||
}
|
||||
*pTmpPath = '\0';
|
||||
|
||||
/* check if directory alreay exists */
|
||||
_getcwd ( path, sizeof (path) );
|
||||
if (( _chdir ( tmpPath ) != -1 ) || ((tmpPath[1] == ':') && (tmpPath[2] == '\0'))) {
|
||||
_chdir ( path );
|
||||
} else {
|
||||
if ( _mkdir ( tmpPath ) == -1 ) {
|
||||
// while ( waitForDebug );
|
||||
printf ( "%s: ", tmpPath );
|
||||
perror ( "Could not create the directory" );
|
||||
retVal = 3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( *pArg == '\0' ) /* complete path? */
|
||||
break;
|
||||
/* loop for next directory */
|
||||
}
|
||||
|
||||
pArgv++;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
static const char *
|
||||
sh_GetLastErrorMessage()
|
||||
{
|
||||
static char buf[128];
|
||||
ERRORID error = WinGetLastError(0);
|
||||
|
||||
switch (ERRORIDSEV(error))
|
||||
{
|
||||
case SEVERITY_ERROR:
|
||||
{
|
||||
sprintf( buf, "error %d", ERRORIDERROR(error));
|
||||
break;
|
||||
}
|
||||
case SEVERITY_SEVERE:
|
||||
{
|
||||
sprintf( buf, "severe error %d", ERRORIDERROR(error));
|
||||
break;
|
||||
}
|
||||
case SEVERITY_UNRECOVERABLE:
|
||||
{
|
||||
sprintf( buf, "unrecoverable error %d", ERRORIDERROR(error));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
/*
|
||||
* struct sh_FileData --
|
||||
*
|
||||
* A pointer to the sh_FileData structure is passed into sh_RecordFileData,
|
||||
* which will fill in the fields.
|
||||
*/
|
||||
|
||||
struct sh_FileData {
|
||||
char pathName[CCHMAXPATH];
|
||||
ULONG attrFile;
|
||||
};
|
||||
|
||||
/*
|
||||
* sh_RecordFileData --
|
||||
*
|
||||
* Record the pathname and attributes of the file in
|
||||
* the sh_FileData structure pointed to by arg.
|
||||
*
|
||||
* Always return TRUE (successful completion).
|
||||
*
|
||||
* This function is intended to be passed into sh_EnumerateFiles
|
||||
* to see if a certain pattern expands to exactly one file/directory,
|
||||
* and if so, record its pathname and attributes.
|
||||
*/
|
||||
|
||||
static BOOL
|
||||
sh_RecordFileData(char *pathName, FILEFINDBUF3 *findData, void *arg)
|
||||
{
|
||||
struct sh_FileData *fData = (struct sh_FileData *) arg;
|
||||
|
||||
strcpy(fData->pathName, pathName);
|
||||
fData->attrFile = findData->attrFile;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
sh_DoCopy(char *srcFileName,
|
||||
ULONG srcFileAttributes,
|
||||
char *dstFileName,
|
||||
ULONG dstFileAttributes,
|
||||
int force,
|
||||
int recursive
|
||||
)
|
||||
{
|
||||
if (dstFileAttributes != 0xFFFFFFFF) {
|
||||
if ((dstFileAttributes & FILE_READONLY) && force) {
|
||||
dstFileAttributes &= ~FILE_READONLY;
|
||||
SetFileAttributes(dstFileName, dstFileAttributes);
|
||||
}
|
||||
}
|
||||
|
||||
if (srcFileAttributes & FILE_DIRECTORY) {
|
||||
fprintf(stderr, "nsinstall: %s is a directory\n",
|
||||
srcFileName);
|
||||
return FALSE;
|
||||
} else {
|
||||
if (DosCopy(srcFileName, dstFileName, DCPY_EXISTING) != NO_ERROR) {
|
||||
fprintf(stderr, "nsinstall: cannot copy %s to %s: %s\n",
|
||||
srcFileName, dstFileName, sh_GetLastErrorMessage());
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* struct sh_CpCmdArg --
|
||||
*
|
||||
* A pointer to the sh_CpCmdArg structure is passed into sh_CpFileCmd.
|
||||
* The sh_CpCmdArg contains information about the cp command, and
|
||||
* provide a buffer for constructing the destination file name.
|
||||
*/
|
||||
|
||||
struct sh_CpCmdArg {
|
||||
int force; /* -f option, ok to overwrite an existing
|
||||
* read-only destination file */
|
||||
int recursive; /* -r or -R option, recursively copy
|
||||
* directories. Note: this field is not used
|
||||
* by nsinstall and should always be 0. */
|
||||
char *dstFileName; /* a buffer for constructing the destination
|
||||
* file name */
|
||||
char *dstFileNameMarker; /* points to where in the dstFileName buffer
|
||||
* we should write the file component of the
|
||||
* destination file */
|
||||
};
|
||||
|
||||
/*
|
||||
* sh_CpFileCmd --
|
||||
*
|
||||
* Copy a file to the destination directory
|
||||
*
|
||||
* This function is intended to be passed into sh_EnumerateFiles to
|
||||
* copy all the files specified by the pattern to the destination
|
||||
* directory.
|
||||
*
|
||||
* Return TRUE if the file is successfully copied, and FALSE otherwise.
|
||||
*/
|
||||
|
||||
static BOOL
|
||||
sh_CpFileCmd(char *pathName, FILEFINDBUF3 *findData, void *cpArg)
|
||||
{
|
||||
BOOL retVal = TRUE;
|
||||
struct sh_CpCmdArg *arg = (struct sh_CpCmdArg *) cpArg;
|
||||
|
||||
strcpy(arg->dstFileNameMarker, findData->achName);
|
||||
return sh_DoCopy(pathName, findData->attrFile,
|
||||
arg->dstFileName, GetFileAttributes(arg->dstFileName),
|
||||
arg->force, arg->recursive);
|
||||
}
|
||||
|
||||
static int
|
||||
shellCp (char **pArgv)
|
||||
{
|
||||
int retVal = 0;
|
||||
char **pSrc;
|
||||
char **pDst;
|
||||
struct sh_CpCmdArg arg;
|
||||
struct sh_FileData dstData;
|
||||
int dstIsDir = 0;
|
||||
int n;
|
||||
|
||||
arg.force = 0;
|
||||
arg.recursive = 0;
|
||||
arg.dstFileName = dstData.pathName;
|
||||
arg.dstFileNameMarker = 0;
|
||||
|
||||
while (*pArgv && **pArgv == '-') {
|
||||
char *p = *pArgv;
|
||||
|
||||
while (*(++p)) {
|
||||
if (*p == 'f') {
|
||||
arg.force = 1;
|
||||
}
|
||||
}
|
||||
pArgv++;
|
||||
}
|
||||
|
||||
/* the first source file */
|
||||
if (*pArgv) {
|
||||
pSrc = pArgv++;
|
||||
} else {
|
||||
fprintf(stderr, "nsinstall: not enough arguments\n");
|
||||
return 3;
|
||||
}
|
||||
|
||||
/* get to the last token to find destination */
|
||||
if (*pArgv) {
|
||||
pDst = pArgv++;
|
||||
} else {
|
||||
fprintf(stderr, "nsinstall: not enough arguments\n");
|
||||
return 3;
|
||||
}
|
||||
while (*pArgv) {
|
||||
pDst = pArgv++;
|
||||
}
|
||||
|
||||
/*
|
||||
* The destination pattern must unambiguously expand to exactly
|
||||
* one file or directory.
|
||||
*/
|
||||
|
||||
changeForwardSlashesTpBackSlashes(*pDst);
|
||||
sh_EnumerateFiles(*pDst, *pDst, sh_RecordFileData, &dstData, &n);
|
||||
assert(n >= 0);
|
||||
if (n == 1) {
|
||||
/*
|
||||
* Is the destination a file or directory?
|
||||
*/
|
||||
|
||||
if (dstData.attrFile & FILE_DIRECTORY) {
|
||||
dstIsDir = 1;
|
||||
}
|
||||
} else if (n > 1) {
|
||||
fprintf(stderr, "nsinstall: %s: ambiguous destination file "
|
||||
"or directory\n", *pDst);
|
||||
return 3;
|
||||
} else {
|
||||
/*
|
||||
* n == 0, meaning that destination file or directory does
|
||||
* not exist. In this case the destination file directory
|
||||
* name must be fully specified.
|
||||
*/
|
||||
|
||||
char *p;
|
||||
|
||||
for (p = *pDst; *p; p++) {
|
||||
if (*p == '*' || *p == '?') {
|
||||
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
|
||||
*pDst);
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Do not include the trailing \, if any, unless it is a root
|
||||
* directory (\ or X:\).
|
||||
*/
|
||||
|
||||
if (p > *pDst && p[-1] == '\\' && p != *pDst + 1 && p[-2] != ':') {
|
||||
p[-1] = '\0';
|
||||
}
|
||||
strcpy(dstData.pathName, *pDst);
|
||||
dstData.attrFile = 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
/*
|
||||
* If there are two or more source files, the destination has
|
||||
* to be a directory.
|
||||
*/
|
||||
|
||||
if (pDst - pSrc > 1 && !dstIsDir) {
|
||||
fprintf(stderr, "nsinstall: cannot copy more than"
|
||||
" one file to the same destination file\n");
|
||||
return 3;
|
||||
}
|
||||
|
||||
if (dstIsDir) {
|
||||
arg.dstFileNameMarker = arg.dstFileName + strlen(arg.dstFileName);
|
||||
|
||||
/*
|
||||
* Now arg.dstFileNameMarker is pointing to the null byte at the
|
||||
* end of string. We want to make sure that there is a \ at the
|
||||
* end of string, and arg.dstFileNameMarker should point right
|
||||
* after that \.
|
||||
*/
|
||||
|
||||
if (arg.dstFileNameMarker[-1] != '\\') {
|
||||
*(arg.dstFileNameMarker++) = '\\';
|
||||
}
|
||||
}
|
||||
|
||||
if (!dstIsDir) {
|
||||
struct sh_FileData srcData;
|
||||
|
||||
assert(pDst - pSrc == 1);
|
||||
changeForwardSlashesTpBackSlashes(*pSrc);
|
||||
sh_EnumerateFiles(*pSrc, *pSrc, sh_RecordFileData, &srcData, &n);
|
||||
if (n == 0) {
|
||||
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
|
||||
*pSrc);
|
||||
retVal = 3;
|
||||
} else if (n > 1) {
|
||||
fprintf(stderr, "nsinstall: cannot copy more than one file or "
|
||||
"directory to the same destination\n");
|
||||
retVal = 3;
|
||||
} else {
|
||||
assert(n == 1);
|
||||
if (sh_DoCopy(srcData.pathName, srcData.attrFile,
|
||||
dstData.pathName, dstData.attrFile,
|
||||
arg.force, arg.recursive) == FALSE) {
|
||||
retVal = 3;
|
||||
}
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
for ( ; *pSrc != *pDst; pSrc++) {
|
||||
BOOL rv;
|
||||
|
||||
changeForwardSlashesTpBackSlashes(*pSrc);
|
||||
rv = sh_EnumerateFiles(*pSrc, *pSrc, sh_CpFileCmd, &arg, &n);
|
||||
if (rv == FALSE) {
|
||||
retVal = 3;
|
||||
} else {
|
||||
if (n == 0) {
|
||||
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
|
||||
*pSrc);
|
||||
retVal = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* sh_EnumerateFiles --
|
||||
*
|
||||
* Enumerate all the files in the specified pattern, which is a pathname
|
||||
* containing possibly wildcard characters such as * and ?. fileFcn
|
||||
* is called on each file, passing the expanded file name, a pointer
|
||||
* to the file's FILEFINDBUF3, and the arg pointer.
|
||||
*
|
||||
* It is assumed that there are no wildcard characters before the
|
||||
* character pointed to by 'where'.
|
||||
*
|
||||
* On return, *nFiles stores the number of files enumerated. *nFiles is
|
||||
* set to this number whether sh_EnumerateFiles or 'fileFcn' succeeds
|
||||
* or not.
|
||||
*
|
||||
* Return TRUE if the files are successfully enumerated and all
|
||||
* 'fileFcn' invocations succeeded. Return FALSE if something went
|
||||
* wrong.
|
||||
*/
|
||||
|
||||
static BOOL sh_EnumerateFiles(
|
||||
const char *pattern,
|
||||
const char *where,
|
||||
sh_FileFcn fileFcn,
|
||||
void *arg,
|
||||
int *nFiles
|
||||
)
|
||||
{
|
||||
FILEFINDBUF3 fileData = {0};
|
||||
HDIR hSearch;
|
||||
APIRET ulrc;
|
||||
ULONG ulFindCount = 1;
|
||||
const char *src;
|
||||
char *dst;
|
||||
char fileName[CCHMAXPATH];
|
||||
char *fileNameMarker = fileName;
|
||||
char *oldFileNameMarker;
|
||||
BOOL hasWildcard = FALSE;
|
||||
BOOL retVal = TRUE;
|
||||
BOOL patternEndsInDotStar = FALSE;
|
||||
BOOL patternEndsInDot = FALSE; /* a special case of
|
||||
* patternEndsInDotStar */
|
||||
int numDotsInPattern;
|
||||
int len;
|
||||
|
||||
/*
|
||||
* Windows expands patterns ending in ".", ".*", ".**", etc.
|
||||
* differently from the glob expansion on Unix. For example,
|
||||
* both "foo." and "foo.*" match "foo", and "*.*" matches
|
||||
* everything, including filenames with no dots. So we need
|
||||
* to throw away extra files returned by the FindNextFile()
|
||||
* function. We require that a matched filename have at least
|
||||
* the number of dots in the pattern.
|
||||
*/
|
||||
len = strlen(pattern);
|
||||
if (len >= 2) {
|
||||
/* Start from the end of pattern and go backward */
|
||||
const char *p = &pattern[len - 1];
|
||||
|
||||
/* We can have zero or more *'s */
|
||||
while (p >= pattern && *p == '*') {
|
||||
p--;
|
||||
}
|
||||
if (p >= pattern && *p == '.') {
|
||||
patternEndsInDotStar = TRUE;
|
||||
if (p == &pattern[len - 1]) {
|
||||
patternEndsInDot = TRUE;
|
||||
}
|
||||
p--;
|
||||
numDotsInPattern = 1;
|
||||
while (p >= pattern && *p != '\\') {
|
||||
if (*p == '.') {
|
||||
numDotsInPattern++;
|
||||
}
|
||||
p--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*nFiles = 0;
|
||||
|
||||
/*
|
||||
* Copy pattern to fileName, but only up to and not including
|
||||
* the first \ after the first wildcard letter.
|
||||
*
|
||||
* Make fileNameMarker point to one of the following:
|
||||
* - the start of fileName, if fileName does not contain any \.
|
||||
* - right after the \ before the first wildcard letter, if there is
|
||||
* a wildcard character.
|
||||
* - right after the last \, if there is no wildcard character.
|
||||
*/
|
||||
|
||||
dst = fileName;
|
||||
src = pattern;
|
||||
while (src < where) {
|
||||
if (*src == '\\') {
|
||||
oldFileNameMarker = fileNameMarker;
|
||||
fileNameMarker = dst + 1;
|
||||
}
|
||||
*(dst++) = *(src++);
|
||||
}
|
||||
|
||||
while (*src && *src != '*' && *src != '?') {
|
||||
if (*src == '\\') {
|
||||
oldFileNameMarker = fileNameMarker;
|
||||
fileNameMarker = dst + 1;
|
||||
}
|
||||
*(dst++) = *(src++);
|
||||
}
|
||||
|
||||
if (*src) {
|
||||
/*
|
||||
* Must have seen the first wildcard letter
|
||||
*/
|
||||
|
||||
hasWildcard = TRUE;
|
||||
while (*src && *src != '\\') {
|
||||
*(dst++) = *(src++);
|
||||
}
|
||||
}
|
||||
|
||||
/* Now src points to either null or \ */
|
||||
|
||||
assert(*src == '\0' || *src == '\\');
|
||||
assert(hasWildcard || *src == '\0');
|
||||
*dst = '\0';
|
||||
|
||||
/*
|
||||
* If the pattern does not contain any wildcard characters, then
|
||||
* we don't need to go the FindFirstFile route.
|
||||
*/
|
||||
|
||||
if (!hasWildcard) {
|
||||
/*
|
||||
* See if it is the root directory, \, or X:\.
|
||||
*/
|
||||
|
||||
assert(!strcmp(fileName, pattern));
|
||||
assert(strlen(fileName) >= 1);
|
||||
if (dst[-1] == '\\' && (dst == fileName + 1 || dst[-2] == ':')) {
|
||||
fileData.achName[0] = '\0';
|
||||
} else {
|
||||
/*
|
||||
* Do not include the trailing \, if any
|
||||
*/
|
||||
|
||||
if (dst[-1] == '\\') {
|
||||
assert(*fileNameMarker == '\0');
|
||||
dst[-1] = '\0';
|
||||
fileNameMarker = oldFileNameMarker;
|
||||
}
|
||||
strcpy(fileData.achName, fileNameMarker);
|
||||
}
|
||||
fileData.attrFile = GetFileAttributes(fileName);
|
||||
if (fileData.attrFile == 0xFFFFFFFF) {
|
||||
return TRUE;
|
||||
}
|
||||
*nFiles = 1;
|
||||
return (*fileFcn)(fileName, &fileData, arg);
|
||||
}
|
||||
|
||||
hSearch = HDIR_CREATE;
|
||||
ulrc = DosFindFirst(fileName, &hSearch, FILE_NORMAL, &fileData, sizeof(fileData),
|
||||
&ulFindCount, FIL_STANDARD);
|
||||
if (ulrc == ERROR_INVALID_HANDLE) {
|
||||
return retVal;
|
||||
}
|
||||
|
||||
do {
|
||||
if (!strcmp(fileData.achName, ".")
|
||||
|| !strcmp(fileData.achName, "..")) {
|
||||
/*
|
||||
* Skip over . and ..
|
||||
*/
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (patternEndsInDotStar) {
|
||||
int nDots = 0;
|
||||
char *p = fileData.achName;
|
||||
while (*p) {
|
||||
if (*p == '.') {
|
||||
nDots++;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
/* Now p points to the null byte at the end of file name */
|
||||
if (patternEndsInDot && (p == fileData.achName
|
||||
|| p[-1] != '.')) {
|
||||
/*
|
||||
* File name does not end in dot. Skip this file.
|
||||
* Note: windows file name probably cannot end in dot,
|
||||
* but we do this check anyway.
|
||||
*/
|
||||
continue;
|
||||
}
|
||||
if (nDots < numDotsInPattern) {
|
||||
/*
|
||||
* Not enough dots in file name. Must be an extra
|
||||
* file in matching .* pattern. Skip this file.
|
||||
*/
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
strcpy(fileNameMarker, fileData.achName);
|
||||
if (*src && *(src + 1)) {
|
||||
/*
|
||||
* More to go. Recurse.
|
||||
*/
|
||||
|
||||
int n;
|
||||
|
||||
assert(*src == '\\');
|
||||
where = fileName + strlen(fileName);
|
||||
strcat(fileName, src);
|
||||
sh_EnumerateFiles(fileName, where, fileFcn, arg, &n);
|
||||
*nFiles += n;
|
||||
} else {
|
||||
assert(strchr(fileName, '*') == NULL);
|
||||
assert(strchr(fileName, '?') == NULL);
|
||||
(*nFiles)++;
|
||||
if ((*fileFcn)(fileName, &fileData, arg) == FALSE) {
|
||||
retVal = FALSE;
|
||||
}
|
||||
}
|
||||
} while (DosFindNext(hSearch, &fileData, sizeof(fileData), &ulFindCount) == NO_ERROR);
|
||||
|
||||
DosFindClose(hSearch);
|
||||
return retVal;
|
||||
}
|
||||
|
||||
static ULONG GetFileAttributes(PSZ pszFileName)
|
||||
{
|
||||
FILESTATUS3 fsts3;
|
||||
APIRET rc;
|
||||
|
||||
rc = DosQueryPathInfo(pszFileName,
|
||||
FIL_STANDARD,
|
||||
&fsts3,
|
||||
sizeof(FILESTATUS3));
|
||||
if (rc != NO_ERROR) {
|
||||
return -1;
|
||||
} /* endif */
|
||||
return fsts3.attrFile;
|
||||
}
|
||||
|
||||
static APIRET SetFileAttributes(PSZ pszFileName, ULONG ulFileAttributes)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -1,107 +0,0 @@
|
||||
/* GLIB - Library of useful routines for C programming
|
||||
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
/* acconfig.h
|
||||
This file is in the public domain.
|
||||
|
||||
Descriptive text for the C preprocessor macros that
|
||||
the distributed Autoconf macros can define.
|
||||
No software package will use all of them; autoheader copies the ones
|
||||
your configure.in uses into your configuration header file templates.
|
||||
|
||||
The entries are in sort -df order: alphabetical, case insensitive,
|
||||
ignoring punctuation (such as underscores). Although this order
|
||||
can split up related entries, it makes it easier to check whether
|
||||
a given entry is in the file.
|
||||
|
||||
Leave the following blank line there!! Autoheader needs it. */
|
||||
|
||||
|
||||
/* Other stuff */
|
||||
|
||||
#undef ENABLE_MEM_CHECK
|
||||
#undef ENABLE_MEM_PROFILE
|
||||
|
||||
#undef G_COMPILED_WITH_DEBUGGING
|
||||
#undef G_THREADS_ENABLED
|
||||
|
||||
#undef GLIB_SIZEOF_GMUTEX
|
||||
#undef GLIB_BYTE_CONTENTS_GMUTEX
|
||||
|
||||
#undef HAVE_BROKEN_WCTYPE
|
||||
#undef HAVE_DOPRNT
|
||||
#undef HAVE_FLOAT_H
|
||||
#undef HAVE_GETPWUID_R
|
||||
#undef HAVE_GETPWUID_R_POSIX
|
||||
#undef HAVE_LIMITS_H
|
||||
#undef HAVE_LONG_DOUBLE
|
||||
#undef HAVE_POLL
|
||||
#undef HAVE_PTHREAD_GETSPECIFIC_POSIX
|
||||
#undef HAVE_PWD_H
|
||||
#undef HAVE_SYS_PARAM_H
|
||||
#undef HAVE_SYS_POLL_H
|
||||
#undef HAVE_SYS_SELECT_H
|
||||
#undef HAVE_SYS_TIME_H
|
||||
#undef HAVE_SYS_TIMES_H
|
||||
#undef HAVE_STRERROR
|
||||
#undef HAVE_STRSIGNAL
|
||||
#undef HAVE_UNISTD_H
|
||||
#undef HAVE_VALUES_H
|
||||
#undef HAVE_WCHAR_H
|
||||
#undef HAVE_WCTYPE_H
|
||||
|
||||
#undef NO_FD_SET
|
||||
#undef NO_SYS_ERRLIST
|
||||
#undef NO_SYS_SIGLIST
|
||||
#undef NO_SYS_SIGLIST_DECL
|
||||
|
||||
#undef WITH_SYMBOL_UNDERSCORE
|
||||
|
||||
#undef SIZEOF_CHAR
|
||||
#undef SIZEOF_SHORT
|
||||
#undef SIZEOF_LONG
|
||||
#undef SIZEOF_INT
|
||||
#undef SIZEOF_VOID_P
|
||||
|
||||
#undef G_VA_COPY
|
||||
#undef G_VA_COPY_AS_ARRAY
|
||||
#undef G_HAVE___INLINE
|
||||
#undef G_HAVE___INLINE__
|
||||
#undef G_HAVE_INLINE
|
||||
|
||||
#undef GLIB_MAJOR_VERSION
|
||||
#undef GLIB_MINOR_VERSION
|
||||
#undef GLIB_MICRO_VERSION
|
||||
#undef GLIB_INTERFACE_AGE
|
||||
#undef GLIB_BINARY_AGE
|
||||
|
||||
#undef WIN32
|
||||
#undef NATIVE_WIN32
|
||||
|
||||
#undef G_THREAD_SOURCE
|
||||
|
||||
/* #undef PACKAGE */
|
||||
/* #undef VERSION */
|
||||
|
||||
|
||||
|
||||
|
||||
/* Leave that blank line there!! Autoheader needs it.
|
||||
If you're adding to this file, keep in mind:
|
||||
The entries are in sort -df order: alphabetical, case insensitive,
|
||||
ignoring punctuation (such as underscores). */
|
||||
@ -1,138 +0,0 @@
|
||||
/* config.h.win32. Handcrafted for Microsoft C */
|
||||
|
||||
/* Define to empty if the keyword does not work. */
|
||||
/* #undef const */
|
||||
|
||||
/* Define if you don't have vprintf but do have _doprnt. */
|
||||
/* #undef HAVE_DOPRNT */
|
||||
|
||||
/* Define if you have <unistd.h>. */
|
||||
/* #undef HAVE_UNISTD_H */
|
||||
|
||||
/* Define if you have the vprintf function. */
|
||||
#define HAVE_VPRINTF 1
|
||||
|
||||
/* Define if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Define if your processor stores words with the most significant
|
||||
byte first (like Motorola and SPARC, unlike Intel and VAX). */
|
||||
/* #undef WORDS_BIGENDIAN */
|
||||
|
||||
/* #undef ENABLE_MEM_CHECK */
|
||||
/* #undef ENABLE_MEM_PROFILE */
|
||||
|
||||
#define G_COMPILED_WITH_DEBUGGING "minimum"
|
||||
|
||||
/* #undef HAVE_BROKEN_WCTYPE */
|
||||
/* #undef HAVE_DOPRNT */
|
||||
#define HAVE_FLOAT_H 1
|
||||
#define HAVE_LIMITS_H 1
|
||||
/* #undef HAVE_LOCALTIME_R */
|
||||
/* #undef HAVE_LONG_DOUBLE */
|
||||
/* #undef HAVE_POLL */
|
||||
/* #undef HAVE_PWD_H */
|
||||
/* #undef HAVE_SYS_PARAM_H */
|
||||
/* #undef HAVE_SYS_POLL_H */
|
||||
/* #undef HAVE_SYS_SELECT_H */
|
||||
/* #undef HAVE_SYS_TIME_H */
|
||||
/* #undef HAVE_SYS_TIMES_H */
|
||||
#define HAVE_STRERROR 1
|
||||
/* #undef HAVE_STRSIGNAL */
|
||||
/* #undef HAVE_UNISTD_H */
|
||||
/* #undef HAVE_VSNPRINTF */
|
||||
/* #undef HAVE_VALUES_H */
|
||||
#define HAVE_VPRINTF 1
|
||||
#define HAVE_WCHAR_H 1
|
||||
#define HAVE_WCTYPE_H 1
|
||||
|
||||
/* #undef NO_FD_SET */
|
||||
/* #undef NO_SYS_ERRLIST */
|
||||
#define NO_SYS_SIGLIST 1
|
||||
|
||||
/* #undef G_VA_COPY */
|
||||
/* #undef G_VA_COPY_AS_ARRAY */
|
||||
#define G_HAVE___INLINE 1
|
||||
|
||||
#define GLIB_MAJOR_VERSION 1
|
||||
#define GLIB_MINOR_VERSION 2
|
||||
#define GLIB_MICRO_VERSION 0
|
||||
#define GLIB_INTERFACE_AGE 0
|
||||
#define GLIB_BINARY_AGE 0
|
||||
|
||||
#define G_THREAD_SOURCE "gthread-posix.c"
|
||||
#define G_THREADS_IMPL_POSIX
|
||||
#define HAVE_PTHREAD_GETSPECIFIC_POSIX 1
|
||||
|
||||
/* The number of bytes in a char. */
|
||||
#define SIZEOF_CHAR 1
|
||||
|
||||
/* The number of bytes in a int. */
|
||||
#define SIZEOF_INT 4
|
||||
|
||||
/* The number of bytes in a long. */
|
||||
#define SIZEOF_LONG 4
|
||||
|
||||
/* The number of bytes in a long long. */
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
|
||||
/* The number of bytes in a short. */
|
||||
#define SIZEOF_SHORT 2
|
||||
|
||||
/* The number of bytes in a void *. */
|
||||
#define SIZEOF_VOID_P 4
|
||||
|
||||
/* Define if you have the atexit function. */
|
||||
#define HAVE_ATEXIT 1
|
||||
|
||||
/* Define if you have the lstat function. */
|
||||
/* #undef HAVE_LSTAT */
|
||||
|
||||
/* Define if you have the memmove function. */
|
||||
#define HAVE_MEMMOVE 1
|
||||
|
||||
/* Define if you have the on_exit function. */
|
||||
/* #undef HAVE_ON_EXIT */
|
||||
|
||||
/* Define if you have the strcasecmp function. */
|
||||
/* #undef HAVE_STRCASECMP ^*/
|
||||
|
||||
/* Define if you have the strerror function. */
|
||||
#define HAVE_STRERROR 1
|
||||
|
||||
/* Define if you have the strsignal function. */
|
||||
/* #undef HAVE_STRSIGNAL */
|
||||
|
||||
/* Define if you have the vsnprintf function. */
|
||||
/* #undef HAVE_VSNPRINTF */
|
||||
|
||||
/* Define if you have the <float.h> header file. */
|
||||
#define HAVE_FLOAT_H 1
|
||||
|
||||
/* Define if you have the <limits.h> header file. */
|
||||
#define HAVE_LIMITS_H 1
|
||||
|
||||
/* Define if you have the <pwd.h> header file. */
|
||||
/* #undef HAVE_PWD_H */
|
||||
|
||||
/* Define if you have the <sys/param.h> header file. */
|
||||
/* #undef HAVE_SYS_PARAM_H */
|
||||
|
||||
/* Define if you have the <sys/select.h> header file. */
|
||||
/* #undef HAVE_SYS_SELECT_H */
|
||||
|
||||
/* Define if you have the <sys/time.h> header file. */
|
||||
/* #undef HAVE_SYS_TIME_H */
|
||||
|
||||
/* Define if you have the <sys/times.h> header file. */
|
||||
/* #undef HAVE_SYS_TIMES_H */
|
||||
|
||||
/* Define if you have the <unistd.h> header file. */
|
||||
/* #undef HAVE_UNISTD_H */
|
||||
|
||||
/* Define if you have the <values.h> header file. */
|
||||
/* #undef HAVE_VALUES_H */
|
||||
|
||||
/* Define if you have the w library (-lw). */
|
||||
/* #undef HAVE_LIBW */
|
||||
|
||||
@ -1,173 +0,0 @@
|
||||
/* glibconfig.h.win32 */
|
||||
/* Handcrafted for Microsoft C. */
|
||||
|
||||
#ifndef GLIBCONFIG_H
|
||||
#define GLIBCONFIG_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#ifdef _MSC_VER
|
||||
/* Make MSVC more pedantic, this is a recommended pragma list
|
||||
* from _Win32_Programming_ by Rector and Newcomer.
|
||||
*/
|
||||
#pragma warning(error:4002)
|
||||
#pragma warning(error:4003)
|
||||
#pragma warning(1:4010)
|
||||
#pragma warning(error:4013)
|
||||
#pragma warning(1:4016)
|
||||
#pragma warning(error:4020)
|
||||
#pragma warning(error:4021)
|
||||
#pragma warning(error:4027)
|
||||
#pragma warning(error:4029)
|
||||
#pragma warning(error:4033)
|
||||
#pragma warning(error:4035)
|
||||
#pragma warning(error:4045)
|
||||
#pragma warning(error:4047)
|
||||
#pragma warning(error:4049)
|
||||
#pragma warning(error:4053)
|
||||
#pragma warning(error:4071)
|
||||
#pragma warning(disable:4101)
|
||||
#pragma warning(error:4150)
|
||||
|
||||
#pragma warning(disable:4244) /* No possible loss of data warnings */
|
||||
#pragma warning(disable:4305) /* No truncation from int to char warnings */
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
#include <limits.h>
|
||||
#include <float.h>
|
||||
|
||||
#define G_MINFLOAT FLT_MIN
|
||||
#define G_MAXFLOAT FLT_MAX
|
||||
#define G_MINDOUBLE DBL_MIN
|
||||
#define G_MAXDOUBLE DBL_MAX
|
||||
#define G_MINSHORT SHRT_MIN
|
||||
#define G_MAXSHORT SHRT_MAX
|
||||
#define G_MININT INT_MIN
|
||||
#define G_MAXINT INT_MAX
|
||||
#define G_MINLONG LONG_MIN
|
||||
#define G_MAXLONG LONG_MAX
|
||||
|
||||
typedef signed char gint8;
|
||||
typedef unsigned char guint8;
|
||||
typedef signed short gint16;
|
||||
typedef unsigned short guint16;
|
||||
typedef signed int gint32;
|
||||
typedef unsigned int guint32;
|
||||
|
||||
#define G_HAVE_GINT64 1
|
||||
|
||||
typedef __int64 gint64;
|
||||
typedef unsigned __int64 guint64;
|
||||
|
||||
#define G_GINT64_CONSTANT(val) (val##i64)
|
||||
|
||||
#define GPOINTER_TO_INT(p) ((gint)(p))
|
||||
#define GPOINTER_TO_UINT(p) ((guint)(p))
|
||||
|
||||
#define GINT_TO_POINTER(i) ((gpointer)(i))
|
||||
#define GUINT_TO_POINTER(u) ((gpointer)(u))
|
||||
|
||||
#define g_ATEXIT(proc) (atexit (proc))
|
||||
|
||||
#define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END
|
||||
|
||||
#define G_HAVE_ALLOCA 1
|
||||
#define alloca _alloca
|
||||
|
||||
#define GLIB_MAJOR_VERSION 1
|
||||
#define GLIB_MINOR_VERSION 2
|
||||
#define GLIB_MICRO_VERSION 0
|
||||
|
||||
#ifdef __cplusplus
|
||||
#define G_HAVE_INLINE 1
|
||||
#else /* !__cplusplus */
|
||||
#define G_HAVE___INLINE 1
|
||||
#endif
|
||||
|
||||
#define G_THREADS_ENABLED
|
||||
/*
|
||||
* The following program can be used to determine the magic values below:
|
||||
* #include <stdio.h>
|
||||
* #include <pthread.h>
|
||||
* main(int argc, char **argv)
|
||||
* {
|
||||
* int i;
|
||||
* pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
|
||||
* printf ("sizeof (pthread_mutex_t) = %d\n", sizeof (pthread_mutex_t));
|
||||
* printf ("PTHREAD_MUTEX_INITIALIZER = ");
|
||||
* for (i = 0; i < sizeof (pthread_mutex_t); i++)
|
||||
* printf ("%u, ", (unsigned) ((char *) &m)[i]);
|
||||
* printf ("\n");
|
||||
* exit(0);
|
||||
* }
|
||||
*/
|
||||
|
||||
typedef struct _GStaticMutex GStaticMutex;
|
||||
struct _GStaticMutex
|
||||
{
|
||||
struct _GMutex *runtime_mutex;
|
||||
union {
|
||||
/* The size of the pad array should be sizeof (pthread_mutext_t) */
|
||||
/* This value corresponds to the 1999-01-24 version of pthreads-win32 */
|
||||
char pad[36];
|
||||
double dummy_double;
|
||||
void *dummy_pointer;
|
||||
long dummy_long;
|
||||
} aligned_pad_u;
|
||||
};
|
||||
/* This should be NULL followed by the bytes in PTHREAD_MUTEX_INITIALIZER */
|
||||
#define G_STATIC_MUTEX_INIT { NULL, { { 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } }
|
||||
#define g_static_mutex_get_mutex(mutex) \
|
||||
(g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \
|
||||
g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
|
||||
|
||||
#define G_BYTE_ORDER G_LITTLE_ENDIAN
|
||||
|
||||
#define GINT16_TO_LE(val) ((gint16) (val))
|
||||
#define GUINT16_TO_LE(val) ((guint16) (val))
|
||||
#define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val))
|
||||
#define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val))
|
||||
|
||||
#define GINT32_TO_LE(val) ((gint32) (val))
|
||||
#define GUINT32_TO_LE(val) ((guint32) (val))
|
||||
#define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val))
|
||||
#define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val))
|
||||
|
||||
#define GINT64_TO_LE(val) ((gint64) (val))
|
||||
#define GUINT64_TO_LE(val) ((guint64) (val))
|
||||
#define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val))
|
||||
#define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val))
|
||||
|
||||
#define GLONG_TO_LE(val) ((glong) GINT32_TO_LE (val))
|
||||
#define GULONG_TO_LE(val) ((gulong) GUINT32_TO_LE (val))
|
||||
#define GLONG_TO_BE(val) ((glong) GINT32_TO_BE (val))
|
||||
#define GULONG_TO_BE(val) ((gulong) GUINT32_TO_BE (val))
|
||||
|
||||
#define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val))
|
||||
#define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val))
|
||||
#define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val))
|
||||
#define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val))
|
||||
|
||||
#define GLIB_SYSDEF_POLLIN = 1
|
||||
#define GLIB_SYSDEF_POLLOUT = 4
|
||||
#define GLIB_SYSDEF_POLLPRI = 2
|
||||
#define GLIB_SYSDEF_POLLERR = 8
|
||||
#define GLIB_SYSDEF_POLLHUP = 16
|
||||
#define GLIB_SYSDEF_POLLNVAL = 32
|
||||
|
||||
#define G_HAVE_WCHAR_H 1
|
||||
#define G_HAVE_WCTYPE_H 1
|
||||
|
||||
/* Define if this is Win32, possibly using the Cygwin emulation layer. */
|
||||
#define WIN32 1
|
||||
|
||||
/* Define if this is Win32 without Cygwin. */
|
||||
#define NATIVE_WIN32 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* GLIBCONFIG_H */
|
||||
@ -1,827 +0,0 @@
|
||||
/**************************************************************************
|
||||
|
||||
IDL.h (IDL parse tree and namespace components)
|
||||
|
||||
Include wide character support before this, if necessary.
|
||||
|
||||
Copyright (C) 1998, 1999 Andrew T. Veliath
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
$Id: IDL.h,v 1.1 1999-04-08 20:04:26 mccabe%netscape.com Exp $
|
||||
|
||||
***************************************************************************/
|
||||
#ifndef __IDL_H
|
||||
#define __IDL_H
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* version */
|
||||
#define LIBIDL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
|
||||
#define LIBIDL_MAJOR_VERSION 0
|
||||
#define LIBIDL_MINOR_VERSION 6
|
||||
#define LIBIDL_MICRO_VERSION 3
|
||||
#define LIBIDL_VERSION_CODE LIBIDL_VERSION(0,6,3)
|
||||
|
||||
/* miscellaneous constants */
|
||||
#define IDL_SUCCESS 0
|
||||
#define IDL_ERROR 1
|
||||
#define IDL_WARNING1 2
|
||||
#define IDL_WARNING2 3
|
||||
#define IDL_WARNING3 4
|
||||
#define IDL_WARNINGMAX IDL_WARNING3
|
||||
|
||||
/* general parse flags */
|
||||
#define IDLF_VERBOSE (1UL << 0)
|
||||
#define IDLF_NO_EVAL_CONST (1UL << 1)
|
||||
#define IDLF_COMBINE_REOPENED_MODULES (1UL << 2)
|
||||
#define IDLF_PREFIX_FILENAME (1UL << 3)
|
||||
#define IDLF_IGNORE_FORWARDS (1UL << 4)
|
||||
#define IDLF_PEDANTIC (1UL << 5)
|
||||
|
||||
/* syntax extension parse flags */
|
||||
#define IDLF_TYPECODES (1UL << 16)
|
||||
#define IDLF_XPIDL (1UL << 17)
|
||||
|
||||
/* declaration specification flags */
|
||||
#define IDLF_DECLSPEC_EXIST (1UL << 0)
|
||||
#define IDLF_DECLSPEC_INHIBIT (1UL << 1)
|
||||
|
||||
/* output flags */
|
||||
#define IDLF_OUTPUT_NO_NEWLINES (1UL << 0)
|
||||
#define IDLF_OUTPUT_NO_QUALIFY_IDENTS (1UL << 1)
|
||||
#define IDLF_OUTPUT_PROPERTIES (1UL << 2)
|
||||
#define IDLF_OUTPUT_CODEFRAGS (1UL << 3)
|
||||
|
||||
#ifdef _WIN32
|
||||
# define IDL_EXPORT __declspec (dllexport)
|
||||
# define IDL_IMPORT __declspec (dllimport)
|
||||
#else
|
||||
# define IDL_EXPORT /* empty */
|
||||
# define IDL_IMPORT extern
|
||||
#endif
|
||||
|
||||
/* type casting checks */
|
||||
#define IDL_check_cast_enable(boolean) do { \
|
||||
IDL_IMPORT int __IDL_check_type_casts; \
|
||||
__IDL_check_type_casts = (boolean); \
|
||||
} while (0)
|
||||
#define IDL_CHECK_CAST(tree, thetype, name) \
|
||||
(IDL_check_type_cast(tree, thetype, \
|
||||
__FILE__, __LINE__, \
|
||||
G_GNUC_PRETTY_FUNCTION)->u.name)
|
||||
|
||||
#ifdef G_HAVE_GINT64
|
||||
# if G_MAXLONG > 0xffffffffUL
|
||||
# define IDL_LL "l"
|
||||
# else
|
||||
# define IDL_LL "ll"
|
||||
# endif
|
||||
typedef gint64 IDL_longlong_t;
|
||||
typedef guint64 IDL_ulonglong_t;
|
||||
#else
|
||||
# define IDL_LL "l"
|
||||
typedef long IDL_longlong_t;
|
||||
typedef unsigned long IDL_ulonglong_t;
|
||||
# warning 64-bit integer type not available, using 32-bit instead
|
||||
#endif /* G_HAVE_GINT64 */
|
||||
|
||||
typedef unsigned int IDL_declspec_t;
|
||||
typedef struct _IDL_tree_node IDL_tree_node;
|
||||
typedef struct _IDL_tree_node * IDL_tree;
|
||||
|
||||
struct _IDL_LIST {
|
||||
IDL_tree data;
|
||||
IDL_tree prev;
|
||||
IDL_tree next;
|
||||
IDL_tree _tail; /* Internal use, may not be valid */
|
||||
};
|
||||
|
||||
#define IDL_LIST(a) IDL_CHECK_CAST(a, IDLN_LIST, idl_list)
|
||||
extern IDL_tree IDL_list_new (IDL_tree data);
|
||||
extern IDL_tree IDL_list_concat (IDL_tree orig,
|
||||
IDL_tree append);
|
||||
extern IDL_tree IDL_list_remove (IDL_tree list,
|
||||
IDL_tree p);
|
||||
extern int IDL_list_length (IDL_tree list);
|
||||
extern IDL_tree IDL_list_nth (IDL_tree list,
|
||||
int n);
|
||||
|
||||
struct _IDL_GENTREE {
|
||||
IDL_tree data;
|
||||
GHashTable *siblings;
|
||||
GHashTable *children;
|
||||
GHashFunc hash_func;
|
||||
GCompareFunc key_compare_func;
|
||||
IDL_tree _import; /* Internal use, do not recurse */
|
||||
char *_cur_prefix; /* Internal use */
|
||||
};
|
||||
#define IDL_GENTREE(a) IDL_CHECK_CAST(a, IDLN_GENTREE, idl_gentree)
|
||||
extern IDL_tree IDL_gentree_new (GHashFunc hash_func,
|
||||
GCompareFunc key_compare_func,
|
||||
IDL_tree data);
|
||||
extern IDL_tree IDL_gentree_new_sibling (IDL_tree from,
|
||||
IDL_tree data);
|
||||
extern IDL_tree IDL_gentree_chain_sibling (IDL_tree from,
|
||||
IDL_tree data);
|
||||
extern IDL_tree IDL_gentree_chain_child (IDL_tree from,
|
||||
IDL_tree data);
|
||||
|
||||
struct _IDL_INTEGER {
|
||||
IDL_longlong_t value;
|
||||
};
|
||||
#define IDL_INTEGER(a) IDL_CHECK_CAST(a, IDLN_INTEGER, idl_integer)
|
||||
extern IDL_tree IDL_integer_new (IDL_longlong_t value);
|
||||
|
||||
struct _IDL_STRING {
|
||||
char *value;
|
||||
};
|
||||
#define IDL_STRING(a) IDL_CHECK_CAST(a, IDLN_STRING, idl_string)
|
||||
extern IDL_tree IDL_string_new (char *value);
|
||||
|
||||
struct _IDL_WIDE_STRING {
|
||||
wchar_t *value;
|
||||
};
|
||||
#define IDL_WIDE_STRING(a) IDL_CHECK_CAST(a, IDLN_WIDE_STRING, idl_wide_string)
|
||||
extern IDL_tree IDL_wide_string_new (wchar_t *value);
|
||||
|
||||
struct _IDL_CHAR {
|
||||
char *value;
|
||||
};
|
||||
#define IDL_CHAR(a) IDL_CHECK_CAST(a, IDLN_CHAR, idl_char)
|
||||
extern IDL_tree IDL_char_new (char *value);
|
||||
|
||||
struct _IDL_WIDE_CHAR {
|
||||
wchar_t *value;
|
||||
};
|
||||
#define IDL_WIDE_CHAR(a) IDL_CHECK_CAST(a, IDLN_WIDE_CHAR, idl_wide_char)
|
||||
extern IDL_tree IDL_wide_char_new (wchar_t *value);
|
||||
|
||||
struct _IDL_FIXED {
|
||||
char *value;
|
||||
};
|
||||
#define IDL_FIXED(a) IDL_CHECK_CAST(a, IDLN_FIXED, idl_fixed)
|
||||
extern IDL_tree IDL_fixed_new (char *value);
|
||||
|
||||
struct _IDL_FLOAT {
|
||||
double value;
|
||||
};
|
||||
#define IDL_FLOAT(a) IDL_CHECK_CAST(a, IDLN_FLOAT, idl_float)
|
||||
extern IDL_tree IDL_float_new (double value);
|
||||
|
||||
struct _IDL_BOOLEAN {
|
||||
unsigned value;
|
||||
};
|
||||
#define IDL_BOOLEAN(a) IDL_CHECK_CAST(a, IDLN_BOOLEAN, idl_boolean)
|
||||
extern IDL_tree IDL_boolean_new (unsigned value);
|
||||
|
||||
struct _IDL_IDENT {
|
||||
char *str;
|
||||
char *repo_id;
|
||||
GSList *comments;
|
||||
IDL_tree _ns_ref; /* Internal use, do not recurse */
|
||||
unsigned _flags; /* Internal use */
|
||||
#define IDLF_IDENT_CASE_MISMATCH_HIT (1UL << 0)
|
||||
};
|
||||
#define IDL_IDENT(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident)
|
||||
#define IDL_IDENT_TO_NS(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident._ns_ref)
|
||||
#define IDL_IDENT_REPO_ID(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident.repo_id)
|
||||
extern IDL_tree IDL_ident_new (char *str);
|
||||
extern void IDL_queue_new_ident_comment (const char *str);
|
||||
|
||||
enum IDL_float_type {
|
||||
IDL_FLOAT_TYPE_FLOAT,
|
||||
IDL_FLOAT_TYPE_DOUBLE,
|
||||
IDL_FLOAT_TYPE_LONGDOUBLE
|
||||
};
|
||||
|
||||
struct _IDL_TYPE_FLOAT {
|
||||
enum IDL_float_type f_type;
|
||||
};
|
||||
#define IDL_TYPE_FLOAT(a) IDL_CHECK_CAST(a, IDLN_TYPE_FLOAT, idl_type_float)
|
||||
extern IDL_tree IDL_type_float_new (enum IDL_float_type f_type);
|
||||
|
||||
struct _IDL_TYPE_FIXED {
|
||||
IDL_tree positive_int_const;
|
||||
IDL_tree integer_lit;
|
||||
};
|
||||
#define IDL_TYPE_FIXED(a) IDL_CHECK_CAST(a, IDLN_TYPE_FIXED, idl_type_fixed)
|
||||
extern IDL_tree IDL_type_fixed_new (IDL_tree positive_int_const,
|
||||
IDL_tree integer_lit);
|
||||
|
||||
enum IDL_integer_type {
|
||||
IDL_INTEGER_TYPE_SHORT,
|
||||
IDL_INTEGER_TYPE_LONG,
|
||||
IDL_INTEGER_TYPE_LONGLONG
|
||||
};
|
||||
|
||||
struct _IDL_TYPE_INTEGER {
|
||||
unsigned f_signed : 1;
|
||||
enum IDL_integer_type f_type;
|
||||
};
|
||||
#define IDL_TYPE_INTEGER(a) IDL_CHECK_CAST(a, IDLN_TYPE_INTEGER, idl_type_integer)
|
||||
extern IDL_tree IDL_type_integer_new (unsigned f_signed,
|
||||
enum IDL_integer_type f_type);
|
||||
|
||||
extern IDL_tree IDL_type_char_new (void);
|
||||
extern IDL_tree IDL_type_wide_char_new (void);
|
||||
extern IDL_tree IDL_type_boolean_new (void);
|
||||
extern IDL_tree IDL_type_octet_new (void);
|
||||
extern IDL_tree IDL_type_any_new (void);
|
||||
extern IDL_tree IDL_type_object_new (void);
|
||||
extern IDL_tree IDL_type_typecode_new (void);
|
||||
|
||||
struct _IDL_TYPE_STRING {
|
||||
IDL_tree positive_int_const;
|
||||
};
|
||||
#define IDL_TYPE_STRING(a) IDL_CHECK_CAST(a, IDLN_TYPE_STRING, idl_type_string)
|
||||
extern IDL_tree IDL_type_string_new (IDL_tree positive_int_const);
|
||||
|
||||
struct _IDL_TYPE_WIDE_STRING {
|
||||
IDL_tree positive_int_const;
|
||||
};
|
||||
#define IDL_TYPE_WIDE_STRING(a) IDL_CHECK_CAST(a, IDLN_TYPE_WIDE_STRING, idl_type_wide_string)
|
||||
extern IDL_tree IDL_type_wide_string_new (IDL_tree positive_int_const);
|
||||
|
||||
struct _IDL_TYPE_ENUM {
|
||||
IDL_tree ident;
|
||||
IDL_tree enumerator_list;
|
||||
};
|
||||
#define IDL_TYPE_ENUM(a) IDL_CHECK_CAST(a, IDLN_TYPE_ENUM, idl_type_enum)
|
||||
extern IDL_tree IDL_type_enum_new (IDL_tree ident,
|
||||
IDL_tree enumerator_list);
|
||||
|
||||
struct _IDL_TYPE_ARRAY {
|
||||
IDL_tree ident;
|
||||
IDL_tree size_list;
|
||||
};
|
||||
#define IDL_TYPE_ARRAY(a) IDL_CHECK_CAST(a, IDLN_TYPE_ARRAY, idl_type_array)
|
||||
extern IDL_tree IDL_type_array_new (IDL_tree ident,
|
||||
IDL_tree size_list);
|
||||
|
||||
struct _IDL_TYPE_SEQUENCE {
|
||||
IDL_tree simple_type_spec;
|
||||
IDL_tree positive_int_const;
|
||||
};
|
||||
#define IDL_TYPE_SEQUENCE(a) IDL_CHECK_CAST(a, IDLN_TYPE_SEQUENCE, idl_type_sequence)
|
||||
extern IDL_tree IDL_type_sequence_new (IDL_tree simple_type_spec,
|
||||
IDL_tree positive_int_const);
|
||||
|
||||
struct _IDL_TYPE_STRUCT {
|
||||
IDL_tree ident;
|
||||
IDL_tree member_list;
|
||||
};
|
||||
#define IDL_TYPE_STRUCT(a) IDL_CHECK_CAST(a, IDLN_TYPE_STRUCT, idl_type_struct)
|
||||
extern IDL_tree IDL_type_struct_new (IDL_tree ident,
|
||||
IDL_tree member_list);
|
||||
|
||||
struct _IDL_TYPE_UNION {
|
||||
IDL_tree ident;
|
||||
IDL_tree switch_type_spec;
|
||||
IDL_tree switch_body;
|
||||
};
|
||||
#define IDL_TYPE_UNION(a) IDL_CHECK_CAST(a, IDLN_TYPE_UNION, idl_type_union)
|
||||
extern IDL_tree IDL_type_union_new (IDL_tree ident,
|
||||
IDL_tree switch_type_spec,
|
||||
IDL_tree switch_body);
|
||||
struct _IDL_MEMBER {
|
||||
IDL_tree type_spec;
|
||||
IDL_tree dcls;
|
||||
};
|
||||
#define IDL_MEMBER(a) IDL_CHECK_CAST(a, IDLN_MEMBER, idl_member)
|
||||
extern IDL_tree IDL_member_new (IDL_tree type_spec,
|
||||
IDL_tree dcls);
|
||||
|
||||
struct _IDL_NATIVE {
|
||||
IDL_tree ident;
|
||||
char *user_type; /* XPIDL extension */
|
||||
};
|
||||
#define IDL_NATIVE(a) IDL_CHECK_CAST(a, IDLN_NATIVE, idl_native)
|
||||
extern IDL_tree IDL_native_new (IDL_tree ident);
|
||||
|
||||
|
||||
struct _IDL_TYPE_DCL {
|
||||
IDL_tree type_spec;
|
||||
IDL_tree dcls;
|
||||
};
|
||||
#define IDL_TYPE_DCL(a) IDL_CHECK_CAST(a, IDLN_TYPE_DCL, idl_type_dcl)
|
||||
extern IDL_tree IDL_type_dcl_new (IDL_tree type_spec,
|
||||
IDL_tree dcls);
|
||||
|
||||
struct _IDL_CONST_DCL {
|
||||
IDL_tree const_type;
|
||||
IDL_tree ident;
|
||||
IDL_tree const_exp;
|
||||
};
|
||||
#define IDL_CONST_DCL(a) IDL_CHECK_CAST(a, IDLN_CONST_DCL, idl_const_dcl)
|
||||
extern IDL_tree IDL_const_dcl_new (IDL_tree const_type,
|
||||
IDL_tree ident,
|
||||
IDL_tree const_exp);
|
||||
|
||||
struct _IDL_EXCEPT_DCL {
|
||||
IDL_tree ident;
|
||||
IDL_tree members;
|
||||
};
|
||||
#define IDL_EXCEPT_DCL(a) IDL_CHECK_CAST(a, IDLN_EXCEPT_DCL, idl_except_dcl)
|
||||
extern IDL_tree IDL_except_dcl_new (IDL_tree ident,
|
||||
IDL_tree members);
|
||||
|
||||
struct _IDL_ATTR_DCL {
|
||||
unsigned f_readonly : 1;
|
||||
IDL_tree param_type_spec;
|
||||
IDL_tree simple_declarations;
|
||||
};
|
||||
#define IDL_ATTR_DCL(a) IDL_CHECK_CAST(a, IDLN_ATTR_DCL, idl_attr_dcl)
|
||||
extern IDL_tree IDL_attr_dcl_new (unsigned f_readonly,
|
||||
IDL_tree param_type_spec,
|
||||
IDL_tree simple_declarations);
|
||||
|
||||
struct _IDL_OP_DCL {
|
||||
unsigned f_noscript : 1;
|
||||
unsigned f_oneway : 1;
|
||||
/* XPIDL extension (varags) */
|
||||
unsigned f_varargs : 1;
|
||||
IDL_tree op_type_spec;
|
||||
IDL_tree ident;
|
||||
IDL_tree parameter_dcls;
|
||||
IDL_tree raises_expr;
|
||||
IDL_tree context_expr;
|
||||
};
|
||||
#define IDL_OP_DCL(a) IDL_CHECK_CAST(a, IDLN_OP_DCL, idl_op_dcl)
|
||||
extern IDL_tree IDL_op_dcl_new (unsigned f_oneway,
|
||||
IDL_tree op_type_spec,
|
||||
IDL_tree ident,
|
||||
IDL_tree parameter_dcls,
|
||||
IDL_tree raises_expr,
|
||||
IDL_tree context_expr);
|
||||
|
||||
enum IDL_param_attr {
|
||||
IDL_PARAM_IN,
|
||||
IDL_PARAM_OUT,
|
||||
IDL_PARAM_INOUT
|
||||
};
|
||||
|
||||
struct _IDL_PARAM_DCL {
|
||||
enum IDL_param_attr attr;
|
||||
IDL_tree param_type_spec;
|
||||
IDL_tree simple_declarator;
|
||||
};
|
||||
#define IDL_PARAM_DCL(a) IDL_CHECK_CAST(a, IDLN_PARAM_DCL, idl_param_dcl)
|
||||
extern IDL_tree IDL_param_dcl_new (enum IDL_param_attr attr,
|
||||
IDL_tree param_type_spec,
|
||||
IDL_tree simple_declarator);
|
||||
|
||||
struct _IDL_CASE_STMT {
|
||||
IDL_tree labels;
|
||||
IDL_tree element_spec;
|
||||
};
|
||||
#define IDL_CASE_STMT(a) IDL_CHECK_CAST(a, IDLN_CASE_STMT, idl_case_stmt)
|
||||
extern IDL_tree IDL_case_stmt_new (IDL_tree labels,
|
||||
IDL_tree element_spec);
|
||||
|
||||
struct _IDL_INTERFACE {
|
||||
IDL_tree ident;
|
||||
IDL_tree inheritance_spec;
|
||||
IDL_tree body;
|
||||
};
|
||||
#define IDL_INTERFACE(a) IDL_CHECK_CAST(a, IDLN_INTERFACE, idl_interface)
|
||||
extern IDL_tree IDL_interface_new (IDL_tree ident,
|
||||
IDL_tree inheritance_spec,
|
||||
IDL_tree body);
|
||||
|
||||
struct _IDL_FORWARD_DCL {
|
||||
IDL_tree ident;
|
||||
};
|
||||
#define IDL_FORWARD_DCL(a) IDL_CHECK_CAST(a, IDLN_FORWARD_DCL, idl_forward_dcl)
|
||||
extern IDL_tree IDL_forward_dcl_new (IDL_tree ident);
|
||||
|
||||
struct _IDL_MODULE {
|
||||
IDL_tree ident;
|
||||
IDL_tree definition_list;
|
||||
};
|
||||
#define IDL_MODULE(a) IDL_CHECK_CAST(a, IDLN_MODULE, idl_module)
|
||||
extern IDL_tree IDL_module_new (IDL_tree ident,
|
||||
IDL_tree definition_list);
|
||||
|
||||
enum IDL_binop {
|
||||
IDL_BINOP_OR,
|
||||
IDL_BINOP_XOR,
|
||||
IDL_BINOP_AND,
|
||||
IDL_BINOP_SHR,
|
||||
IDL_BINOP_SHL,
|
||||
IDL_BINOP_ADD,
|
||||
IDL_BINOP_SUB,
|
||||
IDL_BINOP_MULT,
|
||||
IDL_BINOP_DIV,
|
||||
IDL_BINOP_MOD
|
||||
};
|
||||
|
||||
struct _IDL_BINOP {
|
||||
enum IDL_binop op;
|
||||
IDL_tree left, right;
|
||||
};
|
||||
#define IDL_BINOP(a) IDL_CHECK_CAST(a, IDLN_BINOP, idl_binop)
|
||||
extern IDL_tree IDL_binop_new (enum IDL_binop op,
|
||||
IDL_tree left,
|
||||
IDL_tree right);
|
||||
|
||||
enum IDL_unaryop {
|
||||
IDL_UNARYOP_PLUS,
|
||||
IDL_UNARYOP_MINUS,
|
||||
IDL_UNARYOP_COMPLEMENT
|
||||
};
|
||||
|
||||
struct _IDL_UNARYOP {
|
||||
enum IDL_unaryop op;
|
||||
IDL_tree operand;
|
||||
};
|
||||
#define IDL_UNARYOP(a) IDL_CHECK_CAST(a, IDLN_UNARYOP, idl_unaryop)
|
||||
extern IDL_tree IDL_unaryop_new (enum IDL_unaryop op,
|
||||
IDL_tree operand);
|
||||
|
||||
/* XPIDL code fragments extension. */
|
||||
struct _IDL_CODEFRAG {
|
||||
char *desc;
|
||||
GSList *lines;
|
||||
};
|
||||
#define IDL_CODEFRAG(a) IDL_CHECK_CAST(a, IDLN_CODEFRAG, idl_codefrag)
|
||||
extern IDL_tree IDL_codefrag_new (char *desc,
|
||||
GSList *lines);
|
||||
|
||||
/*
|
||||
* IDL_tree_type - Enumerations of node types
|
||||
*
|
||||
* Note this enumerator list is subject to change in the future. A program should not need
|
||||
* more than a recompilation to adjust for a change in this list, so instead of using a
|
||||
* statically initialized jumptable, allocate an array of size IDLN_LAST and assign the
|
||||
* elements manually.
|
||||
*/
|
||||
typedef enum {
|
||||
IDLN_NONE,
|
||||
IDLN_ANY,
|
||||
|
||||
IDLN_LIST,
|
||||
IDLN_GENTREE,
|
||||
IDLN_INTEGER,
|
||||
IDLN_STRING,
|
||||
IDLN_WIDE_STRING,
|
||||
IDLN_CHAR,
|
||||
IDLN_WIDE_CHAR,
|
||||
IDLN_FIXED,
|
||||
IDLN_FLOAT,
|
||||
IDLN_BOOLEAN,
|
||||
IDLN_IDENT,
|
||||
IDLN_TYPE_DCL,
|
||||
IDLN_CONST_DCL,
|
||||
IDLN_EXCEPT_DCL,
|
||||
IDLN_ATTR_DCL,
|
||||
IDLN_OP_DCL,
|
||||
IDLN_PARAM_DCL,
|
||||
IDLN_FORWARD_DCL,
|
||||
IDLN_TYPE_INTEGER,
|
||||
IDLN_TYPE_FLOAT,
|
||||
IDLN_TYPE_FIXED,
|
||||
IDLN_TYPE_CHAR,
|
||||
IDLN_TYPE_WIDE_CHAR,
|
||||
IDLN_TYPE_STRING,
|
||||
IDLN_TYPE_WIDE_STRING,
|
||||
IDLN_TYPE_BOOLEAN,
|
||||
IDLN_TYPE_OCTET,
|
||||
IDLN_TYPE_ANY,
|
||||
IDLN_TYPE_OBJECT,
|
||||
IDLN_TYPE_TYPECODE,
|
||||
IDLN_TYPE_ENUM,
|
||||
IDLN_TYPE_SEQUENCE,
|
||||
IDLN_TYPE_ARRAY,
|
||||
IDLN_TYPE_STRUCT,
|
||||
IDLN_TYPE_UNION,
|
||||
IDLN_MEMBER,
|
||||
IDLN_NATIVE,
|
||||
IDLN_CASE_STMT,
|
||||
IDLN_INTERFACE,
|
||||
IDLN_MODULE,
|
||||
IDLN_BINOP,
|
||||
IDLN_UNARYOP,
|
||||
IDLN_CODEFRAG,
|
||||
|
||||
IDLN_LAST
|
||||
} IDL_tree_type;
|
||||
IDL_IMPORT const char * IDL_tree_type_names[];
|
||||
|
||||
struct _IDL_tree_node {
|
||||
IDL_tree_type _type;
|
||||
IDL_tree up; /* Do not recurse */
|
||||
IDL_declspec_t declspec;
|
||||
/* properties is an XPIDL extension. It is a hash table of
|
||||
* case-insensitive string keys to string values. */
|
||||
GHashTable *properties;
|
||||
int refs;
|
||||
char *_file; /* Internal use */
|
||||
int _line; /* Internal use */
|
||||
union {
|
||||
struct _IDL_LIST idl_list;
|
||||
struct _IDL_GENTREE idl_gentree;
|
||||
struct _IDL_INTEGER idl_integer;
|
||||
struct _IDL_STRING idl_string;
|
||||
struct _IDL_WIDE_STRING idl_wide_string;
|
||||
struct _IDL_CHAR idl_char;
|
||||
struct _IDL_WIDE_CHAR idl_wide_char;
|
||||
struct _IDL_FIXED idl_fixed;
|
||||
struct _IDL_FLOAT idl_float;
|
||||
struct _IDL_BOOLEAN idl_boolean;
|
||||
struct _IDL_IDENT idl_ident;
|
||||
struct _IDL_TYPE_DCL idl_type_dcl;
|
||||
struct _IDL_CONST_DCL idl_const_dcl;
|
||||
struct _IDL_EXCEPT_DCL idl_except_dcl;
|
||||
struct _IDL_ATTR_DCL idl_attr_dcl;
|
||||
struct _IDL_OP_DCL idl_op_dcl;
|
||||
struct _IDL_PARAM_DCL idl_param_dcl;
|
||||
struct _IDL_FORWARD_DCL idl_forward_dcl;
|
||||
struct _IDL_TYPE_FLOAT idl_type_float;
|
||||
struct _IDL_TYPE_FIXED idl_type_fixed;
|
||||
struct _IDL_TYPE_INTEGER idl_type_integer;
|
||||
struct _IDL_TYPE_ENUM idl_type_enum;
|
||||
struct _IDL_TYPE_STRING idl_type_string;
|
||||
struct _IDL_TYPE_WIDE_STRING idl_type_wide_string;
|
||||
struct _IDL_TYPE_SEQUENCE idl_type_sequence;
|
||||
struct _IDL_TYPE_ARRAY idl_type_array;
|
||||
struct _IDL_TYPE_STRUCT idl_type_struct;
|
||||
struct _IDL_TYPE_UNION idl_type_union;
|
||||
struct _IDL_MEMBER idl_member;
|
||||
struct _IDL_NATIVE idl_native;
|
||||
struct _IDL_CASE_STMT idl_case_stmt;
|
||||
struct _IDL_INTERFACE idl_interface;
|
||||
struct _IDL_MODULE idl_module;
|
||||
struct _IDL_BINOP idl_binop;
|
||||
struct _IDL_UNARYOP idl_unaryop;
|
||||
struct _IDL_CODEFRAG idl_codefrag;
|
||||
} u;
|
||||
};
|
||||
#define IDL_NODE_TYPE(a) ((a)->_type)
|
||||
#define IDL_NODE_TYPE_NAME(a) ((a)?IDL_tree_type_names[IDL_NODE_TYPE(a)]:"NULL")
|
||||
#define IDL_NODE_UP(a) ((a)->up)
|
||||
#define IDL_NODE_PROPERTIES(a) ((a)->properties)
|
||||
#define IDL_NODE_DECLSPEC(a) ((a)->declspec)
|
||||
#define IDL_NODE_REFS(a) ((a)->refs)
|
||||
#define IDL_NODE_IS_LITERAL(a) \
|
||||
(IDL_NODE_TYPE(a) == IDLN_INTEGER || \
|
||||
IDL_NODE_TYPE(a) == IDLN_STRING || \
|
||||
IDL_NODE_TYPE(a) == IDLN_WIDE_STRING || \
|
||||
IDL_NODE_TYPE(a) == IDLN_CHAR || \
|
||||
IDL_NODE_TYPE(a) == IDLN_WIDE_CHAR || \
|
||||
IDL_NODE_TYPE(a) == IDLN_FIXED || \
|
||||
IDL_NODE_TYPE(a) == IDLN_FLOAT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_BOOLEAN)
|
||||
#define IDL_NODE_IS_TYPE(a) \
|
||||
(IDL_NODE_TYPE(a) == IDLN_TYPE_INTEGER || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_STRING || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_WIDE_STRING || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_CHAR || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_WIDE_CHAR || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_FIXED || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_FLOAT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_BOOLEAN || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_OCTET || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_ANY || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_OBJECT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_TYPECODE || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_ENUM || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_ARRAY || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_SEQUENCE || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_STRUCT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_UNION)
|
||||
#define IDL_NODE_IS_SCOPED(a) \
|
||||
(IDL_NODE_TYPE(a) == IDLN_IDENT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_INTERFACE || \
|
||||
IDL_NODE_TYPE(a) == IDLN_MODULE || \
|
||||
IDL_NODE_TYPE(a) == IDLN_EXCEPT_DCL || \
|
||||
IDL_NODE_TYPE(a) == IDLN_OP_DCL || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_ENUM || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_STRUCT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_UNION)
|
||||
|
||||
typedef struct _IDL_ns * IDL_ns;
|
||||
|
||||
struct _IDL_ns {
|
||||
IDL_tree global;
|
||||
IDL_tree file;
|
||||
IDL_tree current;
|
||||
GHashTable *inhibits;
|
||||
GHashTable *filename_hash;
|
||||
};
|
||||
#define IDL_NS(a) (*(a))
|
||||
|
||||
typedef enum {
|
||||
IDL_INPUT_REASON_INIT,
|
||||
IDL_INPUT_REASON_FILL,
|
||||
IDL_INPUT_REASON_ABORT,
|
||||
IDL_INPUT_REASON_FINISH
|
||||
} IDL_input_reason;
|
||||
|
||||
union IDL_input_data {
|
||||
struct {
|
||||
const char *filename;
|
||||
} init;
|
||||
struct {
|
||||
char *buffer;
|
||||
size_t max_size;
|
||||
} fill;
|
||||
};
|
||||
|
||||
typedef int (*IDL_input_callback) (IDL_input_reason reason,
|
||||
union IDL_input_data *data,
|
||||
gpointer user_data);
|
||||
|
||||
typedef int (*IDL_msg_callback) (int level,
|
||||
int num,
|
||||
int line,
|
||||
const char *filename,
|
||||
const char *message);
|
||||
|
||||
typedef struct _IDL_tree_func_state IDL_tree_func_state;
|
||||
typedef struct _IDL_tree_func_data IDL_tree_func_data;
|
||||
|
||||
/* Traversal state data. Recursive walks chain states. */
|
||||
struct _IDL_tree_func_state {
|
||||
IDL_tree_func_state *up;
|
||||
IDL_tree start;
|
||||
IDL_tree_func_data *bottom;
|
||||
};
|
||||
|
||||
/* This holds a list of the up hierarchy traversed, beginning from traversal. This is
|
||||
* useful since nodes referenced after initial definition will have a different traversal
|
||||
* path than the actual up path. */
|
||||
struct _IDL_tree_func_data {
|
||||
IDL_tree_func_state *state;
|
||||
IDL_tree_func_data *up;
|
||||
IDL_tree tree;
|
||||
};
|
||||
|
||||
typedef gboolean (*IDL_tree_func) (IDL_tree_func_data *tnfd,
|
||||
gpointer user_data);
|
||||
|
||||
extern IDL_tree IDL_check_type_cast (const IDL_tree var,
|
||||
IDL_tree_type type,
|
||||
const char *file,
|
||||
int line,
|
||||
const char *function);
|
||||
|
||||
extern const char * IDL_get_libver_string (void);
|
||||
|
||||
extern const char * IDL_get_IDLver_string (void);
|
||||
|
||||
extern int IDL_parse_filename (const char *filename,
|
||||
const char *cpp_args,
|
||||
IDL_msg_callback msg_cb,
|
||||
IDL_tree *tree, IDL_ns *ns,
|
||||
unsigned long parse_flags,
|
||||
int max_msg_level);
|
||||
|
||||
extern int IDL_parse_filename_with_input (const char *filename,
|
||||
IDL_input_callback input_cb,
|
||||
gpointer input_cb_user_data,
|
||||
IDL_msg_callback msg_cb,
|
||||
IDL_tree *tree, IDL_ns *ns,
|
||||
unsigned long parse_flags,
|
||||
int max_msg_level);
|
||||
|
||||
extern int IDL_ns_prefix (IDL_ns ns,
|
||||
const char *s);
|
||||
|
||||
extern void IDL_ns_ID (IDL_ns ns,
|
||||
const char *s);
|
||||
|
||||
extern void IDL_ns_version (IDL_ns ns,
|
||||
const char *s);
|
||||
|
||||
extern int IDL_inhibit_get (void);
|
||||
|
||||
extern void IDL_inhibit_push (void);
|
||||
|
||||
extern void IDL_inhibit_pop (void);
|
||||
|
||||
extern void IDL_file_set (const char *filename,
|
||||
int line);
|
||||
|
||||
extern void IDL_file_get (const char **filename,
|
||||
int *line);
|
||||
|
||||
extern IDL_tree IDL_get_parent_node (IDL_tree p,
|
||||
IDL_tree_type type,
|
||||
int *scope_levels);
|
||||
|
||||
extern IDL_tree IDL_tree_get_scope (IDL_tree p);
|
||||
|
||||
extern int IDL_tree_get_node_info (IDL_tree tree,
|
||||
char **who,
|
||||
char **what);
|
||||
|
||||
extern void IDL_tree_error (IDL_tree p,
|
||||
const char *fmt,
|
||||
...);
|
||||
|
||||
extern void IDL_tree_warning (IDL_tree p,
|
||||
int level,
|
||||
const char *fmt,
|
||||
...);
|
||||
|
||||
extern const char * IDL_tree_property_get (IDL_tree tree,
|
||||
const char *key);
|
||||
|
||||
extern void IDL_tree_property_set (IDL_tree tree,
|
||||
const char *key,
|
||||
const char *value);
|
||||
|
||||
extern gboolean IDL_tree_property_remove (IDL_tree tree,
|
||||
const char *key);
|
||||
|
||||
extern void IDL_tree_properties_copy (IDL_tree from_tree,
|
||||
IDL_tree to_tree);
|
||||
|
||||
extern void IDL_tree_walk (IDL_tree p,
|
||||
IDL_tree_func_data *current,
|
||||
IDL_tree_func pre_tree_func,
|
||||
IDL_tree_func post_tree_func,
|
||||
gpointer user_data);
|
||||
|
||||
extern void IDL_tree_walk_in_order (IDL_tree p,
|
||||
IDL_tree_func tree_func,
|
||||
gpointer user_data);
|
||||
|
||||
extern void IDL_tree_free (IDL_tree root);
|
||||
|
||||
extern void IDL_tree_to_IDL (IDL_tree p,
|
||||
IDL_ns ns,
|
||||
FILE *output,
|
||||
unsigned long output_flags);
|
||||
|
||||
extern char * IDL_do_escapes (const char *s);
|
||||
|
||||
extern IDL_tree IDL_resolve_const_exp (IDL_tree p,
|
||||
IDL_tree_type type);
|
||||
|
||||
extern IDL_ns IDL_ns_new (void);
|
||||
|
||||
extern void IDL_ns_free (IDL_ns ns);
|
||||
|
||||
extern IDL_tree IDL_ns_resolve_this_scope_ident (IDL_ns ns,
|
||||
IDL_tree scope,
|
||||
IDL_tree ident);
|
||||
|
||||
extern IDL_tree IDL_ns_resolve_ident (IDL_ns ns,
|
||||
IDL_tree ident);
|
||||
|
||||
extern IDL_tree IDL_ns_lookup_this_scope (IDL_ns ns,
|
||||
IDL_tree scope,
|
||||
IDL_tree ident,
|
||||
gboolean *conflict);
|
||||
|
||||
extern IDL_tree IDL_ns_lookup_cur_scope (IDL_ns ns,
|
||||
IDL_tree ident,
|
||||
gboolean *conflict);
|
||||
|
||||
extern IDL_tree IDL_ns_place_new (IDL_ns ns,
|
||||
IDL_tree ident);
|
||||
|
||||
extern void IDL_ns_push_scope (IDL_ns ns,
|
||||
IDL_tree ident);
|
||||
|
||||
extern void IDL_ns_pop_scope (IDL_ns ns);
|
||||
|
||||
extern IDL_tree IDL_ns_qualified_ident_new (IDL_tree nsid);
|
||||
|
||||
extern char * IDL_ns_ident_to_qstring (IDL_tree ns_ident,
|
||||
const char *join,
|
||||
int scope_levels);
|
||||
|
||||
extern int IDL_ns_scope_levels_from_here (IDL_ns ns,
|
||||
IDL_tree ident,
|
||||
IDL_tree parent);
|
||||
|
||||
extern char * IDL_ns_ident_make_repo_id (IDL_ns ns,
|
||||
IDL_tree p,
|
||||
const char *p_prefix,
|
||||
int *major,
|
||||
int *minor);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __IDL_H */
|
||||
@ -1,64 +0,0 @@
|
||||
@echo off
|
||||
if "%MOZ_TOOLS%" == "" goto no_moz_tools
|
||||
|
||||
echo.
|
||||
echo MOZ_TOOLS is set to %MOZ_TOOLS%
|
||||
echo It should NOT be set to anything in your cygwin
|
||||
echo directory, such as c:\cygwin or c:\cygwin\bin
|
||||
echo where C:\cygwin represents where you installed cygwin.
|
||||
echo In that case files will be overwritten.
|
||||
echo.
|
||||
echo It should be set to some empty directory.
|
||||
echo. e.g.
|
||||
echo. mkdir c:\moz_tools
|
||||
echo. set MOZ_TOOLS=c:\moz_tools
|
||||
echo.
|
||||
echo Please verify this.
|
||||
echo.
|
||||
|
||||
pause
|
||||
|
||||
echo copying exes and dlls to %MOZ_TOOLS%\bin
|
||||
if not exist %MOZ_TOOLS%\bin\NUL mkdir %MOZ_TOOLS%\bin >NUL
|
||||
copy bin\x86\* %MOZ_TOOLS%\bin >NUL
|
||||
|
||||
echo copying include files to %MOZ_TOOLS%\include
|
||||
if not exist %MOZ_TOOLS%\include\NUL mkdir %MOZ_TOOLS%\include >NUL
|
||||
copy include\* %MOZ_TOOLS%\include >NUL
|
||||
|
||||
echo copying include files to %MOZ_TOOLS%\include\libIDL
|
||||
if not exist %MOZ_TOOLS%\include\libIDL\NUL mkdir %MOZ_TOOLS%\include\libIDL >NUL
|
||||
copy include\libIDL\* %MOZ_TOOLS%\include\libIDL >NUL
|
||||
|
||||
echo copying lib files to %MOZ_TOOLS%\lib
|
||||
if not exist %MOZ_TOOLS%\lib\NUL mkdir %MOZ_TOOLS%\lib >NUL
|
||||
copy lib\* %MOZ_TOOLS%\lib >NUL
|
||||
|
||||
echo.
|
||||
echo done copying
|
||||
echo.
|
||||
echo make sure that MOZ_TOOLS\bin is on your path
|
||||
echo.
|
||||
goto done
|
||||
|
||||
:no_moz_tools
|
||||
echo.
|
||||
echo. ERROR!
|
||||
echo.
|
||||
echo You need to set MOZ_TOOLS in your environment.
|
||||
echo MOZ_TOOLS should be the name of a directory that
|
||||
echo you create to hold these tools.
|
||||
echo.
|
||||
echo. e.g.
|
||||
echo. mkdir c:\moz_tools
|
||||
echo. set MOZ_TOOLS=c:\moz_tools
|
||||
echo.
|
||||
echo MOZ_TOOLS should be set permanently so that it is
|
||||
echo available to the build system whenever mozilla is building.
|
||||
echo.
|
||||
echo.
|
||||
echo Please set MOZ_TOOLS and run install.bat again
|
||||
echo.
|
||||
|
||||
:done
|
||||
pause
|
||||
@ -1,12 +0,0 @@
|
||||
Sources for glib are available from gnome.org via cvs. See cvs
|
||||
checkout instructions at http://www.gnome.org - or use
|
||||
|
||||
export CVSROOT=:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome
|
||||
cvs login (no password)
|
||||
cvs -z3 checkout glib
|
||||
|
||||
or grap a package of the sources we're currently using from
|
||||
ftp://ftp.mozilla.org/pub/mozilla/libraries/source/
|
||||
|
||||
These sources correspond to the GLIB_1_2_0 tag on the gnome cvs
|
||||
server.
|
||||
@ -1,14 +0,0 @@
|
||||
Sources for libIDL are available from gnome.org via cvs. See cvs
|
||||
checkout instructions at http://www.gnome.org - or use
|
||||
|
||||
export CVSROOT=:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome
|
||||
cvs login (no password)
|
||||
cvs -z3 checkout ORBit
|
||||
|
||||
(libIDL files are in ORBit/libIDL)
|
||||
|
||||
or grap a package of the sources we're currently using from
|
||||
ftp://ftp.mozilla.org/pub/mozilla/libraries/source/
|
||||
|
||||
These sources correspond to the LIBIDL_V0_6_3 tag on the gnome cvs
|
||||
server.
|
||||
@ -1,7 +0,0 @@
|
||||
This directory contains the source files for nsinstall.exe,
|
||||
which is used to build the Mozilla client on Win32.
|
||||
|
||||
To build nsinstall.exe, issue the command:
|
||||
nmake /f nsinstall.mak
|
||||
The output is Release\nsinstall.exe. Copy it to a directory
|
||||
on your Path.
|
||||
@ -1,697 +0,0 @@
|
||||
/*
|
||||
* The nsinstall command for Win32
|
||||
*
|
||||
* Our gmake makefiles use the nsinstall command to create the
|
||||
* object directories or installing headers and libs to ns/dist.
|
||||
* The shmsdos shell has nsinstall as a built-in command. However,
|
||||
* if we use another shell like MKS toolkit's sh, we need to have
|
||||
* the nsinstall command separately.
|
||||
*
|
||||
* This file was generated by just taking the part of shmsdos.c
|
||||
* needed by nsinstall and deleting the recursive directory copy code.
|
||||
*
|
||||
* To build, say
|
||||
* nmake /f nsinstall.mak
|
||||
*/
|
||||
|
||||
#include <direct.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <windows.h>
|
||||
#pragma hdrstop
|
||||
|
||||
/*
|
||||
* sh_FileFcn --
|
||||
*
|
||||
* A function that operates on a file. The pathname is either
|
||||
* absolute or relative to the current directory, and contains
|
||||
* no wildcard characters such as * and ?. Additional arguments
|
||||
* can be passed to the function via the arg pointer.
|
||||
*/
|
||||
|
||||
typedef BOOL (*sh_FileFcn)(
|
||||
char *pathName,
|
||||
WIN32_FIND_DATA *fileData,
|
||||
void *arg);
|
||||
|
||||
static int shellCp (char **pArgv);
|
||||
static int shellNsinstall (char **pArgv);
|
||||
static int shellMkdir (char **pArgv);
|
||||
static BOOL sh_EnumerateFiles(const char *pattern, const char *where,
|
||||
sh_FileFcn fileFcn, void *arg, int *nFiles);
|
||||
static const char *sh_GetLastErrorMessage(void);
|
||||
static BOOL sh_DoCopy(char *srcFileName, DWORD srcFileAttributes,
|
||||
char *dstFileName, DWORD dstFileAttributes,
|
||||
int force, int recursive);
|
||||
|
||||
/* changes all forward slashes in token to back slashes */
|
||||
void changeForwardSlashesTpBackSlashes ( char *arg )
|
||||
{
|
||||
if ( arg == NULL )
|
||||
return;
|
||||
|
||||
while ( *arg ) {
|
||||
if ( *arg == '/' )
|
||||
*arg = '\\';
|
||||
arg++;
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[ ])
|
||||
{
|
||||
return shellNsinstall ( argv + 1 );
|
||||
}
|
||||
|
||||
static int
|
||||
shellNsinstall (char **pArgv)
|
||||
{
|
||||
int retVal = 0; /* exit status */
|
||||
int dirOnly = 0; /* 1 if and only if -D is specified */
|
||||
char **pSrc;
|
||||
char **pDst;
|
||||
|
||||
/*
|
||||
* Process the command-line options. We ignore the
|
||||
* options except for -D. Some options, such as -m,
|
||||
* are followed by an argument. We need to skip the
|
||||
* argument too.
|
||||
*/
|
||||
while ( *pArgv && **pArgv == '-' ) {
|
||||
char c = (*pArgv)[1]; /* The char after '-' */
|
||||
|
||||
if ( c == 'D' ) {
|
||||
dirOnly = 1;
|
||||
} else if ( c == 'm' ) {
|
||||
pArgv++; /* skip the next argument */
|
||||
}
|
||||
pArgv++;
|
||||
}
|
||||
|
||||
if ( !dirOnly ) {
|
||||
/* There are files to install. Get source files */
|
||||
if ( *pArgv ) {
|
||||
pSrc = pArgv++;
|
||||
} else {
|
||||
fprintf( stderr, "nsinstall: not enough arguments\n");
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
/* Get to last token to find destination directory */
|
||||
if ( *pArgv ) {
|
||||
pDst = pArgv++;
|
||||
if ( dirOnly && *pArgv ) {
|
||||
fprintf( stderr, "nsinstall: too many arguments with -D\n");
|
||||
return 3;
|
||||
}
|
||||
} else {
|
||||
fprintf( stderr, "nsinstall: not enough arguments\n");
|
||||
return 3;
|
||||
}
|
||||
while ( *pArgv )
|
||||
pDst = pArgv++;
|
||||
|
||||
retVal = shellMkdir ( pDst );
|
||||
if ( retVal )
|
||||
return retVal;
|
||||
if ( !dirOnly )
|
||||
retVal = shellCp ( pSrc );
|
||||
return retVal;
|
||||
}
|
||||
|
||||
static int
|
||||
shellMkdir (char **pArgv)
|
||||
{
|
||||
int retVal = 0; /* assume valid return */
|
||||
char *arg;
|
||||
char *pArg;
|
||||
char path[_MAX_PATH];
|
||||
char tmpPath[_MAX_PATH];
|
||||
char *pTmpPath = tmpPath;
|
||||
|
||||
/* All the options are simply ignored in this implementation */
|
||||
while ( *pArgv && **pArgv == '-' ) {
|
||||
if ( (*pArgv)[1] == 'm' ) {
|
||||
pArgv++; /* skip the next argument (mode) */
|
||||
}
|
||||
pArgv++;
|
||||
}
|
||||
|
||||
while ( *pArgv ) {
|
||||
arg = *pArgv;
|
||||
changeForwardSlashesTpBackSlashes ( arg );
|
||||
pArg = arg;
|
||||
pTmpPath = tmpPath;
|
||||
while ( 1 ) {
|
||||
/* create part of path */
|
||||
while ( *pArg ) {
|
||||
*pTmpPath++ = *pArg++;
|
||||
if ( *pArg == '\\' )
|
||||
break;
|
||||
}
|
||||
*pTmpPath = '\0';
|
||||
|
||||
/* check if directory alreay exists */
|
||||
_getcwd ( path, sizeof (path) );
|
||||
if ( _chdir ( tmpPath ) != -1 ) {
|
||||
_chdir ( path );
|
||||
} else {
|
||||
if ( _mkdir ( tmpPath ) == -1 ) {
|
||||
// while ( waitForDebug );
|
||||
printf ( "%s: ", tmpPath );
|
||||
perror ( "Could not create the directory" );
|
||||
retVal = 3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( *pArg == '\0' ) /* complete path? */
|
||||
break;
|
||||
/* loop for next directory */
|
||||
}
|
||||
|
||||
pArgv++;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
static const char *
|
||||
sh_GetLastErrorMessage()
|
||||
{
|
||||
static char buf[128];
|
||||
|
||||
FormatMessage(
|
||||
FORMAT_MESSAGE_FROM_SYSTEM,
|
||||
NULL,
|
||||
GetLastError(),
|
||||
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* default language */
|
||||
buf,
|
||||
sizeof(buf),
|
||||
NULL
|
||||
);
|
||||
return buf;
|
||||
}
|
||||
|
||||
/*
|
||||
* struct sh_FileData --
|
||||
*
|
||||
* A pointer to the sh_FileData structure is passed into sh_RecordFileData,
|
||||
* which will fill in the fields.
|
||||
*/
|
||||
|
||||
struct sh_FileData {
|
||||
char pathName[_MAX_PATH];
|
||||
DWORD dwFileAttributes;
|
||||
};
|
||||
|
||||
/*
|
||||
* sh_RecordFileData --
|
||||
*
|
||||
* Record the pathname and attributes of the file in
|
||||
* the sh_FileData structure pointed to by arg.
|
||||
*
|
||||
* Always return TRUE (successful completion).
|
||||
*
|
||||
* This function is intended to be passed into sh_EnumerateFiles
|
||||
* to see if a certain pattern expands to exactly one file/directory,
|
||||
* and if so, record its pathname and attributes.
|
||||
*/
|
||||
|
||||
static BOOL
|
||||
sh_RecordFileData(char *pathName, WIN32_FIND_DATA *findData, void *arg)
|
||||
{
|
||||
struct sh_FileData *fData = (struct sh_FileData *) arg;
|
||||
|
||||
strcpy(fData->pathName, pathName);
|
||||
fData->dwFileAttributes = findData->dwFileAttributes;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
sh_DoCopy(char *srcFileName,
|
||||
DWORD srcFileAttributes,
|
||||
char *dstFileName,
|
||||
DWORD dstFileAttributes,
|
||||
int force,
|
||||
int recursive
|
||||
)
|
||||
{
|
||||
if (dstFileAttributes != 0xFFFFFFFF) {
|
||||
if ((dstFileAttributes & FILE_ATTRIBUTE_READONLY) && force) {
|
||||
dstFileAttributes &= ~FILE_ATTRIBUTE_READONLY;
|
||||
SetFileAttributes(dstFileName, dstFileAttributes);
|
||||
}
|
||||
}
|
||||
|
||||
if (srcFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
|
||||
fprintf(stderr, "nsinstall: %s is a directory\n",
|
||||
srcFileName);
|
||||
return FALSE;
|
||||
} else {
|
||||
if (!CopyFile(srcFileName, dstFileName, FALSE)) {
|
||||
fprintf(stderr, "nsinstall: cannot copy %s to %s: %s\n",
|
||||
srcFileName, dstFileName, sh_GetLastErrorMessage());
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* struct sh_CpCmdArg --
|
||||
*
|
||||
* A pointer to the sh_CpCmdArg structure is passed into sh_CpFileCmd.
|
||||
* The sh_CpCmdArg contains information about the cp command, and
|
||||
* provide a buffer for constructing the destination file name.
|
||||
*/
|
||||
|
||||
struct sh_CpCmdArg {
|
||||
int force; /* -f option, ok to overwrite an existing
|
||||
* read-only destination file */
|
||||
int recursive; /* -r or -R option, recursively copy
|
||||
* directories. Note: this field is not used
|
||||
* by nsinstall and should always be 0. */
|
||||
char *dstFileName; /* a buffer for constructing the destination
|
||||
* file name */
|
||||
char *dstFileNameMarker; /* points to where in the dstFileName buffer
|
||||
* we should write the file component of the
|
||||
* destination file */
|
||||
};
|
||||
|
||||
/*
|
||||
* sh_CpFileCmd --
|
||||
*
|
||||
* Copy a file to the destination directory
|
||||
*
|
||||
* This function is intended to be passed into sh_EnumerateFiles to
|
||||
* copy all the files specified by the pattern to the destination
|
||||
* directory.
|
||||
*
|
||||
* Return TRUE if the file is successfully copied, and FALSE otherwise.
|
||||
*/
|
||||
|
||||
static BOOL
|
||||
sh_CpFileCmd(char *pathName, WIN32_FIND_DATA *findData, void *cpArg)
|
||||
{
|
||||
BOOL retVal = TRUE;
|
||||
struct sh_CpCmdArg *arg = (struct sh_CpCmdArg *) cpArg;
|
||||
|
||||
strcpy(arg->dstFileNameMarker, findData->cFileName);
|
||||
return sh_DoCopy(pathName, findData->dwFileAttributes,
|
||||
arg->dstFileName, GetFileAttributes(arg->dstFileName),
|
||||
arg->force, arg->recursive);
|
||||
}
|
||||
|
||||
static int
|
||||
shellCp (char **pArgv)
|
||||
{
|
||||
int retVal = 0;
|
||||
char **pSrc;
|
||||
char **pDst;
|
||||
struct sh_CpCmdArg arg;
|
||||
struct sh_FileData dstData;
|
||||
int dstIsDir = 0;
|
||||
int n;
|
||||
|
||||
arg.force = 0;
|
||||
arg.recursive = 0;
|
||||
arg.dstFileName = dstData.pathName;
|
||||
arg.dstFileNameMarker = 0;
|
||||
|
||||
while (*pArgv && **pArgv == '-') {
|
||||
char *p = *pArgv;
|
||||
|
||||
while (*(++p)) {
|
||||
if (*p == 'f') {
|
||||
arg.force = 1;
|
||||
}
|
||||
}
|
||||
pArgv++;
|
||||
}
|
||||
|
||||
/* the first source file */
|
||||
if (*pArgv) {
|
||||
pSrc = pArgv++;
|
||||
} else {
|
||||
fprintf(stderr, "nsinstall: not enough arguments\n");
|
||||
return 3;
|
||||
}
|
||||
|
||||
/* get to the last token to find destination */
|
||||
if (*pArgv) {
|
||||
pDst = pArgv++;
|
||||
} else {
|
||||
fprintf(stderr, "nsinstall: not enough arguments\n");
|
||||
return 3;
|
||||
}
|
||||
while (*pArgv) {
|
||||
pDst = pArgv++;
|
||||
}
|
||||
|
||||
/*
|
||||
* The destination pattern must unambiguously expand to exactly
|
||||
* one file or directory.
|
||||
*/
|
||||
|
||||
changeForwardSlashesTpBackSlashes(*pDst);
|
||||
sh_EnumerateFiles(*pDst, *pDst, sh_RecordFileData, &dstData, &n);
|
||||
assert(n >= 0);
|
||||
if (n == 1) {
|
||||
/*
|
||||
* Is the destination a file or directory?
|
||||
*/
|
||||
|
||||
if (dstData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
|
||||
dstIsDir = 1;
|
||||
}
|
||||
} else if (n > 1) {
|
||||
fprintf(stderr, "nsinstall: %s: ambiguous destination file "
|
||||
"or directory\n", *pDst);
|
||||
return 3;
|
||||
} else {
|
||||
/*
|
||||
* n == 0, meaning that destination file or directory does
|
||||
* not exist. In this case the destination file directory
|
||||
* name must be fully specified.
|
||||
*/
|
||||
|
||||
char *p;
|
||||
|
||||
for (p = *pDst; *p; p++) {
|
||||
if (*p == '*' || *p == '?') {
|
||||
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
|
||||
*pDst);
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Do not include the trailing \, if any, unless it is a root
|
||||
* directory (\ or X:\).
|
||||
*/
|
||||
|
||||
if (p > *pDst && p[-1] == '\\' && p != *pDst + 1 && p[-2] != ':') {
|
||||
p[-1] = '\0';
|
||||
}
|
||||
strcpy(dstData.pathName, *pDst);
|
||||
dstData.dwFileAttributes = 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
/*
|
||||
* If there are two or more source files, the destination has
|
||||
* to be a directory.
|
||||
*/
|
||||
|
||||
if (pDst - pSrc > 1 && !dstIsDir) {
|
||||
fprintf(stderr, "nsinstall: cannot copy more than"
|
||||
" one file to the same destination file\n");
|
||||
return 3;
|
||||
}
|
||||
|
||||
if (dstIsDir) {
|
||||
arg.dstFileNameMarker = arg.dstFileName + strlen(arg.dstFileName);
|
||||
|
||||
/*
|
||||
* Now arg.dstFileNameMarker is pointing to the null byte at the
|
||||
* end of string. We want to make sure that there is a \ at the
|
||||
* end of string, and arg.dstFileNameMarker should point right
|
||||
* after that \.
|
||||
*/
|
||||
|
||||
if (arg.dstFileNameMarker[-1] != '\\') {
|
||||
*(arg.dstFileNameMarker++) = '\\';
|
||||
}
|
||||
}
|
||||
|
||||
if (!dstIsDir) {
|
||||
struct sh_FileData srcData;
|
||||
|
||||
assert(pDst - pSrc == 1);
|
||||
changeForwardSlashesTpBackSlashes(*pSrc);
|
||||
sh_EnumerateFiles(*pSrc, *pSrc, sh_RecordFileData, &srcData, &n);
|
||||
if (n == 0) {
|
||||
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
|
||||
*pSrc);
|
||||
retVal = 3;
|
||||
} else if (n > 1) {
|
||||
fprintf(stderr, "nsinstall: cannot copy more than one file or "
|
||||
"directory to the same destination\n");
|
||||
retVal = 3;
|
||||
} else {
|
||||
assert(n == 1);
|
||||
if (sh_DoCopy(srcData.pathName, srcData.dwFileAttributes,
|
||||
dstData.pathName, dstData.dwFileAttributes,
|
||||
arg.force, arg.recursive) == FALSE) {
|
||||
retVal = 3;
|
||||
}
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
for ( ; *pSrc != *pDst; pSrc++) {
|
||||
BOOL rv;
|
||||
|
||||
changeForwardSlashesTpBackSlashes(*pSrc);
|
||||
rv = sh_EnumerateFiles(*pSrc, *pSrc, sh_CpFileCmd, &arg, &n);
|
||||
if (rv == FALSE) {
|
||||
retVal = 3;
|
||||
} else {
|
||||
if (n == 0) {
|
||||
fprintf(stderr, "nsinstall: %s: No such file or directory\n",
|
||||
*pSrc);
|
||||
retVal = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* sh_EnumerateFiles --
|
||||
*
|
||||
* Enumerate all the files in the specified pattern, which is a pathname
|
||||
* containing possibly wildcard characters such as * and ?. fileFcn
|
||||
* is called on each file, passing the expanded file name, a pointer
|
||||
* to the file's WIN32_FILE_DATA, and the arg pointer.
|
||||
*
|
||||
* It is assumed that there are no wildcard characters before the
|
||||
* character pointed to by 'where'.
|
||||
*
|
||||
* On return, *nFiles stores the number of files enumerated. *nFiles is
|
||||
* set to this number whether sh_EnumerateFiles or 'fileFcn' succeeds
|
||||
* or not.
|
||||
*
|
||||
* Return TRUE if the files are successfully enumerated and all
|
||||
* 'fileFcn' invocations succeeded. Return FALSE if something went
|
||||
* wrong.
|
||||
*/
|
||||
|
||||
static BOOL sh_EnumerateFiles(
|
||||
const char *pattern,
|
||||
const char *where,
|
||||
sh_FileFcn fileFcn,
|
||||
void *arg,
|
||||
int *nFiles
|
||||
)
|
||||
{
|
||||
WIN32_FIND_DATA fileData;
|
||||
HANDLE hSearch;
|
||||
const char *src;
|
||||
char *dst;
|
||||
char fileName[_MAX_PATH];
|
||||
char *fileNameMarker = fileName;
|
||||
char *oldFileNameMarker;
|
||||
BOOL hasWildcard = FALSE;
|
||||
BOOL retVal = TRUE;
|
||||
BOOL patternEndsInDotStar = FALSE;
|
||||
BOOL patternEndsInDot = FALSE; /* a special case of
|
||||
* patternEndsInDotStar */
|
||||
int numDotsInPattern;
|
||||
int len;
|
||||
|
||||
/*
|
||||
* Windows expands patterns ending in ".", ".*", ".**", etc.
|
||||
* differently from the glob expansion on Unix. For example,
|
||||
* both "foo." and "foo.*" match "foo", and "*.*" matches
|
||||
* everything, including filenames with no dots. So we need
|
||||
* to throw away extra files returned by the FindNextFile()
|
||||
* function. We require that a matched filename have at least
|
||||
* the number of dots in the pattern.
|
||||
*/
|
||||
len = strlen(pattern);
|
||||
if (len >= 2) {
|
||||
/* Start from the end of pattern and go backward */
|
||||
const char *p = &pattern[len - 1];
|
||||
|
||||
/* We can have zero or more *'s */
|
||||
while (p >= pattern && *p == '*') {
|
||||
p--;
|
||||
}
|
||||
if (p >= pattern && *p == '.') {
|
||||
patternEndsInDotStar = TRUE;
|
||||
if (p == &pattern[len - 1]) {
|
||||
patternEndsInDot = TRUE;
|
||||
}
|
||||
p--;
|
||||
numDotsInPattern = 1;
|
||||
while (p >= pattern && *p != '\\') {
|
||||
if (*p == '.') {
|
||||
numDotsInPattern++;
|
||||
}
|
||||
p--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*nFiles = 0;
|
||||
|
||||
/*
|
||||
* Copy pattern to fileName, but only up to and not including
|
||||
* the first \ after the first wildcard letter.
|
||||
*
|
||||
* Make fileNameMarker point to one of the following:
|
||||
* - the start of fileName, if fileName does not contain any \.
|
||||
* - right after the \ before the first wildcard letter, if there is
|
||||
* a wildcard character.
|
||||
* - right after the last \, if there is no wildcard character.
|
||||
*/
|
||||
|
||||
dst = fileName;
|
||||
src = pattern;
|
||||
while (src < where) {
|
||||
if (*src == '\\') {
|
||||
oldFileNameMarker = fileNameMarker;
|
||||
fileNameMarker = dst + 1;
|
||||
}
|
||||
*(dst++) = *(src++);
|
||||
}
|
||||
|
||||
while (*src && *src != '*' && *src != '?') {
|
||||
if (*src == '\\') {
|
||||
oldFileNameMarker = fileNameMarker;
|
||||
fileNameMarker = dst + 1;
|
||||
}
|
||||
*(dst++) = *(src++);
|
||||
}
|
||||
|
||||
if (*src) {
|
||||
/*
|
||||
* Must have seen the first wildcard letter
|
||||
*/
|
||||
|
||||
hasWildcard = TRUE;
|
||||
while (*src && *src != '\\') {
|
||||
*(dst++) = *(src++);
|
||||
}
|
||||
}
|
||||
|
||||
/* Now src points to either null or \ */
|
||||
|
||||
assert(*src == '\0' || *src == '\\');
|
||||
assert(hasWildcard || *src == '\0');
|
||||
*dst = '\0';
|
||||
|
||||
/*
|
||||
* If the pattern does not contain any wildcard characters, then
|
||||
* we don't need to go the FindFirstFile route.
|
||||
*/
|
||||
|
||||
if (!hasWildcard) {
|
||||
/*
|
||||
* See if it is the root directory, \, or X:\.
|
||||
*/
|
||||
|
||||
assert(!strcmp(fileName, pattern));
|
||||
assert(strlen(fileName) >= 1);
|
||||
if (dst[-1] == '\\' && (dst == fileName + 1 || dst[-2] == ':')) {
|
||||
fileData.cFileName[0] = '\0';
|
||||
} else {
|
||||
/*
|
||||
* Do not include the trailing \, if any
|
||||
*/
|
||||
|
||||
if (dst[-1] == '\\') {
|
||||
assert(*fileNameMarker == '\0');
|
||||
dst[-1] = '\0';
|
||||
fileNameMarker = oldFileNameMarker;
|
||||
}
|
||||
strcpy(fileData.cFileName, fileNameMarker);
|
||||
}
|
||||
fileData.dwFileAttributes = GetFileAttributes(fileName);
|
||||
if (fileData.dwFileAttributes == 0xFFFFFFFF) {
|
||||
return TRUE;
|
||||
}
|
||||
*nFiles = 1;
|
||||
return (*fileFcn)(fileName, &fileData, arg);
|
||||
}
|
||||
|
||||
hSearch = FindFirstFile(fileName, &fileData);
|
||||
if (hSearch == INVALID_HANDLE_VALUE) {
|
||||
return retVal;
|
||||
}
|
||||
|
||||
do {
|
||||
if (!strcmp(fileData.cFileName, ".")
|
||||
|| !strcmp(fileData.cFileName, "..")) {
|
||||
/*
|
||||
* Skip over . and ..
|
||||
*/
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (patternEndsInDotStar) {
|
||||
int nDots = 0;
|
||||
char *p = fileData.cFileName;
|
||||
while (*p) {
|
||||
if (*p == '.') {
|
||||
nDots++;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
/* Now p points to the null byte at the end of file name */
|
||||
if (patternEndsInDot && (p == fileData.cFileName
|
||||
|| p[-1] != '.')) {
|
||||
/*
|
||||
* File name does not end in dot. Skip this file.
|
||||
* Note: windows file name probably cannot end in dot,
|
||||
* but we do this check anyway.
|
||||
*/
|
||||
continue;
|
||||
}
|
||||
if (nDots < numDotsInPattern) {
|
||||
/*
|
||||
* Not enough dots in file name. Must be an extra
|
||||
* file in matching .* pattern. Skip this file.
|
||||
*/
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
strcpy(fileNameMarker, fileData.cFileName);
|
||||
if (*src && *(src + 1)) {
|
||||
/*
|
||||
* More to go. Recurse.
|
||||
*/
|
||||
|
||||
int n;
|
||||
|
||||
assert(*src == '\\');
|
||||
where = fileName + strlen(fileName);
|
||||
strcat(fileName, src);
|
||||
sh_EnumerateFiles(fileName, where, fileFcn, arg, &n);
|
||||
*nFiles += n;
|
||||
} else {
|
||||
assert(strchr(fileName, '*') == NULL);
|
||||
assert(strchr(fileName, '?') == NULL);
|
||||
(*nFiles)++;
|
||||
if ((*fileFcn)(fileName, &fileData, arg) == FALSE) {
|
||||
retVal = FALSE;
|
||||
}
|
||||
}
|
||||
} while (FindNextFile(hSearch, &fileData));
|
||||
|
||||
FindClose(hSearch);
|
||||
return retVal;
|
||||
}
|
||||
@ -1,141 +0,0 @@
|
||||
# NMAKE file for building nsinstall.exe.
|
||||
#
|
||||
# This file is edited from an NMAKE file generated by
|
||||
# Microsoft Developer Studio, Format Version 4.20
|
||||
#
|
||||
# To build, say
|
||||
# nmake /f nsinstall.mak CFG=Release
|
||||
# or
|
||||
# nmake /f nsinstall.mak CFG=Debug
|
||||
# If CFG is omitted, a release build is assumed.
|
||||
|
||||
!IF "$(CFG)" == ""
|
||||
CFG=Release
|
||||
!MESSAGE No configuration specified. Defaulting Release.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" != "Release" && "$(CFG)" != "Debug"
|
||||
!MESSAGE Invalid configuration "$(CFG)" specified.
|
||||
!MESSAGE You can specify a configuration when running NMAKE on this makefile
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "nsinstall.mak" CFG="Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "Release" (based on "Win32 Console Application")
|
||||
!MESSAGE "Debug" (based on "Win32 Console Application")
|
||||
!MESSAGE
|
||||
!ERROR An invalid configuration is specified.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(OS)" == "Windows_NT"
|
||||
NULL=
|
||||
!ELSE
|
||||
NULL=nul
|
||||
!ENDIF
|
||||
################################################################################
|
||||
# Begin Project
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "Release"
|
||||
|
||||
OUTDIR=.\Release
|
||||
INTDIR=.\Release
|
||||
|
||||
ALL : "$(OUTDIR)\nsinstall.exe"
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\nsinstall.obj"
|
||||
-@erase "$(OUTDIR)\nsinstall.exe"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE"\
|
||||
/Fp"$(INTDIR)/nsinstall.pch" /YX /Fo"$(INTDIR)/" /c
|
||||
CPP_OBJS=.\Release/
|
||||
CPP_SBRS=.\.
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)/nsinstall.bsc"
|
||||
BSC32_SBRS= \
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=/nologo\
|
||||
/subsystem:console /incremental:no /pdb:"$(OUTDIR)/nsinstall.pdb"\
|
||||
/out:"$(OUTDIR)/nsinstall.exe"
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\nsinstall.obj"
|
||||
|
||||
"$(OUTDIR)\nsinstall.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ELSEIF "$(CFG)" == "Debug"
|
||||
|
||||
OUTDIR=.\Debug
|
||||
INTDIR=.\Debug
|
||||
|
||||
ALL : "$(OUTDIR)\nsinstall.exe"
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\nsinstall.obj"
|
||||
-@erase "$(INTDIR)\vc40.idb"
|
||||
-@erase "$(INTDIR)\vc40.pdb"
|
||||
-@erase "$(OUTDIR)\nsinstall.exe"
|
||||
-@erase "$(OUTDIR)\nsinstall.ilk"
|
||||
-@erase "$(OUTDIR)\nsinstall.pdb"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP_PROJ=/nologo /MD /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "DEBUG"\
|
||||
/D "_CONSOLE" /Fp"$(INTDIR)/nsinstall.pch" /YX /Fo"$(INTDIR)/"\
|
||||
/Fd"$(INTDIR)/" /c
|
||||
CPP_OBJS=.\Debug/
|
||||
CPP_SBRS=.\.
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)/nsinstall.bsc"
|
||||
BSC32_SBRS= \
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=/nologo\
|
||||
/subsystem:console /incremental:yes /pdb:"$(OUTDIR)/nsinstall.pdb" /debug\
|
||||
/out:"$(OUTDIR)/nsinstall.exe"
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\nsinstall.obj"
|
||||
|
||||
"$(OUTDIR)\nsinstall.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ENDIF
|
||||
|
||||
.c{$(CPP_OBJS)}.obj:
|
||||
$(CPP) $(CPP_PROJ) $<
|
||||
|
||||
.c{$(CPP_SBRS)}.sbr:
|
||||
$(CPP) $(CPP_PROJ) $<
|
||||
|
||||
################################################################################
|
||||
# Begin Target
|
||||
|
||||
################################################################################
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\nsinstall.c
|
||||
DEP_CPP_SHMSD=\
|
||||
{$(INCLUDE)}"\sys\stat.h"\
|
||||
{$(INCLUDE)}"\sys\types.h"\
|
||||
|
||||
|
||||
"$(INTDIR)\nsinstall.obj" : $(SOURCE) $(DEP_CPP_SHMSD) "$(INTDIR)"
|
||||
|
||||
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
||||
################################################################################
|
||||
@ -1,504 +0,0 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
|
||||
|
||||
@ -1,481 +0,0 @@
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1991 Free Software Foundation, Inc.
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the library GPL. It is
|
||||
numbered 2 because it goes with version 2 of the ordinary GPL.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Library General Public License, applies to some
|
||||
specially designated Free Software Foundation software, and to any
|
||||
other libraries whose authors decide to use it. You can use it for
|
||||
your libraries, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if
|
||||
you distribute copies of the library, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link a program with the library, you must provide
|
||||
complete object files to the recipients so that they can relink them
|
||||
with the library, after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
Our method of protecting your rights has two steps: (1) copyright
|
||||
the library, and (2) offer you this license which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
Also, for each distributor's protection, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
library. If the library is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original
|
||||
version, so that any problems introduced by others will not reflect on
|
||||
the original authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that companies distributing free
|
||||
software will individually obtain patent licenses, thus in effect
|
||||
transforming the program into proprietary software. To prevent this,
|
||||
we have made it clear that any patent must be licensed for everyone's
|
||||
free use or not licensed at all.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the ordinary
|
||||
GNU General Public License, which was designed for utility programs. This
|
||||
license, the GNU Library General Public License, applies to certain
|
||||
designated libraries. This license is quite different from the ordinary
|
||||
one; be sure to read it in full, and don't assume that anything in it is
|
||||
the same as in the ordinary license.
|
||||
|
||||
The reason we have a separate public license for some libraries is that
|
||||
they blur the distinction we usually make between modifying or adding to a
|
||||
program and simply using it. Linking a program with a library, without
|
||||
changing the library, is in some sense simply using the library, and is
|
||||
analogous to running a utility program or application program. However, in
|
||||
a textual and legal sense, the linked executable is a combined work, a
|
||||
derivative of the original library, and the ordinary General Public License
|
||||
treats it as such.
|
||||
|
||||
Because of this blurred distinction, using the ordinary General
|
||||
Public License for libraries did not effectively promote software
|
||||
sharing, because most developers did not use the libraries. We
|
||||
concluded that weaker conditions might promote sharing better.
|
||||
|
||||
However, unrestricted linking of non-free programs would deprive the
|
||||
users of those programs of all benefit from the free status of the
|
||||
libraries themselves. This Library General Public License is intended to
|
||||
permit developers of non-free programs to use free libraries, while
|
||||
preserving your freedom as a user of such programs to change the free
|
||||
libraries that are incorporated in them. (We have not seen how to achieve
|
||||
this as regards changes in header files, but we have achieved it as regards
|
||||
changes in the actual functions of the Library.) The hope is that this
|
||||
will lead to faster development of free libraries.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, while the latter only
|
||||
works together with the library.
|
||||
|
||||
Note that it is possible for a library to be covered by the ordinary
|
||||
General Public License rather than by this special one.
|
||||
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library which
|
||||
contains a notice placed by the copyright holder or other authorized
|
||||
party saying it may be distributed under the terms of this Library
|
||||
General Public License (also called "this License"). Each licensee is
|
||||
addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also compile or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
c) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
d) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the source code distributed need not include anything that is normally
|
||||
distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Library General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
@ -1,8 +0,0 @@
|
||||
These libraries were compiled using .NET/VC7. The original
|
||||
sources can be found at ftp://ftp.gtk.org/pub/gtk/v1.2/glib-1.2.10.tar.gz &
|
||||
ftp://ftp.mozilla.org/pub/mozilla/libraries/source/libIDL-0.6.8.tar.gz.
|
||||
The patches used to build can be found at
|
||||
http://bugzilla.mozilla.org/show_bug.cgi?id=123743 .
|
||||
|
||||
- cls, 2002/10/18
|
||||
|
||||
@ -1,174 +0,0 @@
|
||||
/* glibconfig.h.win32 */
|
||||
/* Handcrafted for Microsoft C. */
|
||||
|
||||
#ifndef GLIBCONFIG_H
|
||||
#define GLIBCONFIG_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#ifdef _MSC_VER
|
||||
/* Make MSVC more pedantic, this is a recommended pragma list
|
||||
* from _Win32_Programming_ by Rector and Newcomer.
|
||||
*/
|
||||
#pragma warning(error:4002)
|
||||
#pragma warning(error:4003)
|
||||
#pragma warning(1:4010)
|
||||
#pragma warning(error:4013)
|
||||
#pragma warning(1:4016)
|
||||
#pragma warning(error:4020)
|
||||
#pragma warning(error:4021)
|
||||
#pragma warning(error:4027)
|
||||
#pragma warning(error:4029)
|
||||
#pragma warning(error:4033)
|
||||
#pragma warning(error:4035)
|
||||
#pragma warning(error:4045)
|
||||
#pragma warning(error:4047)
|
||||
#pragma warning(error:4049)
|
||||
#pragma warning(error:4053)
|
||||
#pragma warning(error:4071)
|
||||
#pragma warning(disable:4101)
|
||||
#pragma warning(error:4150)
|
||||
|
||||
#pragma warning(disable:4244) /* No possible loss of data warnings */
|
||||
#pragma warning(disable:4305) /* No truncation from int to char warnings */
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
#include <limits.h>
|
||||
#include <float.h>
|
||||
|
||||
#define G_MINFLOAT FLT_MIN
|
||||
#define G_MAXFLOAT FLT_MAX
|
||||
#define G_MINDOUBLE DBL_MIN
|
||||
#define G_MAXDOUBLE DBL_MAX
|
||||
#define G_MINSHORT SHRT_MIN
|
||||
#define G_MAXSHORT SHRT_MAX
|
||||
#define G_MININT INT_MIN
|
||||
#define G_MAXINT INT_MAX
|
||||
#define G_MINLONG LONG_MIN
|
||||
#define G_MAXLONG LONG_MAX
|
||||
|
||||
typedef signed char gint8;
|
||||
typedef unsigned char guint8;
|
||||
typedef signed short gint16;
|
||||
typedef unsigned short guint16;
|
||||
typedef signed int gint32;
|
||||
typedef unsigned int guint32;
|
||||
|
||||
#define G_HAVE_GINT64 1
|
||||
|
||||
typedef __int64 gint64;
|
||||
typedef unsigned __int64 guint64;
|
||||
|
||||
#define G_GINT64_CONSTANT(val) (val##i64)
|
||||
|
||||
#define GPOINTER_TO_INT(p) ((gint)(p))
|
||||
#define GPOINTER_TO_UINT(p) ((guint)(p))
|
||||
|
||||
#define GINT_TO_POINTER(i) ((gpointer)(i))
|
||||
#define GUINT_TO_POINTER(u) ((gpointer)(u))
|
||||
|
||||
#define g_ATEXIT(proc) (atexit (proc))
|
||||
|
||||
#define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END
|
||||
|
||||
#define G_HAVE_ALLOCA 1
|
||||
#define alloca _alloca
|
||||
|
||||
#define GLIB_MAJOR_VERSION 1
|
||||
#define GLIB_MINOR_VERSION 2
|
||||
#define GLIB_MICRO_VERSION 10
|
||||
|
||||
#ifdef __cplusplus
|
||||
#define G_HAVE_INLINE 1
|
||||
#else /* !__cplusplus */
|
||||
#define G_HAVE___INLINE 1
|
||||
#endif
|
||||
|
||||
#define G_THREADS_ENABLED
|
||||
/*
|
||||
* The following program can be used to determine the magic values below:
|
||||
* #include <stdio.h>
|
||||
* #include <pthread.h>
|
||||
* main(int argc, char **argv)
|
||||
* {
|
||||
* int i;
|
||||
* pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
|
||||
* printf ("sizeof (pthread_mutex_t) = %d\n", sizeof (pthread_mutex_t));
|
||||
* printf ("PTHREAD_MUTEX_INITIALIZER = ");
|
||||
* for (i = 0; i < sizeof (pthread_mutex_t); i++)
|
||||
* printf ("%u, ", ((unsigned char *) &m)[i]);
|
||||
* printf ("\n");
|
||||
* exit(0);
|
||||
* }
|
||||
*/
|
||||
|
||||
#define G_THREADS_IMPL_POSIX
|
||||
typedef struct _GStaticMutex GStaticMutex;
|
||||
struct _GStaticMutex
|
||||
{
|
||||
struct _GMutex *runtime_mutex;
|
||||
union {
|
||||
/* The size of the pad array should be sizeof (pthread_mutext_t) */
|
||||
/* This value corresponds to the 1999-04-07 version of pthreads-win32 */
|
||||
char pad[4];
|
||||
double dummy_double;
|
||||
void *dummy_pointer;
|
||||
long dummy_long;
|
||||
} aligned_pad_u;
|
||||
};
|
||||
/* This should be NULL followed by the bytes in PTHREAD_MUTEX_INITIALIZER */
|
||||
#define G_STATIC_MUTEX_INIT { NULL, { { 255, 255, 255, 255 } } }
|
||||
#define g_static_mutex_get_mutex(mutex) \
|
||||
(g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \
|
||||
g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
|
||||
|
||||
#define G_BYTE_ORDER G_LITTLE_ENDIAN
|
||||
|
||||
#define GINT16_TO_LE(val) ((gint16) (val))
|
||||
#define GUINT16_TO_LE(val) ((guint16) (val))
|
||||
#define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val))
|
||||
#define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val))
|
||||
|
||||
#define GINT32_TO_LE(val) ((gint32) (val))
|
||||
#define GUINT32_TO_LE(val) ((guint32) (val))
|
||||
#define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val))
|
||||
#define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val))
|
||||
|
||||
#define GINT64_TO_LE(val) ((gint64) (val))
|
||||
#define GUINT64_TO_LE(val) ((guint64) (val))
|
||||
#define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val))
|
||||
#define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val))
|
||||
|
||||
#define GLONG_TO_LE(val) ((glong) GINT32_TO_LE (val))
|
||||
#define GULONG_TO_LE(val) ((gulong) GUINT32_TO_LE (val))
|
||||
#define GLONG_TO_BE(val) ((glong) GINT32_TO_BE (val))
|
||||
#define GULONG_TO_BE(val) ((gulong) GUINT32_TO_BE (val))
|
||||
|
||||
#define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val))
|
||||
#define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val))
|
||||
#define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val))
|
||||
#define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val))
|
||||
|
||||
#define GLIB_SYSDEF_POLLIN = 1
|
||||
#define GLIB_SYSDEF_POLLOUT = 4
|
||||
#define GLIB_SYSDEF_POLLPRI = 2
|
||||
#define GLIB_SYSDEF_POLLERR = 8
|
||||
#define GLIB_SYSDEF_POLLHUP = 16
|
||||
#define GLIB_SYSDEF_POLLNVAL = 32
|
||||
|
||||
#define G_HAVE_WCHAR_H 1
|
||||
#define G_HAVE_WCTYPE_H 1
|
||||
|
||||
/* Define if this is Win32, possibly using the Cygwin emulation layer. */
|
||||
#define WIN32 1
|
||||
|
||||
/* Define if this is Win32 without Cygwin. */
|
||||
#define NATIVE_WIN32 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* GLIBCONFIG_H */
|
||||
@ -1,851 +0,0 @@
|
||||
/**************************************************************************
|
||||
|
||||
IDL.h (IDL parse tree and namespace components)
|
||||
|
||||
Copyright (C) 1998, 1999 Andrew T. Veliath
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
$Id: IDL.h,v 1.1 2002-10-18 08:31:49 seawood%netscape.com Exp $
|
||||
|
||||
***************************************************************************/
|
||||
#ifndef __IDL_H
|
||||
#define __IDL_H
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
/* Try to find wchar_t support */
|
||||
#include <stdlib.h>
|
||||
#if 1 /* HAVE_WCHAR_H */
|
||||
# include <wchar.h>
|
||||
#endif
|
||||
#if 0 /* HAVE_WCSTR_H */
|
||||
# include <wcstr.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* version */
|
||||
#define LIBIDL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
|
||||
#define LIBIDL_MAJOR_VERSION 0
|
||||
#define LIBIDL_MINOR_VERSION 6
|
||||
#define LIBIDL_MICRO_VERSION 8
|
||||
#define LIBIDL_VERSION_CODE LIBIDL_VERSION(0,6,8)
|
||||
|
||||
/* miscellaneous constants */
|
||||
#define IDL_SUCCESS 0
|
||||
#define IDL_ERROR 1
|
||||
#define IDL_WARNING1 2
|
||||
#define IDL_WARNING2 3
|
||||
#define IDL_WARNING3 4
|
||||
#define IDL_WARNINGMAX IDL_WARNING3
|
||||
|
||||
/* general parse flags */
|
||||
#define IDLF_VERBOSE (1UL << 0)
|
||||
#define IDLF_NO_EVAL_CONST (1UL << 1)
|
||||
#define IDLF_COMBINE_REOPENED_MODULES (1UL << 2)
|
||||
#define IDLF_PREFIX_FILENAME (1UL << 3)
|
||||
#define IDLF_IGNORE_FORWARDS (1UL << 4)
|
||||
#define IDLF_PEDANTIC (1UL << 5)
|
||||
#define IDLF_INHIBIT_TAG_ONLY (1UL << 6)
|
||||
#define IDLF_INHIBIT_INCLUDES (1UL << 7)
|
||||
|
||||
/* syntax extension parse flags */
|
||||
#define IDLF_TYPECODES (1UL << 16)
|
||||
#define IDLF_XPIDL (1UL << 17)
|
||||
#define IDLF_PROPERTIES (1UL << 18)
|
||||
#define IDLF_CODEFRAGS (1UL << 19)
|
||||
|
||||
/* declaration specification flags */
|
||||
#define IDLF_DECLSPEC_EXIST (1UL << 0)
|
||||
#define IDLF_DECLSPEC_INHIBIT (1UL << 1)
|
||||
|
||||
/* output flags */
|
||||
#define IDLF_OUTPUT_NO_NEWLINES (1UL << 0)
|
||||
#define IDLF_OUTPUT_NO_QUALIFY_IDENTS (1UL << 1)
|
||||
#define IDLF_OUTPUT_PROPERTIES (1UL << 2)
|
||||
#define IDLF_OUTPUT_CODEFRAGS (1UL << 3)
|
||||
|
||||
#ifdef _WIN32
|
||||
# define IDL_EXPORT __declspec (dllexport)
|
||||
# define IDL_IMPORT __declspec (dllimport)
|
||||
#else
|
||||
# define IDL_EXPORT /* empty */
|
||||
# define IDL_IMPORT extern
|
||||
#endif
|
||||
|
||||
/* type casting checks */
|
||||
#define IDL_check_cast_enable(boolean) do { \
|
||||
IDL_IMPORT int __IDL_check_type_casts; \
|
||||
__IDL_check_type_casts = (boolean); \
|
||||
} while (0)
|
||||
#define IDL_CHECK_CAST(tree, thetype, name) \
|
||||
(IDL_check_type_cast(tree, thetype, \
|
||||
__FILE__, __LINE__, \
|
||||
G_GNUC_PRETTY_FUNCTION)->u.name)
|
||||
|
||||
#ifdef G_HAVE_GINT64
|
||||
# if G_MAXLONG > 0xffffffffUL
|
||||
# define IDL_LL "l"
|
||||
# else
|
||||
# define IDL_LL "ll"
|
||||
# endif
|
||||
typedef gint64 IDL_longlong_t;
|
||||
typedef guint64 IDL_ulonglong_t;
|
||||
#else
|
||||
# define IDL_LL "l"
|
||||
typedef long IDL_longlong_t;
|
||||
typedef unsigned long IDL_ulonglong_t;
|
||||
# warning 64-bit integer type not available, using 32-bit instead
|
||||
#endif /* G_HAVE_GINT64 */
|
||||
|
||||
typedef unsigned int IDL_declspec_t;
|
||||
typedef struct _IDL_tree_node IDL_tree_node;
|
||||
typedef struct _IDL_tree_node * IDL_tree;
|
||||
|
||||
struct _IDL_LIST {
|
||||
IDL_tree data;
|
||||
IDL_tree prev;
|
||||
IDL_tree next;
|
||||
IDL_tree _tail; /* Internal use, may not be valid */
|
||||
};
|
||||
|
||||
#define IDL_LIST(a) IDL_CHECK_CAST(a, IDLN_LIST, idl_list)
|
||||
extern IDL_tree IDL_list_new (IDL_tree data);
|
||||
extern IDL_tree IDL_list_concat (IDL_tree orig,
|
||||
IDL_tree append);
|
||||
extern IDL_tree IDL_list_remove (IDL_tree list,
|
||||
IDL_tree p);
|
||||
extern int IDL_list_length (IDL_tree list);
|
||||
extern IDL_tree IDL_list_nth (IDL_tree list,
|
||||
int n);
|
||||
|
||||
struct _IDL_GENTREE {
|
||||
IDL_tree data;
|
||||
GHashTable *siblings;
|
||||
GHashTable *children;
|
||||
GHashFunc hash_func;
|
||||
GCompareFunc key_compare_func;
|
||||
IDL_tree _import; /* Internal use, do not recurse */
|
||||
char *_cur_prefix; /* Internal use */
|
||||
};
|
||||
#define IDL_GENTREE(a) IDL_CHECK_CAST(a, IDLN_GENTREE, idl_gentree)
|
||||
extern IDL_tree IDL_gentree_new (GHashFunc hash_func,
|
||||
GCompareFunc key_compare_func,
|
||||
IDL_tree data);
|
||||
extern IDL_tree IDL_gentree_new_sibling (IDL_tree from,
|
||||
IDL_tree data);
|
||||
extern IDL_tree IDL_gentree_chain_sibling (IDL_tree from,
|
||||
IDL_tree data);
|
||||
extern IDL_tree IDL_gentree_chain_child (IDL_tree from,
|
||||
IDL_tree data);
|
||||
|
||||
struct _IDL_INTEGER {
|
||||
IDL_longlong_t value;
|
||||
};
|
||||
#define IDL_INTEGER(a) IDL_CHECK_CAST(a, IDLN_INTEGER, idl_integer)
|
||||
extern IDL_tree IDL_integer_new (IDL_longlong_t value);
|
||||
|
||||
struct _IDL_STRING {
|
||||
char *value;
|
||||
};
|
||||
#define IDL_STRING(a) IDL_CHECK_CAST(a, IDLN_STRING, idl_string)
|
||||
extern IDL_tree IDL_string_new (char *value);
|
||||
|
||||
struct _IDL_WIDE_STRING {
|
||||
wchar_t *value;
|
||||
};
|
||||
#define IDL_WIDE_STRING(a) IDL_CHECK_CAST(a, IDLN_WIDE_STRING, idl_wide_string)
|
||||
extern IDL_tree IDL_wide_string_new (wchar_t *value);
|
||||
|
||||
struct _IDL_CHAR {
|
||||
char *value;
|
||||
};
|
||||
#define IDL_CHAR(a) IDL_CHECK_CAST(a, IDLN_CHAR, idl_char)
|
||||
extern IDL_tree IDL_char_new (char *value);
|
||||
|
||||
struct _IDL_WIDE_CHAR {
|
||||
wchar_t *value;
|
||||
};
|
||||
#define IDL_WIDE_CHAR(a) IDL_CHECK_CAST(a, IDLN_WIDE_CHAR, idl_wide_char)
|
||||
extern IDL_tree IDL_wide_char_new (wchar_t *value);
|
||||
|
||||
struct _IDL_FIXED {
|
||||
char *value;
|
||||
};
|
||||
#define IDL_FIXED(a) IDL_CHECK_CAST(a, IDLN_FIXED, idl_fixed)
|
||||
extern IDL_tree IDL_fixed_new (char *value);
|
||||
|
||||
struct _IDL_FLOAT {
|
||||
double value;
|
||||
};
|
||||
#define IDL_FLOAT(a) IDL_CHECK_CAST(a, IDLN_FLOAT, idl_float)
|
||||
extern IDL_tree IDL_float_new (double value);
|
||||
|
||||
struct _IDL_BOOLEAN {
|
||||
unsigned value;
|
||||
};
|
||||
#define IDL_BOOLEAN(a) IDL_CHECK_CAST(a, IDLN_BOOLEAN, idl_boolean)
|
||||
extern IDL_tree IDL_boolean_new (unsigned value);
|
||||
|
||||
struct _IDL_IDENT {
|
||||
char *str;
|
||||
char *repo_id;
|
||||
GSList *comments;
|
||||
IDL_tree _ns_ref; /* Internal use, do not recurse */
|
||||
unsigned _flags; /* Internal use */
|
||||
#define IDLF_IDENT_CASE_MISMATCH_HIT (1UL << 0)
|
||||
};
|
||||
#define IDL_IDENT(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident)
|
||||
#define IDL_IDENT_TO_NS(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident._ns_ref)
|
||||
#define IDL_IDENT_REPO_ID(a) IDL_CHECK_CAST(a, IDLN_IDENT, idl_ident.repo_id)
|
||||
extern IDL_tree IDL_ident_new (char *str);
|
||||
extern void IDL_queue_new_ident_comment (const char *str);
|
||||
|
||||
enum IDL_float_type {
|
||||
IDL_FLOAT_TYPE_FLOAT,
|
||||
IDL_FLOAT_TYPE_DOUBLE,
|
||||
IDL_FLOAT_TYPE_LONGDOUBLE
|
||||
};
|
||||
|
||||
struct _IDL_TYPE_FLOAT {
|
||||
enum IDL_float_type f_type;
|
||||
};
|
||||
#define IDL_TYPE_FLOAT(a) IDL_CHECK_CAST(a, IDLN_TYPE_FLOAT, idl_type_float)
|
||||
extern IDL_tree IDL_type_float_new (enum IDL_float_type f_type);
|
||||
|
||||
struct _IDL_TYPE_FIXED {
|
||||
IDL_tree positive_int_const;
|
||||
IDL_tree integer_lit;
|
||||
};
|
||||
#define IDL_TYPE_FIXED(a) IDL_CHECK_CAST(a, IDLN_TYPE_FIXED, idl_type_fixed)
|
||||
extern IDL_tree IDL_type_fixed_new (IDL_tree positive_int_const,
|
||||
IDL_tree integer_lit);
|
||||
|
||||
enum IDL_integer_type {
|
||||
IDL_INTEGER_TYPE_SHORT,
|
||||
IDL_INTEGER_TYPE_LONG,
|
||||
IDL_INTEGER_TYPE_LONGLONG
|
||||
};
|
||||
|
||||
struct _IDL_TYPE_INTEGER {
|
||||
unsigned f_signed : 1;
|
||||
enum IDL_integer_type f_type;
|
||||
};
|
||||
#define IDL_TYPE_INTEGER(a) IDL_CHECK_CAST(a, IDLN_TYPE_INTEGER, idl_type_integer)
|
||||
extern IDL_tree IDL_type_integer_new (unsigned f_signed,
|
||||
enum IDL_integer_type f_type);
|
||||
|
||||
extern IDL_tree IDL_type_char_new (void);
|
||||
extern IDL_tree IDL_type_wide_char_new (void);
|
||||
extern IDL_tree IDL_type_boolean_new (void);
|
||||
extern IDL_tree IDL_type_octet_new (void);
|
||||
extern IDL_tree IDL_type_any_new (void);
|
||||
extern IDL_tree IDL_type_object_new (void);
|
||||
extern IDL_tree IDL_type_typecode_new (void);
|
||||
|
||||
struct _IDL_TYPE_STRING {
|
||||
IDL_tree positive_int_const;
|
||||
};
|
||||
#define IDL_TYPE_STRING(a) IDL_CHECK_CAST(a, IDLN_TYPE_STRING, idl_type_string)
|
||||
extern IDL_tree IDL_type_string_new (IDL_tree positive_int_const);
|
||||
|
||||
struct _IDL_TYPE_WIDE_STRING {
|
||||
IDL_tree positive_int_const;
|
||||
};
|
||||
#define IDL_TYPE_WIDE_STRING(a) IDL_CHECK_CAST(a, IDLN_TYPE_WIDE_STRING, idl_type_wide_string)
|
||||
extern IDL_tree IDL_type_wide_string_new (IDL_tree positive_int_const);
|
||||
|
||||
struct _IDL_TYPE_ENUM {
|
||||
IDL_tree ident;
|
||||
IDL_tree enumerator_list;
|
||||
};
|
||||
#define IDL_TYPE_ENUM(a) IDL_CHECK_CAST(a, IDLN_TYPE_ENUM, idl_type_enum)
|
||||
extern IDL_tree IDL_type_enum_new (IDL_tree ident,
|
||||
IDL_tree enumerator_list);
|
||||
|
||||
struct _IDL_TYPE_ARRAY {
|
||||
IDL_tree ident;
|
||||
IDL_tree size_list;
|
||||
};
|
||||
#define IDL_TYPE_ARRAY(a) IDL_CHECK_CAST(a, IDLN_TYPE_ARRAY, idl_type_array)
|
||||
extern IDL_tree IDL_type_array_new (IDL_tree ident,
|
||||
IDL_tree size_list);
|
||||
|
||||
struct _IDL_TYPE_SEQUENCE {
|
||||
IDL_tree simple_type_spec;
|
||||
IDL_tree positive_int_const;
|
||||
};
|
||||
#define IDL_TYPE_SEQUENCE(a) IDL_CHECK_CAST(a, IDLN_TYPE_SEQUENCE, idl_type_sequence)
|
||||
extern IDL_tree IDL_type_sequence_new (IDL_tree simple_type_spec,
|
||||
IDL_tree positive_int_const);
|
||||
|
||||
struct _IDL_TYPE_STRUCT {
|
||||
IDL_tree ident;
|
||||
IDL_tree member_list;
|
||||
};
|
||||
#define IDL_TYPE_STRUCT(a) IDL_CHECK_CAST(a, IDLN_TYPE_STRUCT, idl_type_struct)
|
||||
extern IDL_tree IDL_type_struct_new (IDL_tree ident,
|
||||
IDL_tree member_list);
|
||||
|
||||
struct _IDL_TYPE_UNION {
|
||||
IDL_tree ident;
|
||||
IDL_tree switch_type_spec;
|
||||
IDL_tree switch_body;
|
||||
};
|
||||
#define IDL_TYPE_UNION(a) IDL_CHECK_CAST(a, IDLN_TYPE_UNION, idl_type_union)
|
||||
extern IDL_tree IDL_type_union_new (IDL_tree ident,
|
||||
IDL_tree switch_type_spec,
|
||||
IDL_tree switch_body);
|
||||
struct _IDL_MEMBER {
|
||||
IDL_tree type_spec;
|
||||
IDL_tree dcls;
|
||||
};
|
||||
#define IDL_MEMBER(a) IDL_CHECK_CAST(a, IDLN_MEMBER, idl_member)
|
||||
extern IDL_tree IDL_member_new (IDL_tree type_spec,
|
||||
IDL_tree dcls);
|
||||
|
||||
struct _IDL_NATIVE {
|
||||
IDL_tree ident;
|
||||
char *user_type; /* XPIDL extension */
|
||||
};
|
||||
#define IDL_NATIVE(a) IDL_CHECK_CAST(a, IDLN_NATIVE, idl_native)
|
||||
extern IDL_tree IDL_native_new (IDL_tree ident);
|
||||
|
||||
|
||||
struct _IDL_TYPE_DCL {
|
||||
IDL_tree type_spec;
|
||||
IDL_tree dcls;
|
||||
};
|
||||
#define IDL_TYPE_DCL(a) IDL_CHECK_CAST(a, IDLN_TYPE_DCL, idl_type_dcl)
|
||||
extern IDL_tree IDL_type_dcl_new (IDL_tree type_spec,
|
||||
IDL_tree dcls);
|
||||
|
||||
struct _IDL_CONST_DCL {
|
||||
IDL_tree const_type;
|
||||
IDL_tree ident;
|
||||
IDL_tree const_exp;
|
||||
};
|
||||
#define IDL_CONST_DCL(a) IDL_CHECK_CAST(a, IDLN_CONST_DCL, idl_const_dcl)
|
||||
extern IDL_tree IDL_const_dcl_new (IDL_tree const_type,
|
||||
IDL_tree ident,
|
||||
IDL_tree const_exp);
|
||||
|
||||
struct _IDL_EXCEPT_DCL {
|
||||
IDL_tree ident;
|
||||
IDL_tree members;
|
||||
};
|
||||
#define IDL_EXCEPT_DCL(a) IDL_CHECK_CAST(a, IDLN_EXCEPT_DCL, idl_except_dcl)
|
||||
extern IDL_tree IDL_except_dcl_new (IDL_tree ident,
|
||||
IDL_tree members);
|
||||
|
||||
struct _IDL_ATTR_DCL {
|
||||
unsigned f_readonly : 1;
|
||||
IDL_tree param_type_spec;
|
||||
IDL_tree simple_declarations;
|
||||
};
|
||||
#define IDL_ATTR_DCL(a) IDL_CHECK_CAST(a, IDLN_ATTR_DCL, idl_attr_dcl)
|
||||
extern IDL_tree IDL_attr_dcl_new (unsigned f_readonly,
|
||||
IDL_tree param_type_spec,
|
||||
IDL_tree simple_declarations);
|
||||
|
||||
struct _IDL_OP_DCL {
|
||||
unsigned __f_noscript : 1; /* Deprecated */
|
||||
unsigned f_oneway : 1;
|
||||
/* XPIDL extension (varags) */
|
||||
unsigned f_varargs : 1;
|
||||
IDL_tree op_type_spec;
|
||||
IDL_tree ident;
|
||||
IDL_tree parameter_dcls;
|
||||
IDL_tree raises_expr;
|
||||
IDL_tree context_expr;
|
||||
};
|
||||
#define IDL_OP_DCL(a) IDL_CHECK_CAST(a, IDLN_OP_DCL, idl_op_dcl)
|
||||
extern IDL_tree IDL_op_dcl_new (unsigned f_oneway,
|
||||
IDL_tree op_type_spec,
|
||||
IDL_tree ident,
|
||||
IDL_tree parameter_dcls,
|
||||
IDL_tree raises_expr,
|
||||
IDL_tree context_expr);
|
||||
|
||||
enum IDL_param_attr {
|
||||
IDL_PARAM_IN,
|
||||
IDL_PARAM_OUT,
|
||||
IDL_PARAM_INOUT
|
||||
};
|
||||
|
||||
struct _IDL_PARAM_DCL {
|
||||
enum IDL_param_attr attr;
|
||||
IDL_tree param_type_spec;
|
||||
IDL_tree simple_declarator;
|
||||
};
|
||||
#define IDL_PARAM_DCL(a) IDL_CHECK_CAST(a, IDLN_PARAM_DCL, idl_param_dcl)
|
||||
extern IDL_tree IDL_param_dcl_new (enum IDL_param_attr attr,
|
||||
IDL_tree param_type_spec,
|
||||
IDL_tree simple_declarator);
|
||||
|
||||
struct _IDL_CASE_STMT {
|
||||
IDL_tree labels;
|
||||
IDL_tree element_spec;
|
||||
};
|
||||
#define IDL_CASE_STMT(a) IDL_CHECK_CAST(a, IDLN_CASE_STMT, idl_case_stmt)
|
||||
extern IDL_tree IDL_case_stmt_new (IDL_tree labels,
|
||||
IDL_tree element_spec);
|
||||
|
||||
struct _IDL_INTERFACE {
|
||||
IDL_tree ident;
|
||||
IDL_tree inheritance_spec;
|
||||
IDL_tree body;
|
||||
};
|
||||
#define IDL_INTERFACE(a) IDL_CHECK_CAST(a, IDLN_INTERFACE, idl_interface)
|
||||
extern IDL_tree IDL_interface_new (IDL_tree ident,
|
||||
IDL_tree inheritance_spec,
|
||||
IDL_tree body);
|
||||
|
||||
struct _IDL_FORWARD_DCL {
|
||||
IDL_tree ident;
|
||||
};
|
||||
#define IDL_FORWARD_DCL(a) IDL_CHECK_CAST(a, IDLN_FORWARD_DCL, idl_forward_dcl)
|
||||
extern IDL_tree IDL_forward_dcl_new (IDL_tree ident);
|
||||
|
||||
struct _IDL_MODULE {
|
||||
IDL_tree ident;
|
||||
IDL_tree definition_list;
|
||||
};
|
||||
#define IDL_MODULE(a) IDL_CHECK_CAST(a, IDLN_MODULE, idl_module)
|
||||
extern IDL_tree IDL_module_new (IDL_tree ident,
|
||||
IDL_tree definition_list);
|
||||
|
||||
enum IDL_binop {
|
||||
IDL_BINOP_OR,
|
||||
IDL_BINOP_XOR,
|
||||
IDL_BINOP_AND,
|
||||
IDL_BINOP_SHR,
|
||||
IDL_BINOP_SHL,
|
||||
IDL_BINOP_ADD,
|
||||
IDL_BINOP_SUB,
|
||||
IDL_BINOP_MULT,
|
||||
IDL_BINOP_DIV,
|
||||
IDL_BINOP_MOD
|
||||
};
|
||||
|
||||
struct _IDL_BINOP {
|
||||
enum IDL_binop op;
|
||||
IDL_tree left, right;
|
||||
};
|
||||
#define IDL_BINOP(a) IDL_CHECK_CAST(a, IDLN_BINOP, idl_binop)
|
||||
extern IDL_tree IDL_binop_new (enum IDL_binop op,
|
||||
IDL_tree left,
|
||||
IDL_tree right);
|
||||
|
||||
enum IDL_unaryop {
|
||||
IDL_UNARYOP_PLUS,
|
||||
IDL_UNARYOP_MINUS,
|
||||
IDL_UNARYOP_COMPLEMENT
|
||||
};
|
||||
|
||||
struct _IDL_UNARYOP {
|
||||
enum IDL_unaryop op;
|
||||
IDL_tree operand;
|
||||
};
|
||||
#define IDL_UNARYOP(a) IDL_CHECK_CAST(a, IDLN_UNARYOP, idl_unaryop)
|
||||
extern IDL_tree IDL_unaryop_new (enum IDL_unaryop op,
|
||||
IDL_tree operand);
|
||||
|
||||
/* XPIDL code fragments extension. */
|
||||
struct _IDL_CODEFRAG {
|
||||
char *desc;
|
||||
GSList *lines;
|
||||
};
|
||||
#define IDL_CODEFRAG(a) IDL_CHECK_CAST(a, IDLN_CODEFRAG, idl_codefrag)
|
||||
extern IDL_tree IDL_codefrag_new (char *desc,
|
||||
GSList *lines);
|
||||
|
||||
/*
|
||||
* IDL_tree_type - Enumerations of node types
|
||||
*
|
||||
* Note this enumerator list is subject to change in the future. A program should not need
|
||||
* more than a recompilation to adjust for a change in this list, so instead of using a
|
||||
* statically initialized jumptable, allocate an array of size IDLN_LAST and assign the
|
||||
* elements manually.
|
||||
*/
|
||||
typedef enum {
|
||||
IDLN_NONE,
|
||||
IDLN_ANY,
|
||||
|
||||
IDLN_LIST,
|
||||
IDLN_GENTREE,
|
||||
IDLN_INTEGER,
|
||||
IDLN_STRING,
|
||||
IDLN_WIDE_STRING,
|
||||
IDLN_CHAR,
|
||||
IDLN_WIDE_CHAR,
|
||||
IDLN_FIXED,
|
||||
IDLN_FLOAT,
|
||||
IDLN_BOOLEAN,
|
||||
IDLN_IDENT,
|
||||
IDLN_TYPE_DCL,
|
||||
IDLN_CONST_DCL,
|
||||
IDLN_EXCEPT_DCL,
|
||||
IDLN_ATTR_DCL,
|
||||
IDLN_OP_DCL,
|
||||
IDLN_PARAM_DCL,
|
||||
IDLN_FORWARD_DCL,
|
||||
IDLN_TYPE_INTEGER,
|
||||
IDLN_TYPE_FLOAT,
|
||||
IDLN_TYPE_FIXED,
|
||||
IDLN_TYPE_CHAR,
|
||||
IDLN_TYPE_WIDE_CHAR,
|
||||
IDLN_TYPE_STRING,
|
||||
IDLN_TYPE_WIDE_STRING,
|
||||
IDLN_TYPE_BOOLEAN,
|
||||
IDLN_TYPE_OCTET,
|
||||
IDLN_TYPE_ANY,
|
||||
IDLN_TYPE_OBJECT,
|
||||
IDLN_TYPE_TYPECODE,
|
||||
IDLN_TYPE_ENUM,
|
||||
IDLN_TYPE_SEQUENCE,
|
||||
IDLN_TYPE_ARRAY,
|
||||
IDLN_TYPE_STRUCT,
|
||||
IDLN_TYPE_UNION,
|
||||
IDLN_MEMBER,
|
||||
IDLN_NATIVE,
|
||||
IDLN_CASE_STMT,
|
||||
IDLN_INTERFACE,
|
||||
IDLN_MODULE,
|
||||
IDLN_BINOP,
|
||||
IDLN_UNARYOP,
|
||||
IDLN_CODEFRAG,
|
||||
|
||||
IDLN_LAST
|
||||
} IDL_tree_type;
|
||||
IDL_IMPORT const char * IDL_tree_type_names[];
|
||||
|
||||
struct _IDL_tree_node {
|
||||
IDL_tree_type _type;
|
||||
IDL_tree up; /* Do not recurse */
|
||||
IDL_declspec_t declspec;
|
||||
GHashTable *properties;
|
||||
int refs;
|
||||
char *_file; /* Internal use */
|
||||
int _line; /* Internal use */
|
||||
union {
|
||||
struct _IDL_LIST idl_list;
|
||||
struct _IDL_GENTREE idl_gentree;
|
||||
struct _IDL_INTEGER idl_integer;
|
||||
struct _IDL_STRING idl_string;
|
||||
struct _IDL_WIDE_STRING idl_wide_string;
|
||||
struct _IDL_CHAR idl_char;
|
||||
struct _IDL_WIDE_CHAR idl_wide_char;
|
||||
struct _IDL_FIXED idl_fixed;
|
||||
struct _IDL_FLOAT idl_float;
|
||||
struct _IDL_BOOLEAN idl_boolean;
|
||||
struct _IDL_IDENT idl_ident;
|
||||
struct _IDL_TYPE_DCL idl_type_dcl;
|
||||
struct _IDL_CONST_DCL idl_const_dcl;
|
||||
struct _IDL_EXCEPT_DCL idl_except_dcl;
|
||||
struct _IDL_ATTR_DCL idl_attr_dcl;
|
||||
struct _IDL_OP_DCL idl_op_dcl;
|
||||
struct _IDL_PARAM_DCL idl_param_dcl;
|
||||
struct _IDL_FORWARD_DCL idl_forward_dcl;
|
||||
struct _IDL_TYPE_FLOAT idl_type_float;
|
||||
struct _IDL_TYPE_FIXED idl_type_fixed;
|
||||
struct _IDL_TYPE_INTEGER idl_type_integer;
|
||||
struct _IDL_TYPE_ENUM idl_type_enum;
|
||||
struct _IDL_TYPE_STRING idl_type_string;
|
||||
struct _IDL_TYPE_WIDE_STRING idl_type_wide_string;
|
||||
struct _IDL_TYPE_SEQUENCE idl_type_sequence;
|
||||
struct _IDL_TYPE_ARRAY idl_type_array;
|
||||
struct _IDL_TYPE_STRUCT idl_type_struct;
|
||||
struct _IDL_TYPE_UNION idl_type_union;
|
||||
struct _IDL_MEMBER idl_member;
|
||||
struct _IDL_NATIVE idl_native;
|
||||
struct _IDL_CASE_STMT idl_case_stmt;
|
||||
struct _IDL_INTERFACE idl_interface;
|
||||
struct _IDL_MODULE idl_module;
|
||||
struct _IDL_BINOP idl_binop;
|
||||
struct _IDL_UNARYOP idl_unaryop;
|
||||
struct _IDL_CODEFRAG idl_codefrag;
|
||||
} u;
|
||||
|
||||
/* Fields for application use */
|
||||
guint32 flags;
|
||||
gpointer data;
|
||||
};
|
||||
#define IDL_NODE_TYPE(a) ((a)->_type)
|
||||
#define IDL_NODE_TYPE_NAME(a) ((a)?IDL_tree_type_names[IDL_NODE_TYPE(a)]:"NULL")
|
||||
#define IDL_NODE_UP(a) ((a)->up)
|
||||
#define IDL_NODE_PROPERTIES(a) ((a)->properties)
|
||||
#define IDL_NODE_DECLSPEC(a) ((a)->declspec)
|
||||
#define IDL_NODE_REFS(a) ((a)->refs)
|
||||
#define IDL_NODE_IS_LITERAL(a) \
|
||||
(IDL_NODE_TYPE(a) == IDLN_INTEGER || \
|
||||
IDL_NODE_TYPE(a) == IDLN_STRING || \
|
||||
IDL_NODE_TYPE(a) == IDLN_WIDE_STRING || \
|
||||
IDL_NODE_TYPE(a) == IDLN_CHAR || \
|
||||
IDL_NODE_TYPE(a) == IDLN_WIDE_CHAR || \
|
||||
IDL_NODE_TYPE(a) == IDLN_FIXED || \
|
||||
IDL_NODE_TYPE(a) == IDLN_FLOAT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_BOOLEAN)
|
||||
#define IDL_NODE_IS_TYPE(a) \
|
||||
(IDL_NODE_TYPE(a) == IDLN_TYPE_INTEGER || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_STRING || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_WIDE_STRING || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_CHAR || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_WIDE_CHAR || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_FIXED || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_FLOAT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_BOOLEAN || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_OCTET || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_ANY || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_OBJECT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_TYPECODE || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_ENUM || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_ARRAY || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_SEQUENCE || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_STRUCT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_UNION)
|
||||
#define IDL_NODE_IS_SCOPED(a) \
|
||||
(IDL_NODE_TYPE(a) == IDLN_IDENT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_INTERFACE || \
|
||||
IDL_NODE_TYPE(a) == IDLN_MODULE || \
|
||||
IDL_NODE_TYPE(a) == IDLN_EXCEPT_DCL || \
|
||||
IDL_NODE_TYPE(a) == IDLN_OP_DCL || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_ENUM || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_STRUCT || \
|
||||
IDL_NODE_TYPE(a) == IDLN_TYPE_UNION)
|
||||
|
||||
typedef struct _IDL_ns * IDL_ns;
|
||||
|
||||
struct _IDL_ns {
|
||||
IDL_tree global;
|
||||
IDL_tree file;
|
||||
IDL_tree current;
|
||||
GHashTable *inhibits;
|
||||
GHashTable *filename_hash;
|
||||
};
|
||||
#define IDL_NS(a) (*(a))
|
||||
|
||||
typedef enum {
|
||||
IDL_INPUT_REASON_INIT,
|
||||
IDL_INPUT_REASON_FILL,
|
||||
IDL_INPUT_REASON_ABORT,
|
||||
IDL_INPUT_REASON_FINISH
|
||||
} IDL_input_reason;
|
||||
|
||||
union IDL_input_data {
|
||||
struct {
|
||||
const char *filename;
|
||||
} init;
|
||||
struct {
|
||||
char *buffer;
|
||||
size_t max_size;
|
||||
} fill;
|
||||
};
|
||||
|
||||
typedef int (*IDL_input_callback) (IDL_input_reason reason,
|
||||
union IDL_input_data *data,
|
||||
gpointer user_data);
|
||||
|
||||
typedef int (*IDL_msg_callback) (int level,
|
||||
int num,
|
||||
int line,
|
||||
const char *filename,
|
||||
const char *message);
|
||||
|
||||
typedef struct _IDL_tree_func_state IDL_tree_func_state;
|
||||
typedef struct _IDL_tree_func_data IDL_tree_func_data;
|
||||
|
||||
/* Traversal state data. Recursive walks chain states. */
|
||||
struct _IDL_tree_func_state {
|
||||
IDL_tree_func_state *up;
|
||||
IDL_tree start;
|
||||
IDL_tree_func_data *bottom;
|
||||
};
|
||||
|
||||
/* This holds a list of the up hierarchy traversed, beginning from traversal. This is
|
||||
* useful since nodes referenced after initial definition will have a different traversal
|
||||
* path than the actual up path. */
|
||||
struct _IDL_tree_func_data {
|
||||
IDL_tree_func_state *state;
|
||||
IDL_tree_func_data *up;
|
||||
IDL_tree tree;
|
||||
gint step;
|
||||
gpointer data; /* Application data */
|
||||
};
|
||||
|
||||
typedef gboolean (*IDL_tree_func) (IDL_tree_func_data *tnfd,
|
||||
gpointer user_data);
|
||||
|
||||
extern IDL_tree IDL_check_type_cast (const IDL_tree var,
|
||||
IDL_tree_type type,
|
||||
const char *file,
|
||||
int line,
|
||||
const char *function);
|
||||
|
||||
extern const char * IDL_get_libver_string (void);
|
||||
|
||||
extern const char * IDL_get_IDLver_string (void);
|
||||
|
||||
extern int IDL_parse_filename (const char *filename,
|
||||
const char *cpp_args,
|
||||
IDL_msg_callback msg_cb,
|
||||
IDL_tree *tree, IDL_ns *ns,
|
||||
unsigned long parse_flags,
|
||||
int max_msg_level);
|
||||
|
||||
extern int IDL_parse_filename_with_input (const char *filename,
|
||||
IDL_input_callback input_cb,
|
||||
gpointer input_cb_user_data,
|
||||
IDL_msg_callback msg_cb,
|
||||
IDL_tree *tree, IDL_ns *ns,
|
||||
unsigned long parse_flags,
|
||||
int max_msg_level);
|
||||
|
||||
extern int IDL_ns_prefix (IDL_ns ns,
|
||||
const char *s);
|
||||
|
||||
extern void IDL_ns_ID (IDL_ns ns,
|
||||
const char *s);
|
||||
|
||||
extern void IDL_ns_version (IDL_ns ns,
|
||||
const char *s);
|
||||
|
||||
extern int IDL_inhibit_get (void);
|
||||
|
||||
extern void IDL_inhibit_push (void);
|
||||
|
||||
extern void IDL_inhibit_pop (void);
|
||||
|
||||
extern void IDL_file_set (const char *filename,
|
||||
int line);
|
||||
|
||||
extern void IDL_file_get (const char **filename,
|
||||
int *line);
|
||||
|
||||
extern IDL_tree IDL_get_parent_node (IDL_tree p,
|
||||
IDL_tree_type type,
|
||||
int *scope_levels);
|
||||
|
||||
extern IDL_tree IDL_tree_get_scope (IDL_tree p);
|
||||
|
||||
extern int IDL_tree_get_node_info (IDL_tree tree,
|
||||
char **who,
|
||||
char **what);
|
||||
|
||||
extern void IDL_tree_error (IDL_tree p,
|
||||
const char *fmt,
|
||||
...)
|
||||
G_GNUC_PRINTF (2, 3);
|
||||
|
||||
extern void IDL_tree_warning (IDL_tree p,
|
||||
int level,
|
||||
const char *fmt,
|
||||
...)
|
||||
G_GNUC_PRINTF (3, 4);
|
||||
|
||||
extern const char * IDL_tree_property_get (IDL_tree tree,
|
||||
const char *key);
|
||||
|
||||
extern void IDL_tree_property_set (IDL_tree tree,
|
||||
const char *key,
|
||||
const char *value);
|
||||
|
||||
extern gboolean IDL_tree_property_remove (IDL_tree tree,
|
||||
const char *key);
|
||||
|
||||
extern void IDL_tree_properties_copy (IDL_tree from_tree,
|
||||
IDL_tree to_tree);
|
||||
|
||||
extern void IDL_tree_remove_inhibits (IDL_tree *tree,
|
||||
IDL_ns ns);
|
||||
|
||||
extern void IDL_tree_walk (IDL_tree p,
|
||||
IDL_tree_func_data *current,
|
||||
IDL_tree_func pre_tree_func,
|
||||
IDL_tree_func post_tree_func,
|
||||
gpointer user_data);
|
||||
|
||||
extern void IDL_tree_walk_in_order (IDL_tree p,
|
||||
IDL_tree_func tree_func,
|
||||
gpointer user_data);
|
||||
|
||||
extern void IDL_tree_free (IDL_tree root);
|
||||
|
||||
extern void IDL_tree_to_IDL (IDL_tree p,
|
||||
IDL_ns ns,
|
||||
FILE *output,
|
||||
unsigned long output_flags);
|
||||
|
||||
extern GString * IDL_tree_to_IDL_string (IDL_tree p,
|
||||
IDL_ns ns,
|
||||
unsigned long output_flags);
|
||||
|
||||
extern gchar * IDL_do_escapes (const char *s);
|
||||
|
||||
extern IDL_tree IDL_resolve_const_exp (IDL_tree p,
|
||||
IDL_tree_type type);
|
||||
|
||||
extern IDL_ns IDL_ns_new (void);
|
||||
|
||||
extern void IDL_ns_free (IDL_ns ns);
|
||||
|
||||
extern IDL_tree IDL_ns_resolve_this_scope_ident (IDL_ns ns,
|
||||
IDL_tree scope,
|
||||
IDL_tree ident);
|
||||
|
||||
extern IDL_tree IDL_ns_resolve_ident (IDL_ns ns,
|
||||
IDL_tree ident);
|
||||
|
||||
extern IDL_tree IDL_ns_lookup_this_scope (IDL_ns ns,
|
||||
IDL_tree scope,
|
||||
IDL_tree ident,
|
||||
gboolean *conflict);
|
||||
|
||||
extern IDL_tree IDL_ns_lookup_cur_scope (IDL_ns ns,
|
||||
IDL_tree ident,
|
||||
gboolean *conflict);
|
||||
|
||||
extern IDL_tree IDL_ns_place_new (IDL_ns ns,
|
||||
IDL_tree ident);
|
||||
|
||||
extern void IDL_ns_push_scope (IDL_ns ns,
|
||||
IDL_tree ident);
|
||||
|
||||
extern void IDL_ns_pop_scope (IDL_ns ns);
|
||||
|
||||
extern IDL_tree IDL_ns_qualified_ident_new (IDL_tree nsid);
|
||||
|
||||
extern gchar * IDL_ns_ident_to_qstring (IDL_tree ns_ident,
|
||||
const char *join,
|
||||
int scope_levels);
|
||||
|
||||
extern int IDL_ns_scope_levels_from_here (IDL_ns ns,
|
||||
IDL_tree ident,
|
||||
IDL_tree parent);
|
||||
|
||||
extern gchar * IDL_ns_ident_make_repo_id (IDL_ns ns,
|
||||
IDL_tree p,
|
||||
const char *p_prefix,
|
||||
int *major,
|
||||
int *minor);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __IDL_H */
|
||||
|
Before Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 20 KiB |
@ -1,40 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Product Branding Issues</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H3>
|
||||
Product Branding Instructions</H3>
|
||||
Under the terms of the Unlimited Localization Program, you must remove
|
||||
or replace all trademarked Netscape terms, brand names, icons, images,
|
||||
etc. These trademarks are listed on the page found at the following
|
||||
URL:
|
||||
|
||||
<P><A HREF="http://home.netscape.com/misc/trademarks.html#trademarks">http://home.netscape.com/misc/trademarks.html#trademarks</A>
|
||||
|
||||
<P>Please refer to that page for details. You may not release a localized
|
||||
version of the Netscape Communicator with these trademarks left in the
|
||||
product.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="usingKit.html#branding">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER><BR>
|
||||
<FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape Communications
|
||||
Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,100 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Getting Started</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H2>
|
||||
<A NAME="getting started"></A>2. Getting Started</H2>
|
||||
Before you can begin using the Windows Installer Localization Kit, you
|
||||
must install it and setup your working directories. This is a simple matter
|
||||
of unzipping the compressed kit file(s) into the proper directories. Your
|
||||
system must also meet certain requirements to run the tools needed to perform
|
||||
the localization steps described below.
|
||||
|
||||
<P>
|
||||
<HR WIDTH="50%">
|
||||
<H3>
|
||||
<A NAME="sysreqs"></A>System Requirements</H3>
|
||||
There few system requirements for the kit in the strictest sense; however,
|
||||
your choice of tools will have their own set of requirements. The
|
||||
most likely minimum configuration will be as follows:
|
||||
<UL>
|
||||
<LI>
|
||||
100% IBM compatible PC</LI>
|
||||
|
||||
<LI>
|
||||
Pentium<SUP><FONT SIZE=-1>®</FONT></SUP> processor</LI>
|
||||
|
||||
<LI>
|
||||
Microsoft<SUP><FONT SIZE=-1>®</FONT></SUP> Windows NT 3.51 or 4.0 (localized
|
||||
versions will help testing but aren't required)</LI>
|
||||
|
||||
<LI>
|
||||
16 MB RAM</LI>
|
||||
|
||||
<LI>
|
||||
30 MB available hard disk space</LI>
|
||||
|
||||
<LI>
|
||||
InstallShield International version 3.0 or other install builder software</LI>
|
||||
|
||||
<LI>
|
||||
A visual resource editor, such as those provided with Microsoft<SUP><FONT SIZE=-1>®</FONT></SUP>
|
||||
Visual C++, Borland<SUP><FONT SIZE=-1>®</FONT></SUP> C++, etc.</LI>
|
||||
|
||||
<LI>
|
||||
An active Internet connection and the ability to ftp (send and receive)
|
||||
large files</LI>
|
||||
|
||||
<LI>
|
||||
A Web browser (say, for example, Netscape Communicator ;-)</LI>
|
||||
</UL>
|
||||
|
||||
<H3>
|
||||
|
||||
<HR WIDTH="50%"></H3>
|
||||
|
||||
<H3>
|
||||
<A NAME="install"></A>Installing the Kit</H3>
|
||||
It is recommended that you install the Windows Installer Localization Kit
|
||||
into the same directory as your other Netscape/Mozilla localization kits:
|
||||
in other words, install this kit into your <B>kitRoot </B>directory.
|
||||
Place this localization kit's .ZIP file in that directory and UNZIP it
|
||||
with the -d parameter:
|
||||
|
||||
<P>PKUNZIP -d <I>filename</I>
|
||||
<UL><B>Example: <TT>PKUNZIP -d instkit</TT></B></UL>
|
||||
|
||||
<HR WIDTH="50%">
|
||||
<H3>
|
||||
<A NAME="configtool"></A>Configuring Your Tools</H3>
|
||||
Please refer to your Installshield or other install builder tool's documentation
|
||||
for set up and usage instructions.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="nomenclature.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="usingKit.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS]</A></CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER></CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,203 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>ISO Locale codes</TITLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
|
||||
<CENTER>
|
||||
<H1>
|
||||
ISO Language and Country Codes</H1></CENTER>
|
||||
2 letter language codes are derived from the ISO 639 standard; country
|
||||
codes are from ISO 3166. Here are the codes for the locales currently supported
|
||||
by the L10n kits. If an entry also includes the country code then you must
|
||||
use that as well when creating the locale directory or naming a file.
|
||||
<H3>
|
||||
ISO Language and Country Codes table</H3>
|
||||
|
||||
<TABLE BORDER=5 >
|
||||
<TR>
|
||||
<TD><U>Language Name</U></TD>
|
||||
|
||||
<TD><U>Language Code</U></TD>
|
||||
|
||||
<TD><U>Country Code</U></TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Chinese (Traditional)</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>zh</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>CN</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Chinese (Simplified)</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>zh</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>TW</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Danish</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>da</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>DK</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Dutch</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>nl</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>NL</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>French</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>fr</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>FR</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>German</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>de</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>DE</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Italian</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>it</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>IT</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Japanese</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>ja</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>JP</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Korean</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>ko</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>KR</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Portuguese</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>pt</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>BR</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Spanish</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>es</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>ES</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>Swedish</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>sv</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>SE</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<CENTER><BR>
|
||||
<FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1997, Copyright Netscape Communications
|
||||
Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,99 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Kit Overview</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H3>
|
||||
<A NAME="kitoverview"></A>Kit Overview</H3>
|
||||
This kit is primarily intended for knowledgeable developers who are familiar
|
||||
with the localization process, with InstallShield or other installation
|
||||
programs, and with Windows resource editors. There are two basic
|
||||
approaches you can take to create an installer for your localized Communicator,
|
||||
Navigator or Mozilla derivative product:
|
||||
<OL>
|
||||
<LI>
|
||||
Use an existing Communicator or Navigator Export product installer as a
|
||||
base and add your localized files, or</LI>
|
||||
|
||||
<LI>
|
||||
Create your own install program and use the registry setting information
|
||||
provided by the kit.</LI>
|
||||
</OL>
|
||||
|
||||
<UL>
|
||||
<H4>
|
||||
<A NAME="method1"></A>Overview of Method 1.</H4>
|
||||
For this method you will need the following components:
|
||||
<BR>
|
||||
<UL>
|
||||
<LI>
|
||||
Your own copy of InstallShield version 3 International</LI>
|
||||
|
||||
<LI>
|
||||
The appropriate version of a Netscape Communicator or Navigator installer.</LI>
|
||||
|
||||
<LI>
|
||||
This localization kit.</LI>
|
||||
|
||||
<LI>
|
||||
A text editor.</LI>
|
||||
|
||||
<LI>
|
||||
A resource editor (e.g., MSDEV)</LI>
|
||||
</UL>
|
||||
|
||||
|
||||
<P>You will start with an Export version of a Netscape Communicator or
|
||||
Navigator installer. Then, you will extract the localizable components
|
||||
and modify them as desired. You will localize a number of strings
|
||||
contained in .INI files using a text editor. You will use a resource editor
|
||||
or the Netscape Translation Tools to localize STRINGTABLE and DIALOG resource
|
||||
types contained in two .DLLs. Once the localizable components of the installer
|
||||
are finished, you will reassemble the installer using the InstallShield
|
||||
EXE BUILDER tool, including your localized Communicator, Navigator or Mozilla
|
||||
derivative product. This process is detailed in the next section.</UL>
|
||||
|
||||
<UL>
|
||||
<H4>
|
||||
<A NAME="method2"></A>Overview of Method 2.</H4>
|
||||
For this method you will need the following components:
|
||||
<BR>
|
||||
<UL>
|
||||
<LI>
|
||||
Your own copy of any install builder software</LI>
|
||||
|
||||
<LI>
|
||||
This localization kit</LI>
|
||||
</UL>
|
||||
|
||||
|
||||
<P>You will create your own installation program in whatever fashion you
|
||||
wish. In order for your localized product to function properly, your
|
||||
installer will need to implement certain <A HREF="registrySettings.html">Windows
|
||||
registry settings</A>.</UL>
|
||||
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="projectOverview.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="kitStruct.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER><FONT SIZE=-1> 1998, Copyright Netscape Communications Corp.
|
||||
All Rights Reserved</FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,63 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Kit Structure</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H3>
|
||||
<A NAME="kitstruct"></A>Kit Structure and Organization</H3>
|
||||
When you install this localization kit you will find a number of new directories
|
||||
on your hard disk. Each directory is named so as to be fairly self-explanatory,
|
||||
but the following diagram and description may help avoid any confusion
|
||||
you may have about what's what.
|
||||
<H4>
|
||||
<IMG SRC="l10ntree.jpg" BORDER=0 HEIGHT=98 WIDTH=177></H4>
|
||||
|
||||
<H4>
|
||||
Description of Kit Directories</H4>
|
||||
|
||||
<UL>
|
||||
<LI>
|
||||
The <B><TT>kitRoot</TT> </B>directory is wherever you install the Netscape
|
||||
Localization Kits.</LI>
|
||||
|
||||
<LI>
|
||||
The <B><TT>l10nkits</TT> </B>directory contains the tools (if any) and
|
||||
documentation you need to complete your work.</LI>
|
||||
|
||||
<LI>
|
||||
Since this kit concerns the Windows client product (as opposed to our server
|
||||
products) all the relevant documentation and tools are found under the
|
||||
<B><TT>client\windows </TT></B>directory.</LI>
|
||||
|
||||
<LI>
|
||||
The <B><TT>docs</TT> </B>directory contains documentation on the kit, including
|
||||
the file you are reading now.</LI>
|
||||
</UL>
|
||||
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="kitOverview.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="nomenclature.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,51 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize AIM.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for AIM.INI</H4>
|
||||
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
|
||||
|
||||
<LI>
|
||||
Change Netscape trademarks to your own product name(s).</LI>
|
||||
</UL>
|
||||
|
||||
<B>Specific Notes:</B>
|
||||
<P>
|
||||
File Copy String=<B>Copying Netscape AOL Instant Messenger Service files...</B>
|
||||
|
||||
<P>
|
||||
Installation String=<B>Installing Netscape AOL Instant Messenger Service files...</B>
|
||||
|
||||
<P>
|
||||
Configuration String=<B>Configuring Netscape AOL Instant Messenger Service...</B>
|
||||
|
||||
<P>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<P>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,65 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize CD.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for CD.INI</H4>
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
|
||||
|
||||
<LI>
|
||||
Update the product version number as appropriate.</LI>
|
||||
|
||||
<LI>
|
||||
Modify the locale code according to the ISO 639 and ISO 3166 standards.
|
||||
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
|
||||
|
||||
<LI>
|
||||
You may need to move the placement of "%s" variables in your translation.</LI>
|
||||
|
||||
<LI>
|
||||
Do not exceed the length of US string for Deinstall Dialog Wait Message.</LI>
|
||||
|
||||
<LI>
|
||||
Change Netscape trademarks to your own product name(s).</LI>
|
||||
</UL>
|
||||
<B>Specific Notes:</B>
|
||||
|
||||
<P>Product Setup Title1= <B>Deinstaller</B>
|
||||
|
||||
<P>Product Version=<B>4.03 </B>(<B>en</B>)
|
||||
|
||||
<P>Deinstall Dialog Message=<B>Are you sure you want to deinstall</B> <B>Netscape
|
||||
Communicator 4.03</B> ?
|
||||
|
||||
<P>Deinstall Dialog Wait Message=<B>Parsing</B> <B>Netscape Communicator
|
||||
4.03 deinstall log file</B> %s (<B>this will take several minutes)...</B>
|
||||
|
||||
<P>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
<BR>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,62 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize COSMO.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for COSMO.INI</H4>
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
|
||||
|
||||
<LI>
|
||||
Update the product version number as appropriate.</LI>
|
||||
|
||||
<LI>
|
||||
Modify the locale code according to the ISO 639 and ISO 3166 standards.
|
||||
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
|
||||
</UL>
|
||||
<B>Specific Notes:</B>
|
||||
<BR>
|
||||
<BR>Installation String=<B>Installing Cosmo Player files...</B>
|
||||
|
||||
<P>Configuration String=<B>Configuring Cosmo Player...</B>
|
||||
|
||||
<P>File Copy String=<B>Copying Cosmo Player files... </B>
|
||||
|
||||
<P>Description=<B>VRML 2.0 support </B>
|
||||
|
||||
<P>[Registry Entries-Reg2]
|
||||
<BR>HKEY Value=<B>4.03 </B>(<B>en</B>)
|
||||
|
||||
<P>[Registry Entries-Reg3]
|
||||
<BR>HKEY Key Path=Software\Netscape\Cosmo\<B>4.03</B> (<B>en</B>)
|
||||
|
||||
<P>[Registry Entries-Reg4]
|
||||
<BR>HKEY Key Path=Software\Netscape\Cosmo\<B>4.03 </B>(<B>en</B>)\Main
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
<BR>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,32 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize _ISUSER.DLL</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for _ISUSER.DLL</H4>
|
||||
All dialogs in this .DLL can be localized.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table1">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,45 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize MMEDIA.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for MMEDIA.INI</H4>
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
|
||||
|
||||
</UL>
|
||||
<B>Specific Notes:</B>
|
||||
|
||||
<P>Installation String=<B>Installing Audio/Video Playback files...</B>
|
||||
|
||||
<P>Configuration String=<B>Configuring Audio/Video Playback...</B>
|
||||
|
||||
<P>File Copy String=<B>Copying Audio/Video Playback files...</B>
|
||||
|
||||
<P>Description=<B>Support for multi-media web pages</B>
|
||||
<P>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<P>
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,68 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Localizing MPLAY32.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for MPLAY32.INI</H4>
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
|
||||
|
||||
<LI>
|
||||
Update the product version number as appropriate.</LI>
|
||||
|
||||
<LI>
|
||||
Modify the locale code according to the ISO 639 and ISO 3166 standards.
|
||||
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
|
||||
|
||||
<LI>
|
||||
Change Netscape trademarks to your own product name(s).</LI>
|
||||
</UL>
|
||||
<B>Specific Notes:</B>
|
||||
|
||||
<P>Installation String=<B>Installing Netscape Media Player files...</B>
|
||||
|
||||
<P>Configuration String=<B>Configuring Netscape Media Player...</B>
|
||||
|
||||
<P>File Copy String=<B>Copying Netscape Media Player files...</B>
|
||||
|
||||
<P>Description=<B>Streaming audio support</B>
|
||||
|
||||
<P>[Default Folder-Icon2]
|
||||
<BR>ProgramFolder=[Default Folder]\<B>Utilities</B>
|
||||
|
||||
<P>[Registry Entries-Reg2]
|
||||
<BR>HKEY Value=<B>4.03 </B>(<B>en</B>)
|
||||
|
||||
<P>[Registry Entries-Reg3]
|
||||
<BR>HKEY Key Path=Software\Netscape\Media Player\<B>4.03 </B>(<B>en</B>)
|
||||
|
||||
<P>[Registry Entries-Reg4]
|
||||
<BR>HKEY Key Path=Software\Netscape\Media Player\<B>4.03 </B>(<B>en</B>)\Main
|
||||
|
||||
<P>[Registry Entries-Reg5]
|
||||
<BR>HKEY Key Path=Software\Netscape\Media Player\<B>4.03</B> (<B>en</B>)\Main
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> <BR>
|
||||
<FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape Communications
|
||||
Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,154 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize NAV40.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for NAV40.INI</H4>
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Do not exceed the length of English string if possible.</LI>
|
||||
|
||||
<LI>
|
||||
Modify the locale code according to the ISO 639 and ISO 3166 standards.
|
||||
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
|
||||
|
||||
<LI>
|
||||
The "Utilities" folder name may be localized.</LI>
|
||||
|
||||
<LI>
|
||||
"Item name" is the name that will appear under the associated icon; these
|
||||
may be localized.</LI>
|
||||
|
||||
<LI>
|
||||
You may need to move the placement of "%s" variables in your translation.</LI>
|
||||
|
||||
<LI>
|
||||
Change Netscape trademarks to your own product name(s).</LI>
|
||||
</UL>
|
||||
<B>Specific Notes:</B>
|
||||
|
||||
<P>Installation String=<B>Installing Netscape Communicator 4.03 files...</B>
|
||||
|
||||
<P>Configuration String=<B>Configuring Netscape Communicator 4.03...</B>
|
||||
|
||||
<P>File Copy String=<B>Copying Netscape Communicator 4.03 files...</B>
|
||||
|
||||
<P>Description=<B>Contains Collabra, Composer, Messenger, and Navigator</B>.
|
||||
|
||||
<P>Warn Previous Version Message=<B>Setup has detected a previous installation
|
||||
of</B> %s. <B>If you installed plugins or helper applications with a previous
|
||||
installation, you will need to reinstall them to this version of</B> <B>Communicator.</B>
|
||||
|
||||
<P>[Navigator 1]
|
||||
<BR>Message=<B>Setup has detected that an instance of Navigator is currently
|
||||
running. Please quit Navigator before running Setup.</B>
|
||||
|
||||
<P>[Navigator 2]
|
||||
<BR>Message=<B>Setup has detected that an instance of Navigator is currently
|
||||
running. Please quit</B> <B>Navigator before running Setup.</B>
|
||||
|
||||
<P>[Navigator 3]
|
||||
<BR>Message=<B>Setup has detected that an instance of Navigator is currently
|
||||
running. Please quit</B> <B>Navigator before running Setup.</B>
|
||||
|
||||
<P>[NSMail Notifier]
|
||||
<BR>Message=<B>Installation cannot continue because the Mail Notification
|
||||
program is currently running. Use your right mouse button to click the
|
||||
Mail icon next to the task bar clock and select 'Exit' to disable Mail
|
||||
Notification, then run the installer again.</B>
|
||||
|
||||
<P>[Navigator 4.05 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.05 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.04 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.04 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.03 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.02 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.02 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.01 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.01 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.0 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.0 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.0b6 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.0b6 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.0b5 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.0b5 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.0b4 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.0b4 (<B>en</B>)\Main
|
||||
|
||||
<P>[Navigator 4.0b3 32]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.0b3 [<B>en</B>]\Main
|
||||
|
||||
<P>[Default Folder-Icon11]
|
||||
<BR>ItemName=<B>User Profile Manager</B>
|
||||
|
||||
<P>[Default Folder-Icon12]
|
||||
<BR>ProgramFolder=[Default Folder]\<B>Utilities</B>
|
||||
<BR>ItemName=<B>User Profile Manager</B>
|
||||
|
||||
<P>[Default Folder-Icon13]
|
||||
<BR>ItemName=<B>Netscape Mail Notification</B>
|
||||
|
||||
<P>[Default Folder-Icon14]
|
||||
<BR>ProgramFolder=[Default Folder]\<B>Utilities</B>
|
||||
<BR>ItemName=<B>Netscape Mail Notification</B>
|
||||
|
||||
<P>[Registry Entries-R14]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)
|
||||
|
||||
<P>[Registry Entries-R15]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
|
||||
|
||||
<P>[Registry Entries-R16]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
|
||||
|
||||
<P>[Registry Entries-R17]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
|
||||
|
||||
<P>[Registry Entries-R18]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
|
||||
|
||||
<P>[Registry Entries-R19]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netscape Navigator\4.03 (<B>en</B>)\Main
|
||||
|
||||
<P>[Registry Entries-R37]
|
||||
<BR>HKEY Value=4.03 (<B>en</B>)
|
||||
|
||||
<P>[Registry Entries-R38]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netcaster\4.03 (<B>en</B>)\Main
|
||||
|
||||
<P>[Registry Entries-R39]
|
||||
<BR>HKEY Key Path=Software\Netscape\Netcaster\4.03 (<B>en</B>)\Main
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER></CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,49 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize NETCAST.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for NETCAST.INI</H4>
|
||||
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
|
||||
|
||||
<LI>
|
||||
Change Netscape trademarks to your own product name(s).</LI>
|
||||
</UL>
|
||||
|
||||
<B>Specific Notes:</B>
|
||||
<P>
|
||||
Installation String=<B>Installing Netscape Netcaster files...</B>
|
||||
<P>
|
||||
Configuration String=<B>Configuring Netscape Netcaster...</B>
|
||||
<P>
|
||||
File Copy String=<B>Copying Netscape Netcaster files...</B>
|
||||
|
||||
<P>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<P>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,67 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localizing NSCONF.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for NSCONF.INI</H4>
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Only translate the strings which are shown in <B>bold</B> type face below.</LI>
|
||||
|
||||
<LI>
|
||||
Update the product version number as appropriate.</LI>
|
||||
|
||||
<LI>
|
||||
Modify the locale code according to the ISO 639 and ISO 3166 standards.
|
||||
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
|
||||
|
||||
<LI>
|
||||
Change Netscape trademarks to your own product name(s).</LI>
|
||||
</UL>
|
||||
<B>Specific Notes:</B>
|
||||
|
||||
<P>Installation String=<B>Installing Netscape Conference files...</B>
|
||||
|
||||
<P>Configuration String=<B>Configuring Netscape Conference...</B>
|
||||
|
||||
<P>File Copy String=<B>Copying Netscape Conference files...</B>
|
||||
|
||||
<P>Description=<B>Real-time collaboration and audio conferencing</B>
|
||||
|
||||
<P>[Registry Entries-Reg17]
|
||||
<BR>HKEY Value=<B>4.03</B> (<B>en</B>)
|
||||
|
||||
<P>[Registry Entries-Reg18]
|
||||
<BR>HKEY Key Path=Software\Netscape\Conference\<B>4.03 </B>(<B>en</B>)
|
||||
|
||||
<P>[Registry Entries-Reg19]
|
||||
<BR>HKEY Key Path=Software\Netscape\Conference\<B>4.03</B> (<B>en</B>)\Main
|
||||
|
||||
<P>[Registry Entries-Reg20]
|
||||
<BR>HKEY Key Path=Software\Netscape\Conference\<B>4.03</B> (<B>en</B>)\Main<BR>
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table2">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER></CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,71 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize RSUTIL.DLL</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for RSUTIL.DLL</H4>
|
||||
<B>STRINGTABLES</B><B></B>
|
||||
|
||||
<P><B><FONT COLOR="#FF0000">Do not translate the following strings:</FONT></B>
|
||||
|
||||
<P>STRING ID:
|
||||
<BR><I>1 </I>
|
||||
<BR><I>17 18 19 </I>
|
||||
<BR><I>20 21 22 23 24 25 26 27 28 29 </I>
|
||||
<BR><I>30 31 32 33 34 35 36 37 38 39 </I>
|
||||
<BR><I>40 41 42 43 44 45 46 47 48 49 </I>
|
||||
<BR><I>50 51 52 53 54 55 56 57 58 59 </I>
|
||||
<BR><I>60 61 62 63 64 65 66 67 68 69 </I>
|
||||
<BR><I>70 71 72 73 74 75 76 77 78 79 </I>
|
||||
<BR><I>80 81 82 83 85 86 88 </I>
|
||||
<BR><I>90 91 92 95 97 98 99</I>
|
||||
<BR><I>100 101 102 103 104 105 106 107 108 109</I>
|
||||
<BR><I>110 111 112 113 114</I>
|
||||
<BR><I>122 123 126 127 129</I>
|
||||
<BR><I>132 133 134 135 136 137 138 139</I>
|
||||
<BR><I>140 145 149</I>
|
||||
<BR><I>151 153 154 155 156 157 158 159</I>
|
||||
<BR><I>162 163 164 165 166 167 169 </I>
|
||||
<BR><I>170 171 172 173 174 175 176 177 178 179</I>
|
||||
<BR><I>180 181 182 183 184 185 187 188</I>
|
||||
<BR><I>190 192 193 194 195 196 197 198 199</I>
|
||||
<BR><I>200 201 202 203 204 205 206 207 208 209</I>
|
||||
<BR><I>210 211 212 213 214 215 216 217 218 219</I>
|
||||
<BR><I>220 221 222 226 227 228 229 </I>
|
||||
<BR><I>230 232 233 234 235 236 237 238 239</I>
|
||||
<BR><I>240 241 242 243 244 245 246 247 248 249</I>
|
||||
<BR><I>250 251 252 253 254 255 256 257 </I>
|
||||
<BR><I>260 261 263 264 265 266 267 269</I>
|
||||
<BR><I>270 271 272 273 274 275 276 277 278 279</I>
|
||||
<BR><I>280 281 282 283</I>
|
||||
<BR>
|
||||
<BR>
|
||||
<HR WIDTH="50%">
|
||||
<BR><B>ICONS</B>
|
||||
<BR>Replace any trademarked icons, as described in the universal localization
|
||||
program license agreement, with your own icons.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table1">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,138 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<TITLE>Localize SETUP.INI</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H4>
|
||||
Localization notes for SETUP.INI</H4>
|
||||
<B>General Notes:</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Only translate the strings which are shown in bold type face below.</LI>
|
||||
|
||||
<LI>
|
||||
The "StartCopy Dialog Message" should be less than 256 bytes long.</LI>
|
||||
|
||||
<LI>
|
||||
For the "Multiple Components" section, both the key and the value may be
|
||||
localized (optional).</LI>
|
||||
|
||||
<LI>
|
||||
If the key "Multimedia Support" is localized then next section name should
|
||||
be identical to the localized key.</LI>
|
||||
|
||||
<LI>
|
||||
Change Netscape trademarks to your own product name(s).</LI>
|
||||
|
||||
<LI>
|
||||
Update the version number as appropriate.</LI>
|
||||
|
||||
<LI>
|
||||
Modify the locale code according to the ISO 639 and ISO 3166 standards.
|
||||
(See the <A HREF="reference.html">Reference section</A> for details).</LI>
|
||||
</UL>
|
||||
<B>Specific Notes:</B>
|
||||
|
||||
<P>Product Setup Title1= <B>Setup</B>
|
||||
|
||||
<P>Product Version=<B>4.03 </B>(<B>en</B>)
|
||||
|
||||
<P>Deinstall Version=<B>4.03 </B>(<B>en</B>)
|
||||
|
||||
<P>License Dialog Title=<B>Software License Agreement</B>
|
||||
|
||||
<P>License Dialog Message=<B>Please read the following license agreement.
|
||||
Use the scroll bar to view the rest of this agreement.</B>
|
||||
|
||||
<P>License Dialog Question=<B>Do you accept all the terms of the preceding
|
||||
license agreement? If so, click on the Yes button. If you select No, Setup
|
||||
will close.</B>
|
||||
|
||||
<P>License Icon Description=<B>License Agreement</B>
|
||||
|
||||
<P>Welcome Dialog Title=<B>Netscape Communicator 4.03 Setup</B>
|
||||
|
||||
<P>Welcome Dialog Message=<B>Welcome to Netscape Communicator 4.03 Setup</B>.
|
||||
|
||||
<P>SetupType Dialog Title=<B>Setup Type</B>
|
||||
|
||||
<P>SetupType Dialog Message=<B>Select the type of setup you prefer.</B>
|
||||
|
||||
<P>Insufficient Space Dialog Title=<B>Insufficient Space</B>
|
||||
|
||||
<P>Insufficient Space Dialog Message=<B>The path below contains insufficient
|
||||
space.</B>
|
||||
|
||||
<P>Path Dialog Title=<B>Choose Destination Location</B>
|
||||
|
||||
<P>Path Dialog Message=<B>Please enter the location where you would like
|
||||
to install </B>Netscape Communicator 4.03
|
||||
<BR><B>components. You may type a new directory name or click the Browse
|
||||
button to find a new location.</B>
|
||||
|
||||
<P>Options Dialog Title=<B>Netscape Communicator 4.03 Options</B>
|
||||
|
||||
<P>Options Dialog Message=<B>Check the components you would like to install.</B>
|
||||
|
||||
<P>Associations Dialog Title=<B>Setup Associations</B>
|
||||
|
||||
<P>Associations Dialog Message=<B>Check the extensions you would like Communicator
|
||||
to set up. These extensions will be associated with Communicator components.</B>
|
||||
|
||||
<P>Select Folder Dialog Title=<B>Select Program Folder</B>
|
||||
|
||||
<P>StartCopy Dialog Title=<B>Start Copying Files</B>
|
||||
|
||||
<P>StartCopy Dialog Message=<B>Setup has enough information to start copying
|
||||
the program files. If you want to review or change settings, click Back.
|
||||
If you are satisfied with the current settings, click Install to begin
|
||||
copying files.</B>
|
||||
|
||||
<P>Readme Dialog Prompt=<B>Would you like to view the README file now?</B>
|
||||
|
||||
<P>Finish Dialog Prompt=<B>Setup is complete. You may run Netscape Communicator
|
||||
4.03 by double-clicking on one of the icons in the folder.</B>
|
||||
|
||||
<P>Reboot Dialog Title=<B>Restarting Windows</B>
|
||||
|
||||
<P>Reboot Dialog Message=<B>Setup has finished copying files to your computer.
|
||||
Before you can use the program, you must restart Windows or your computer.</B>
|
||||
|
||||
<P>Exit Dialog Message=<B>Are you sure you want to exit setup?</B>
|
||||
|
||||
<P>Error Resource Message1=<B>Could not load Resource: </B>%s
|
||||
<BR>Error Resource Message2=<B>Attempted to fix the problem. Please restart
|
||||
the setup application.</B>
|
||||
<BR>Error Resource Message3=<B>Could not get module handle of rsutil.dll.
|
||||
System memory could be corrupted. Please reboot and try again.</B>
|
||||
|
||||
<P>[Multiple Components]
|
||||
<BR><B>Multimedia Support</B>=<B>Extension modules for Netscape Communicator
|
||||
4.03</B>
|
||||
|
||||
<P>[<B>Multimedia Support</B>]
|
||||
<BR>Default Path=
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="localize_these_files.html#table1">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,55 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
|
||||
<TITLE>Localizing URLs</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H3>
|
||||
<A NAME="localizeURLs"></A>Localizing URLs</H3>
|
||||
Many resources of all types in the Communicator contain Internet addresses
|
||||
in the form of URLs (Universal Resource Locators). Most of these point
|
||||
to locations within the Netscape domain; as part of the Unlimited Localization
|
||||
Program, you can leave these as they are, or you may change them as you
|
||||
desire.
|
||||
<H3>
|
||||
Internal URLs</H3>
|
||||
There are a number of internal URLs that <FONT COLOR="#FF0000">should not
|
||||
be changed</FONT>. These are the strings that look like <B>about:[some
|
||||
value]</B>. These point to internally contained resources, such as
|
||||
the main About Communicator page. If you localize these strings you
|
||||
will not be able to load these pages. The main examples you might
|
||||
find are:
|
||||
<UL>
|
||||
<LI>
|
||||
about:</LI>
|
||||
|
||||
<LI>
|
||||
about:plugins</LI>
|
||||
|
||||
<LI>
|
||||
about:fonts</LI>
|
||||
</UL>
|
||||
For more examples and information on these internal URLs go <A HREF="http://help.netscape.com/kb/client/970513-4.html">here</A>.
|
||||
<BR>
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="usingKit.html#localizeURLs">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> <BR>
|
||||
<FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape Communications
|
||||
Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,125 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Localize these Files</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H3>
|
||||
<A NAME="localize_these_files"></A>Localize These Files</H3>
|
||||
This section tells you exactly what files need to be localized. The following
|
||||
tables contain two columns:
|
||||
<UL>
|
||||
<LI>
|
||||
The file to be localized column gives the specific file name. The path
|
||||
name <I>temp</I> refers to wherever you have copied the uncompressed installer
|
||||
files in Step 2 of the <A HREF="usingKit.html#l10nchecklist">Localization
|
||||
Checklist</A>. If the file or resource name is a hypertext link, further
|
||||
information can be found by following that link.</LI>
|
||||
|
||||
<LI>
|
||||
The purpose column describes the basic purpose of this file.</LI>
|
||||
</UL>
|
||||
<A NAME="table1"></A><FONT SIZE=-1>Table 1. Binary files to be localized</FONT>
|
||||
<TABLE BORDER >
|
||||
<TR>
|
||||
<TD><B>File to be localized </B></TD>
|
||||
|
||||
<TD><B>Purpose</B></TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><TT><A HREF="localizeRsutil.html">rsutil.dll</A></TT></TD>
|
||||
|
||||
<TD>Installer STRINGTABLE and ICON resources. </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><TT><A HREF="localizeIsuser.html">_isuser.dll</A></TT></TD>
|
||||
|
||||
<TD>Installer DIALOG resources.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
<A NAME="table2"></A><FONT SIZE=-1>Table 2. .INI files to be localized</FONT>
|
||||
<TABLE BORDER >
|
||||
<TR>
|
||||
<TD><B>File to be localized</B></TD>
|
||||
|
||||
<TD><B>Purpose</B></TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeAim.html">aim.ini</A></TD>
|
||||
|
||||
<TD>AOL Instant Messgenger initialization file.*</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeCD.html">cd.ini</A></TD>
|
||||
|
||||
<TD>Deinstaller initialization file.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeCosmo.html">cosmo.ini</A></TD>
|
||||
|
||||
<TD>Cosmo player initialization file.*</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeMmedia.html">mmedia.ini</A></TD>
|
||||
|
||||
<TD>Multimedia initialization file.*</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeMplay.html">mplay32.ini</A></TD>
|
||||
|
||||
<TD>Media Player initialization file.*</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeNav40.html">nav40.ini</A></TD>
|
||||
|
||||
<TD>Main product initialization file.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeNetcast.html">netcast.ini</A></TD>
|
||||
|
||||
<TD>Netcaster initialization file.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeNsconf.html">nsconf.ini</A></TD>
|
||||
|
||||
<TD>Netscape Conference initialization file.*</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="localizeSetup.html">setup.ini</A></TD>
|
||||
|
||||
<TD>Main setup initialization file.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<P>
|
||||
* These files come with the Complete installer version.
|
||||
<P>
|
||||
<CENTER><TABLE COLS=1 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<P>
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,109 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Conventions</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H3>
|
||||
<A NAME="nomenclature"></A>Nomenclature and Typographical Conventions</H3>
|
||||
<B>Typographical Conventions</B>
|
||||
<BR>Words in <I>italics</I> typeface represent a variable term or phrase,
|
||||
meant to be replaced by another value at "runtime." Example:
|
||||
<UL><I>locale</I> -- replaced by a 2- or 4 letter locale code; e.g. zhtw</UL>
|
||||
Words in <B>bold</B> typeface, using a proportional font, represent a literal
|
||||
value in a string that might also contain a variable word or phrase. Example:
|
||||
<UL><B>4.03 [</B><I>locale</I><B>]</B> -- 4.03 [ ] are literal values,
|
||||
while <I>locale</I> is a variable.
|
||||
<UL> </UL>
|
||||
</UL>
|
||||
Words in a <TT>fixed width font</TT> represent file or directory names,
|
||||
or DOS or Windows commands to be typed as they appear. Sometimes,
|
||||
part or all of the path will be in <B><TT>bold</TT></B>, for emphasis.
|
||||
Examples:
|
||||
<UL>Change to the <B><TT><I>kitRoot</I>\l10nkits\client\windows\tools</TT></B><TT>
|
||||
</TT>directory
|
||||
<BR>Execute <B><TT>RTRNKIT</TT></B></UL>
|
||||
<B>Nomenclature</B>
|
||||
<BR>Throughout this document, certain terms and phrases will be used repeatedly:
|
||||
|
||||
<P><FONT SIZE=-1>Table 1. Nomenclature and Typographical Conventions</FONT>
|
||||
<TABLE BORDER >
|
||||
<TR>
|
||||
<TD><B><TT>kitRoot</TT> </B>directory </TD>
|
||||
|
||||
<TD>indicates the starting or topmost directory of the Windows Front End
|
||||
Localization Kit.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><I>platform</I></TD>
|
||||
|
||||
<TD>either 16 or 32 bit, depending on the version you are working on.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><I>locale</I></TD>
|
||||
|
||||
<TD>in general, this refers to the language into which you are localizing
|
||||
the product. The list of valid locale names is defined in the <A HREF="isocodes.htm">ISO
|
||||
Language and Country Codes Table</A>.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>localization database</TD>
|
||||
|
||||
<TD>a database generated by a leveraging tool from a set of matched binary
|
||||
resource files. </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>localization notes</TD>
|
||||
|
||||
<TD>any special instructions, including the "translate/don't translate"
|
||||
flag, associated with a given resource. Localization notes are contained
|
||||
in the localization database for each resource module.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><I>leverage</I></TD>
|
||||
|
||||
<TD>The process of merging previous localized versions of a file into a
|
||||
current version. </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>forbidden resource</TD>
|
||||
|
||||
<TD>A resource that cannot be changed from the original value without (negatively)
|
||||
impacting the functionality of the product. These are identified in the
|
||||
localization databases.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="kitStruct.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="gettingStarted.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,57 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Project Overview</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H2>
|
||||
<A NAME="overviews"></A>1. Project Overview</H2>
|
||||
|
||||
<CENTER><B><FONT COLOR="#009900">Welcome to the Communicator/Navigator
|
||||
Installer Localization Kit!</FONT></B></CENTER>
|
||||
|
||||
|
||||
<P>Under the universal localization program, you are free to create an
|
||||
installer for a localized Communicator, Navigator or Mozilla derivative
|
||||
product in any way you choose. This localization kit will assist you in
|
||||
creating a your installer for the 32-bit Windows platform. As long as you
|
||||
follow the terms of the universal localization program license agreement,
|
||||
you are free to do what you want with the resulting localized product and
|
||||
installer.
|
||||
|
||||
<P>The Netscape Communicator and Netscape Navigator 4.x installation programs
|
||||
were created with InstallShield<SUP><FONT SIZE=-1>®</FONT></SUP> version
|
||||
3. Because this is the proprietary product of InstallShield Corporation,
|
||||
Netscape cannot redistribute the complete source for these installers.
|
||||
You may, however, modify an existing Communicator or Navigator installer,
|
||||
or if you choose, you may build your own installer "from scratch".
|
||||
|
||||
<P><B>Note</B>: because of the U.S. Government's restrictions on the export
|
||||
of strong cryptography, <B>you may only distribute the "export" version</B>
|
||||
of the Netscape binaries. Please keep this in mind as you work with
|
||||
the localization kit instructions.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="splash.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="kitOverview.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,54 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Reference</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H2>
|
||||
<A NAME="reference"></A>Reference</H2>
|
||||
This section summarizes the references used throughout this document.
|
||||
In addition, other miscellaneous references may be found here.
|
||||
|
||||
<P><FONT SIZE=-1>Table 5. Reference Links</FONT>
|
||||
<TABLE BORDER COLS=3 WIDTH="100%" >
|
||||
<TR>
|
||||
<TD><A HREF="isocodes.htm">Locale Table (local)</A></TD>
|
||||
|
||||
<TD><A HREF="http://www.indigo.ie/egt/standards/iso639/iso639-en.html">Locale
|
||||
Table (remote)</A></TD>
|
||||
|
||||
<TD><A HREF="registrySettings.html">Windows Registry Settings Reference</A></TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><A HREF="http://home.netscape.com/menu/intl/">Communicator International
|
||||
Features</A></TD>
|
||||
|
||||
<TD><A HREF="http://help.netscape.com/kb/client/970513-4.html"></A></TD>
|
||||
|
||||
<TD><FONT COLOR="#009900"><A HREF="charsets.htm"></A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A HREF="allxpstr.h"></A>
|
||||
|
||||
<P>
|
||||
<CENTER><TABLE COLS=1 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER></CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,612 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
|
||||
<TITLE>Windows Registry Settings</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H1>
|
||||
Windows Registry Settings</H1>
|
||||
This document is provided as a reference to the Windows registry settings
|
||||
implemented by Communicator and Navigator. You may use this as a
|
||||
guide to the registry settings you must implement if you create your own
|
||||
installation program (as opposed to localizing an existing Netscape installer).
|
||||
|
||||
<P>Note that in the Netscape installers, these settings are implemented
|
||||
only within .INI files. This simplifies modifying and localizing
|
||||
the installer. It is recommended that your installer do the same.
|
||||
|
||||
<P>You may observe the registry changes made by any product with tools
|
||||
such as <A HREF="http://www.ntinternals.com/regmon.htm">Regmon.</A> This
|
||||
may be a useful addition to your toolset.
|
||||
|
||||
<P>These notes are applicable to Netscape Communicator version 4.03.
|
||||
<BR>
|
||||
<TABLE BORDER COLS=1 WIDTH="100%" >
|
||||
<TR>
|
||||
<TD><B>MPLAY32.INI</B>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Media Player
|
||||
<BR>Name : CurrentVersion
|
||||
<BR>Value: 4.03 (en)
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Media Player\4.03 (en)
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Media Player\4.03 (en)\Main
|
||||
<BR>Name : Install Directory
|
||||
<BR>Value: [Default Path]\MPlayer
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : Program Folder
|
||||
<BR>Value: [Program Folder]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\.LAM
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: LAMDocument
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\LAMDocument\shell\open\command
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [WINSYSDIR]\mplay32.exe %1
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : (Default)
|
||||
<BR>Value: [WINDIR]\mplayer.exe %1
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\LAMDocument\DefaultIcon
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\MPlayer\npcfg32.exe ,0
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI32
|
||||
<BR>Name : LiveAudioFile
|
||||
<BR>Value: mcilma32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI
|
||||
<BR>Name : LiveAudioFile
|
||||
<BR>Value: mcilma.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI32
|
||||
<BR>Name : LiveAudioMetafile
|
||||
<BR>Value: mcilau32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc
|
||||
<BR>Name : mcilau32.dll
|
||||
<BR>Value: (MCI) Netscape Media Player
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI
|
||||
<BR>Name : LiveAudioMetafile
|
||||
<BR>Value: mcilau.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI
|
||||
Extensions
|
||||
<BR>Name : LAM
|
||||
<BR>Value: LiveAudioMetafile
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : LMA
|
||||
<BR>Value: LiveAudioFile
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : LA
|
||||
<BR>Value: LiveAudioFile
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc
|
||||
<BR>Name : mcilma32.dll
|
||||
<BR>Value: (MCI) Netscape Packetized Audio
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32
|
||||
<BR>Name : MSACM.NSPAC
|
||||
<BR>Value: NSPAC32.ACM
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc
|
||||
<BR>Name : NSPAC32.ACM
|
||||
<BR>Value: elemedia(TM) AX24000P Music Codec
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32
|
||||
<BR>Name : MSACM.voxacm118
|
||||
<BR>Value: vdk32118.acm
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc
|
||||
<BR>Name : vdk32118.acm
|
||||
<BR>Value: Voxware 32bit Codec
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32
|
||||
<BR>Name : MSACM.NSX83
|
||||
<BR>Value: NSX83P32.ACM
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc
|
||||
<BR>Name : NSX83P32.ACM
|
||||
<BR>Value: elemedia(TM) SX8300 Speech Codec
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32
|
||||
<BR>Name : MSACM.NSMLAW
|
||||
<BR>Value: NSMLAW32.DLL
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc
|
||||
<BR>Name : NSMLAW32.DLL
|
||||
<BR>Value: Netscape G.711 Decoder
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
<HR WIDTH="100%">
|
||||
<BR><B>NAV40.INI</B>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App
|
||||
Paths\Netscape.exe
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\Netscape.exe
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : Path
|
||||
<BR>Value: [Default Path]\Program
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{7865A9A1-33A8-11d0-BED9-00A02468FAB6}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\brpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{543EC0D0-6AB7-11d0-BF56-00A02468FAB6}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\brpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{543EC0D1-6AB7-11d0-BF56-00A02468FAB6}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\brpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{2D0A7D70-748C-11d0-9705-00805F8AA8B8}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\edpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{E8D6B4F0-8B58-11d0-9B63-00805F8ADDDE}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\mnpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{DDF4AB60-8B84-11d0-9B63-00805F8ADDDE}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\mnpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{CC3E2871-43CA-11d0-B6D8-00805F8ADDDE}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\mnpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{CC3E2872-43CA-11d0-B6D8-00805F8ADDDE}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\mnpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netscape Navigator
|
||||
<BR>Name : CurrentVersion
|
||||
<BR>Value: 4.03 (en)
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netscape Navigator\Users
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netscape Navigator\4.03
|
||||
(en)
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netscape Navigator\4.03
|
||||
(en)\Main
|
||||
<BR>Name : Install Directory
|
||||
<BR>Value: [Default Path]
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : Java Directory
|
||||
<BR>Value: [Default Path]\Program\Java
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : NetHelp Directory
|
||||
<BR>Value: [Default Path]\Program\NetHelp
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : Plugins Directory
|
||||
<BR>Value: [Default Path]\Program\Plugins
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : Program Folder
|
||||
<BR>Value: [Program Folder]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CURRENT_USER\Software\Netscape
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CURRENT_USER\Software\Netscape\Netscape Navigator
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CURRENT_USER\Software\Netscape\Netscape Navigator\Main
|
||||
<BR>Name : Install Directory
|
||||
<BR>Value: [Default Path]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\CLSID
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: {61D8DE20-CA9A-11CE-9EA5-0080C82BE3B6}
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\Insertable
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\protocol\StdFileEditing\server
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\Netscape.exe
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\protocol\StdFileEditing\verb\0
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: &Edit
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\open\command
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\Netscape.exe "%1"
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\print\command
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\Netscape.exe /print("%1")
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\print\ddeexec
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [print("%1")]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\PrintTo\command
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\Netscape.exe /printto("%1","%2","%3","%4")
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\PrintTo\ddeexec
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [("%1","%2","%3","%4")]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\open\ddeexec
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: "%1"
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\open\ddeexec\Application
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: NSShell
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\open\ddeexec\Topic
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: WWW_OpenURL
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\Edit\command
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\Netscape.exe -edit "%1"
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\Edit\ddeexec
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [edit("%1")]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster
|
||||
<BR>Name : CurrentVersion
|
||||
<BR>Value: 4.03 (en)
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster\4.03 (en)\Main
|
||||
<BR>Name : Install Directory
|
||||
<BR>Value: [Shell Path]\Netcast
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : Program Folder
|
||||
<BR>Value: [Program Folder]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{C98D0190-7D81-11d0-BF8D-00A02468FAB6}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\brpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{37B601C0-8AC8-11d0-83AF-00805F8A274D}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\brpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\CLSID\{913A4A20-8EBF-11d0-BFAB-00A02468FAB6}\InprocServer32
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\Program\brpref32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\print\ddeexec\Application
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: NSShell
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\PrintTo\ddeexec\Application
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: NSShell
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup\shell\Edit\ddeexec\Application
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: NSShell
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\NetscapeMarkup
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: Hypertext Markup Language
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\telnet
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: URL:Telnet Protocol
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\telnet\shell\open\command
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: telnet %1
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
<HR WIDTH="100%">
|
||||
<BR><B>NETCAST.INI</B>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster
|
||||
<BR>Name : CurrentVersion
|
||||
<BR>Value: 1.0 (en)
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster\1.0 (en)
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Netcaster\1.0 (en)\Main
|
||||
<BR>Name : Install Directory
|
||||
<BR>Value: [Default Path]
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : Program Folder
|
||||
<BR>Value: [Program Folder]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
<HR WIDTH="100%">
|
||||
<BR><B>NSCONF.INI</B>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Conference
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Conference\CurrentVersion
|
||||
<BR>Name : Description
|
||||
<BR>Value: Conference
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : InstallDate
|
||||
<BR>Value: [TIME]
|
||||
<BR>Type : REGDB_NUMBER
|
||||
|
||||
<P>Name : Installed
|
||||
<BR>Value: 1
|
||||
<BR>Type : REGDB_NUMBER
|
||||
|
||||
<P>Name : PathName
|
||||
<BR>Value: [Default Path]
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : SoftwareType
|
||||
<BR>Value: application
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : VersionBuild
|
||||
<BR>Value: 1213
|
||||
<BR>Type : REGDB_NUMBER
|
||||
|
||||
<P>Name : VersionMajor
|
||||
<BR>Value: 1
|
||||
<BR>Type : REGDB_NUMBER
|
||||
|
||||
<P>Name : VersionMinor
|
||||
<BR>Value: 0
|
||||
<BR>Type : REGDB_NUMBER
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32
|
||||
<BR>Name : MSACM.VOXACM118
|
||||
<BR>Value: vdk32118.acm
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : MSACM.NSX83
|
||||
<BR>Value: nsx83p32.acm
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : MSACM.NSX723
|
||||
<BR>Value: sx5363s.acm
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : MSACM.NSMLAW
|
||||
<BR>Value: nsmlaw32.dll
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CURRENT_USER\Software\Netscape
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_CLASSES_ROOT\nscfile\shell\open\command
|
||||
<BR>Name : (Default)
|
||||
<BR>Value: [Default Path]\NSConf32.exe -f "%1"
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Conference
|
||||
<BR>Name : CurrentVersion
|
||||
<BR>Value: 4.03 (en)
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Conference\4.03 (en)
|
||||
<BR>Name : (Default)
|
||||
<BR>Value:
|
||||
<BR>Type :
|
||||
<BR>
|
||||
|
||||
<P>Key : HKEY_LOCAL_MACHINE\Software\Netscape\Conference\4.03 (en)\Main
|
||||
<BR>Name : Install Directory
|
||||
<BR>Value: [Default Path]
|
||||
<BR>Type : REGDB_STRING
|
||||
|
||||
<P>Name : Program Folder
|
||||
<BR>Value: [Program Folder]
|
||||
<BR>Type : REGDB_STRING
|
||||
<BR> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="kitOverview.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,53 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
|
||||
<TITLE>Reporting Bugs</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H3>
|
||||
<A NAME="reporting_bugs"></A>Reporting Bugs</H3>
|
||||
Any bugs in the localization kits you find should be reported to <A HREF="http://www.mozilla.org">mozilla.org</A>
|
||||
as soon as possible. When you report a bug, try to be as specific as you
|
||||
can about the exact steps needed to reproduce the bug. Provide a
|
||||
complete description of the problem versus the expected results.
|
||||
You should let us know if the problem is 100% reproducible (it happens
|
||||
every time), or if it is intermittant. If you think that your operating
|
||||
environment may play some factor, let us know the details of that.
|
||||
Finally, before reporting any bug, you should make sure that the problem
|
||||
doesn't also happen in the US English product (if it does, we still want
|
||||
to know, but it may not be possible to fix it through the localization
|
||||
kits or tools as they are now).
|
||||
|
||||
<P>To report a bug, post a message to the following mozilla.org newsgroup:
|
||||
<BR>
|
||||
<CENTER><A HREF="news://news.mozilla.org/netscape.public.mozilla.general">news://news.mozilla.org/netscape.public.mozilla.general</A></CENTER>
|
||||
|
||||
|
||||
<P>Be sure to include the information described above.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="testKit.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="returnKit.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,54 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
|
||||
<TITLE>Returning the Kit</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H2>
|
||||
<A NAME="returnkit"></A>5. Publishing the Finished Kit</H2>
|
||||
Once you are satisfied with the quality of your localization efforts, you
|
||||
are required by the terms of the universal localization program license
|
||||
agreement to make your localized product publicly available. The exact
|
||||
details of how you do this is up to you, the most commonly acceptable method
|
||||
is to post your localized product to a publicly accessible ftp site.
|
||||
|
||||
<P>You should post just the localized versions of the files mentioned in
|
||||
the Localize These Files section of this document. For ease of transfer,
|
||||
you may create a compressed archive in the .ZIP file format that contains
|
||||
the localized files. Create one .ZIP file for each language/platform you
|
||||
do. If you are publishing more than one language or platform, you may combine
|
||||
multiple .ZIP files into one master .ZIP file if this makes your life easier.
|
||||
|
||||
<P>If your localized product includes your own trademarks, you should identify
|
||||
these and any restrictions you are placing on their use. You must also
|
||||
include a copy of the End User License Agreement (EULA), as well as a notice
|
||||
stating that Netscape Communications is not required to support your product,
|
||||
and that you are the Licensor referred to in the EULA. Please refer to
|
||||
the Universal Localization Agreement for the exact legal requirements.
|
||||
|
||||
<P>Once your localized product is publicly available, you may inform the
|
||||
world in any manner you choose, but we encourage you to also post the download
|
||||
location to the mozilla.org Announcements newsgroup (netscape.public.mozilla.announce).
|
||||
<CENTER> <BR>
|
||||
<FONT COLOR="#008000"><FONT SIZE=+2>Congratulations! You are done!</FONT></FONT></CENTER>
|
||||
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="testKit.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,47 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Title Page</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<CENTER>
|
||||
<H1>
|
||||
NETSCAPE COMMUNICATOR</H1></CENTER>
|
||||
|
||||
<CENTER><IMG SRC="SPLASH.JPG" NOSAVE HEIGHT=261 WIDTH=390></CENTER>
|
||||
|
||||
<CENTER>
|
||||
<H1>
|
||||
Localization Kit</H1></CENTER>
|
||||
|
||||
<CENTER>
|
||||
<H3>
|
||||
for Microsoft<SUP><FONT SIZE=+0>®</FONT></SUP> Windows (32-bit version)</H3></CENTER>
|
||||
|
||||
<CENTER>
|
||||
<H3>
|
||||
Revision 1.1</H3></CENTER>
|
||||
|
||||
<CENTER>Copyright © 1994-1998 Netscape® Communications Corporation,
|
||||
All rights reserved.</CENTER>
|
||||
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="projectOverview.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,150 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Testing the Localized Resources</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H2>
|
||||
<A NAME="testkit"></A>4. Ensuring Quality</H2>
|
||||
The quality of your localized version will have a large impact on its acceptance
|
||||
in the marketplace. You can greatly enhance your chances of producing
|
||||
a quality product by using experienced and skilled localizers, and by performing
|
||||
post-translation testing.
|
||||
|
||||
<P>When performing the actual translation, you should be sensitive to a
|
||||
number of issues:
|
||||
<UL>
|
||||
<LI>
|
||||
Completeness: you should aim for as thorough a translation as possible.
|
||||
Try not to leave portions of the product untranslated. However, be aware
|
||||
that some terms may best be left in English, depending on local conventions.</LI>
|
||||
|
||||
<LI>
|
||||
Suitability: all translations should be suitable and appropriate for product,
|
||||
the language, the market and the customers you intend to reach. This
|
||||
includes using the proper technical terminology for a give platform or
|
||||
computer operation, as well as using language that is readily understood
|
||||
by the average user of the product in a given language. You should,
|
||||
where possible, try to use terminology which is similar to other products
|
||||
available on the same platform (without violating copyrights or trademarks,
|
||||
of course).</LI>
|
||||
|
||||
<LI>
|
||||
Accuracy: you should be sure your translation conveys the same meaning
|
||||
and intention as the original English.</LI>
|
||||
|
||||
<LI>
|
||||
Grammar and spelling: you should be sure your translation is grammatically
|
||||
accurate and free from spelling errors.</LI>
|
||||
</UL>
|
||||
Keep in mind that engineers do not necessarily make the best localizers!
|
||||
|
||||
<P>Once localization is complete, there are two basic types of post-translation
|
||||
testing that should be done:
|
||||
<BR>
|
||||
<TABLE BORDER WIDTH="100%" >
|
||||
<TR>
|
||||
<TD>Linguistic Review</TD>
|
||||
|
||||
<TD>Checking all translations for accuracy and appropriateness in the actual
|
||||
context in which they appear.</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>Functional Testing</TD>
|
||||
|
||||
<TD>Ensuring the product still functions as designed (or at least as well
|
||||
as the US English product).</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<BR>For the linguistic review, you should have an independent reviewer
|
||||
(i.e. not the person who implemented the translations) check every string
|
||||
for the items listed above. In some cases, it may be enough to review
|
||||
the running product itself; however, it is also valuable to print out your
|
||||
translations and review them externally from the product.
|
||||
|
||||
<P>For the functional testing, your best resource are the directions contained
|
||||
in the localization notes and this document. You should review the completed
|
||||
product's localization notes with this document in hand, double checking
|
||||
that you have followed all the instructions contained here.
|
||||
|
||||
<P>Consider the following general guidelines when testing:
|
||||
<UL>
|
||||
<LI>
|
||||
It is helpful to have a second copy of the product running with the English
|
||||
version so you can compare them side by side (a second computer might be
|
||||
helpful or required for this).</LI>
|
||||
|
||||
<LI>
|
||||
Walk through every menu in each module you have localized looking for translation
|
||||
accuracy, pick letter conflicts and other problems.</LI>
|
||||
|
||||
<LI>
|
||||
Bring up as many dialogs as you can, looking for translation accuracy,
|
||||
pick letter conflicts, truncated strings and functionality issues.</LI>
|
||||
|
||||
<LI>
|
||||
Exercise the installer in as many ways as possible:</LI>
|
||||
|
||||
<UL>
|
||||
<LI>
|
||||
Select every installer option</LI>
|
||||
|
||||
<LI>
|
||||
Be sure to test the deinstaller</LI>
|
||||
|
||||
<LI>
|
||||
Look at the icons and folder names created</LI>
|
||||
|
||||
<LI>
|
||||
Use accented or multibyte file and directory names</LI>
|
||||
|
||||
<LI>
|
||||
Install to non-existant and read-only directories</LI>
|
||||
|
||||
<LI>
|
||||
Install to drives with insufficient disk space</LI>
|
||||
|
||||
<LI>
|
||||
etc.</LI>
|
||||
</UL>
|
||||
|
||||
<LI>
|
||||
If functional problems are found, you should compare the same steps you
|
||||
took in the localized product to the English product: if the two products
|
||||
fail in the same way, it is a "core" bug, which can only be fixed by changing
|
||||
the core product's executable. If the localized product fails while the
|
||||
English product does not, then it is probably a translation-related bug;
|
||||
these can be fixed by altering the way you localize the product (perhaps
|
||||
by not translating a particular item, or by translating it differently).</LI>
|
||||
</UL>
|
||||
The following section tells you how to report bugs in the localization
|
||||
kit itself, or in the core product.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="usingKit.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="reportingBugs.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER> </CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,106 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Table of Contents</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H2>
|
||||
Table of Contents</H2>
|
||||
|
||||
<TABLE>
|
||||
<TR>
|
||||
<TD><FONT SIZE=+1>i. <A HREF="splash.html">Title Page</A></FONT>
|
||||
<BR> </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><FONT SIZE=+1>1. <A HREF="projectOverview.html">Project Overview</A></FONT>
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="kitOverview.html">Kit Overview</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="kitStruct.html">Structure and Organization</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="nomenclature.html">Nomenclature and Typographical Conventions<BR>
|
||||
</A> </LI>
|
||||
</UL>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><FONT SIZE=+1>2. <A HREF="gettingStarted.html">Getting Started</A></FONT>
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="gettingStarted.html#sysreqs">System Requirements</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="gettingStarted.html#install">Installing the Kit</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="gettingStarted.html#configtool">Configuring Your Tools</A></LI>
|
||||
</UL>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><FONT SIZE=+1>3. <A HREF="usingKit.html">Using the Kit</A></FONT>
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="usingKit.html#locdbf">Understanding the Localization Notes</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="usingKit.html#l10nchecklist">Localization Checklist</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="localize_these_files.html">Localize These Files</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="usingKit.html#branding">Product Branding Issues</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="usingKit.html#howtol10n">How to Localize Different Resource Types</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="localizeURL.html">Localizing URLs</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="usingKit.html#localize_stringtable">Localizing STRING TABLES</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="usingKit.html#localize_dialogs">Localizing DIALOGS</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="usingKit.html#localize_text">Localizing .INI Files</A></LI>
|
||||
</UL>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><FONT SIZE=+1>4. <A HREF="testKit.html">Ensuring Quality</A></FONT>
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="testKit.html#testkit">Test Considerations</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="reportingBugs.html">Reporting Bugs</A></LI>
|
||||
</UL>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><FONT SIZE=+1>5. <A HREF="returnKit.html">Publishing the Finished Kit</A></FONT>
|
||||
<BR> </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><FONT SIZE=+1>6. <A HREF="reference.html">References</A></FONT> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,323 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Using the Kit</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<TABLE COLS=1 WIDTH="100%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER><B><FONT COLOR="#FF0000">WARNING! Protect yourself from data loss
|
||||
by making regular backups of your work.</FONT></B></CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<H2>
|
||||
<A NAME="usekit"></A>3. Using the Kit</H2>
|
||||
Once your copy of the Windows Installer Localization Kit is correctly installed,
|
||||
you may begin your localization work by following the instructions in the
|
||||
remainder of this document. The next section discusses the contents of
|
||||
the localization notes provided with this kit. It is important that you
|
||||
work properly with the instructions contained in these files or the localized
|
||||
product you create may not function.
|
||||
<H3>
|
||||
<A NAME="locdbf"></A>Understanding the Localization Notes</H3>
|
||||
Each localized module to be installed has an associated initialization
|
||||
(.INI) file. The localization notes for these files, and for the localizable
|
||||
dynamic link libraries used by the InstallShield installer, are provided
|
||||
as HTML documentation. (There are no localization databases in this kit).
|
||||
Additionally, a section detailing the required Windows registry settings
|
||||
is also provided in HTML format.
|
||||
|
||||
<P>The next section presents the basic localization process as a checklist.
|
||||
<CENTER>
|
||||
<HR WIDTH="50%"></CENTER>
|
||||
|
||||
<H3>
|
||||
<A NAME="l10nchecklist"></A>Localization Checklist</H3>
|
||||
This checklist applies to the "<A HREF="kitOverview.html#method1">modifying
|
||||
an existing Communicator installer</A>" method. If you are <A HREF="kitOverview.html#method2">creating
|
||||
your own installer</A>, you will need to adapt this checklist accordingly.
|
||||
A reference is provided to help you implement the correct <A HREF="registrySettings.html">Windows
|
||||
registry settings</A>.
|
||||
|
||||
<P><B>1. Download an existing installer</B>
|
||||
<BR>You will need a matching installer for the product you are localizing.
|
||||
In other words, if you are localizing Netscape Communicator version 4.03,
|
||||
you need an installer for the Export version of Netscape Communicator 4.03.
|
||||
If you are localizing Mozilla Navigator version 5.0, you need an installer
|
||||
for the Export version (if any) of Mozilla Navigator version 5.0. Latest
|
||||
versions of Netscape products can be downloaded from the <A HREF="http://home.netscape.com/download/index.html">Netscape
|
||||
homepage</A>. Older versions of Netscape installers, matching the versions
|
||||
used to generate the localization kits, can be found on the <A HREF="ftp://ftp.mozilla.org/pub/l10n-kits/">mozilla.org
|
||||
ftp site</A>.
|
||||
|
||||
<P>Current Netscape installers come in two forms: base and complete. Complete
|
||||
installers include plugins and other components besides the basic Communicator
|
||||
software. You may use either installer as the foundation for your work,
|
||||
but note that there may not be localization kits for the additional components.
|
||||
Even if you choose to distribute the English version of these components,
|
||||
however, you must modify the associated initialization files, listed in
|
||||
the <A HREF="localize_these_files.html#table1">Localize These Files</A>
|
||||
page in order for the additional components to be installed properly.
|
||||
|
||||
<P><B>2. Uncompress the Installer files</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Run the installer you downloaded in step 1. This will bring up the following
|
||||
dialog (or something very similar):</LI>
|
||||
|
||||
<BR><IMG SRC="Is1.jpg" HEIGHT=101 WIDTH=364>
|
||||
<LI>
|
||||
Click yes. InstallShield will extract all the installation files to your
|
||||
temporary directory. (Usually, this will be C:\temp or something similar).
|
||||
Once this process is complete, the blue InstallShield background will display.</LI>
|
||||
|
||||
<LI>
|
||||
Without exiting the installer, locate the unpacked installer files in your
|
||||
temp directory and copy them to a new directory. Call this directory "install"
|
||||
(or something similar).</LI>
|
||||
|
||||
<LI>
|
||||
Exit the installer.</LI>
|
||||
</UL>
|
||||
<B>3. Uncompress the Deinstaller files</B>
|
||||
<UL>
|
||||
<LI>
|
||||
Change directories to your "install" directory. Locate the file cd32*.exe
|
||||
(where * equals the version number you are working on. For example, version
|
||||
4.03 would be represented as cd32403.exe).</LI>
|
||||
|
||||
<LI>
|
||||
Execute cd32*.exe. This will bring up a dialog similar to the one shown
|
||||
is step 2. Click yes and wait until InstallShield has finished unpacking
|
||||
the deinstaller files (the blue InstallShield background will display).</LI>
|
||||
|
||||
<LI>
|
||||
Without exiting the installer, locate the unpacked deinstaller files in
|
||||
your temp directory and copy them to a new directory. Call this directory
|
||||
"deinstall" (or something similar).</LI>
|
||||
|
||||
<LI>
|
||||
Exit the installer.</LI>
|
||||
</UL>
|
||||
<B>4. Extract localizable installer .DLLs</B>
|
||||
<BR>Change directories to your "install" directory. Use the InstallShield
|
||||
tool ICOMP.EXE to extract RSUTIL.DLL and _ISUSER.DLL from _SETUP.LIB:
|
||||
<UL><TT>Example: icomp _setup.lib -d</TT></UL>
|
||||
<B>4. Localize files</B>
|
||||
<BR>Consult the <A HREF="localize_these_files.html#table1">Localize These
|
||||
Files</A> page to learn which files contain localizable resources.
|
||||
|
||||
<P>For each file to be localized, locate the associated Localization Notes
|
||||
for that file and follow them carefully.
|
||||
|
||||
<P><B>5. Replace original product files contained in nav40.z with localized
|
||||
product files</B>
|
||||
<BR>Use the ICOMP tool to replace the original (English language) Communicator
|
||||
or Navigator files with the ones you have localized using the Windows Front
|
||||
End Localization Kit.
|
||||
<UL>
|
||||
<LI>
|
||||
Make sure your localized product directory structure matches the structure
|
||||
inside the compressed file nav40.z. (If necessary, uncompress nav40.z (including
|
||||
subdirectories), and replace all the localizable files (as identified by
|
||||
the Windows Front End Localization Kit) with your localized versions).</LI>
|
||||
|
||||
<LI>
|
||||
Update nav40.z with your localized files:</LI>
|
||||
|
||||
<UL><TT>Example: icomp \<I>kitRoot</I>\products\client\windows\<I>platform</I>\<I>locale</I>\*.*
|
||||
nav40.z -i</TT></UL>
|
||||
</UL>
|
||||
<B>6. Rebuild the self-extracting deinstaller program</B>
|
||||
<BR>Use the InstallShield tool EXE Builder to reassemble the self-extracting
|
||||
deinstaller archive.
|
||||
<UL>
|
||||
<LI>
|
||||
Specify your "deinstall" directory as the source directory.</LI>
|
||||
|
||||
<LI>
|
||||
Set compression on.</LI>
|
||||
|
||||
<LI>
|
||||
Specify Setup.exe as the command line program to run when self-extraction
|
||||
is complete. (No optional parameters are required.)</LI>
|
||||
|
||||
<LI>
|
||||
Specify your "install" directory as the target directory.</LI>
|
||||
|
||||
<LI>
|
||||
Enter the name of your localized product as the application name.</LI>
|
||||
|
||||
<LI>
|
||||
Do not specify a password.</LI>
|
||||
|
||||
<LI>
|
||||
Once creation of your localized self-extracting deinstaller is complete,
|
||||
locate the file Setupex.exe in your "install" directory and rename it to
|
||||
match the original name of the deinstaller self-extracting program (e.g.,
|
||||
cd32403.exe).</LI>
|
||||
</UL>
|
||||
<B>7. Rebuild the self-extracting installer program</B>
|
||||
<BR>Use the InstallShield tool EXE Builder to reassemble the self-extracting
|
||||
installer archive.
|
||||
<UL>
|
||||
<LI>
|
||||
Specify your "install" directory as the source directory.</LI>
|
||||
|
||||
<LI>
|
||||
Set compression on.</LI>
|
||||
|
||||
<LI>
|
||||
Specify Setup.exe as the command line program to run when self-extraction
|
||||
is complete. (No optional parameters are required.)</LI>
|
||||
|
||||
<LI>
|
||||
Specify any directory you want as the target directory.</LI>
|
||||
|
||||
<LI>
|
||||
Enter the name of your localized product as the application name.</LI>
|
||||
|
||||
<LI>
|
||||
Do not specify a password.</LI>
|
||||
|
||||
<LI>
|
||||
Once creation of your localized self-extracting installer is complete,
|
||||
locate the file Setupex.exe in your target directory and rename it to something
|
||||
meaningful.</LI>
|
||||
</UL>
|
||||
<B>8. Complete post-translation processing</B>
|
||||
<BR>After translation is complete, you need to test your work and deal
|
||||
with any problems:
|
||||
<UL>
|
||||
<LI>
|
||||
Test the localized installer.</LI>
|
||||
|
||||
<LI>
|
||||
Fix translation bugs using your localization tools or a resource editor.</LI>
|
||||
|
||||
<LI>
|
||||
Fix dialog size bugs using your localization tools or a resource editor.</LI>
|
||||
|
||||
<LI>
|
||||
Report core bugs to Netscape.</LI>
|
||||
</UL>
|
||||
<B>9. Publish your localized product to the Internet</B>
|
||||
<BR>As the terms of the universal localization program license agreement
|
||||
state, your localized product
|
||||
|
||||
<P><TT>"must be made publicly available in executable code form,</TT>
|
||||
<BR><TT>free of charge, for electronic delivery via a mechanism</TT>
|
||||
<BR><TT>generally accepted in the software development</TT>
|
||||
<BR><TT>community."</TT>
|
||||
|
||||
<P>In plain English, this means you should post your localized product
|
||||
on a publicly accessible http: or ftp: server. You may also want to send
|
||||
an announcement of your product's availability to mozilla.org (though you
|
||||
are not required to do so).
|
||||
|
||||
<P>
|
||||
<HR WIDTH="50%">
|
||||
<H2>
|
||||
<A NAME="branding"></A>Product Branding Issues</H2>
|
||||
If you are using this kit under the auspices of the universal localization
|
||||
program, you must remove or replace Netscape trademarked strings, images
|
||||
and icons in your localized version. Click <A HREF="branding.html">here</A>
|
||||
for instructions.
|
||||
|
||||
<P>
|
||||
<HR WIDTH="50%">
|
||||
<H2>
|
||||
<A NAME="howtol10n"></A>How to Localize Different Resource Types</H2>
|
||||
This section provides you with general information about localizing the
|
||||
various resource types and files found with this kit.
|
||||
<H3>
|
||||
<A NAME="localize_text"></A>Localizing .INI Files</H3>
|
||||
|
||||
<UL>Most of the work for the Windows installers is localizing initialization
|
||||
(.INI) files. You may use the text editor of your choice to do this work.
|
||||
Be sure the localized files are saved as plain text only.
|
||||
<H4>
|
||||
<A NAME="locnote_ini"></A>Localization Notes</H4>
|
||||
Individual localization notes for the installer .INI files are contained
|
||||
in the individual HTML documents linked from the <A HREF="localize_these_files.html#table1">Localize
|
||||
These Files</A> page.</UL>
|
||||
|
||||
<H3>
|
||||
<A NAME="localizeURLs"></A>Localizing URLs</H3>
|
||||
|
||||
<UL>You will not likely encounter any URLs (Universal Resource Locators)
|
||||
in the installers, but if you do, how they are localized depends on whether
|
||||
you are creating a branded Netscape version or not. The rules for how to
|
||||
handle URLs are found <A HREF="localizeURL.html">here</A>.</UL>
|
||||
|
||||
<H3>
|
||||
<A NAME="localize_stringtable"></A>Localizing String Tables</H3>
|
||||
|
||||
<UL>Use the resource editor of your choice to localize STRINGTABLE resources.
|
||||
These are the most sensitive, potentially problematic resource type you
|
||||
will be working with. Therefore, you must pay close attention to the instructions
|
||||
provided in the localization notes.
|
||||
<H4>
|
||||
<A NAME="locnote_stringtable"></A>Localization Notes</H4>
|
||||
Individual localization notes for the installer resource .DLLs are contained
|
||||
in the individual HTML documents linked from the <A HREF="localize_these_files.html#table1">Localize
|
||||
These Files</A> page. This section gives you some additional general guidelines
|
||||
to follow when localizing the installer binary files.
|
||||
<UL>
|
||||
<LI>
|
||||
Some strings may contain C++ print format strings, such as %s, %ld, %lu,
|
||||
etc. Do not modify these while translating the rest of the string.</LI>
|
||||
|
||||
<LI>
|
||||
Some strings may contain new line characters: \n. In general, you should
|
||||
try leave these as you find them.</LI>
|
||||
</UL>
|
||||
</UL>
|
||||
|
||||
<H3>
|
||||
<A NAME="localize_menus"></A>Localizing Menus</H3>
|
||||
|
||||
<UL>There are no menu resources in the Windows installer</UL>
|
||||
|
||||
<H3>
|
||||
<A NAME="localize_dialogs"></A>Localizing Dialogs</H3>
|
||||
|
||||
<UL>Use the resource editor of your choice to localize and resize DIALOG
|
||||
resources. Dialog translation is usually not as tricky as localizing string
|
||||
tables; however, you should take care to assign unique pickletters to dialog
|
||||
controls.
|
||||
<H4>
|
||||
<A NAME="locnote_menus"></A>Localization Notes</H4>
|
||||
</UL>
|
||||
|
||||
<UL>Individual localization notes for the installer resource .DLLs are
|
||||
contained in the individual HTML documents linked from the <A HREF="localize_these_files.html#table1">Localize
|
||||
These Files</A> page.</UL>
|
||||
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="gettingStarted.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="testKit.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
Before Width: | Height: | Size: 19 KiB |
@ -1,40 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; U) [Netscape]">
|
||||
<TITLE>Product Branding Issues</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H3>
|
||||
Product Branding Instructions</H3>
|
||||
Under the terms of the Unlimited Localization Program, you must remove
|
||||
or replace all trademarked Netscape terms, brand names, icons, images,
|
||||
etc. These trademarks are listed on the page found at the following
|
||||
URL:
|
||||
|
||||
<P><A HREF="http://home.netscape.com/misc/trademarks.html#trademarks">http://home.netscape.com/misc/trademarks.html#trademarks</A>
|
||||
|
||||
<P>Please refer to that page for details. You may not release a localized
|
||||
version of the Netscape Communicator with these trademarks left in the
|
||||
product.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=2 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="usingKit.html#branding">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS</A>]</CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER><BR>
|
||||
<FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape Communications
|
||||
Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,383 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
|
||||
<TITLE>HTML Output of: C:\TEMP\CHARSET.DBF</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H1>
|
||||
CSID REFERENCE TABLE</H1>
|
||||
Use this table to determine the Character Set ID (CSID) for the character
|
||||
set you wish to use, for example, for setting the value of pref("intl.character_set")
|
||||
in ALL_PREFS.
|
||||
<BR>
|
||||
<TABLE BORDER >
|
||||
<TR>
|
||||
<TH>CSID</TH>
|
||||
|
||||
<TH>CHARSET</TH>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>0</TD>
|
||||
|
||||
<TD>CS_DEFAULT</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>1</TD>
|
||||
|
||||
<TD>CS_ASCII</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>2</TD>
|
||||
|
||||
<TD>CS_LATIN1</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>6</TD>
|
||||
|
||||
<TD>CS_MAC_ROMAN</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>10</TD>
|
||||
|
||||
<TD>CS_LATIN2</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>11</TD>
|
||||
|
||||
<TD>CS_MAC_CE</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>14</TD>
|
||||
|
||||
<TD>CS_8859_3</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>15</TD>
|
||||
|
||||
<TD>CS_8859_4</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>16</TD>
|
||||
|
||||
<TD>CS_8859_5</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>17</TD>
|
||||
|
||||
<TD>CS_8859_6</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>18</TD>
|
||||
|
||||
<TD>CS_8859_7</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>19</TD>
|
||||
|
||||
<TD>CS_8859_8</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>20</TD>
|
||||
|
||||
<TD>CS_8859_9</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>21</TD>
|
||||
|
||||
<TD>CS_SYMBOL</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>22</TD>
|
||||
|
||||
<TD>CS_DINGBATS</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>23</TD>
|
||||
|
||||
<TD>CS_DECTECH</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>27</TD>
|
||||
|
||||
<TD>CS_JISX0201</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>29</TD>
|
||||
|
||||
<TD>CS_TIS620</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>35</TD>
|
||||
|
||||
<TD>CS_UTF7</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>38</TD>
|
||||
|
||||
<TD>CS_USRDEF2</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>39</TD>
|
||||
|
||||
<TD>CS_KOI8_R</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>40</TD>
|
||||
|
||||
<TD>CS_MAC_CYRILLIC</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>41</TD>
|
||||
|
||||
<TD>CS_CP_1251</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>42</TD>
|
||||
|
||||
<TD>CS_MAC_GREEK</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>43</TD>
|
||||
|
||||
<TD>CS_CP_1253</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>44</TD>
|
||||
|
||||
<TD>CS_CP_1250</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>45</TD>
|
||||
|
||||
<TD>CS_CP_1254</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>46</TD>
|
||||
|
||||
<TD>CS_MAC_TURKISH</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>53</TD>
|
||||
|
||||
<TD>INTL_CHAR_SET_MAX</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>254</TD>
|
||||
|
||||
<TD>CS_USER_DEFINED_ENCODING</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>255</TD>
|
||||
|
||||
<TD>CS_UNKNOWN</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>260</TD>
|
||||
|
||||
<TD>CS_SJIS</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>261</TD>
|
||||
|
||||
<TD>CS_EUCJP</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>263</TD>
|
||||
|
||||
<TD>CS_BIG5</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>264</TD>
|
||||
|
||||
<TD>CS_GB_8BIT</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>265</TD>
|
||||
|
||||
<TD>CS_CNS_8BIT</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>280</TD>
|
||||
|
||||
<TD>CS_CNS11643_1</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>281</TD>
|
||||
|
||||
<TD>CS_CNS11643_2</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>282</TD>
|
||||
|
||||
<TD>CS_JISX0208</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>284</TD>
|
||||
|
||||
<TD>CS_KSC5601</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>286</TD>
|
||||
|
||||
<TD>CS_JISX0212</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>287</TD>
|
||||
|
||||
<TD>CS_GB2312</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>290</TD>
|
||||
|
||||
<TD>CS_UTF8</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>292</TD>
|
||||
|
||||
<TD>CS_NPC</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>293</TD>
|
||||
|
||||
<TD>CS_X_BIG5</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>303</TD>
|
||||
|
||||
<TD>CS_GB2312_11</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>304</TD>
|
||||
|
||||
<TD>CS_JISX0208_11</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>305</TD>
|
||||
|
||||
<TD>CS_KSC5601_11</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>306</TD>
|
||||
|
||||
<TD>CS_CNS11643_1110</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>515</TD>
|
||||
|
||||
<TD>CS_JIS</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>525</TD>
|
||||
|
||||
<TD>CS_2022_KR</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>564</TD>
|
||||
|
||||
<TD>CS_IMAP4_UTF7</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>810</TD>
|
||||
|
||||
<TD>CS_UCS2</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>811</TD>
|
||||
|
||||
<TD>CS_UCS4</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>819</TD>
|
||||
|
||||
<TD>CS_UCS2_SWAP</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>1292</TD>
|
||||
|
||||
<TD>CS_KSC_8BIT</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>2308</TD>
|
||||
|
||||
<TD>CS_SJIS_AUTO</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>2309</TD>
|
||||
|
||||
<TD>CS_EUCJP_AUTO</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD>2563</TD>
|
||||
|
||||
<TD>CS_JIS_AUTO</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
@author: relliott
|
||||
<BR>@source: ftang
|
||||
<BR>@last updated: Mar. 19, 1998
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1997, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,100 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Author" CONTENT="Rick Elliott">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
|
||||
<TITLE>Getting Started</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H2>
|
||||
<A NAME="getting started"></A>2. Getting Started</H2>
|
||||
Before you can begin using the Windows Front End Localization Kit, you
|
||||
must install it and setup your working directories. This is a simple matter
|
||||
of unzipping the compressed kit file(s) into the proper directories. Your
|
||||
system must also meet certain requirements to run the tools needed to perform
|
||||
the localization steps described below.
|
||||
|
||||
<P>
|
||||
<HR WIDTH="50%">
|
||||
<H3>
|
||||
<A NAME="sysreqs"></A>System Requirements</H3>
|
||||
There a few system requirements for the kit in the strictest sense; however,
|
||||
your choice of tools will have their own set of requirements. The
|
||||
most likely minimum configuration will be as follows:
|
||||
<UL>
|
||||
<LI>
|
||||
100% IBM compatible PC</LI>
|
||||
|
||||
<LI>
|
||||
Pentium<SUP><FONT SIZE=-1>®</FONT></SUP> processor</LI>
|
||||
|
||||
<LI>
|
||||
Microsoft<SUP><FONT SIZE=-1>®</FONT></SUP> Windows NT 3.51 or 4.0 (localized
|
||||
versions will help testing but aren't required)</LI>
|
||||
|
||||
<LI>
|
||||
16 MB RAM</LI>
|
||||
|
||||
<LI>
|
||||
30 MB available hard disk space</LI>
|
||||
|
||||
<LI>
|
||||
A visual resource editor, such as those provided with Microsoft<SUP><FONT SIZE=-1>®</FONT></SUP>
|
||||
Visual C++, Borland<SUP><FONT SIZE=-1>®</FONT></SUP> C++, etc.</LI>
|
||||
|
||||
<LI>
|
||||
An active Internet connection and the ability to ftp (send and receive)
|
||||
large files</LI>
|
||||
|
||||
<LI>
|
||||
A Web browser (say, for example, Netscape Communicator ;-)</LI>
|
||||
</UL>
|
||||
|
||||
<H3>
|
||||
|
||||
<HR WIDTH="50%"></H3>
|
||||
|
||||
<H3>
|
||||
<A NAME="install"></A>Installing the Kit</H3>
|
||||
It is recommended that you install the Windows Front End Localization Kit
|
||||
in a brand new directory on your development machine. For example, you
|
||||
can create a \Netscape_L10N_Kits directory on your hard drive. This becomes
|
||||
your <B>kitRoot </B>directory. Place the L10n Kit's .ZIP file in
|
||||
that directory and UNZIP it with the -d parameter:
|
||||
|
||||
<P>PKUNZIP -d <I>filename</I>
|
||||
<UL><B>Example: <TT>PKUNZIP -d winfekit</TT></B></UL>
|
||||
|
||||
<HR WIDTH="50%">
|
||||
<H3>
|
||||
<A NAME="configtool"></A>Configuring Your Tools</H3>
|
||||
If you intend to use the Netscape Translation Tools, please refer to the
|
||||
<A HREF="../dogTool/dogToolUG.html">Translation Tools User Guide</A> for
|
||||
instructions on setting up and using those tools. If you intend to
|
||||
use a different localization tool, please refer to that tool's documentation
|
||||
for set up and usage instructions.
|
||||
<BR>
|
||||
<CENTER><TABLE COLS=3 WIDTH="50%" >
|
||||
<TR>
|
||||
<TD>
|
||||
<CENTER>[<A HREF="nomenclature.html">BACK</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="usingKit.html">NEXT</A>]</CENTER>
|
||||
</TD>
|
||||
|
||||
<TD>
|
||||
<CENTER>[<A HREF="toc.html">CONTENTS]</A></CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<CENTER></CENTER>
|
||||
|
||||
<CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=-2>1998, Copyright Netscape
|
||||
Communications Corp. All Rights Reserved</FONT></FONT></CENTER>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
Before Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 871 B |