Commit b112b611 authored by Axel Beckert's avatar Axel Beckert

Imported Upstream version 2.8.6pre5

parent c7d975ea
Changes since Lynx 2.8 release
===============================================================================
2006-10-02 (2.8.6pre.5)
* modify cfg2html.pl to use "use vars" rather than "our", to allow it to work
with perl version 5.5 -TD
* use curses nodelay() function for BeOS to make HTCheckForInterrupt() work
on that platform -TD
* filter out obsolete URLs from the customizations saved during install of
lynx.cfg -TD
* add a configure check for zError() to allow using old zlib's -TD
* fix configure --disable-largefile (from ncurses changes) -TD
* applied lynx's changes to updated files from ftp.unicode.org to take
advantage of less restrictive copyright (report by Klaus Singvogel).
* workaround for PDCurses versus color-style; reload color style information
in start_curses() since PDCurses discards that information in endwin()
(report by Lawrence Armstrong) -TD
2006-09-18 (2.8.6pre.4)
* updated link in user's guide to HTML 3.0 reference (report by TH) -TD
* remove coloring for lh- and high-tags from LYStyle.c and sample ".lss" files
......
Most of the content of the lynx release is the work of developers on the
lynx-dev mailing list, who have agreed to distribute their work under the
terms and conditions of the GNU Public License (Version 2).
Most of the content of the lynx release (and corresponding copyright) is
the work of developers on the lynx-dev mailing list, who have agreed to
distribute their work under the terms and conditions of the GNU Public
License (Version 2). Note that the License text after the terms and
conditions is advisory in nature, and contains neither terms nor
conditions. You may choose to follow that advice.
Any licensing questions should be directed to the mailing list:
......
......@@ -172,6 +172,13 @@ II. Compile instructions -- UNIX
order shown by the -help option is different. See "docs/README.defines"
for information on defines for which there are no option switches.
--datadir
Defines the location where you want the documentation files installed.
The configure script constructs makefile actions to install lynx.cfg
modified to reflect this in the HELPFILE setting. (For platforms which
do not support a configure script, such as MS-DOS, Win32 and VMS, you
must edit lynx.cfg).
--disable-alt-bindings (prevent defining EXP_ALT_BINDINGS)
Compiles-in an alternative set of line-edit bindings, in addition
to the default bindings.
......
......@@ -3436,15 +3436,17 @@ int HTFTPLoad(const char *name,
strchr(cp, ']') == NULL) {
cp1++;
if (*cp1 != '\0') {
int cplen = (int) (cp1 - cp);
strcpy(filename, cp1);
CTRACE((tfp, "HTFTP: Filename '%s'\n", filename));
HTSprintf0(&vmsname, "%.*s[%s]", cp1 - cp, cp, filename);
HTSprintf0(&vmsname, "%.*s[%s]", cplen, cp, filename);
status = send_cwd(vmsname);
if (status != 2) {
HTSprintf(&vmsname, "%.*s[000000]", cp1 - cp, cp);
HTSprintf(&vmsname, "%.*s[000000]", cplen, cp);
status = send_cwd(vmsname);
if (status != 2) {
HTSprintf(&vmsname, "%.*s", cp1 - cp, cp);
HTSprintf(&vmsname, "%.*s", cplen, cp);
status = send_cwd(vmsname);
if (status != 2) {
FREE(fname);
......@@ -3549,7 +3551,7 @@ int HTFTPLoad(const char *name,
(cp1 - cp) > 1) {
char *tmp = 0;
HTSprintf0(&tmp, "[.%.*s]", cp1 - cp - 1, cp + 1);
HTSprintf0(&tmp, "[.%.*s]", (int) (cp1 - cp - 1), cp + 1);
CTRACE((tfp, "change path '%s'\n", tmp));
while ((cp2 = strrchr(tmp, '/')) != NULL)
......
......@@ -1077,6 +1077,16 @@ static int HTGzFileCopy(gzFile gzfp, HTStream *sink)
return rv;
}
#ifndef HAVE_ZERROR
#define zError(s) LynxZError(s)
static const char *zError(int status)
{
static char result[80];
sprintf(result, "zlib error %d", status);
return result;
}
#endif
/* Push data from a deflate file pointer down a stream
* -------------------------------------
*
......
......@@ -772,7 +772,7 @@ static void write_anchor(const char *text, const char *addr)
strncat(q, addr, p - addr); /* Make complete hypertext reference */
} else {
q = NULL;
HTSprintf0(&q, "%s%.*s", NewsHREF, p - addr, addr);
HTSprintf0(&q, "%s%.*s", NewsHREF, (int) (p - addr), addr);
}
start_anchor(q);
......
......@@ -345,7 +345,7 @@ char *HTTranslate(const char *required)
char *temp = NULL;
HTSprintf0(&temp, "%.*s%.*s%s",
ins - r->equiv,
(int) (ins - r->equiv),
r->equiv,
m,
q,
......
......@@ -164,6 +164,7 @@
#undef HAVE_WREDRAWLN
#undef HAVE_WRESIZE
#undef HAVE_XCURSES /* CF_PDCURSES_X11 */
#undef HAVE_ZERROR
#undef HAVE___ARGZ_COUNT /* AM_GNU_GETTEXT */
#undef HAVE___ARGZ_NEXT /* AM_GNU_GETTEXT */
#undef HAVE___ARGZ_STRINGIFY /* AM_GNU_GETTEXT */
......
......@@ -4,7 +4,7 @@
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
# Inc.
timestamp='2006-07-02'
timestamp='2006-08-14'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
......@@ -284,7 +284,7 @@ case $basic_machine in
| tahoe | thumb | tic4x | tic80 | tron \
| v850 | v850e \
| we32k \
| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
| z8k)
basic_machine=$basic_machine-unknown
;;
......@@ -367,7 +367,7 @@ case $basic_machine in
| tron-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
| xstormy16-* | xtensa-* \
| ymp-* \
| z8k-*)
......@@ -909,6 +909,10 @@ case $basic_machine in
sb1el)
basic_machine=mipsisa64sb1el-unknown
;;
sde)
basic_machine=mipsisa32-sde
os=-elf
;;
sei)
basic_machine=mips-sei
os=-seiux
......
This diff is collapsed.
......@@ -25,7 +25,7 @@ dnl ---------------------------------------------------------------------------
dnl
dnl ask PRCS to plug-in the project-version for the configure-script.
dnl $Format: "AC_REVISION($ProjectVersion$)"$
AC_REVISION(2.8.6pre.4)
AC_REVISION(2.8.6pre.5)
# Save the original $CFLAGS so we can distinguish whether the user set those
# in the environment, or whether autoconf added -O and -g options:
......@@ -57,7 +57,7 @@ AC_ARG_WITH(system-type,
PACKAGE=lynx
dnl ask PRCS to plug-in the project-version for the packages.
# $Format: "VERSION=$ProjectVersion$"$
VERSION=2.8.6pre.4
VERSION=2.8.6pre.5
AC_SUBST(PACKAGE)
AC_SUBST(VERSION)
AC_SUBST(DESTDIR)
......@@ -628,6 +628,7 @@ AC_CHECK_FUNCS( \
usleep \
vasprintf \
waitpid \
zError \
)
AC_REPLACE_FUNCS( \
mktime \
......
......@@ -3,10 +3,10 @@
# or Lynx_Dir:lynx.cfg (VMS)
#
# $Format: "#PRCS LYNX_VERSION \"$ProjectVersion$\""$
#PRCS LYNX_VERSION "2.8.6pre.4"
#PRCS LYNX_VERSION "2.8.6pre.5"
#
# $Format: "#PRCS LYNX_DATE \"$ProjectDate$\""$
#PRCS LYNX_DATE "Mon, 18 Sep 2006 17:28:28 -0700"
#PRCS LYNX_DATE "Mon, 02 Oct 2006 12:56:53 -0700"
#
# Definition pairs are of the form VARIABLE:DEFINITION
# NO spaces are allowed between the pair items.
......
......@@ -1135,3 +1135,7 @@ Foteos Macrides
Worcester Foundation for Biomedical Research
.br
Shrewsbury, Massachusetts 01545
.PP
Thomas E. Dickey
.br
<dickey@invisible-island.net>
......@@ -49,11 +49,15 @@ Lou and Garrett for positions at Netscape in the summer of 1994,
Internet community coordinated via the
<A HREF="#lynx-dev_list"><EM>lynx-dev mailing list</EM></A>.
<P>Lynx is copyrighted by the University of Kansas and is distributed
<P>Lynx is derived from material copyrighted by the University of Kansas.
However most of the release (and corresponding copyright)
is the work of developers on the
<A HREF="#lynx-dev_list"><EM>lynx-dev mailing list</EM></A>.
It is distributed
<A HREF="COPYHEADER"
>without restrictions on usage or redistribution</A>
under the <A HREF="COPYING">GNU
General Public License</A>.
General Public License (Version 2)</A>.
<P>Lynx was built over an early version of the Common Code Library
developed by the CERN WWW Project. That code is copyrighted by CERN.
......
......@@ -23,13 +23,13 @@ use strict;
use Getopt::Std;
our ($opt_a, $opt_m, $opt_s);
use vars qw($opt_a $opt_m $opt_s);
our (@cats);
our (%cats);
use vars qw(@cats);
use vars qw(%cats);
our (@settings_avail);
our (%settings_avail);
use vars qw(@settings_avail);
use vars qw(%settings_avail);
# Options:
# -a show all options, not only those that are available.
......
......@@ -18,10 +18,18 @@ if test -f "$DST" ; then
trap "rm -f $OLD $NEW $TST $TMP; exit 9" 1 2 5 15
rm -f $OLD $NEW $TST $TMP
# avoid propagating obsolete URLs into new installs
echo lynx.browser.org >$TMP
echo www.trill-home.com >>$TMP
echo www.cc.ukans.edu >>$TMP
echo www.ukans.edu >>$TMP
echo www.slcc.edu >>$TMP
echo sol.slcc.edu >>$TMP
# Make a list of the settings which are in the original lynx.cfg
# Do not keep the user's HELPFILE setting since we modify that in
# a different makefile rule.
egrep '^[ ]*[A-Za-z]' $SRC |sed -e 's/^[ ]*HELPFILE:.*/HELPFILE:/' >$TMP
egrep '^[ ]*[A-Za-z]' $SRC |sed -e 's/^[ ]*HELPFILE:.*/HELPFILE:/' >>$TMP
egrep '^[ ]*[A-Za-z]' $SRC |fgrep -v -f $TMP >$OLD
egrep '^[ ]*[A-Za-z]' $DST |fgrep -v -f $TMP >$TST
......
......@@ -699,7 +699,7 @@ static int BuildCommand(HTChunk *cmd,
if (params != 0) {
++from;
name = 0;
HTSprintf0(&name, "%.*s", next - from, from);
HTSprintf0(&name, "%.*s", (int) (next - from), from);
if ((value = LYGetContentType(name, params)) != 0) {
HTChunkPuts(cmd, value);
FREE(value);
......
......@@ -1928,7 +1928,7 @@ void LYLoadCookies(char *cookie_file)
tok_out = LYstrsep(&tok_ptr, "\t");
for (tok_loop = 0; tok_out && tok_values[tok_loop].s; tok_loop++) {
CTRACE((tfp, "\t%d:[%03d]:[%s]\n",
tok_loop, tok_out - buf, tok_out));
tok_loop, (int) (tok_out - buf), tok_out));
LYstrncpy(tok_values[tok_loop].s,
tok_out,
tok_values[tok_loop].n);
......
......@@ -272,7 +272,7 @@ static char *attr_to_string(int code)
if (pair != 0) {
short f, b;
if (pair_content(pair, &f, &b) != ERR) {
if (pair_content((short) pair, &f, &b) != ERR) {
const char *fg = lookup_color(bold ? f + COLORS : f);
const char *bg = lookup_color(b);
......@@ -1209,6 +1209,12 @@ void start_curses(void)
#endif /* USE_COLOR_STYLE || USE_COLOR_TABLE */
#ifdef USE_COLOR_STYLE
#ifdef PDCURSES
/* PDCurses forgets color settings when we call endwin() */
if (!isEmpty(lynx_lss_file) && LYCanReadFile(lynx_lss_file)) {
style_readFromFile(lynx_lss_file);
}
#endif
parse_userstyles();
#endif
#ifdef USE_COLOR_TABLE
......
......@@ -252,6 +252,24 @@ typedef struct {
#define USE_MOUSE 1
#endif
/*
* For systems where select() does not work for TTY's, we can poll using
* curses.
*/
#if defined(_WINDOWS) || defined(__MINGW32__)
#if defined(PDCURSES) && defined(PDC_BUILD) && PDC_BUILD >= 2401
#define USE_CURSES_NODELAY 1
#endif
#if defined(NCURSES_VERSION)
#define USE_CURSES_NODELAY 1
#endif
#endif /* _WINDOWS || __MINGW32__ */
#if defined(NCURSES_VERSION) && defined(__BEOS__)
#define USE_CURSES_NODELAY 1
#endif
/*
* If we have pads, use them to implement left/right scrolling.
*/
......
......@@ -846,7 +846,7 @@ static int modify_name(char *testpath)
} else if (strlen(tmpbuf)) {
if ((cp = LYLastPathSep(testpath)) != NULL)
HTSprintf0(&newpath, "%.*s%s",
(cp - testpath + 1), testpath, tmpbuf);
(int) (cp - testpath + 1), testpath, tmpbuf);
else
StrAllocCopy(newpath, tmpbuf);
......
......@@ -175,7 +175,7 @@ static void append_open_tag(char *tagname,
#define isNextP(p) ((isalnum(UCH(*p)) || *p == '_'))
#define FMT_AT " at column %d:\n\t%s\n"
#define TXT_AT (1 + p - ts), ts
#define TXT_AT (int) (1 + p - ts), ts
/* returns FALSE if incorrect */
int html_src_parse_tagspec(char *ts,
......
......@@ -708,11 +708,38 @@ int LYmbcsstrlen(const char *str,
#else /* curses */
#if defined(DJGPP)
#define GetChar() (djgpp_idle_loop(), wgetch(LYtopwindow()))
#elif defined(NCURSES_VERSION) && defined(__BEOS__)
#define GetChar() myGetCharNodelay()
#elif defined(NCURSES)
#define GetChar() wgetch(LYtopwindow())
#endif
#endif
#ifdef USE_CURSES_NODELAY
/* PDCurses - until version 2.7 in 2005 - defined ERR as 0, unlike other
* versions of curses. Generally both EOF and ERR are defined as -1's.
* However, there is a special case (see HTCheckForInterrupt()) to handle a
* case where no select() function is used in the win32 environment.
*
* HTCheckForInterrupt() uses nodelay() in this special case to check for
* pending input. That normally returns ERR. But LYgetch_for() checks the
* return value of this function for EOF (to handle some antique runtime
* libraries which did not set the state for feof/ferror). Returning a zero
* (0) is safer since normally that is not mapped to any commands, and will be
* ignored by lynx.
*/
static int myGetCharNodelay(void)
{
int c = wgetch(LYwin);
if (c == -1)
c = 0;
return c;
}
#else
#define myGetCharNodelay() wgetch(LYwin)
#endif
#if !defined(GetChar) && defined(PDCURSES) && defined(PDC_BUILD) && PDC_BUILD >= 2401
/* PDCurses sends back key-modifiers that we don't use, but would waste time
* upon, e.g., repainting the status line
......@@ -723,7 +750,7 @@ static int myGetChar(void)
BOOL done = FALSE;
do {
switch (c = wgetch(LYwin)) {
switch (c = myGetCharNodelay()) {
case KEY_SHIFT_L:
case KEY_SHIFT_R:
case KEY_CONTROL_L:
......@@ -738,21 +765,6 @@ static int myGetChar(void)
}
} while (!done);
/* PDCurses - until version 2.7 in 2005 - defined ERR as 0, unlike other
* versions of curses. Generally both EOF and ERR are defined as -1's.
* However, there is a special case (see HTCheckForInterrupt()) to handle
* a case where no select() function in used the win32 environment.
*
* HTCheckForInterrupt() uses nodelay() in this special case to check for
* pending input. That normally returns ERR. But LYgetch_for() checks
* the return value of this function for EOF (to handle some antique
* runtime libraries which did not set the state for feof/ferror).
* Returning a zero (0) is safer since normally that is not mapped to any
* commands, and will be ignored by lynx.
*/
if (c == -1)
c = 0;
return c;
}
#define GetChar() myGetChar()
......
/* character level styles for Lynx
* (c) 1996 Rob Partington -- donated to the Lyncei (if they want it :-)
* $Id: LYStyle.c 1.62 Mon, 18 Sep 2006 17:28:28 -0700 dickey $
* $Id: LYStyle.c 1.63 Mon, 02 Oct 2006 12:56:53 -0700 dickey $
*/
#include <HTUtils.h>
#include <HTML.h>
......@@ -27,6 +27,12 @@
static void style_initialiseHashTable(void);
/* because curses isn't started when we parse the config file, we
* need to remember the STYLE: lines we encounter and parse them
* after curses has started
*/
static HTList *lss_styles = NULL;
/* stack of attributes during page rendering */
int last_styles[MAX_LAST_STYLES] =
{0};
......@@ -95,6 +101,7 @@ static int colorPairs = 0;
# define M_BLINK 0
#endif
#define MAX_PAIR 255 /* because our_pairs[] type is unsigned-char */
static unsigned char our_pairs[2]
[MAX_BLINK]
[MAX_COLOR + 1]
......@@ -207,7 +214,7 @@ static void parse_attributes(char *mono,
#ifdef USE_CURSES_PAIR_0
&& (cA != A_NORMAL || fA != default_fg || bA != default_bg)
#endif
&& curPair < 255) {
&& curPair < MAX_PAIR) {
if (our_pairs[iBold][iBlink][iFg][iBg] != 0) {
curPair = our_pairs[iBold][iBlink][iFg][iBg];
} else {
......@@ -362,13 +369,18 @@ where OBJECT is one of EM,STRONG,B,I,U,BLINK etc.\n\n"), buffer);
FREE(buffer);
}
#ifdef LY_FIND_LEAKS
static void style_deleteStyleList(void)
{
LYFreeStringList(lss_styles);
lss_styles = NULL;
}
static void free_colorstylestuff(void)
{
style_initialiseHashTable();
style_deleteStyleList();
memset(our_pairs, 0, sizeof(our_pairs));
}
#endif
/*
* Initialise the default style sheet to match the vanilla-curses lynx.
......@@ -514,12 +526,6 @@ static void style_initialiseHashTable(void)
#endif
}
/* because curses isn't started when we parse the config file, we
* need to remember the STYLE: lines we encounter and parse them
* after curses has started
*/
static HTList *lss_styles = NULL;
void parse_userstyles(void)
{
char *name;
......@@ -590,12 +596,6 @@ static void HStyle_addStyle(char *buffer)
HTList_addObject(lss_styles, name);
}
void style_deleteStyleList(void)
{
LYFreeStringList(lss_styles);
lss_styles = NULL;
}
static int style_readFromFileREC(char *lss_filename,
char *parent_filename)
{
......@@ -615,8 +615,7 @@ static int style_readFromFileREC(char *lss_filename,
}
if (parent_filename == 0) {
style_initialiseHashTable();
style_deleteStyleList();
free_colorstylestuff();
}
while (LYSafeGets(&buffer, fh) != NULL) {
......
......@@ -19,8 +19,6 @@ extern "C" {
/* Set all the buckets in the hash table to be empty */
extern void parse_userstyles(void);
extern void style_deleteStyleList(void);
extern void style_defaultStyleSheet(void);
extern int style_readFromFile(char *file);
......
......@@ -1752,7 +1752,7 @@ int HTCheckForInterrupt(void)
/*
* Now, read the character.
*/
#if defined(PDCURSES)
#if defined(USE_CURSES_NODELAY)
nodelay(LYwin, TRUE);
c = LYgetch();
nodelay(LYwin, FALSE);
......@@ -3695,7 +3695,8 @@ void parse_restrictions(const char *s)
}
}
if (!found) {
printf("%s: %.*s\n", gettext("unknown restriction"), p - word, word);
printf("%s: %.*s\n", gettext("unknown restriction"),
(int) (p - word), word);
exit_immediately(EXIT_FAILURE);
}
if (*p)
......
......@@ -6,6 +6,22 @@ for some of the RFC 1345 Mnemonic codes are out of date,
a cleanup and update would be needed for serious use.
[See also http://czyborra.com/charsets/iso8859.html for codepages survey.]
These changes were made to all of the files used from ftp.unicode.org:
a) add the MIME name of the charset.
b) add a name for the display charset (used on Options screen)
c) add the codepage number
d) remove lines for control characters 0x00 to 0x1f, 0x7f to 0x9f.
e) comment-out ASCII lines 0x20 to 0x7f
f) use idem to represent the commented-out lines
g) change C-style 0xNNNN constants to Unicode-style U+NNNN.
Other changes include
h) add code-points to several lines to provide Unicode equivalents
i) add extra mappings at the end of the files
j) comment-out other one-one mappings in the 0xa0-0xff range.
More translation files can be easily provided (and new character entities
added to entities.h), this set is just to test whether the system works
in principle (and also how it behaves with incomplete data...)
......
# This file has been modified for lynx (see README.tables)
#The MIME name of this charset.
Mwindows-1250
......
# This file has been modified for lynx (see README.tables)
#The MIME name of this charset.
Mwindows-1251
......
# This file has been modified for lynx (see README.tables)
#Shall this become the "default" translation?
#There has to be exactly one table marked as "default".
D0
......
# This file has been modified for lynx (see README.tables)
#The MIME name of this charset.
Mwindows-1253
......
# This file has been modified for lynx (see README.tables)
#The MIME name of this charset.
Mwindows-1255
......
# This file has been modified for lynx (see README.tables)
#The MIME name of this charset.
Mwindows-1256
......
# This file has been modified for lynx (see README.tables)
#The MIME name of this charset.
Mwindows-1257
......
# This file has been modified for lynx (see README.tables)
#Shall this become the "default" translation?
#There has to be exactly one table marked as "default".
D0
......
# This file has been modified for lynx (see README.tables)
#The MIME name of this charset.
Mcp737
......
# This file has been modified for lynx (see README.tables)
#The MIME name of this charset.
Mcp775
......
# This file has been modified for lynx (see README.tables)
#Shall this become the "default" translation?
#Meaning of that is currently unclear... It's different
#from the default input or default output charset...
......
# This file has been modified for lynx (see README.tables)
#The MIME name of this charset.
Mcp852
......
# This file has been modified for lynx (see README.tables)
#The MIME name of this charset.
Mcp857
......
# This file has been modified for lynx (see README.tables)
#The MIME name of this charset.
Mcp862
......
# This file has been modified for lynx (see README.tables)
#The MIME name of this charset.
Mcp864
......
#
# This file has been modified for lynx (see README.tables)
#The MIME name of this charset.
Mcp866
......
#
# This file has been modified for lynx (see README.tables)
#The MIME name of this charset.
Mcp866u
......
# This file has been modified for lynx (see README.tables)
#The MIME name of this charset.
Mcp869
......
# This file has been modified for lynx (see README.tables)
#Shall this become the "default" translation?
#Meaning of that is currently not well defined. It is different
#from the default input or default output charset...
......@@ -14,43 +16,51 @@ OWestern (ISO-8859-1)
C819
#
# Name: ISO 8859-1 (1987) to Unicode
# Unicode version: 1.1
# Table version: 0.1
# Name: ISO/IEC 8859-1:1998 to Unicode
# Unicode version: 3.0
# Table version: 1.0
# Table format: Format A
# Date: 16 January 1995
# Authors: Tim Greenwood <greenwood@r2me2.enet.dec.com>
# John H. Jenkins <John_Jenkins@taligent.com>
# Date: 1999 July 27
# Authors: Ken Whistler <kenw@sybase.com>
#
# Copyright (c) 1991-1995 Unicode, Inc. All Rights reserved.
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
#
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
# No claims are made as to fitness for any particular purpose. No
# warranties of any kind are expressed or implied. The recipient
# agrees to determine applicability of information provided. If this
# file has been provided on magnetic media by Unicode, Inc., the sole
# file has been provided on optical media by Unicode, Inc., the sole
# remedy for any claim will be exchange of defective media within 90
# days of receipt.
#
# Recipient is granted the right to make copies in any form for
# internal distribution and to freely use the information supplied
# in the creation of products supporting Unicode. Unicode, Inc.
# specifically excludes the right to re-distribute this file directly
# to third parties or other organizations whether for profit or not.
# Unicode, Inc. hereby grants the right to freely use the information
# supplied in this file in the creation of products supporting the
# Unicode Standard, and to make copies of this file in any form for
# internal or external distribution as long as this notice remains
# attached.
#
# General notes:
#
# This table contains the data the Unicode Consortium has on how
# ISO 8859-1 (1987) characters map into Unicode.
# ISO/IEC 8859-1:1998 characters map into Unicode.
#
# Format: Three tab-separated columns
# Column #1 is the ISO 8859-1 code (in hex as 0xXX)