Compare commits
51
Commits
enum
...
bug-592a25a505
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9804d03e1f | ||
|
|
f58326fab5 | ||
|
|
c47c440be2 | ||
|
|
1523ce53c1 | ||
|
|
68dc740f26 | ||
|
|
e5bb3b3829 | ||
|
|
3d82d5537c | ||
|
|
259220cf73 | ||
|
|
5175765beb | ||
|
|
35315e5c2e | ||
|
|
617e57260f | ||
|
|
ad4b60ef7c | ||
|
|
7403235131 | ||
|
|
30db6ce78e | ||
|
|
a8e1d5aae3 | ||
|
|
3f913d322f | ||
|
|
8c5e1ee93f | ||
|
|
e809cadb0a | ||
|
|
3fcf24bf05 | ||
|
|
693567f0d8 | ||
|
|
98f26e503e | ||
|
|
60abdd9b58 | ||
|
|
0d6faa1ccd | ||
|
|
3b3080a9f6 | ||
|
|
31de1a727a | ||
|
|
f0316438a9 | ||
|
|
a5ee3631c3 | ||
|
|
6d2f85de20 | ||
|
|
dbcca14632 | ||
|
|
cd326bf172 | ||
|
|
e7ff6cacbc | ||
|
|
08902d8a97 | ||
|
|
a4006968d9 | ||
|
|
d6aac61b03 | ||
|
|
703055871b | ||
|
|
3a1e408464 | ||
|
|
d80a12f061 | ||
|
|
39ef112133 | ||
|
|
05b875c564 | ||
|
|
d3e0d5789c | ||
|
|
5bdefd0c25 | ||
|
|
a8516aa629 | ||
|
|
d9bbe48c46 | ||
|
|
962b2df00b | ||
|
|
ed61282e22 | ||
|
|
6607e4e824 | ||
|
|
b72fcddfe2 | ||
|
|
6f6229ef6e | ||
|
|
7476029a04 | ||
|
|
93b4c9bd6b | ||
|
|
6f8c6e12dd |
@@ -0,0 +1,3 @@
|
||||
Important Note
|
||||
==========
|
||||
Please do not file issues with Tcl on Github. They are unlikely to be noticed in a timely fashion. Tcl issues are hosted in the [tcl fossil repository on core.tcl-lang.org](https://core.tcl-lang.org/tcl/tktnew); please post them there.
|
||||
@@ -0,0 +1,3 @@
|
||||
Important Note
|
||||
==========
|
||||
Please do not file pull requests with Tcl on Github. They are unlikely to be noticed in a timely fashion. Tcl issues (including patches) are hosted in the [tcl fossil repository on core.tcl-lang.org](https://core.tcl-lang.org/tcl/tktnew); please post them there.
|
||||
@@ -2,7 +2,7 @@ name: macOS
|
||||
on: [push]
|
||||
jobs:
|
||||
xcode:
|
||||
runs-on: macos-11.0
|
||||
runs-on: macos-11
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
@@ -22,7 +22,7 @@ jobs:
|
||||
ERROR_ON_FAILURES: 1
|
||||
MAC_CI: 1
|
||||
clang:
|
||||
runs-on: macos-11.0
|
||||
runs-on: macos-11
|
||||
strategy:
|
||||
matrix:
|
||||
cfgopt:
|
||||
|
||||
@@ -8096,7 +8096,7 @@ a better first place to look now.
|
||||
2009-03-25 Jan Nijtmans <nijtmans@users.sf.net>
|
||||
|
||||
* doc/tclsh.1: Bring doc and tools in line with
|
||||
* tools/installData.tcl: http://wiki.tcl.tk/812
|
||||
* tools/installData.tcl: https://wiki.tcl-lang.org/page/exec+magic
|
||||
* tools/str2c
|
||||
* tools/tcltk-man2html.tcl
|
||||
|
||||
|
||||
+1
-1
@@ -345,7 +345,7 @@
|
||||
* library/clock.tcl: Corrected the regular expressions that match a
|
||||
time zone to allow for time zones specified as +HH or -HH.
|
||||
* tests/clock.test: Added regression test case for the above issue.
|
||||
Thanks to Rolf Ade for reporting this issue [http://wiki.tcl.tk/13094]
|
||||
Thanks to Rolf Ade for reporting this issue [https://wiki.tcl-lang.org/page/Parsing+ISO8601+dates+and+times]
|
||||
* win/tclWinDde.c (Tcl_DdeObjCmd): Corrected a typo that caused a
|
||||
compilation failure on VC++.
|
||||
|
||||
|
||||
+1
-1
@@ -5262,7 +5262,7 @@
|
||||
* generic/tclStrToD.c: Added code to support the "middle endian"
|
||||
floating point format used in the Nokia N770's software-based floating
|
||||
point. Thanks to Bruce Johnson for reporting this bug, originally on
|
||||
http://wiki.tcl.tk/15408.
|
||||
https://wiki.tcl-lang.org/page/Nokia+770.
|
||||
* library/clock.tcl: Fixed a bug with Daylight Saving Time and Posix
|
||||
time zone specifiers reported by Martin Lemburg in
|
||||
http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/9a8b15a4dfc0b7a0
|
||||
|
||||
@@ -45,7 +45,7 @@ and selling it either in whole or in part. See the file
|
||||
## <a id="doc">2.</a> Documentation
|
||||
Extensive documentation is available on our website.
|
||||
The home page for this release, including new features, is
|
||||
[here](https://www.tcl.tk/software/tcltk/8.6.html).
|
||||
[here](https://www.tcl-lang.org/software/tcltk/8.6.html).
|
||||
Detailed release notes can be found at the
|
||||
[file distributions page](https://sourceforge.net/projects/tcl/files/Tcl/)
|
||||
by clicking on the relevant version.
|
||||
@@ -96,7 +96,7 @@ Tcl Dev Kit builds on the earlier TclPro toolset and provides a debugger,
|
||||
static code checker, single-file wrapping utility, bytecode compiler, and
|
||||
more. More information can be found at
|
||||
|
||||
http://www.ActiveState.com/Tcl
|
||||
https://www.activestate.com/products/tcl/
|
||||
|
||||
## <a id="complangtcl">5.</a> Tcl newsgroup
|
||||
There is a USENET newsgroup, "`comp.lang.tcl`", intended for the exchange of
|
||||
|
||||
@@ -8893,7 +8893,7 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich)
|
||||
|
||||
2018-11-16 (bug)[00d04c] Repair [binary encode base64] (sebres)
|
||||
|
||||
- Released 8.6.9, November 16, 2018 - details at http://core.tcl-lang.org/tcl/ -
|
||||
- Released 8.6.9, November 16, 2018 - details at https://core.tcl-lang.org/tcl/ -
|
||||
|
||||
2018-11-22 (bug)[7a9dc5] [file normalize ~/~foo] segfault (sebres)
|
||||
|
||||
@@ -8944,7 +8944,7 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich)
|
||||
2019-11-18 (bug)[13657a] application/json us text, not binary (noe,nijtmans)
|
||||
=> http 2.9.1
|
||||
|
||||
- Released 8.6.10, Nov 21, 2019 - details at http://core.tcl-lang.org/tcl/ -
|
||||
- Released 8.6.10, Nov 21, 2019 - details at https://core.tcl-lang.org/tcl/ -
|
||||
|
||||
2019-12-03 (bug)[3cd9be] Corner case in surrogate handling (nijtmans)
|
||||
|
||||
@@ -9073,4 +9073,4 @@ See RFC 2045
|
||||
|
||||
2020-12-23 tzdata updated to Olson's tzdata2020e (jima)
|
||||
|
||||
- Released 8.6.11, Dec 31, 2020 - details at http://core.tcl-lang.org/tcl/ -
|
||||
- Released 8.6.11, Dec 31, 2020 - details at https://core.tcl-lang.org/tcl/ -
|
||||
|
||||
@@ -1,186 +1,186 @@
|
||||
/* inffas8664.c is a hand tuned assembler version of inffast.c - fast decoding
|
||||
* version for AMD64 on Windows using Microsoft C compiler
|
||||
*
|
||||
* Copyright (C) 1995-2003 Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*
|
||||
* Copyright (C) 2003 Chris Anderson <christop@charm.net>
|
||||
* Please use the copyright conditions above.
|
||||
*
|
||||
* 2005 - Adaptation to Microsoft C Compiler for AMD64 by Gilles Vollant
|
||||
*
|
||||
* inffas8664.c call function inffas8664fnc in inffasx64.asm
|
||||
* inffasx64.asm is automatically convert from AMD64 portion of inffas86.c
|
||||
*
|
||||
* Dec-29-2003 -- I added AMD64 inflate asm support. This version is also
|
||||
* slightly quicker on x86 systems because, instead of using rep movsb to copy
|
||||
* data, it uses rep movsw, which moves data in 2-byte chunks instead of single
|
||||
* bytes. I've tested the AMD64 code on a Fedora Core 1 + the x86_64 updates
|
||||
* from http://fedora.linux.duke.edu/fc1_x86_64
|
||||
* which is running on an Athlon 64 3000+ / Gigabyte GA-K8VT800M system with
|
||||
* 1GB ram. The 64-bit version is about 4% faster than the 32-bit version,
|
||||
* when decompressing mozilla-source-1.3.tar.gz.
|
||||
*
|
||||
* Mar-13-2003 -- Most of this is derived from inffast.S which is derived from
|
||||
* the gcc -S output of zlib-1.2.0/inffast.c. Zlib-1.2.0 is in beta release at
|
||||
* the moment. I have successfully compiled and tested this code with gcc2.96,
|
||||
* gcc3.2, icc5.0, msvc6.0. It is very close to the speed of inffast.S
|
||||
* compiled with gcc -DNO_MMX, but inffast.S is still faster on the P3 with MMX
|
||||
* enabled. I will attempt to merge the MMX code into this version. Newer
|
||||
* versions of this and inffast.S can be found at
|
||||
* http://www.eetbeetee.com/zlib/ and http://www.charm.net/~christop/zlib/
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "zutil.h"
|
||||
#include "inftrees.h"
|
||||
#include "inflate.h"
|
||||
#include "inffast.h"
|
||||
|
||||
/* Mark Adler's comments from inffast.c: */
|
||||
|
||||
/*
|
||||
Decode literal, length, and distance codes and write out the resulting
|
||||
literal and match bytes until either not enough input or output is
|
||||
available, an end-of-block is encountered, or a data error is encountered.
|
||||
When large enough input and output buffers are supplied to inflate(), for
|
||||
example, a 16K input buffer and a 64K output buffer, more than 95% of the
|
||||
inflate execution time is spent in this routine.
|
||||
|
||||
Entry assumptions:
|
||||
|
||||
state->mode == LEN
|
||||
strm->avail_in >= 6
|
||||
strm->avail_out >= 258
|
||||
start >= strm->avail_out
|
||||
state->bits < 8
|
||||
|
||||
On return, state->mode is one of:
|
||||
|
||||
LEN -- ran out of enough output space or enough available input
|
||||
TYPE -- reached end of block code, inflate() to interpret next block
|
||||
BAD -- error in block data
|
||||
|
||||
Notes:
|
||||
|
||||
- The maximum input bits used by a length/distance pair is 15 bits for the
|
||||
length code, 5 bits for the length extra, 15 bits for the distance code,
|
||||
and 13 bits for the distance extra. This totals 48 bits, or six bytes.
|
||||
Therefore if strm->avail_in >= 6, then there is enough input to avoid
|
||||
checking for available input while decoding.
|
||||
|
||||
- The maximum bytes that a single length/distance pair can output is 258
|
||||
bytes, which is the maximum length that can be coded. inflate_fast()
|
||||
requires strm->avail_out >= 258 for each loop to avoid checking for
|
||||
output space.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
typedef struct inffast_ar {
|
||||
/* 64 32 x86 x86_64 */
|
||||
/* ar offset register */
|
||||
/* 0 0 */ void *esp; /* esp save */
|
||||
/* 8 4 */ void *ebp; /* ebp save */
|
||||
/* 16 8 */ unsigned char FAR *in; /* esi rsi local strm->next_in */
|
||||
/* 24 12 */ unsigned char FAR *last; /* r9 while in < last */
|
||||
/* 32 16 */ unsigned char FAR *out; /* edi rdi local strm->next_out */
|
||||
/* 40 20 */ unsigned char FAR *beg; /* inflate()'s init next_out */
|
||||
/* 48 24 */ unsigned char FAR *end; /* r10 while out < end */
|
||||
/* 56 28 */ unsigned char FAR *window;/* size of window, wsize!=0 */
|
||||
/* 64 32 */ code const FAR *lcode; /* ebp rbp local strm->lencode */
|
||||
/* 72 36 */ code const FAR *dcode; /* r11 local strm->distcode */
|
||||
/* 80 40 */ size_t /*unsigned long */hold; /* edx rdx local strm->hold */
|
||||
/* 88 44 */ unsigned bits; /* ebx rbx local strm->bits */
|
||||
/* 92 48 */ unsigned wsize; /* window size */
|
||||
/* 96 52 */ unsigned write; /* window write index */
|
||||
/*100 56 */ unsigned lmask; /* r12 mask for lcode */
|
||||
/*104 60 */ unsigned dmask; /* r13 mask for dcode */
|
||||
/*108 64 */ unsigned len; /* r14 match length */
|
||||
/*112 68 */ unsigned dist; /* r15 match distance */
|
||||
/*116 72 */ unsigned status; /* set when state chng*/
|
||||
} type_ar;
|
||||
#ifdef ASMINF
|
||||
|
||||
void inflate_fast(strm, start)
|
||||
z_streamp strm;
|
||||
unsigned start; /* inflate()'s starting value for strm->avail_out */
|
||||
{
|
||||
struct inflate_state FAR *state;
|
||||
type_ar ar;
|
||||
void inffas8664fnc(struct inffast_ar * par);
|
||||
|
||||
|
||||
|
||||
#if (defined( __GNUC__ ) && defined( __amd64__ ) && ! defined( __i386 )) || (defined(_MSC_VER) && defined(_M_AMD64))
|
||||
#define PAD_AVAIL_IN 6
|
||||
#define PAD_AVAIL_OUT 258
|
||||
#else
|
||||
#define PAD_AVAIL_IN 5
|
||||
#define PAD_AVAIL_OUT 257
|
||||
#endif
|
||||
|
||||
/* copy state to local variables */
|
||||
state = (struct inflate_state FAR *)strm->state;
|
||||
|
||||
ar.in = strm->next_in;
|
||||
ar.last = ar.in + (strm->avail_in - PAD_AVAIL_IN);
|
||||
ar.out = strm->next_out;
|
||||
ar.beg = ar.out - (start - strm->avail_out);
|
||||
ar.end = ar.out + (strm->avail_out - PAD_AVAIL_OUT);
|
||||
ar.wsize = state->wsize;
|
||||
ar.write = state->wnext;
|
||||
ar.window = state->window;
|
||||
ar.hold = state->hold;
|
||||
ar.bits = state->bits;
|
||||
ar.lcode = state->lencode;
|
||||
ar.dcode = state->distcode;
|
||||
ar.lmask = (1U << state->lenbits) - 1;
|
||||
ar.dmask = (1U << state->distbits) - 1;
|
||||
|
||||
/* decode literals and length/distances until end-of-block or not enough
|
||||
input data or output space */
|
||||
|
||||
/* align in on 1/2 hold size boundary */
|
||||
while (((size_t)(void *)ar.in & (sizeof(ar.hold) / 2 - 1)) != 0) {
|
||||
ar.hold += (unsigned long)*ar.in++ << ar.bits;
|
||||
ar.bits += 8;
|
||||
}
|
||||
|
||||
inffas8664fnc(&ar);
|
||||
|
||||
if (ar.status > 1) {
|
||||
if (ar.status == 2)
|
||||
strm->msg = "invalid literal/length code";
|
||||
else if (ar.status == 3)
|
||||
strm->msg = "invalid distance code";
|
||||
else
|
||||
strm->msg = "invalid distance too far back";
|
||||
state->mode = BAD;
|
||||
}
|
||||
else if ( ar.status == 1 ) {
|
||||
state->mode = TYPE;
|
||||
}
|
||||
|
||||
/* return unused bytes (on entry, bits < 8, so in won't go too far back) */
|
||||
ar.len = ar.bits >> 3;
|
||||
ar.in -= ar.len;
|
||||
ar.bits -= ar.len << 3;
|
||||
ar.hold &= (1U << ar.bits) - 1;
|
||||
|
||||
/* update state and return */
|
||||
strm->next_in = ar.in;
|
||||
strm->next_out = ar.out;
|
||||
strm->avail_in = (unsigned)(ar.in < ar.last ?
|
||||
PAD_AVAIL_IN + (ar.last - ar.in) :
|
||||
PAD_AVAIL_IN - (ar.in - ar.last));
|
||||
strm->avail_out = (unsigned)(ar.out < ar.end ?
|
||||
PAD_AVAIL_OUT + (ar.end - ar.out) :
|
||||
PAD_AVAIL_OUT - (ar.out - ar.end));
|
||||
state->hold = (unsigned long)ar.hold;
|
||||
state->bits = ar.bits;
|
||||
return;
|
||||
}
|
||||
|
||||
#endif
|
||||
/* inffas8664.c is a hand tuned assembler version of inffast.c - fast decoding
|
||||
* version for AMD64 on Windows using Microsoft C compiler
|
||||
*
|
||||
* Copyright (C) 1995-2003 Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*
|
||||
* Copyright (C) 2003 Chris Anderson <christop@charm.net>
|
||||
* Please use the copyright conditions above.
|
||||
*
|
||||
* 2005 - Adaptation to Microsoft C Compiler for AMD64 by Gilles Vollant
|
||||
*
|
||||
* inffas8664.c call function inffas8664fnc in inffasx64.asm
|
||||
* inffasx64.asm is automatically convert from AMD64 portion of inffas86.c
|
||||
*
|
||||
* Dec-29-2003 -- I added AMD64 inflate asm support. This version is also
|
||||
* slightly quicker on x86 systems because, instead of using rep movsb to copy
|
||||
* data, it uses rep movsw, which moves data in 2-byte chunks instead of single
|
||||
* bytes. I've tested the AMD64 code on a Fedora Core 1 + the x86_64 updates
|
||||
* from http://fedora.linux.duke.edu/fc1_x86_64
|
||||
* which is running on an Athlon 64 3000+ / Gigabyte GA-K8VT800M system with
|
||||
* 1GB ram. The 64-bit version is about 4% faster than the 32-bit version,
|
||||
* when decompressing mozilla-source-1.3.tar.gz.
|
||||
*
|
||||
* Mar-13-2003 -- Most of this is derived from inffast.S which is derived from
|
||||
* the gcc -S output of zlib-1.2.0/inffast.c. Zlib-1.2.0 is in beta release at
|
||||
* the moment. I have successfully compiled and tested this code with gcc2.96,
|
||||
* gcc3.2, icc5.0, msvc6.0. It is very close to the speed of inffast.S
|
||||
* compiled with gcc -DNO_MMX, but inffast.S is still faster on the P3 with MMX
|
||||
* enabled. I will attempt to merge the MMX code into this version. Newer
|
||||
* versions of this and inffast.S can be found at
|
||||
* http://www.eetbeetee.com/zlib/ and http://www.charm.net/~christop/zlib/
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "zutil.h"
|
||||
#include "inftrees.h"
|
||||
#include "inflate.h"
|
||||
#include "inffast.h"
|
||||
|
||||
/* Mark Adler's comments from inffast.c: */
|
||||
|
||||
/*
|
||||
Decode literal, length, and distance codes and write out the resulting
|
||||
literal and match bytes until either not enough input or output is
|
||||
available, an end-of-block is encountered, or a data error is encountered.
|
||||
When large enough input and output buffers are supplied to inflate(), for
|
||||
example, a 16K input buffer and a 64K output buffer, more than 95% of the
|
||||
inflate execution time is spent in this routine.
|
||||
|
||||
Entry assumptions:
|
||||
|
||||
state->mode == LEN
|
||||
strm->avail_in >= 6
|
||||
strm->avail_out >= 258
|
||||
start >= strm->avail_out
|
||||
state->bits < 8
|
||||
|
||||
On return, state->mode is one of:
|
||||
|
||||
LEN -- ran out of enough output space or enough available input
|
||||
TYPE -- reached end of block code, inflate() to interpret next block
|
||||
BAD -- error in block data
|
||||
|
||||
Notes:
|
||||
|
||||
- The maximum input bits used by a length/distance pair is 15 bits for the
|
||||
length code, 5 bits for the length extra, 15 bits for the distance code,
|
||||
and 13 bits for the distance extra. This totals 48 bits, or six bytes.
|
||||
Therefore if strm->avail_in >= 6, then there is enough input to avoid
|
||||
checking for available input while decoding.
|
||||
|
||||
- The maximum bytes that a single length/distance pair can output is 258
|
||||
bytes, which is the maximum length that can be coded. inflate_fast()
|
||||
requires strm->avail_out >= 258 for each loop to avoid checking for
|
||||
output space.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
typedef struct inffast_ar {
|
||||
/* 64 32 x86 x86_64 */
|
||||
/* ar offset register */
|
||||
/* 0 0 */ void *esp; /* esp save */
|
||||
/* 8 4 */ void *ebp; /* ebp save */
|
||||
/* 16 8 */ unsigned char FAR *in; /* esi rsi local strm->next_in */
|
||||
/* 24 12 */ unsigned char FAR *last; /* r9 while in < last */
|
||||
/* 32 16 */ unsigned char FAR *out; /* edi rdi local strm->next_out */
|
||||
/* 40 20 */ unsigned char FAR *beg; /* inflate()'s init next_out */
|
||||
/* 48 24 */ unsigned char FAR *end; /* r10 while out < end */
|
||||
/* 56 28 */ unsigned char FAR *window;/* size of window, wsize!=0 */
|
||||
/* 64 32 */ code const FAR *lcode; /* ebp rbp local strm->lencode */
|
||||
/* 72 36 */ code const FAR *dcode; /* r11 local strm->distcode */
|
||||
/* 80 40 */ size_t /*unsigned long */hold; /* edx rdx local strm->hold */
|
||||
/* 88 44 */ unsigned bits; /* ebx rbx local strm->bits */
|
||||
/* 92 48 */ unsigned wsize; /* window size */
|
||||
/* 96 52 */ unsigned write; /* window write index */
|
||||
/*100 56 */ unsigned lmask; /* r12 mask for lcode */
|
||||
/*104 60 */ unsigned dmask; /* r13 mask for dcode */
|
||||
/*108 64 */ unsigned len; /* r14 match length */
|
||||
/*112 68 */ unsigned dist; /* r15 match distance */
|
||||
/*116 72 */ unsigned status; /* set when state chng*/
|
||||
} type_ar;
|
||||
#ifdef ASMINF
|
||||
|
||||
void inflate_fast(strm, start)
|
||||
z_streamp strm;
|
||||
unsigned start; /* inflate()'s starting value for strm->avail_out */
|
||||
{
|
||||
struct inflate_state FAR *state;
|
||||
type_ar ar;
|
||||
void inffas8664fnc(struct inffast_ar * par);
|
||||
|
||||
|
||||
|
||||
#if (defined( __GNUC__ ) && defined( __amd64__ ) && ! defined( __i386 )) || (defined(_MSC_VER) && defined(_M_AMD64))
|
||||
#define PAD_AVAIL_IN 6
|
||||
#define PAD_AVAIL_OUT 258
|
||||
#else
|
||||
#define PAD_AVAIL_IN 5
|
||||
#define PAD_AVAIL_OUT 257
|
||||
#endif
|
||||
|
||||
/* copy state to local variables */
|
||||
state = (struct inflate_state FAR *)strm->state;
|
||||
|
||||
ar.in = strm->next_in;
|
||||
ar.last = ar.in + (strm->avail_in - PAD_AVAIL_IN);
|
||||
ar.out = strm->next_out;
|
||||
ar.beg = ar.out - (start - strm->avail_out);
|
||||
ar.end = ar.out + (strm->avail_out - PAD_AVAIL_OUT);
|
||||
ar.wsize = state->wsize;
|
||||
ar.write = state->wnext;
|
||||
ar.window = state->window;
|
||||
ar.hold = state->hold;
|
||||
ar.bits = state->bits;
|
||||
ar.lcode = state->lencode;
|
||||
ar.dcode = state->distcode;
|
||||
ar.lmask = (1U << state->lenbits) - 1;
|
||||
ar.dmask = (1U << state->distbits) - 1;
|
||||
|
||||
/* decode literals and length/distances until end-of-block or not enough
|
||||
input data or output space */
|
||||
|
||||
/* align in on 1/2 hold size boundary */
|
||||
while (((size_t)(void *)ar.in & (sizeof(ar.hold) / 2 - 1)) != 0) {
|
||||
ar.hold += (unsigned long)*ar.in++ << ar.bits;
|
||||
ar.bits += 8;
|
||||
}
|
||||
|
||||
inffas8664fnc(&ar);
|
||||
|
||||
if (ar.status > 1) {
|
||||
if (ar.status == 2)
|
||||
strm->msg = "invalid literal/length code";
|
||||
else if (ar.status == 3)
|
||||
strm->msg = "invalid distance code";
|
||||
else
|
||||
strm->msg = "invalid distance too far back";
|
||||
state->mode = BAD;
|
||||
}
|
||||
else if ( ar.status == 1 ) {
|
||||
state->mode = TYPE;
|
||||
}
|
||||
|
||||
/* return unused bytes (on entry, bits < 8, so in won't go too far back) */
|
||||
ar.len = ar.bits >> 3;
|
||||
ar.in -= ar.len;
|
||||
ar.bits -= ar.len << 3;
|
||||
ar.hold &= (1U << ar.bits) - 1;
|
||||
|
||||
/* update state and return */
|
||||
strm->next_in = ar.in;
|
||||
strm->next_out = ar.out;
|
||||
strm->avail_in = (unsigned)(ar.in < ar.last ?
|
||||
PAD_AVAIL_IN + (ar.last - ar.in) :
|
||||
PAD_AVAIL_IN - (ar.in - ar.last));
|
||||
strm->avail_out = (unsigned)(ar.out < ar.end ?
|
||||
PAD_AVAIL_OUT + (ar.end - ar.out) :
|
||||
PAD_AVAIL_OUT - (ar.out - ar.end));
|
||||
state->hold = (unsigned long)ar.hold;
|
||||
state->bits = ar.bits;
|
||||
return;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,275 +1,275 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <windows.h>
|
||||
|
||||
#include "zlib.h"
|
||||
|
||||
|
||||
void MyDoMinus64(LARGE_INTEGER *R,LARGE_INTEGER A,LARGE_INTEGER B)
|
||||
{
|
||||
R->HighPart = A.HighPart - B.HighPart;
|
||||
if (A.LowPart >= B.LowPart)
|
||||
R->LowPart = A.LowPart - B.LowPart;
|
||||
else
|
||||
{
|
||||
R->LowPart = A.LowPart - B.LowPart;
|
||||
R->HighPart --;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef _M_X64
|
||||
// see http://msdn2.microsoft.com/library/twchhe95(en-us,vs.80).aspx for __rdtsc
|
||||
unsigned __int64 __rdtsc(void);
|
||||
void BeginCountRdtsc(LARGE_INTEGER * pbeginTime64)
|
||||
{
|
||||
// printf("rdtsc = %I64x\n",__rdtsc());
|
||||
pbeginTime64->QuadPart=__rdtsc();
|
||||
}
|
||||
|
||||
LARGE_INTEGER GetResRdtsc(LARGE_INTEGER beginTime64,BOOL fComputeTimeQueryPerf)
|
||||
{
|
||||
LARGE_INTEGER LIres;
|
||||
unsigned _int64 res=__rdtsc()-((unsigned _int64)(beginTime64.QuadPart));
|
||||
LIres.QuadPart=res;
|
||||
// printf("rdtsc = %I64x\n",__rdtsc());
|
||||
return LIres;
|
||||
}
|
||||
#else
|
||||
#ifdef _M_IX86
|
||||
void myGetRDTSC32(LARGE_INTEGER * pbeginTime64)
|
||||
{
|
||||
DWORD dwEdx,dwEax;
|
||||
_asm
|
||||
{
|
||||
rdtsc
|
||||
mov dwEax,eax
|
||||
mov dwEdx,edx
|
||||
}
|
||||
pbeginTime64->LowPart=dwEax;
|
||||
pbeginTime64->HighPart=dwEdx;
|
||||
}
|
||||
|
||||
void BeginCountRdtsc(LARGE_INTEGER * pbeginTime64)
|
||||
{
|
||||
myGetRDTSC32(pbeginTime64);
|
||||
}
|
||||
|
||||
LARGE_INTEGER GetResRdtsc(LARGE_INTEGER beginTime64,BOOL fComputeTimeQueryPerf)
|
||||
{
|
||||
LARGE_INTEGER LIres,endTime64;
|
||||
myGetRDTSC32(&endTime64);
|
||||
|
||||
LIres.LowPart=LIres.HighPart=0;
|
||||
MyDoMinus64(&LIres,endTime64,beginTime64);
|
||||
return LIres;
|
||||
}
|
||||
#else
|
||||
void myGetRDTSC32(LARGE_INTEGER * pbeginTime64)
|
||||
{
|
||||
}
|
||||
|
||||
void BeginCountRdtsc(LARGE_INTEGER * pbeginTime64)
|
||||
{
|
||||
}
|
||||
|
||||
LARGE_INTEGER GetResRdtsc(LARGE_INTEGER beginTime64,BOOL fComputeTimeQueryPerf)
|
||||
{
|
||||
LARGE_INTEGER lr;
|
||||
lr.QuadPart=0;
|
||||
return lr;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
void BeginCountPerfCounter(LARGE_INTEGER * pbeginTime64,BOOL fComputeTimeQueryPerf)
|
||||
{
|
||||
if ((!fComputeTimeQueryPerf) || (!QueryPerformanceCounter(pbeginTime64)))
|
||||
{
|
||||
pbeginTime64->LowPart = GetTickCount();
|
||||
pbeginTime64->HighPart = 0;
|
||||
}
|
||||
}
|
||||
|
||||
DWORD GetMsecSincePerfCounter(LARGE_INTEGER beginTime64,BOOL fComputeTimeQueryPerf)
|
||||
{
|
||||
LARGE_INTEGER endTime64,ticksPerSecond,ticks;
|
||||
DWORDLONG ticksShifted,tickSecShifted;
|
||||
DWORD dwLog=16+0;
|
||||
DWORD dwRet;
|
||||
if ((!fComputeTimeQueryPerf) || (!QueryPerformanceCounter(&endTime64)))
|
||||
dwRet = (GetTickCount() - beginTime64.LowPart)*1;
|
||||
else
|
||||
{
|
||||
MyDoMinus64(&ticks,endTime64,beginTime64);
|
||||
QueryPerformanceFrequency(&ticksPerSecond);
|
||||
|
||||
|
||||
{
|
||||
ticksShifted = Int64ShrlMod32(*(DWORDLONG*)&ticks,dwLog);
|
||||
tickSecShifted = Int64ShrlMod32(*(DWORDLONG*)&ticksPerSecond,dwLog);
|
||||
|
||||
}
|
||||
|
||||
dwRet = (DWORD)((((DWORD)ticksShifted)*1000)/(DWORD)(tickSecShifted));
|
||||
dwRet *=1;
|
||||
}
|
||||
return dwRet;
|
||||
}
|
||||
|
||||
int ReadFileMemory(const char* filename,long* plFileSize,unsigned char** pFilePtr)
|
||||
{
|
||||
FILE* stream;
|
||||
unsigned char* ptr;
|
||||
int retVal=1;
|
||||
stream=fopen(filename, "rb");
|
||||
if (stream==NULL)
|
||||
return 0;
|
||||
|
||||
fseek(stream,0,SEEK_END);
|
||||
|
||||
*plFileSize=ftell(stream);
|
||||
fseek(stream,0,SEEK_SET);
|
||||
ptr=malloc((*plFileSize)+1);
|
||||
if (ptr==NULL)
|
||||
retVal=0;
|
||||
else
|
||||
{
|
||||
if (fread(ptr, 1, *plFileSize,stream) != (*plFileSize))
|
||||
retVal=0;
|
||||
}
|
||||
fclose(stream);
|
||||
*pFilePtr=ptr;
|
||||
return retVal;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int BlockSizeCompress=0x8000;
|
||||
int BlockSizeUncompress=0x8000;
|
||||
int cprLevel=Z_DEFAULT_COMPRESSION ;
|
||||
long lFileSize;
|
||||
unsigned char* FilePtr;
|
||||
long lBufferSizeCpr;
|
||||
long lBufferSizeUncpr;
|
||||
long lCompressedSize=0;
|
||||
unsigned char* CprPtr;
|
||||
unsigned char* UncprPtr;
|
||||
long lSizeCpr,lSizeUncpr;
|
||||
DWORD dwGetTick,dwMsecQP;
|
||||
LARGE_INTEGER li_qp,li_rdtsc,dwResRdtsc;
|
||||
|
||||
if (argc<=1)
|
||||
{
|
||||
printf("run TestZlib <File> [BlockSizeCompress] [BlockSizeUncompress] [compres. level]\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ReadFileMemory(argv[1],&lFileSize,&FilePtr)==0)
|
||||
{
|
||||
printf("error reading %s\n",argv[1]);
|
||||
return 1;
|
||||
}
|
||||
else printf("file %s read, %u bytes\n",argv[1],lFileSize);
|
||||
|
||||
if (argc>=3)
|
||||
BlockSizeCompress=atol(argv[2]);
|
||||
|
||||
if (argc>=4)
|
||||
BlockSizeUncompress=atol(argv[3]);
|
||||
|
||||
if (argc>=5)
|
||||
cprLevel=(int)atol(argv[4]);
|
||||
|
||||
lBufferSizeCpr = lFileSize + (lFileSize/0x10) + 0x200;
|
||||
lBufferSizeUncpr = lBufferSizeCpr;
|
||||
|
||||
CprPtr=(unsigned char*)malloc(lBufferSizeCpr + BlockSizeCompress);
|
||||
|
||||
BeginCountPerfCounter(&li_qp,TRUE);
|
||||
dwGetTick=GetTickCount();
|
||||
BeginCountRdtsc(&li_rdtsc);
|
||||
{
|
||||
z_stream zcpr;
|
||||
int ret=Z_OK;
|
||||
long lOrigToDo = lFileSize;
|
||||
long lOrigDone = 0;
|
||||
int step=0;
|
||||
memset(&zcpr,0,sizeof(z_stream));
|
||||
deflateInit(&zcpr,cprLevel);
|
||||
|
||||
zcpr.next_in = FilePtr;
|
||||
zcpr.next_out = CprPtr;
|
||||
|
||||
|
||||
do
|
||||
{
|
||||
long all_read_before = zcpr.total_in;
|
||||
zcpr.avail_in = min(lOrigToDo,BlockSizeCompress);
|
||||
zcpr.avail_out = BlockSizeCompress;
|
||||
ret=deflate(&zcpr,(zcpr.avail_in==lOrigToDo) ? Z_FINISH : Z_SYNC_FLUSH);
|
||||
lOrigDone += (zcpr.total_in-all_read_before);
|
||||
lOrigToDo -= (zcpr.total_in-all_read_before);
|
||||
step++;
|
||||
} while (ret==Z_OK);
|
||||
|
||||
lSizeCpr=zcpr.total_out;
|
||||
deflateEnd(&zcpr);
|
||||
dwGetTick=GetTickCount()-dwGetTick;
|
||||
dwMsecQP=GetMsecSincePerfCounter(li_qp,TRUE);
|
||||
dwResRdtsc=GetResRdtsc(li_rdtsc,TRUE);
|
||||
printf("total compress size = %u, in %u step\n",lSizeCpr,step);
|
||||
printf("time = %u msec = %f sec\n",dwGetTick,dwGetTick/(double)1000.);
|
||||
printf("defcpr time QP = %u msec = %f sec\n",dwMsecQP,dwMsecQP/(double)1000.);
|
||||
printf("defcpr result rdtsc = %I64x\n\n",dwResRdtsc.QuadPart);
|
||||
}
|
||||
|
||||
CprPtr=(unsigned char*)realloc(CprPtr,lSizeCpr);
|
||||
UncprPtr=(unsigned char*)malloc(lBufferSizeUncpr + BlockSizeUncompress);
|
||||
|
||||
BeginCountPerfCounter(&li_qp,TRUE);
|
||||
dwGetTick=GetTickCount();
|
||||
BeginCountRdtsc(&li_rdtsc);
|
||||
{
|
||||
z_stream zcpr;
|
||||
int ret=Z_OK;
|
||||
long lOrigToDo = lSizeCpr;
|
||||
long lOrigDone = 0;
|
||||
int step=0;
|
||||
memset(&zcpr,0,sizeof(z_stream));
|
||||
inflateInit(&zcpr);
|
||||
|
||||
zcpr.next_in = CprPtr;
|
||||
zcpr.next_out = UncprPtr;
|
||||
|
||||
|
||||
do
|
||||
{
|
||||
long all_read_before = zcpr.total_in;
|
||||
zcpr.avail_in = min(lOrigToDo,BlockSizeUncompress);
|
||||
zcpr.avail_out = BlockSizeUncompress;
|
||||
ret=inflate(&zcpr,Z_SYNC_FLUSH);
|
||||
lOrigDone += (zcpr.total_in-all_read_before);
|
||||
lOrigToDo -= (zcpr.total_in-all_read_before);
|
||||
step++;
|
||||
} while (ret==Z_OK);
|
||||
|
||||
lSizeUncpr=zcpr.total_out;
|
||||
inflateEnd(&zcpr);
|
||||
dwGetTick=GetTickCount()-dwGetTick;
|
||||
dwMsecQP=GetMsecSincePerfCounter(li_qp,TRUE);
|
||||
dwResRdtsc=GetResRdtsc(li_rdtsc,TRUE);
|
||||
printf("total uncompress size = %u, in %u step\n",lSizeUncpr,step);
|
||||
printf("time = %u msec = %f sec\n",dwGetTick,dwGetTick/(double)1000.);
|
||||
printf("uncpr time QP = %u msec = %f sec\n",dwMsecQP,dwMsecQP/(double)1000.);
|
||||
printf("uncpr result rdtsc = %I64x\n\n",dwResRdtsc.QuadPart);
|
||||
}
|
||||
|
||||
if (lSizeUncpr==lFileSize)
|
||||
{
|
||||
if (memcmp(FilePtr,UncprPtr,lFileSize)==0)
|
||||
printf("compare ok\n");
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <windows.h>
|
||||
|
||||
#include "zlib.h"
|
||||
|
||||
|
||||
void MyDoMinus64(LARGE_INTEGER *R,LARGE_INTEGER A,LARGE_INTEGER B)
|
||||
{
|
||||
R->HighPart = A.HighPart - B.HighPart;
|
||||
if (A.LowPart >= B.LowPart)
|
||||
R->LowPart = A.LowPart - B.LowPart;
|
||||
else
|
||||
{
|
||||
R->LowPart = A.LowPart - B.LowPart;
|
||||
R->HighPart --;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef _M_X64
|
||||
// see http://msdn2.microsoft.com/library/twchhe95(en-us,vs.80).aspx for __rdtsc
|
||||
unsigned __int64 __rdtsc(void);
|
||||
void BeginCountRdtsc(LARGE_INTEGER * pbeginTime64)
|
||||
{
|
||||
// printf("rdtsc = %I64x\n",__rdtsc());
|
||||
pbeginTime64->QuadPart=__rdtsc();
|
||||
}
|
||||
|
||||
LARGE_INTEGER GetResRdtsc(LARGE_INTEGER beginTime64,BOOL fComputeTimeQueryPerf)
|
||||
{
|
||||
LARGE_INTEGER LIres;
|
||||
unsigned _int64 res=__rdtsc()-((unsigned _int64)(beginTime64.QuadPart));
|
||||
LIres.QuadPart=res;
|
||||
// printf("rdtsc = %I64x\n",__rdtsc());
|
||||
return LIres;
|
||||
}
|
||||
#else
|
||||
#ifdef _M_IX86
|
||||
void myGetRDTSC32(LARGE_INTEGER * pbeginTime64)
|
||||
{
|
||||
DWORD dwEdx,dwEax;
|
||||
_asm
|
||||
{
|
||||
rdtsc
|
||||
mov dwEax,eax
|
||||
mov dwEdx,edx
|
||||
}
|
||||
pbeginTime64->LowPart=dwEax;
|
||||
pbeginTime64->HighPart=dwEdx;
|
||||
}
|
||||
|
||||
void BeginCountRdtsc(LARGE_INTEGER * pbeginTime64)
|
||||
{
|
||||
myGetRDTSC32(pbeginTime64);
|
||||
}
|
||||
|
||||
LARGE_INTEGER GetResRdtsc(LARGE_INTEGER beginTime64,BOOL fComputeTimeQueryPerf)
|
||||
{
|
||||
LARGE_INTEGER LIres,endTime64;
|
||||
myGetRDTSC32(&endTime64);
|
||||
|
||||
LIres.LowPart=LIres.HighPart=0;
|
||||
MyDoMinus64(&LIres,endTime64,beginTime64);
|
||||
return LIres;
|
||||
}
|
||||
#else
|
||||
void myGetRDTSC32(LARGE_INTEGER * pbeginTime64)
|
||||
{
|
||||
}
|
||||
|
||||
void BeginCountRdtsc(LARGE_INTEGER * pbeginTime64)
|
||||
{
|
||||
}
|
||||
|
||||
LARGE_INTEGER GetResRdtsc(LARGE_INTEGER beginTime64,BOOL fComputeTimeQueryPerf)
|
||||
{
|
||||
LARGE_INTEGER lr;
|
||||
lr.QuadPart=0;
|
||||
return lr;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
void BeginCountPerfCounter(LARGE_INTEGER * pbeginTime64,BOOL fComputeTimeQueryPerf)
|
||||
{
|
||||
if ((!fComputeTimeQueryPerf) || (!QueryPerformanceCounter(pbeginTime64)))
|
||||
{
|
||||
pbeginTime64->LowPart = GetTickCount();
|
||||
pbeginTime64->HighPart = 0;
|
||||
}
|
||||
}
|
||||
|
||||
DWORD GetMsecSincePerfCounter(LARGE_INTEGER beginTime64,BOOL fComputeTimeQueryPerf)
|
||||
{
|
||||
LARGE_INTEGER endTime64,ticksPerSecond,ticks;
|
||||
DWORDLONG ticksShifted,tickSecShifted;
|
||||
DWORD dwLog=16+0;
|
||||
DWORD dwRet;
|
||||
if ((!fComputeTimeQueryPerf) || (!QueryPerformanceCounter(&endTime64)))
|
||||
dwRet = (GetTickCount() - beginTime64.LowPart)*1;
|
||||
else
|
||||
{
|
||||
MyDoMinus64(&ticks,endTime64,beginTime64);
|
||||
QueryPerformanceFrequency(&ticksPerSecond);
|
||||
|
||||
|
||||
{
|
||||
ticksShifted = Int64ShrlMod32(*(DWORDLONG*)&ticks,dwLog);
|
||||
tickSecShifted = Int64ShrlMod32(*(DWORDLONG*)&ticksPerSecond,dwLog);
|
||||
|
||||
}
|
||||
|
||||
dwRet = (DWORD)((((DWORD)ticksShifted)*1000)/(DWORD)(tickSecShifted));
|
||||
dwRet *=1;
|
||||
}
|
||||
return dwRet;
|
||||
}
|
||||
|
||||
int ReadFileMemory(const char* filename,long* plFileSize,unsigned char** pFilePtr)
|
||||
{
|
||||
FILE* stream;
|
||||
unsigned char* ptr;
|
||||
int retVal=1;
|
||||
stream=fopen(filename, "rb");
|
||||
if (stream==NULL)
|
||||
return 0;
|
||||
|
||||
fseek(stream,0,SEEK_END);
|
||||
|
||||
*plFileSize=ftell(stream);
|
||||
fseek(stream,0,SEEK_SET);
|
||||
ptr=malloc((*plFileSize)+1);
|
||||
if (ptr==NULL)
|
||||
retVal=0;
|
||||
else
|
||||
{
|
||||
if (fread(ptr, 1, *plFileSize,stream) != (*plFileSize))
|
||||
retVal=0;
|
||||
}
|
||||
fclose(stream);
|
||||
*pFilePtr=ptr;
|
||||
return retVal;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int BlockSizeCompress=0x8000;
|
||||
int BlockSizeUncompress=0x8000;
|
||||
int cprLevel=Z_DEFAULT_COMPRESSION ;
|
||||
long lFileSize;
|
||||
unsigned char* FilePtr;
|
||||
long lBufferSizeCpr;
|
||||
long lBufferSizeUncpr;
|
||||
long lCompressedSize=0;
|
||||
unsigned char* CprPtr;
|
||||
unsigned char* UncprPtr;
|
||||
long lSizeCpr,lSizeUncpr;
|
||||
DWORD dwGetTick,dwMsecQP;
|
||||
LARGE_INTEGER li_qp,li_rdtsc,dwResRdtsc;
|
||||
|
||||
if (argc<=1)
|
||||
{
|
||||
printf("run TestZlib <File> [BlockSizeCompress] [BlockSizeUncompress] [compres. level]\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ReadFileMemory(argv[1],&lFileSize,&FilePtr)==0)
|
||||
{
|
||||
printf("error reading %s\n",argv[1]);
|
||||
return 1;
|
||||
}
|
||||
else printf("file %s read, %u bytes\n",argv[1],lFileSize);
|
||||
|
||||
if (argc>=3)
|
||||
BlockSizeCompress=atol(argv[2]);
|
||||
|
||||
if (argc>=4)
|
||||
BlockSizeUncompress=atol(argv[3]);
|
||||
|
||||
if (argc>=5)
|
||||
cprLevel=(int)atol(argv[4]);
|
||||
|
||||
lBufferSizeCpr = lFileSize + (lFileSize/0x10) + 0x200;
|
||||
lBufferSizeUncpr = lBufferSizeCpr;
|
||||
|
||||
CprPtr=(unsigned char*)malloc(lBufferSizeCpr + BlockSizeCompress);
|
||||
|
||||
BeginCountPerfCounter(&li_qp,TRUE);
|
||||
dwGetTick=GetTickCount();
|
||||
BeginCountRdtsc(&li_rdtsc);
|
||||
{
|
||||
z_stream zcpr;
|
||||
int ret=Z_OK;
|
||||
long lOrigToDo = lFileSize;
|
||||
long lOrigDone = 0;
|
||||
int step=0;
|
||||
memset(&zcpr,0,sizeof(z_stream));
|
||||
deflateInit(&zcpr,cprLevel);
|
||||
|
||||
zcpr.next_in = FilePtr;
|
||||
zcpr.next_out = CprPtr;
|
||||
|
||||
|
||||
do
|
||||
{
|
||||
long all_read_before = zcpr.total_in;
|
||||
zcpr.avail_in = min(lOrigToDo,BlockSizeCompress);
|
||||
zcpr.avail_out = BlockSizeCompress;
|
||||
ret=deflate(&zcpr,(zcpr.avail_in==lOrigToDo) ? Z_FINISH : Z_SYNC_FLUSH);
|
||||
lOrigDone += (zcpr.total_in-all_read_before);
|
||||
lOrigToDo -= (zcpr.total_in-all_read_before);
|
||||
step++;
|
||||
} while (ret==Z_OK);
|
||||
|
||||
lSizeCpr=zcpr.total_out;
|
||||
deflateEnd(&zcpr);
|
||||
dwGetTick=GetTickCount()-dwGetTick;
|
||||
dwMsecQP=GetMsecSincePerfCounter(li_qp,TRUE);
|
||||
dwResRdtsc=GetResRdtsc(li_rdtsc,TRUE);
|
||||
printf("total compress size = %u, in %u step\n",lSizeCpr,step);
|
||||
printf("time = %u msec = %f sec\n",dwGetTick,dwGetTick/(double)1000.);
|
||||
printf("defcpr time QP = %u msec = %f sec\n",dwMsecQP,dwMsecQP/(double)1000.);
|
||||
printf("defcpr result rdtsc = %I64x\n\n",dwResRdtsc.QuadPart);
|
||||
}
|
||||
|
||||
CprPtr=(unsigned char*)realloc(CprPtr,lSizeCpr);
|
||||
UncprPtr=(unsigned char*)malloc(lBufferSizeUncpr + BlockSizeUncompress);
|
||||
|
||||
BeginCountPerfCounter(&li_qp,TRUE);
|
||||
dwGetTick=GetTickCount();
|
||||
BeginCountRdtsc(&li_rdtsc);
|
||||
{
|
||||
z_stream zcpr;
|
||||
int ret=Z_OK;
|
||||
long lOrigToDo = lSizeCpr;
|
||||
long lOrigDone = 0;
|
||||
int step=0;
|
||||
memset(&zcpr,0,sizeof(z_stream));
|
||||
inflateInit(&zcpr);
|
||||
|
||||
zcpr.next_in = CprPtr;
|
||||
zcpr.next_out = UncprPtr;
|
||||
|
||||
|
||||
do
|
||||
{
|
||||
long all_read_before = zcpr.total_in;
|
||||
zcpr.avail_in = min(lOrigToDo,BlockSizeUncompress);
|
||||
zcpr.avail_out = BlockSizeUncompress;
|
||||
ret=inflate(&zcpr,Z_SYNC_FLUSH);
|
||||
lOrigDone += (zcpr.total_in-all_read_before);
|
||||
lOrigToDo -= (zcpr.total_in-all_read_before);
|
||||
step++;
|
||||
} while (ret==Z_OK);
|
||||
|
||||
lSizeUncpr=zcpr.total_out;
|
||||
inflateEnd(&zcpr);
|
||||
dwGetTick=GetTickCount()-dwGetTick;
|
||||
dwMsecQP=GetMsecSincePerfCounter(li_qp,TRUE);
|
||||
dwResRdtsc=GetResRdtsc(li_rdtsc,TRUE);
|
||||
printf("total uncompress size = %u, in %u step\n",lSizeUncpr,step);
|
||||
printf("time = %u msec = %f sec\n",dwGetTick,dwGetTick/(double)1000.);
|
||||
printf("uncpr time QP = %u msec = %f sec\n",dwMsecQP,dwMsecQP/(double)1000.);
|
||||
printf("uncpr result rdtsc = %I64x\n\n",dwResRdtsc.QuadPart);
|
||||
}
|
||||
|
||||
if (lSizeUncpr==lFileSize)
|
||||
{
|
||||
if (memcmp(FilePtr,UncprPtr,lFileSize)==0)
|
||||
printf("compare ok\n");
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ int
|
||||
\fBTcl_Stat\fR(\fIpath\fR, \fIstatPtr\fR)
|
||||
.SH ARGUMENTS
|
||||
.AS "struct stat" *statPtr out
|
||||
.AP char *path in
|
||||
.AP "const char" *path in
|
||||
Native name of the file to check the attributes of.
|
||||
.AP int mode in
|
||||
Mask consisting of one or more of \fBR_OK\fR, \fBW_OK\fR, \fBX_OK\fR and
|
||||
|
||||
+2
-2
@@ -49,7 +49,7 @@ Interpreter in which to record information.
|
||||
The code returned from script evaluation.
|
||||
.AP Tcl_Obj *options
|
||||
A dictionary of return options.
|
||||
.AP char *message in
|
||||
.AP "const char" *message in
|
||||
For \fBTcl_AddErrorInfo\fR,
|
||||
this is a conventional C string to append to the \fB\-errorinfo\fR return option.
|
||||
For \fBTcl_AddObjErrorInfo\fR,
|
||||
@@ -66,7 +66,7 @@ appending to the \fB\-errorinfo\fR return option.
|
||||
If negative, all bytes up to the first null byte are used.
|
||||
.AP Tcl_Obj *errorObjPtr in
|
||||
The \fB\-errorcode\fR return option will be set to this value.
|
||||
.AP char *element in
|
||||
.AP "const char" *element in
|
||||
String to record as one element of the \fB\-errorcode\fR return option.
|
||||
Last \fIelement\fR argument must be NULL.
|
||||
.AP va_list argList in
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ char
|
||||
\fBTcl_Backslash\fR(\fIsrc, countPtr\fR)
|
||||
.SH ARGUMENTS
|
||||
.AS char *countPtr out
|
||||
.AP char *src in
|
||||
.AP "const char" *src in
|
||||
Pointer to a string starting with a backslash.
|
||||
.AP int *countPtr out
|
||||
If \fIcountPtr\fR is not NULL, \fI*countPtr\fR gets filled
|
||||
|
||||
+1
-1
@@ -46,7 +46,7 @@ Tcl_Command
|
||||
.AS Tcl_CmdDeleteProc *deleteProc in/out
|
||||
.AP Tcl_Interp *interp in
|
||||
Interpreter in which to create a new command or that contains a command.
|
||||
.AP char *cmdName in
|
||||
.AP "const char" *cmdName in
|
||||
Name of command.
|
||||
.AP Tcl_ObjCmdProc *proc in
|
||||
Implementation of the new command: \fIproc\fR will be called whenever
|
||||
|
||||
+1
-1
@@ -65,7 +65,7 @@ null terminating character. If \-1, then all characters up to the
|
||||
first null byte are used.
|
||||
.AP "const char" *script in
|
||||
Points to first byte of script to execute (null-terminated and UTF-8).
|
||||
.AP char *part in
|
||||
.AP "const char" *part in
|
||||
String forming part of a Tcl script.
|
||||
.AP va_list argList in
|
||||
An argument list which must have been initialized using
|
||||
|
||||
+3
-3
@@ -17,7 +17,7 @@ char *
|
||||
\fBTcl_GetCwd\fR(\fIinterp\fR, \fIbufferPtr\fR)
|
||||
.sp
|
||||
int
|
||||
\fBTcl_Chdir\fR(\fIpath\fR)
|
||||
\fBTcl_Chdir\fR(\fIdirName\fR)
|
||||
.SH ARGUMENTS
|
||||
.AS Tcl_DString *bufferPtr in/out
|
||||
.AP Tcl_Interp *interp in
|
||||
@@ -27,7 +27,7 @@ This dynamic string is used to store the current working directory.
|
||||
At the time of the call it should be uninitialized or free. The
|
||||
caller must eventually call \fBTcl_DStringFree\fR to free up
|
||||
anything stored here.
|
||||
.AP char *path in
|
||||
.AP "const char" *dirName in
|
||||
File path in UTF\-8 format.
|
||||
.BE
|
||||
|
||||
@@ -45,7 +45,7 @@ must call \fBTcl_DStringFree()\fR when the result is no longer needed.
|
||||
The format of the path is UTF\-8.
|
||||
.PP
|
||||
\fBTcl_Chdir\fR changes the applications current working directory to
|
||||
the value specified in \fIpath\fR. The format of the passed in string
|
||||
the value specified in \fIdirName\fR. The format of the passed in string
|
||||
must be UTF\-8. The function returns -1 on error or 0 on success.
|
||||
|
||||
.SH KEYWORDS
|
||||
|
||||
@@ -40,7 +40,7 @@ void
|
||||
.AS Tcl_CmdDeleteProc *interp in
|
||||
.AP Tcl_Interp *interp in
|
||||
The relevant Interpreter.
|
||||
.AP char *cmdName in
|
||||
.AP "const char" *cmdName in
|
||||
Name of the command to create.
|
||||
.AP Tcl_ObjCmdProc *proc in
|
||||
Called in order to evaluate a command. Is often just a small wrapper that uses
|
||||
|
||||
+2
-2
@@ -51,14 +51,14 @@ can be efficiently searched.
|
||||
.AP Tcl_Obj *patObj in/out
|
||||
Refers to the value from which to get a regular expression. The
|
||||
compiled regular expression is cached in the value.
|
||||
.AP char *text in
|
||||
.AP "const char" *text in
|
||||
Text to search for a match with a regular expression.
|
||||
.AP "const char" *pattern in
|
||||
String in the form of a regular expression pattern.
|
||||
.AP Tcl_RegExp regexp in
|
||||
Compiled regular expression. Must have been returned previously
|
||||
by \fBTcl_GetRegExpFromObj\fR or \fBTcl_RegExpCompile\fR.
|
||||
.AP char *start in
|
||||
.AP "const char" *start in
|
||||
If \fItext\fR is just a portion of some other string, this argument
|
||||
identifies the beginning of the larger string.
|
||||
If it is not the same as \fItext\fR, then no
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ int
|
||||
.AP Tcl_Interp *interp out
|
||||
Interpreter to use for error reporting. If NULL, then no error message
|
||||
is left.
|
||||
.AP char *list in
|
||||
.AP "const char" *list in
|
||||
Pointer to a string with proper list structure.
|
||||
.AP int *argcPtr out
|
||||
Filled in with number of elements in \fIlist\fR.
|
||||
|
||||
+2
-2
@@ -824,7 +824,7 @@ the minus sign one west of Greenwich.
|
||||
A time zone string conforming to the Posix specification of the \fBTZ\fR
|
||||
environment variable will be recognized. The specification
|
||||
may be found at
|
||||
\fIhttp://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html\fR.
|
||||
\fIhttps://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html\fR.
|
||||
.PP
|
||||
If the Posix time zone string contains a DST (Daylight Savings Time)
|
||||
part, but doesn't contain a rule stating when DST starts or ends,
|
||||
@@ -848,7 +848,7 @@ to use it as a location name, as above.
|
||||
.SH "LOCALIZATION"
|
||||
.PP
|
||||
Developers wishing to localize the date and time formatting and parsing
|
||||
are referred to \fIhttp://tip.tcl.tk/173\fR for a
|
||||
are referred to \fIhttps://tip.tcl-lang.org/173\fR for a
|
||||
specification.
|
||||
.SH "FREE FORM SCAN"
|
||||
.PP
|
||||
|
||||
@@ -178,7 +178,7 @@ particularly important website:
|
||||
.PP
|
||||
.CS
|
||||
package require dde
|
||||
\fBdde execute\fR -async iexplore WWW_OpenURL http://www.tcl.tk/
|
||||
\fBdde execute\fR -async iexplore WWW_OpenURL http://www.tcl-lang.org/
|
||||
.CE
|
||||
.SH "SEE ALSO"
|
||||
tk(n), winfo(n), send(n)
|
||||
|
||||
+2
-18
@@ -81,29 +81,13 @@ omitted then the command returns the current system encoding. The
|
||||
system encoding is used whenever Tcl passes strings to system calls.
|
||||
.SH EXAMPLE
|
||||
.PP
|
||||
It is common practice to write script files using a text editor that
|
||||
produces output in the euc-jp encoding, which represents the ASCII
|
||||
characters as singe bytes and Japanese characters as two bytes. This
|
||||
makes it easy to embed literal strings that correspond to non-ASCII
|
||||
characters by simply typing the strings in place in the script.
|
||||
However, because the \fBsource\fR command always reads files using the
|
||||
current system encoding, Tcl will only source such files correctly
|
||||
when the encoding used to write the file is the same. This tends not
|
||||
to be true in an internationalized setting. For example, if such a
|
||||
file was sourced in North America (where the ISO8859\-1 is normally
|
||||
used), each byte in the file would be treated as a separate character
|
||||
that maps to the 00 page in Unicode. The resulting Tcl strings will
|
||||
not contain the expected Japanese characters. Instead, they will
|
||||
contain a sequence of Latin-1 characters that correspond to the bytes
|
||||
of the original string. The \fBencoding\fR command can be used to
|
||||
convert this string to the expected Japanese Unicode characters. For
|
||||
example,
|
||||
The following example converts a byte sequence in Japanese euc-jp encoding to a TCL string:
|
||||
.PP
|
||||
.CS
|
||||
set s [\fBencoding convertfrom\fR euc-jp "\exA4\exCF"]
|
||||
.CE
|
||||
.PP
|
||||
would return the Unicode string
|
||||
The result is the unicode codepoint:
|
||||
.QW "\eu306F" ,
|
||||
which is the Hiragana letter HA.
|
||||
.SH "SEE ALSO"
|
||||
|
||||
@@ -298,9 +298,9 @@ environment variables:
|
||||
.SH "SEE ALSO"
|
||||
package(n), Tcl Improvement Proposal #189
|
||||
.QW "\fITcl Modules\fR"
|
||||
(online at http://tip.tcl.tk/189.html), Tcl Improvement Proposal #190
|
||||
(online at https://tip.tcl-lang.org/189.html), Tcl Improvement Proposal #190
|
||||
.QW "\fIImplementation Choices for Tcl Modules\fR"
|
||||
(online at http://tip.tcl.tk/190.html)
|
||||
(online at https://tip.tcl-lang.org/190.html)
|
||||
.SH "KEYWORDS"
|
||||
modules, package
|
||||
.\" Local Variables:
|
||||
|
||||
+3
-5
@@ -2201,10 +2201,8 @@ typedef struct Tcl_EncodingType {
|
||||
|
||||
#if TCL_UTF_MAX > 4
|
||||
/*
|
||||
* unsigned int isn't 100% accurate as it should be a strict 4-byte value
|
||||
* (perhaps wchar_t). 64-bit systems may have troubles. The size of this
|
||||
* value must be reflected correctly in regcustom.h and
|
||||
* in tclEncoding.c.
|
||||
* unsigned int isn't 100% accurate as it should be a strict 4-byte value.
|
||||
* The size of this value must be reflected correctly in regcustom.h.
|
||||
* XXX: Tcl is currently UCS-2 and planning UTF-16 for the Unicode
|
||||
* XXX: string rep that Tcl_UniChar represents. Changing the size
|
||||
* XXX: of Tcl_UniChar is /not/ supported.
|
||||
@@ -2491,7 +2489,7 @@ EXTERN void Tcl_GetMemoryInfo(Tcl_DString *dsPtr);
|
||||
++(objPtr)->refCount
|
||||
/*
|
||||
* Use do/while0 idiom for optimum correctness without compiler warnings.
|
||||
* http://c2.com/cgi/wiki?TrivialDoWhileLoop
|
||||
* https://wiki.c2.com/?TrivialDoWhileLoop
|
||||
*/
|
||||
# define Tcl_DecrRefCount(objPtr) \
|
||||
do { \
|
||||
|
||||
+13
-16
@@ -3209,6 +3209,19 @@ Tcl_DeleteCommandFromToken(
|
||||
iPtr->compileEpoch++;
|
||||
}
|
||||
|
||||
/*
|
||||
* Delete any imports of this routine elsewhere before calling deleteProc
|
||||
* to that traces on the imports don't reference deallocated storage.
|
||||
*/
|
||||
if (!(cmdPtr->flags & CMD_REDEF_IN_PROGRESS)) {
|
||||
for (refPtr = cmdPtr->importRefPtr; refPtr != NULL;
|
||||
refPtr = nextRefPtr) {
|
||||
nextRefPtr = refPtr->nextPtr;
|
||||
importCmd = (Tcl_Command) refPtr->importedCmdPtr;
|
||||
Tcl_DeleteCommandFromToken(interp, importCmd);
|
||||
}
|
||||
}
|
||||
|
||||
if (cmdPtr->deleteProc != NULL) {
|
||||
/*
|
||||
* Delete the command's client data. If this was an imported command
|
||||
@@ -3228,20 +3241,6 @@ Tcl_DeleteCommandFromToken(
|
||||
cmdPtr->deleteProc(cmdPtr->deleteData);
|
||||
}
|
||||
|
||||
/*
|
||||
* If this command was imported into other namespaces, then imported
|
||||
* commands were created that refer back to this command. Delete these
|
||||
* imported commands now.
|
||||
*/
|
||||
if (!(cmdPtr->flags & CMD_REDEF_IN_PROGRESS)) {
|
||||
for (refPtr = cmdPtr->importRefPtr; refPtr != NULL;
|
||||
refPtr = nextRefPtr) {
|
||||
nextRefPtr = refPtr->nextPtr;
|
||||
importCmd = (Tcl_Command) refPtr->importedCmdPtr;
|
||||
Tcl_DeleteCommandFromToken(interp, importCmd);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Don't use hPtr to delete the hash entry here, because it's possible
|
||||
* that the deletion callback renamed the command. Instead, use
|
||||
@@ -3332,7 +3331,6 @@ CallCommandTraces(
|
||||
}
|
||||
}
|
||||
cmdPtr->flags |= CMD_TRACE_ACTIVE;
|
||||
cmdPtr->refCount++;
|
||||
|
||||
result = NULL;
|
||||
active.nextPtr = iPtr->activeCmdTracePtr;
|
||||
@@ -3390,7 +3388,6 @@ CallCommandTraces(
|
||||
*/
|
||||
|
||||
cmdPtr->flags &= ~CMD_TRACE_ACTIVE;
|
||||
cmdPtr->refCount--;
|
||||
iPtr->activeCmdTracePtr = active.nextPtr;
|
||||
Tcl_Release(iPtr);
|
||||
return result;
|
||||
|
||||
@@ -740,8 +740,6 @@ EncodingConverttoObjCmd(
|
||||
int length; /* Length of the string being converted */
|
||||
const char *stringPtr; /* Pointer to the first byte of the string */
|
||||
|
||||
/* TODO - ADJUST OBJ INDICES WHEN ENSEMBLIFYING THIS */
|
||||
|
||||
if (objc == 2) {
|
||||
encoding = Tcl_GetEncoding(interp, NULL);
|
||||
data = objv[1];
|
||||
|
||||
+1
-1
@@ -1269,7 +1269,7 @@ TclInfoFrame(
|
||||
{
|
||||
Interp *iPtr = (Interp *) interp;
|
||||
Tcl_Obj *tmpObj;
|
||||
Tcl_Obj *lv[20]; /* Keep uptodate when more keys are added to
|
||||
Tcl_Obj *lv[20] = {NULL}; /* Keep uptodate when more keys are added to
|
||||
* the dict. */
|
||||
int lc = 0;
|
||||
/*
|
||||
|
||||
+4
-4
@@ -5251,15 +5251,15 @@ TryPostHandler(
|
||||
{
|
||||
Tcl_Obj *resultObj, *cmdObj, *options, *handlerKindObj, **objv;
|
||||
Tcl_Obj *finallyObj;
|
||||
int finally;
|
||||
int finallyIndex;
|
||||
|
||||
objv = data[0];
|
||||
options = data[1];
|
||||
handlerKindObj = data[2];
|
||||
finally = PTR2INT(data[3]);
|
||||
finallyIndex = PTR2INT(data[3]);
|
||||
|
||||
cmdObj = objv[0];
|
||||
finallyObj = finally ? objv[finally] : 0;
|
||||
finallyObj = finallyIndex ? objv[finallyIndex] : 0;
|
||||
|
||||
/*
|
||||
* Check for limits/rewinding, which override normal trapping behaviour.
|
||||
@@ -5303,7 +5303,7 @@ TryPostHandler(
|
||||
|
||||
/* The 'finally' script is always the last argument word. */
|
||||
return TclNREvalObjEx(interp, finallyObj, 0, iPtr->cmdFramePtr,
|
||||
finally);
|
||||
finallyIndex);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -420,6 +420,16 @@ Tcl_PutEnv(
|
||||
|
||||
if ((value != NULL) && (value != name)) {
|
||||
value[0] = '\0';
|
||||
#if defined(_WIN32)
|
||||
if (tenviron == NULL) {
|
||||
/*
|
||||
* When we are started from main(), the _wenviron array could
|
||||
* be NULL and will be initialized by the first _wgetenv() call.
|
||||
*/
|
||||
|
||||
(void) _wgetenv(L"WINDIR");
|
||||
}
|
||||
#endif
|
||||
TclSetEnv(name, value+1);
|
||||
}
|
||||
TclEnvEpoch++;
|
||||
|
||||
@@ -6090,7 +6090,7 @@ TEBCresume(
|
||||
{
|
||||
ClientData ptr1, ptr2;
|
||||
int type1, type2;
|
||||
long l1, l2, lResult;
|
||||
long l1 = 0, l2, lResult;
|
||||
|
||||
case INST_NUM_TYPE:
|
||||
if (GetNumberFromObj(NULL, OBJ_AT_TOS, &ptr1, &type1) != TCL_OK) {
|
||||
@@ -9277,7 +9277,7 @@ ExecuteExtendedUnaryMathOp(
|
||||
int opcode, /* What operation to perform. */
|
||||
Tcl_Obj *valuePtr) /* The operand on the stack. */
|
||||
{
|
||||
ClientData ptr;
|
||||
ClientData ptr = NULL;
|
||||
int type;
|
||||
Tcl_WideInt w;
|
||||
mp_int big;
|
||||
|
||||
+2
-1
@@ -4277,6 +4277,7 @@ Write(
|
||||
/* State info for channel */
|
||||
char *nextNewLine = NULL;
|
||||
int endEncoding, saved = 0, total = 0, flushed = 0, needNlFlush = 0;
|
||||
char safe[BUFFER_PADDING];
|
||||
|
||||
if (srcLen) {
|
||||
WillWrite(chanPtr);
|
||||
@@ -4295,7 +4296,7 @@ Write(
|
||||
|
||||
while (srcLen + saved + endEncoding > 0) {
|
||||
ChannelBuffer *bufPtr;
|
||||
char *dst, safe[BUFFER_PADDING];
|
||||
char *dst;
|
||||
int result, srcRead, dstLen, dstWrote, srcLimit = srcLen;
|
||||
|
||||
if (nextNewLine) {
|
||||
|
||||
@@ -158,6 +158,9 @@ Tcl_ErrnoId(void)
|
||||
#ifdef EINIT
|
||||
case EINIT: return "EINIT";
|
||||
#endif
|
||||
#ifdef EILSEQ
|
||||
case EILSEQ: return "EILSEQ";
|
||||
#endif
|
||||
#ifdef EINPROGRESS
|
||||
case EINPROGRESS: return "EINPROGRESS";
|
||||
#endif
|
||||
@@ -617,6 +620,9 @@ Tcl_ErrnoMsg(
|
||||
#ifdef EINIT
|
||||
case EINIT: return "initialization error";
|
||||
#endif
|
||||
#ifdef EILSEQ
|
||||
case EILSEQ: return "illegal byte sequence";
|
||||
#endif
|
||||
#ifdef EINPROGRESS
|
||||
case EINPROGRESS: return "operation now in progress";
|
||||
#endif
|
||||
|
||||
+48
-48
@@ -70,9 +70,9 @@ proc tcl_findLibrary {basename version patch initScript enVarName varName} {
|
||||
# gives the end-user ultimate control to work-around any bugs, or
|
||||
# to customize.
|
||||
|
||||
if {[info exists env($enVarName)]} {
|
||||
lappend dirs $env($enVarName)
|
||||
}
|
||||
if {[info exists env($enVarName)]} {
|
||||
lappend dirs $env($enVarName)
|
||||
}
|
||||
|
||||
# 2. In the package script directory registered within the
|
||||
# configuration of the package itself.
|
||||
@@ -107,11 +107,11 @@ proc tcl_findLibrary {basename version patch initScript enVarName varName} {
|
||||
# ../../../foo1.0.1/library
|
||||
# (From unix/arch directory in parallel build hierarchy)
|
||||
|
||||
set parentDir [file dirname [file dirname [info nameofexecutable]]]
|
||||
set grandParentDir [file dirname $parentDir]
|
||||
lappend dirs [file join $parentDir lib $basename$version]
|
||||
lappend dirs [file join $grandParentDir lib $basename$version]
|
||||
lappend dirs [file join $parentDir library]
|
||||
set parentDir [file dirname [file dirname [info nameofexecutable]]]
|
||||
set grandParentDir [file dirname $parentDir]
|
||||
lappend dirs [file join $parentDir lib $basename$version]
|
||||
lappend dirs [file join $grandParentDir lib $basename$version]
|
||||
lappend dirs [file join $parentDir library]
|
||||
if {0} {
|
||||
lappend dirs [file join $grandParentDir library]
|
||||
lappend dirs [file join $grandParentDir $basename$patch library]
|
||||
@@ -134,8 +134,8 @@ proc tcl_findLibrary {basename version patch initScript enVarName varName} {
|
||||
}
|
||||
set seen($norm) {}
|
||||
|
||||
set the_library $i
|
||||
set file [file join $i $initScript]
|
||||
set the_library $i
|
||||
set file [file join $i $initScript]
|
||||
|
||||
# source everything when in a safe interpreter because we have a
|
||||
# source command, but no file exists command
|
||||
@@ -185,7 +185,7 @@ if {[interp issafe]} {
|
||||
|
||||
proc auto_mkindex {dir args} {
|
||||
if {[interp issafe]} {
|
||||
error "can't generate index within safe interpreter"
|
||||
error "can't generate index within safe interpreter"
|
||||
}
|
||||
|
||||
set oldDir [pwd]
|
||||
@@ -240,7 +240,7 @@ proc auto_mkindex_old {dir args} {
|
||||
set f ""
|
||||
set error [catch {
|
||||
set f [open $file]
|
||||
fconfigure $f -eofchar \032
|
||||
fconfigure $f -eofchar "\032 {}"
|
||||
while {[gets $f line] >= 0} {
|
||||
if {[regexp {^proc[ ]+([^ ]*)} $line match procName]} {
|
||||
set procName [lindex [auto_qualify $procName "::"] 0]
|
||||
@@ -351,7 +351,7 @@ proc auto_mkindex_parser::mkindex {file} {
|
||||
set scriptFile $file
|
||||
|
||||
set fid [open $file]
|
||||
fconfigure $fid -eofchar \032
|
||||
fconfigure $fid -eofchar "\032 {}"
|
||||
set contents [read $fid]
|
||||
close $fid
|
||||
|
||||
@@ -371,7 +371,7 @@ proc auto_mkindex_parser::mkindex {file} {
|
||||
$parser eval $contents
|
||||
|
||||
foreach name $imports {
|
||||
catch {$parser eval [list _%@namespace forget $name]}
|
||||
catch {$parser eval [list _%@namespace forget $name]}
|
||||
}
|
||||
return $index
|
||||
}
|
||||
@@ -441,9 +441,9 @@ proc auto_mkindex_parser::commandInit {name arglist body} {
|
||||
set ns [namespace qualifiers $name]
|
||||
set tail [namespace tail $name]
|
||||
if {$ns eq ""} {
|
||||
set fakeName [namespace current]::_%@fake_$tail
|
||||
set fakeName [namespace current]::_%@fake_$tail
|
||||
} else {
|
||||
set fakeName [namespace current]::[string map {:: _} _%@fake_$name]
|
||||
set fakeName [namespace current]::[string map {:: _} _%@fake_$name]
|
||||
}
|
||||
proc $fakeName $arglist $body
|
||||
|
||||
@@ -452,8 +452,8 @@ proc auto_mkindex_parser::commandInit {name arglist body} {
|
||||
# the fully qualified names, and have the procs point to the aliases.
|
||||
|
||||
if {[string match *::* $name]} {
|
||||
set exportCmd [list _%@namespace export [namespace tail $name]]
|
||||
$parser eval [list _%@namespace eval $ns $exportCmd]
|
||||
set exportCmd [list _%@namespace export [namespace tail $name]]
|
||||
$parser eval [list _%@namespace eval $ns $exportCmd]
|
||||
|
||||
# The following proc definition does not work if you want to tolerate
|
||||
# space or something else diabolical in the procedure name, (i.e.,
|
||||
@@ -465,11 +465,11 @@ proc auto_mkindex_parser::commandInit {name arglist body} {
|
||||
# A gold star to someone that can make test autoMkindex-3.3 work
|
||||
# properly
|
||||
|
||||
set alias [namespace tail $fakeName]
|
||||
$parser invokehidden proc $name {args} "_%@eval {$alias} \$args"
|
||||
$parser alias $alias $fakeName
|
||||
set alias [namespace tail $fakeName]
|
||||
$parser invokehidden proc $name {args} "_%@eval {$alias} \$args"
|
||||
$parser alias $alias $fakeName
|
||||
} else {
|
||||
$parser alias $name $fakeName
|
||||
$parser alias $name $fakeName
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -491,18 +491,18 @@ proc auto_mkindex_parser::fullname {name} {
|
||||
variable contextStack
|
||||
|
||||
if {![string match ::* $name]} {
|
||||
foreach ns $contextStack {
|
||||
set name "${ns}::$name"
|
||||
if {[string match ::* $name]} {
|
||||
break
|
||||
}
|
||||
}
|
||||
foreach ns $contextStack {
|
||||
set name "${ns}::$name"
|
||||
if {[string match ::* $name]} {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if {[namespace qualifiers $name] eq ""} {
|
||||
set name [namespace tail $name]
|
||||
set name [namespace tail $name]
|
||||
} elseif {![string match ::* $name]} {
|
||||
set name "::$name"
|
||||
set name "::$name"
|
||||
}
|
||||
|
||||
# Earlier, mkindex replaced all $'s with \0. Now, we have to reverse that
|
||||
@@ -592,27 +592,27 @@ auto_mkindex_parser::hook {
|
||||
|
||||
auto_mkindex_parser::command namespace {op args} {
|
||||
switch -- $op {
|
||||
eval {
|
||||
variable parser
|
||||
variable contextStack
|
||||
eval {
|
||||
variable parser
|
||||
variable contextStack
|
||||
|
||||
set name [lindex $args 0]
|
||||
set args [lrange $args 1 end]
|
||||
set name [lindex $args 0]
|
||||
set args [lrange $args 1 end]
|
||||
|
||||
set contextStack [linsert $contextStack 0 $name]
|
||||
set contextStack [linsert $contextStack 0 $name]
|
||||
$parser eval [list _%@namespace eval $name] $args
|
||||
set contextStack [lrange $contextStack 1 end]
|
||||
}
|
||||
import {
|
||||
variable parser
|
||||
variable imports
|
||||
foreach pattern $args {
|
||||
if {$pattern ne "-force"} {
|
||||
lappend imports $pattern
|
||||
}
|
||||
}
|
||||
catch {$parser eval "_%@namespace import $args"}
|
||||
}
|
||||
set contextStack [lrange $contextStack 1 end]
|
||||
}
|
||||
import {
|
||||
variable parser
|
||||
variable imports
|
||||
foreach pattern $args {
|
||||
if {$pattern ne "-force"} {
|
||||
lappend imports $pattern
|
||||
}
|
||||
}
|
||||
catch {$parser eval "_%@namespace import $args"}
|
||||
}
|
||||
ensemble {
|
||||
variable parser
|
||||
variable contextStack
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,20 @@
|
||||
# Encoding file: iso8859-11, single-byte
|
||||
S
|
||||
003F 0 1
|
||||
00
|
||||
0000000100020003000400050006000700080009000A000B000C000D000E000F
|
||||
0010001100120013001400150016001700180019001A001B001C001D001E001F
|
||||
0020002100220023002400250026002700280029002A002B002C002D002E002F
|
||||
0030003100320033003400350036003700380039003A003B003C003D003E003F
|
||||
0040004100420043004400450046004700480049004A004B004C004D004E004F
|
||||
0050005100520053005400550056005700580059005A005B005C005D005E005F
|
||||
0060006100620063006400650066006700680069006A006B006C006D006E006F
|
||||
0070007100720073007400750076007700780079007A007B007C007D007E007F
|
||||
0080008100820083008400850086008700880089008A008B008C008D008E008F
|
||||
0090009100920093009400950096009700980099009A009B009C009D009E009F
|
||||
00A00E010E020E030E040E050E060E070E080E090E0A0E0B0E0C0E0D0E0E0E0F
|
||||
0E100E110E120E130E140E150E160E170E180E190E1A0E1B0E1C0E1D0E1E0E1F
|
||||
0E200E210E220E230E240E250E260E270E280E290E2A0E2B0E2C0E2D0E2E0E2F
|
||||
0E300E310E320E330E340E350E360E370E380E390E3A00000000000000000E3F
|
||||
0E400E410E420E430E440E450E460E470E480E490E4A0E4B0E4C0E4D0E4E0E4F
|
||||
0E500E510E520E530E540E550E560E570E580E590E5A0E5B0000000000000000
|
||||
@@ -12,7 +12,7 @@ S
|
||||
0070007100720073007400750076007700780079007A007B007C007D007E007F
|
||||
0080008100820083008400850086008700880089008A008B008C008D008E008F
|
||||
0090009100920093009400950096009700980099009A009B009C009D009E009F
|
||||
00A02018201900A30000000000A600A700A800A9000000AB00AC00AD00002015
|
||||
00A02018201900A320AC20AF00A600A700A800A9037A00AB00AC00AD00002015
|
||||
00B000B100B200B303840385038600B703880389038A00BB038C00BD038E038F
|
||||
0390039103920393039403950396039703980399039A039B039C039D039E039F
|
||||
03A003A1000003A303A403A503A603A703A803A903AA03AB03AC03AD03AE03AF
|
||||
|
||||
+2
-2
@@ -494,7 +494,7 @@ proc auto_load_index {} {
|
||||
continue
|
||||
} else {
|
||||
set error [catch {
|
||||
fconfigure $f -eofchar \032
|
||||
fconfigure $f -eofchar "\032 {}"
|
||||
set id [gets $f]
|
||||
if {$id eq "# Tcl autoload index file, version 2.0"} {
|
||||
eval [read $f]
|
||||
@@ -643,7 +643,7 @@ proc auto_execok name {
|
||||
}
|
||||
set auto_execs($name) ""
|
||||
|
||||
set shellBuiltins [list assoc cls copy date del dir echo erase ftype \
|
||||
set shellBuiltins [list assoc cls copy date del dir echo erase exit ftype \
|
||||
md mkdir mklink move rd ren rename rmdir start time type ver vol]
|
||||
if {[info exists env(PATHEXT)]} {
|
||||
# Add an initial ; to have the {} extension check first.
|
||||
|
||||
+2
-2
@@ -131,7 +131,7 @@ proc ::safe::interpConfigure {args} {
|
||||
[list -accessPath $state(access_path)] \
|
||||
[list -statics $state(staticsok)] \
|
||||
[list -nested $state(nestedok)] \
|
||||
[list -deleteHook $state(cleanupHook)]]]
|
||||
[list -deleteHook $state(cleanupHook)]]]
|
||||
}
|
||||
2 {
|
||||
# If we have exactly 2 arguments the semantic is a "configure
|
||||
@@ -982,7 +982,7 @@ proc ::safe::AliasSource {child args} {
|
||||
set replacementMsg "script error"
|
||||
set code [catch {
|
||||
set f [open $realfile]
|
||||
fconfigure $f -eofchar \032
|
||||
fconfigure $f -eofchar "\032 {}"
|
||||
if {$encoding ne ""} {
|
||||
fconfigure $f -encoding $encoding
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
/* SPDX-License-Identifier: Unlicense */
|
||||
|
||||
#ifndef NO_FLOATING_POINT
|
||||
#include <float.h>
|
||||
#include <math.h>
|
||||
#if (MP_DIGIT_BIT != 28) || (FLT_RADIX != 2) || (DBL_MANT_DIG != 53) || (DBL_MAX_EXP != 1024)
|
||||
#define NO_FLOATING_POINT
|
||||
|
||||
+1
-1
@@ -728,7 +728,7 @@ test encoding-28.0 {all encodings load} -body {
|
||||
llength $name
|
||||
}
|
||||
return $count
|
||||
} -result 81
|
||||
} -result 83
|
||||
|
||||
runtests
|
||||
|
||||
|
||||
+16
-16
@@ -5,7 +5,7 @@
|
||||
# generates output for errors. No output means no errors were found.
|
||||
#
|
||||
# Copyright (c) 1995 Sun Microsystems, Inc.
|
||||
# Copyright (c) 1998-1999 by Scriptics Corporation.
|
||||
# Copyright (c) 1998-1999 Scriptics Corporation.
|
||||
#
|
||||
# See the file "license.terms" for information on usage and redistribution
|
||||
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
@@ -78,13 +78,13 @@ test load-2.1 {basic loading, with guess for package name} \
|
||||
interp create -safe child
|
||||
test load-2.2 {loading into a safe interpreter, with package name conversion} \
|
||||
[list $dll $loaded] {
|
||||
load -lazy [file join $testDir pkgb$ext] pKgB child
|
||||
load -lazy [file join $testDir pkgb$ext] Pkgb child
|
||||
list [child eval pkgb_sub 44 13] [catch {child eval pkgb_unsafe} msg] $msg \
|
||||
[catch {pkgb_sub 12 10} msg2] $msg2
|
||||
} {31 1 {invalid command name "pkgb_unsafe"} 1 {invalid command name "pkgb_sub"}}
|
||||
test load-2.3 {loading with no _Init procedure} -constraints [list $dll $loaded] \
|
||||
-body {
|
||||
list [catch {load [file join $testDir pkgc$ext] foo} msg] $msg $errorCode
|
||||
list [catch {load [file join $testDir pkgc$ext] Foo} msg] $msg $errorCode
|
||||
} -match glob \
|
||||
-result [list 1 {cannot find symbol "Foo_Init"*} \
|
||||
{TCL LOOKUP LOAD_SYMBOL *Foo_Init}]
|
||||
@@ -94,7 +94,7 @@ test load-2.4 {loading with no _SafeInit procedure} [list $dll $loaded] {
|
||||
|
||||
test load-3.1 {error in _Init procedure, same interpreter} \
|
||||
[list $dll $loaded] {
|
||||
list [catch {load [file join $testDir pkge$ext] pkge} msg] \
|
||||
list [catch {load [file join $testDir pkge$ext] Pkge} msg] \
|
||||
$msg $::errorInfo $::errorCode
|
||||
} {1 {couldn't open "non_existent": no such file or directory} {couldn't open "non_existent": no such file or directory
|
||||
while executing
|
||||
@@ -102,14 +102,14 @@ test load-3.1 {error in _Init procedure, same interpreter} \
|
||||
invoked from within
|
||||
"if 44 {open non_existent}"
|
||||
invoked from within
|
||||
"load [file join $testDir pkge$ext] pkge"} {POSIX ENOENT {no such file or directory}}}
|
||||
"load [file join $testDir pkge$ext] Pkge"} {POSIX ENOENT {no such file or directory}}}
|
||||
test load-3.2 {error in _Init procedure, child interpreter} \
|
||||
[list $dll $loaded] {
|
||||
catch {interp delete x}
|
||||
interp create x
|
||||
set ::errorCode foo
|
||||
set ::errorInfo bar
|
||||
set result [list [catch {load [file join $testDir pkge$ext] pkge x} msg] \
|
||||
set result [list [catch {load [file join $testDir pkge$ext] Pkge x} msg] \
|
||||
$msg $::errorInfo $::errorCode]
|
||||
interp delete x
|
||||
set result
|
||||
@@ -119,23 +119,23 @@ test load-3.2 {error in _Init procedure, child interpreter} \
|
||||
invoked from within
|
||||
"if 44 {open non_existent}"
|
||||
invoked from within
|
||||
"load [file join $testDir pkge$ext] pkge x"} {POSIX ENOENT {no such file or directory}}}
|
||||
"load [file join $testDir pkge$ext] Pkge x"} {POSIX ENOENT {no such file or directory}}}
|
||||
|
||||
test load-4.1 {reloading package into same interpreter} [list $dll $loaded] {
|
||||
list [catch {load [file join $testDir pkga$ext] pkga} msg] $msg
|
||||
list [catch {load [file join $testDir pkga$ext] Pkga} msg] $msg
|
||||
} {0 {}}
|
||||
test load-4.2 {reloading package into same interpreter} -setup {
|
||||
catch {load [file join $testDir pkga$ext] pkga}
|
||||
catch {load [file join $testDir pkga$ext] Pkga}
|
||||
} -constraints [list $dll $loaded] -returnCodes error -body {
|
||||
load [file join $testDir pkga$ext] pkgb
|
||||
load [file join $testDir pkga$ext] Pkgb
|
||||
} -result "file \"[file join $testDir pkga$ext]\" is already loaded for package \"Pkga\""
|
||||
|
||||
test load-5.1 {file name not specified and no static package: pick default} -setup {
|
||||
catch {interp delete x}
|
||||
interp create x
|
||||
} -constraints [list $dll $loaded] -body {
|
||||
load -global [file join $testDir pkga$ext] pkga
|
||||
load {} pkga x
|
||||
load -global [file join $testDir pkga$ext] Pkga
|
||||
load {} Pkga x
|
||||
info loaded x
|
||||
} -cleanup {
|
||||
interp delete x
|
||||
@@ -171,9 +171,9 @@ test load-7.3 {Tcl_StaticPackage procedure} [list teststaticpkg] {
|
||||
load {} More
|
||||
set x
|
||||
} {not loaded}
|
||||
catch {load [file join $testDir pkga$ext] pkga}
|
||||
catch {load [file join $testDir pkgb$ext] pkgb}
|
||||
catch {load [file join $testDir pkge$ext] pkge}
|
||||
catch {load [file join $testDir pkga$ext] Pkga}
|
||||
catch {load [file join $testDir pkgb$ext] Pkgb}
|
||||
catch {load [file join $testDir pkge$ext] Pkge}
|
||||
set currentRealPackages [list [list [file join $testDir pkge$ext] Pkge] [list [file join $testDir pkgb$ext] Pkgb] [list [file join $testDir pkga$ext] Pkga]]
|
||||
test load-7.4 {Tcl_StaticPackage procedure, redundant calls} -setup {
|
||||
teststaticpkg Test 1 0
|
||||
@@ -209,7 +209,7 @@ test load-8.3b {TclGetLoadedPackages procedure} [list teststaticpkg_8.x $dll $lo
|
||||
lsort -index 1 [info loaded child]
|
||||
} [lsort -index 1 [list {{} Test} [list [file join $testDir pkgb$ext] Pkgb]]]
|
||||
test load-8.4 {TclGetLoadedPackages procedure} [list teststaticpkg_8.x $dll $loaded] {
|
||||
load [file join $testDir pkgb$ext] pkgb
|
||||
load [file join $testDir pkgb$ext] Pkgb
|
||||
list [lsort -index 1 [info loaded {}]] [lsort [info commands pkgb_*]]
|
||||
} [list [lsort -index 1 [concat [list [list [file join $testDir pkgb$ext] Pkgb] {{} Double} {{} More} {{} Another} {{} Test} [list [file join $testDir pkga$ext] Pkga]] $alreadyLoaded]] {pkgb_demo pkgb_sub pkgb_unsafe}]
|
||||
interp delete child
|
||||
|
||||
@@ -3340,6 +3340,38 @@ test namespace-56.5 {Bug 8b9854c3d8} -setup {
|
||||
} -result 1
|
||||
|
||||
|
||||
test namespace-56.6 {
|
||||
Namespace deletion traces on both the original routine and the imported
|
||||
routine should run without any memory error under a debug build.
|
||||
} -body {
|
||||
variable res 0
|
||||
|
||||
proc ondelete {old new op} {
|
||||
$old
|
||||
}
|
||||
|
||||
namespace eval ns1 {} {
|
||||
namespace export *
|
||||
proc p1 {} {
|
||||
namespace upvar [namespace parent] res res
|
||||
incr res
|
||||
}
|
||||
trace add command p1 delete ondelete
|
||||
}
|
||||
|
||||
namespace eval ns2 {} {
|
||||
namespace import ::ns1::p1
|
||||
trace add command p1 delete ondelete
|
||||
}
|
||||
|
||||
namespace delete ns1
|
||||
namespace delete ns2
|
||||
return $res
|
||||
} -cleanup {
|
||||
unset res
|
||||
rename ondelete {}
|
||||
} -result 2
|
||||
|
||||
|
||||
test namespace-57.0 {
|
||||
an imported alias should be usable in the deletion trace for the alias
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
# Sourcing this file into Tcl runs the tests and generates output for errors.
|
||||
# No output means no errors were found.
|
||||
#
|
||||
# Copyright (c) 1998-1999 by Scriptics Corporation.
|
||||
# Copyright (c) 1998-1999 Scriptics Corporation.
|
||||
# All rights reserved.
|
||||
|
||||
if {"::tcltest" ni [namespace children]} {
|
||||
@@ -559,8 +559,8 @@ testConstraint $dll [file exists $x]
|
||||
|
||||
if {[testConstraint $dll]} {
|
||||
makeFile {
|
||||
# This package provides Pkga, which is also provided by a DLL.
|
||||
package provide Pkga 1.0
|
||||
# This package provides pkga, which is also provided by a DLL.
|
||||
package provide pkga 1.0
|
||||
proc pkga_neq { x } {
|
||||
return [expr {! [pkgq_eq $x]}]
|
||||
}
|
||||
@@ -576,7 +576,7 @@ test pkgMkIndex-10.1 {package in DLL and script} [list exec $dll] {
|
||||
set cmd [list pkg_mkIndex -lazy $fullPkgPath [file tail $x] pkga.tcl]
|
||||
exec [interpreter] << $cmd
|
||||
pkgtest::runCreatedIndex {0 {}} -lazy $fullPkgPath pkga[info sharedlibextension] pkga.tcl
|
||||
} "0 {{Pkga:1.0 {tclPkgSetup {pkga[info sharedlibextension] load {pkga_eq pkga_quote}} {pkga.tcl source pkga_neq}}}}"
|
||||
} "0 {{pkga:1.0 {tclPkgSetup {pkga[info sharedlibextension] load {pkga_eq pkga_quote}} {pkga.tcl source pkga_neq}}}}"
|
||||
test pkgMkIndex-10.2 {package in DLL hidden by -load} [list exec $dll] {
|
||||
# Do all [load]ing of shared libraries in another process, so we can
|
||||
# delete the file and not get stuck because we're holding a reference to
|
||||
|
||||
+10
-10
@@ -5,8 +5,8 @@
|
||||
# generates output for errors. No output means no errors were found.
|
||||
#
|
||||
# Copyright (c) 1995 Sun Microsystems, Inc.
|
||||
# Copyright (c) 1998-1999 by Scriptics Corporation.
|
||||
# Copyright (c) 2003-2004 by Georgios Petasis
|
||||
# Copyright (c) 1998-1999 Scriptics Corporation.
|
||||
# Copyright (c) 2003-2004 Georgios Petasis
|
||||
#
|
||||
# See the file "license.terms" for information on usage and redistribution
|
||||
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
@@ -135,14 +135,14 @@ child eval {
|
||||
test unload-3.1 {basic loading of non-unloadable package in a safe interpreter, with package name conversion} \
|
||||
[list $dll $loaded] {
|
||||
catch {rename pkgb_sub {}}
|
||||
load [file join $testDir pkgb$ext] pKgB child
|
||||
load [file join $testDir pkgb$ext] Pkgb child
|
||||
list [child eval pkgb_sub 44 13] [catch {child eval pkgb_unsafe} msg] $msg \
|
||||
[catch {pkgb_sub 12 10} msg2] $msg2
|
||||
} {31 1 {invalid command name "pkgb_unsafe"} 1 {invalid command name "pkgb_sub"}}
|
||||
test unload-3.2 {basic loading of unloadable package in a safe interpreter, with package name conversion} \
|
||||
[list $dll $loaded] {
|
||||
list [child eval {list $pkgua_loaded $pkgua_detached $pkgua_unloaded}] \
|
||||
[load [file join $testDir pkgua$ext] pKgUA child] \
|
||||
[load [file join $testDir pkgua$ext] Pkgua child] \
|
||||
[child eval pkgua_eq abc def] \
|
||||
[lsort [child eval info commands pkgua_*]] \
|
||||
[child eval {list $pkgua_loaded $pkgua_detached $pkgua_unloaded}]
|
||||
@@ -154,14 +154,14 @@ test unload-3.3 {unloading of a package that has never been loaded from a safe i
|
||||
} -result {file "*" has never been loaded in this interpreter}
|
||||
test unload-3.4 {basic unloading of a non-unloadable package from a safe interpreter, with guess for package name} -setup {
|
||||
if {[lsearch -index 1 [info loaded child] Pkgb] < 0} {
|
||||
load [file join $testDir pkgb$ext] pKgB child
|
||||
load [file join $testDir pkgb$ext] Pkgb child
|
||||
}
|
||||
} -constraints [list $dll $loaded] -returnCodes error -match glob -body {
|
||||
unload [file join $testDir pkgb$ext] {} child
|
||||
} -result {file "*" cannot be unloaded under a safe interpreter}
|
||||
test unload-3.5 {basic unloading of an unloadable package from a safe interpreter, with guess for package name} -setup {
|
||||
if {[lsearch -index 1 [info loaded child] Pkgua] < 0} {
|
||||
load [file join $testDir pkgua$ext] pkgua child
|
||||
load [file join $testDir pkgua$ext] Pkgua child
|
||||
}
|
||||
} -constraints [list $dll $loaded] -body {
|
||||
list [child eval {list $pkgua_loaded $pkgua_detached $pkgua_unloaded}] \
|
||||
@@ -189,7 +189,7 @@ test unload-3.7 {basic unloading of re-loaded package from a safe interpreter, w
|
||||
}
|
||||
} -constraints [list $dll $loaded] -body {
|
||||
list [child eval {list $pkgua_loaded $pkgua_detached $pkgua_unloaded}] \
|
||||
[unload [file join $testDir pkgua$ext] pKgUa child] \
|
||||
[unload [file join $testDir pkgua$ext] Pkgua child] \
|
||||
[child eval info commands pkgua_*] \
|
||||
[child eval {list $pkgua_loaded $pkgua_detached $pkgua_unloaded}]
|
||||
} -result {{.. . .} {} {} {.. .. ..}}
|
||||
@@ -224,7 +224,7 @@ test unload-4.2 {basic loading of unloadable package in a safe interpreter, with
|
||||
incr load(C)
|
||||
} -constraints [list $dll $loaded] -body {
|
||||
list [child eval {list $pkgua_loaded $pkgua_detached $pkgua_unloaded}] \
|
||||
[load [file join $testDir pkgua$ext] pKgUA child] \
|
||||
[load [file join $testDir pkgua$ext] Pkgua child] \
|
||||
[child eval pkgua_eq abc def] \
|
||||
[lsort [child eval info commands pkgua_*]] \
|
||||
[child eval {list $pkgua_loaded $pkgua_detached $pkgua_unloaded}]
|
||||
@@ -234,7 +234,7 @@ test unload-4.3 {basic loading of unloadable package in a second trusted interpr
|
||||
incr load(T)
|
||||
} -constraints [list $dll $loaded] -body {
|
||||
list [child-trusted eval {list $pkgua_loaded $pkgua_detached $pkgua_unloaded}] \
|
||||
[load [file join $testDir pkgua$ext] pkguA child-trusted] \
|
||||
[load [file join $testDir pkgua$ext] Pkgua child-trusted] \
|
||||
[child-trusted eval pkgua_eq abc def] \
|
||||
[lsort [child-trusted eval info commands pkgua_*]] \
|
||||
[child-trusted eval {list $pkgua_loaded $pkgua_detached $pkgua_unloaded}]
|
||||
@@ -291,7 +291,7 @@ test unload-5.1 {unload a module loaded from vfs} \
|
||||
set dir [pwd]
|
||||
cd $testDir
|
||||
testsimplefilesystem 1
|
||||
load simplefs:/pkgua$ext pkgua
|
||||
load simplefs:/pkgua$ext Pkgua
|
||||
} \
|
||||
-body {
|
||||
list [catch {unload simplefs:/pkgua$ext} msg] $msg
|
||||
|
||||
+49
-56
@@ -1,44 +1,25 @@
|
||||
# big5.txt --
|
||||
# BIG5.TXT
|
||||
# Date: 2015-12-02 23:52:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# BIG5 to Unicode table (modified)
|
||||
# Name: BIG5 to Unicode table (complete)
|
||||
# Unicode version: 1.1
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 2011 October 14 (header updated: 2015 December 02)
|
||||
#
|
||||
# Copyright (c) 1998-1999 Scriptics Corporation.
|
||||
#
|
||||
# See the file "license.terms" for information on usage and redistribution
|
||||
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
# General notes:
|
||||
#
|
||||
# NOTE: this table has been modified to include the 7-bit ASCII
|
||||
# characters that are allowed in BIG5 files.
|
||||
#
|
||||
#
|
||||
# Name: BIG5 to Unicode table (complete)
|
||||
# Unicode version: 1.1
|
||||
# Table version: 0.0d3
|
||||
# Table format: Format A
|
||||
# Date: 11 February 1994
|
||||
# Authors: Glenn Adams <glenn@metis.com>
|
||||
# John H. Jenkins <John_Jenkins@taligent.com>
|
||||
#
|
||||
# Copyright (c) 1991-1994 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
|
||||
# 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.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data Metis and Taligent currently have on how
|
||||
# BIG5 characters map into Unicode.
|
||||
# This table contains one set of mappings from BIG5 into Unicode.
|
||||
# Note that these data are *possible* mappings only and may not be the
|
||||
# same as those used by actual products, nor may they be the best suited
|
||||
# for all uses. For more information on the mappings between various code
|
||||
# pages incorporating the repertoire of BIG5 and Unicode, consult the
|
||||
# VENDORS mapping data.
|
||||
#
|
||||
# WARNING! It is currently impossible to provide round-trip compatibility
|
||||
# between BIG5 and Unicode.
|
||||
@@ -64,38 +45,50 @@
|
||||
#
|
||||
# 1. In addition to the above, there is some uncertainty about the
|
||||
# mappings in the range C6A1 - C8FE, and F9DD - F9FE. The ETEN
|
||||
# version of BIG5 organizes the former range differently, and adds
|
||||
# additional characters in the latter range. The correct mappings
|
||||
# these ranges need to be determined.
|
||||
# version of BIG5 organizes the former range differently, and adds
|
||||
# additional characters in the latter range. The correct mappings
|
||||
# these ranges need to be determined.
|
||||
#
|
||||
# 2. There is an uncertainty in the mapping of the Big Five character
|
||||
# 0xA3BC. This character occurs within the Big Five block of tone marks
|
||||
# for bopomofo and is intended to be the tone mark for the first tone in
|
||||
# Mandarin Chinese. We have selected the mapping U+02C9 MODIFIER LETTER
|
||||
# MACRON (Mandarin Chinese first tone) to reflect this semantic.
|
||||
# However, because bopomofo uses the absense of a tone mark to indicate
|
||||
# the first Mandarin tone, most implementations of Big Five represent
|
||||
# this character with a blank space, and so a mapping such as U+2003 EM SPACE
|
||||
# might be preferred.
|
||||
#
|
||||
#
|
||||
# 0xA3BC. This character occurs within the Big Five block of tone marks
|
||||
# for bopomofo and is intended to be the tone mark for the first tone in
|
||||
# Mandarin Chinese. We have selected the mapping U+02C9 MODIFIER LETTER
|
||||
# MACRON (Mandarin Chinese first tone) to reflect this semantic.
|
||||
# However, because bopomofo uses the absense of a tone mark to indicate
|
||||
# the first Mandarin tone, most implementations of Big Five represent
|
||||
# this character with a blank space, and so a mapping such as U+2003 EM
|
||||
# SPACE might be preferred.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the BIG5 code (in hex as 0xXXXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
# The official names for Unicode characters U+4E00
|
||||
# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",
|
||||
# where XXXX is the code point. Including all these
|
||||
# names in this file increases its size substantially
|
||||
# and needlessly. The token "<CJK>" is used for the
|
||||
# name of these characters. If necessary, it can be
|
||||
# expanded algorithmically by a parser or editor.
|
||||
# The official names for Unicode characters U+4E00
|
||||
# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",
|
||||
# where XXXX is the code point. Including all these
|
||||
# names in this file increases its size substantially
|
||||
# and needlessly. The token "<CJK>" is used for the
|
||||
# name of these characters. If necessary, it can be
|
||||
# expanded algorithmically by a parser or editor.
|
||||
#
|
||||
# The entries are in BIG5 order
|
||||
#
|
||||
# Any comments or problems, contact <John_Jenkins@taligent.com>
|
||||
# Revision History:
|
||||
#
|
||||
# [v2.0, 2015 December 02]
|
||||
# updates to copyright notice and terms of use
|
||||
# no changes to character mappings
|
||||
#
|
||||
# [v1.0, 2011 October 14]
|
||||
# Updated terms of use to current wording.
|
||||
# Updated contact information.
|
||||
# No changes to the mapping data.
|
||||
#
|
||||
# [v0.0d3, 11 February 1994]
|
||||
# First release.
|
||||
#
|
||||
# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
|
||||
# for any questions or comments or to report errors in the data.
|
||||
#
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,7 +5,7 @@
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: cpxlate@microsoft.com
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
@@ -271,4 +271,4 @@
|
||||
0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD #LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x0163 #LATIN SMALL LETTER T WITH CEDILLA
|
||||
0xFF 0x02D9 #DOT ABOVE
|
||||
0xFF 0x02D9 #DOT ABOVE
|
||||
@@ -5,7 +5,7 @@
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: cpxlate@microsoft.com
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
@@ -271,4 +271,4 @@
|
||||
0xFC 0x044C #CYRILLIC SMALL LETTER SOFT SIGN
|
||||
0xFD 0x044D #CYRILLIC SMALL LETTER E
|
||||
0xFE 0x044E #CYRILLIC SMALL LETTER YU
|
||||
0xFF 0x044F #CYRILLIC SMALL LETTER YA
|
||||
0xFF 0x044F #CYRILLIC SMALL LETTER YA
|
||||
@@ -5,7 +5,7 @@
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: cpxlate@microsoft.com
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
@@ -271,4 +271,4 @@
|
||||
0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD #LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x00FE #LATIN SMALL LETTER THORN
|
||||
0xFF 0x00FF #LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
0xFF 0x00FF #LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
@@ -5,7 +5,7 @@
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: cpxlate@microsoft.com
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
@@ -271,4 +271,4 @@
|
||||
0xFC 0x03CC #GREEK SMALL LETTER OMICRON WITH TONOS
|
||||
0xFD 0x03CD #GREEK SMALL LETTER UPSILON WITH TONOS
|
||||
0xFE 0x03CE #GREEK SMALL LETTER OMEGA WITH TONOS
|
||||
0xFF #UNDEFINED
|
||||
0xFF #UNDEFINED
|
||||
@@ -5,7 +5,7 @@
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: cpxlate@microsoft.com
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
@@ -271,4 +271,4 @@
|
||||
0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x0131 #LATIN SMALL LETTER DOTLESS I
|
||||
0xFE 0x015F #LATIN SMALL LETTER S WITH CEDILLA
|
||||
0xFF 0x00FF #LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
0xFF 0x00FF #LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
@@ -5,7 +5,7 @@
|
||||
# Table format: Format A
|
||||
# Date: 1/7/2000
|
||||
#
|
||||
# Contact: cpxlate@microsoft.com
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
@@ -271,4 +271,4 @@
|
||||
0xFC #UNDEFINED
|
||||
0xFD 0x200E #LEFT-TO-RIGHT MARK
|
||||
0xFE 0x200F #RIGHT-TO-LEFT MARK
|
||||
0xFF #UNDEFINED
|
||||
0xFF #UNDEFINED
|
||||
@@ -5,7 +5,7 @@
|
||||
# Table format: Format A
|
||||
# Date: 01/5/99
|
||||
#
|
||||
# Contact: cpxlate@microsoft.com
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
@@ -271,4 +271,4 @@
|
||||
0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x200E #LEFT-TO-RIGHT MARK
|
||||
0xFE 0x200F #RIGHT-TO-LEFT MARK
|
||||
0xFF 0x06D2 #ARABIC LETTER YEH BARREE
|
||||
0xFF 0x06D2 #ARABIC LETTER YEH BARREE
|
||||
@@ -5,7 +5,7 @@
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: cpxlate@microsoft.com
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
@@ -271,4 +271,4 @@
|
||||
0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x017C #LATIN SMALL LETTER Z WITH DOT ABOVE
|
||||
0xFE 0x017E #LATIN SMALL LETTER Z WITH CARON
|
||||
0xFF 0x02D9 #DOT ABOVE
|
||||
0xFF 0x02D9 #DOT ABOVE
|
||||
@@ -5,7 +5,7 @@
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: cpxlate@microsoft.com
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
@@ -271,4 +271,4 @@
|
||||
0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x01B0 #LATIN SMALL LETTER U WITH HORN
|
||||
0xFE 0x20AB #DONG SIGN
|
||||
0xFF 0x00FF #LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
0xFF 0x00FF #LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
@@ -5,7 +5,7 @@
|
||||
# Table format: Format A
|
||||
# Date: 02/28/98
|
||||
#
|
||||
# Contact: cpxlate@microsoft.com
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
@@ -271,4 +271,4 @@
|
||||
0xFC #UNDEFINED
|
||||
0xFD #UNDEFINED
|
||||
0xFE #UNDEFINED
|
||||
0xFF #UNDEFINED
|
||||
0xFF #UNDEFINED
|
||||
@@ -5,7 +5,7 @@
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: cpxlate@microsoft.com
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
@@ -7995,4 +7995,4 @@
|
||||
0xFC48 0x9D6B #CJK UNIFIED IDEOGRAPH
|
||||
0xFC49 0xFA2D #CJK COMPATIBILITY IDEOGRAPH
|
||||
0xFC4A 0x9E19 #CJK UNIFIED IDEOGRAPH
|
||||
0xFC4B 0x9ED1 #CJK UNIFIED IDEOGRAPH
|
||||
0xFC4B 0x9ED1 #CJK UNIFIED IDEOGRAPH
|
||||
@@ -5,7 +5,7 @@
|
||||
# Table format: Format A
|
||||
# Date: 1/7/2000
|
||||
#
|
||||
# Contact: cpxlate@microsoft.com
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
@@ -22062,4 +22062,4 @@
|
||||
0xFE4C 0xFA24 #CJK COMPATIBILITY IDEOGRAPH
|
||||
0xFE4D 0xFA27 #CJK COMPATIBILITY IDEOGRAPH
|
||||
0xFE4E 0xFA28 #CJK COMPATIBILITY IDEOGRAPH
|
||||
0xFE4F 0xFA29 #CJK COMPATIBILITY IDEOGRAPH
|
||||
0xFE4F 0xFA29 #CJK COMPATIBILITY IDEOGRAPH
|
||||
@@ -5,7 +5,7 @@
|
||||
# Table format: Format A
|
||||
# Date: 1/7/2000
|
||||
#
|
||||
# Contact: cpxlate@microsoft.com
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
@@ -17319,4 +17319,4 @@
|
||||
0xFDFB 0x79A7 #CJK UNIFIED IDEOGRAPH
|
||||
0xFDFC 0x7A00 #CJK UNIFIED IDEOGRAPH
|
||||
0xFDFD 0x7FB2 #CJK UNIFIED IDEOGRAPH
|
||||
0xFDFE 0x8A70 #CJK UNIFIED IDEOGRAPH
|
||||
0xFDFE 0x8A70 #CJK UNIFIED IDEOGRAPH
|
||||
@@ -5,7 +5,7 @@
|
||||
# Table format: Format A
|
||||
# Date: 1/7/2000
|
||||
#
|
||||
# Contact: cpxlate@microsoft.com
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
@@ -13774,4 +13774,4 @@
|
||||
0xF9FB 0x256E #BOX DRAWINGS LIGHT ARC DOWN AND LEFT
|
||||
0xF9FC 0x2570 #BOX DRAWINGS LIGHT ARC UP AND RIGHT
|
||||
0xF9FD 0x256F #BOX DRAWINGS LIGHT ARC UP AND LEFT
|
||||
0xF9FE 0x2593 #DARK SHADE
|
||||
0xF9FE 0x2593 #DARK SHADE
|
||||
@@ -1,26 +1,14 @@
|
||||
# 8859-1.TXT
|
||||
# Date: 2015-12-02 20:19:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-1:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# 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 optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# 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.
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
@@ -35,15 +23,16 @@
|
||||
# The entries are in ISO/IEC 8859-1 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 1.0 version: updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
@@ -300,4 +289,4 @@
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x00FE # LATIN SMALL LETTER THORN (Icelandic)
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
@@ -1,26 +1,14 @@
|
||||
# 8859-10.TXT
|
||||
# Date: 2015-12-02 21:53:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-10:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.1
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 October 11
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 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 optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# 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.
|
||||
# Date: 1999 October 11 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
@@ -36,14 +24,15 @@
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version new.
|
||||
# 1.1 corrected mistake in mapping of 0xA4
|
||||
# 1.1 corrected mistake in mapping of 0xA4
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
@@ -300,4 +289,4 @@
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x00FE # LATIN SMALL LETTER THORN (Icelandic)
|
||||
0xFF 0x0138 # LATIN SMALL LETTER KRA
|
||||
0xFF 0x0138 # LATIN SMALL LETTER KRA
|
||||
@@ -0,0 +1,286 @@
|
||||
# 8859-11.TXT
|
||||
# Date: 2015-12-02 21:55:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-11:2001 to Unicode
|
||||
# Unicode version: 3.2
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 2002 October 7 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-11:2001 characters map into Unicode.
|
||||
#
|
||||
# ISO/IEC 8859-11:2001 is equivalent to TIS 620-2533 (1990) with
|
||||
# the addition of 0xA0 NO-BREAK SPACE.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-11 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-11 order.
|
||||
#
|
||||
# Version history:
|
||||
# 2002 October 7 Created
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x0E01 # THAI CHARACTER KO KAI
|
||||
0xA2 0x0E02 # THAI CHARACTER KHO KHAI
|
||||
0xA3 0x0E03 # THAI CHARACTER KHO KHUAT
|
||||
0xA4 0x0E04 # THAI CHARACTER KHO KHWAI
|
||||
0xA5 0x0E05 # THAI CHARACTER KHO KHON
|
||||
0xA6 0x0E06 # THAI CHARACTER KHO RAKHANG
|
||||
0xA7 0x0E07 # THAI CHARACTER NGO NGU
|
||||
0xA8 0x0E08 # THAI CHARACTER CHO CHAN
|
||||
0xA9 0x0E09 # THAI CHARACTER CHO CHING
|
||||
0xAA 0x0E0A # THAI CHARACTER CHO CHANG
|
||||
0xAB 0x0E0B # THAI CHARACTER SO SO
|
||||
0xAC 0x0E0C # THAI CHARACTER CHO CHOE
|
||||
0xAD 0x0E0D # THAI CHARACTER YO YING
|
||||
0xAE 0x0E0E # THAI CHARACTER DO CHADA
|
||||
0xAF 0x0E0F # THAI CHARACTER TO PATAK
|
||||
0xB0 0x0E10 # THAI CHARACTER THO THAN
|
||||
0xB1 0x0E11 # THAI CHARACTER THO NANGMONTHO
|
||||
0xB2 0x0E12 # THAI CHARACTER THO PHUTHAO
|
||||
0xB3 0x0E13 # THAI CHARACTER NO NEN
|
||||
0xB4 0x0E14 # THAI CHARACTER DO DEK
|
||||
0xB5 0x0E15 # THAI CHARACTER TO TAO
|
||||
0xB6 0x0E16 # THAI CHARACTER THO THUNG
|
||||
0xB7 0x0E17 # THAI CHARACTER THO THAHAN
|
||||
0xB8 0x0E18 # THAI CHARACTER THO THONG
|
||||
0xB9 0x0E19 # THAI CHARACTER NO NU
|
||||
0xBA 0x0E1A # THAI CHARACTER BO BAIMAI
|
||||
0xBB 0x0E1B # THAI CHARACTER PO PLA
|
||||
0xBC 0x0E1C # THAI CHARACTER PHO PHUNG
|
||||
0xBD 0x0E1D # THAI CHARACTER FO FA
|
||||
0xBE 0x0E1E # THAI CHARACTER PHO PHAN
|
||||
0xBF 0x0E1F # THAI CHARACTER FO FAN
|
||||
0xC0 0x0E20 # THAI CHARACTER PHO SAMPHAO
|
||||
0xC1 0x0E21 # THAI CHARACTER MO MA
|
||||
0xC2 0x0E22 # THAI CHARACTER YO YAK
|
||||
0xC3 0x0E23 # THAI CHARACTER RO RUA
|
||||
0xC4 0x0E24 # THAI CHARACTER RU
|
||||
0xC5 0x0E25 # THAI CHARACTER LO LING
|
||||
0xC6 0x0E26 # THAI CHARACTER LU
|
||||
0xC7 0x0E27 # THAI CHARACTER WO WAEN
|
||||
0xC8 0x0E28 # THAI CHARACTER SO SALA
|
||||
0xC9 0x0E29 # THAI CHARACTER SO RUSI
|
||||
0xCA 0x0E2A # THAI CHARACTER SO SUA
|
||||
0xCB 0x0E2B # THAI CHARACTER HO HIP
|
||||
0xCC 0x0E2C # THAI CHARACTER LO CHULA
|
||||
0xCD 0x0E2D # THAI CHARACTER O ANG
|
||||
0xCE 0x0E2E # THAI CHARACTER HO NOKHUK
|
||||
0xCF 0x0E2F # THAI CHARACTER PAIYANNOI
|
||||
0xD0 0x0E30 # THAI CHARACTER SARA A
|
||||
0xD1 0x0E31 # THAI CHARACTER MAI HAN-AKAT
|
||||
0xD2 0x0E32 # THAI CHARACTER SARA AA
|
||||
0xD3 0x0E33 # THAI CHARACTER SARA AM
|
||||
0xD4 0x0E34 # THAI CHARACTER SARA I
|
||||
0xD5 0x0E35 # THAI CHARACTER SARA II
|
||||
0xD6 0x0E36 # THAI CHARACTER SARA UE
|
||||
0xD7 0x0E37 # THAI CHARACTER SARA UEE
|
||||
0xD8 0x0E38 # THAI CHARACTER SARA U
|
||||
0xD9 0x0E39 # THAI CHARACTER SARA UU
|
||||
0xDA 0x0E3A # THAI CHARACTER PHINTHU
|
||||
0xDF 0x0E3F # THAI CURRENCY SYMBOL BAHT
|
||||
0xE0 0x0E40 # THAI CHARACTER SARA E
|
||||
0xE1 0x0E41 # THAI CHARACTER SARA AE
|
||||
0xE2 0x0E42 # THAI CHARACTER SARA O
|
||||
0xE3 0x0E43 # THAI CHARACTER SARA AI MAIMUAN
|
||||
0xE4 0x0E44 # THAI CHARACTER SARA AI MAIMALAI
|
||||
0xE5 0x0E45 # THAI CHARACTER LAKKHANGYAO
|
||||
0xE6 0x0E46 # THAI CHARACTER MAIYAMOK
|
||||
0xE7 0x0E47 # THAI CHARACTER MAITAIKHU
|
||||
0xE8 0x0E48 # THAI CHARACTER MAI EK
|
||||
0xE9 0x0E49 # THAI CHARACTER MAI THO
|
||||
0xEA 0x0E4A # THAI CHARACTER MAI TRI
|
||||
0xEB 0x0E4B # THAI CHARACTER MAI CHATTAWA
|
||||
0xEC 0x0E4C # THAI CHARACTER THANTHAKHAT
|
||||
0xED 0x0E4D # THAI CHARACTER NIKHAHIT
|
||||
0xEE 0x0E4E # THAI CHARACTER YAMAKKAN
|
||||
0xEF 0x0E4F # THAI CHARACTER FONGMAN
|
||||
0xF0 0x0E50 # THAI DIGIT ZERO
|
||||
0xF1 0x0E51 # THAI DIGIT ONE
|
||||
0xF2 0x0E52 # THAI DIGIT TWO
|
||||
0xF3 0x0E53 # THAI DIGIT THREE
|
||||
0xF4 0x0E54 # THAI DIGIT FOUR
|
||||
0xF5 0x0E55 # THAI DIGIT FIVE
|
||||
0xF6 0x0E56 # THAI DIGIT SIX
|
||||
0xF7 0x0E57 # THAI DIGIT SEVEN
|
||||
0xF8 0x0E58 # THAI DIGIT EIGHT
|
||||
0xF9 0x0E59 # THAI DIGIT NINE
|
||||
0xFA 0x0E5A # THAI CHARACTER ANGKHANKHU
|
||||
0xFB 0x0E5B # THAI CHARACTER KHOMUT
|
||||
@@ -1,26 +1,14 @@
|
||||
# 8859-13.TXT
|
||||
# Date: 2015-12-02 22:03:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-13:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1998 - 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 optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# 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.
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
@@ -34,12 +22,16 @@
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-13 order.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
# Version history
|
||||
# 1.0 version: created
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
@@ -296,4 +288,4 @@
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE
|
||||
0xFE 0x017E # LATIN SMALL LETTER Z WITH CARON
|
||||
0xFF 0x2019 # RIGHT SINGLE QUOTATION MARK
|
||||
0xFF 0x2019 # RIGHT SINGLE QUOTATION MARK
|
||||
@@ -1,27 +1,15 @@
|
||||
# 8859-14.TXT
|
||||
# Date: 2015-12-02 22:05:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-14:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Markus Kuhn <mkuhn@acm.org>
|
||||
# Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1998 - 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 optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# 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.
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/>
|
||||
# Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
@@ -35,12 +23,16 @@
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-14 order.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
# Version history
|
||||
# 1.0 version: created
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
@@ -298,4 +290,3 @@
|
||||
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x0177 # LATIN SMALL LETTER Y WITH CIRCUMFLEX
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
|
||||
|
||||
@@ -1,27 +1,15 @@
|
||||
# 8859-15.TXT
|
||||
# Date: 2015-12-02 22:06:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-15:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Markus Kuhn <mkuhn@acm.org>
|
||||
# Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1998 - 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 optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# 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.
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/>
|
||||
# Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
@@ -37,12 +25,16 @@
|
||||
#
|
||||
# Version history
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
# Version history
|
||||
# 1.0 version: created
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
@@ -300,4 +292,3 @@
|
||||
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x00FE # LATIN SMALL LETTER THORN
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
|
||||
|
||||
@@ -1,27 +1,17 @@
|
||||
# 8859-16.TXT
|
||||
# Date: 2015-12-02 22:08:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-16:2001 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 2001 July 26
|
||||
# Authors: Markus Kuhn <mkuhn@acm.org>
|
||||
# Date: 2001 July 26 (header updated: 2015 December 02)
|
||||
# Authors: Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/>
|
||||
#
|
||||
# Copyright (c) 1999-2001 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 optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# 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
|
||||
@@ -34,12 +24,16 @@
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-16 order.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
# Version history
|
||||
# 1.0 version: created
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
@@ -296,4 +290,4 @@
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x0119 # LATIN SMALL LETTER E WITH OGONEK
|
||||
0xFE 0x021B # LATIN SMALL LETTER T WITH COMMA BELOW
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
@@ -1,26 +1,14 @@
|
||||
# 8859-2.TXT
|
||||
# Date: 2015-12-02 21:34:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO 8859-2:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# 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 optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# 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.
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
@@ -35,15 +23,16 @@
|
||||
# The entries are in ISO/IEC 8859-2 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 1.0 version: updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
@@ -300,4 +289,4 @@
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x0163 # LATIN SMALL LETTER T WITH CEDILLA
|
||||
0xFF 0x02D9 # DOT ABOVE
|
||||
0xFF 0x02D9 # DOT ABOVE
|
||||
@@ -1,26 +1,14 @@
|
||||
# 8859-3.TXT
|
||||
# Date: 2015-12-02 21:39:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-3:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# 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 optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# 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.
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
@@ -35,15 +23,16 @@
|
||||
# The entries are in ISO/IEC 8859-3 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 1.0 version: updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
@@ -293,4 +282,4 @@
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x016D # LATIN SMALL LETTER U WITH BREVE
|
||||
0xFE 0x015D # LATIN SMALL LETTER S WITH CIRCUMFLEX
|
||||
0xFF 0x02D9 # DOT ABOVE
|
||||
0xFF 0x02D9 # DOT ABOVE
|
||||
@@ -1,26 +1,14 @@
|
||||
# 8859-4.TXT
|
||||
# Date: 2015-12-02 21:41:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-4:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# 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 optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# 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.
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
@@ -35,15 +23,16 @@
|
||||
# The entries are in ISO/IEC 8859-4 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 1.0 version: updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
@@ -300,4 +289,4 @@
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x0169 # LATIN SMALL LETTER U WITH TILDE
|
||||
0xFE 0x016B # LATIN SMALL LETTER U WITH MACRON
|
||||
0xFF 0x02D9 # DOT ABOVE
|
||||
0xFF 0x02D9 # DOT ABOVE
|
||||
@@ -1,26 +1,14 @@
|
||||
# 8859-5.TXT
|
||||
# Date: 2015-12-02 21:43:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO 8859-5:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# 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 optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# 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.
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
@@ -35,15 +23,16 @@
|
||||
# The entries are in ISO/IEC 8859-5 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 1.0 version: updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
@@ -300,4 +289,4 @@
|
||||
0xFC 0x045C # CYRILLIC SMALL LETTER KJE
|
||||
0xFD 0x00A7 # SECTION SIGN
|
||||
0xFE 0x045E # CYRILLIC SMALL LETTER SHORT U
|
||||
0xFF 0x045F # CYRILLIC SMALL LETTER DZHE
|
||||
0xFF 0x045F # CYRILLIC SMALL LETTER DZHE
|
||||
@@ -1,26 +1,14 @@
|
||||
# 8859-6.TXT
|
||||
# Date: 2015-12-02 21:44:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO 8859-6:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# 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 optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# 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.
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
@@ -35,17 +23,18 @@
|
||||
# The entries are in ISO/IEC 8859-6 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 0x30..0x39 remapped to the ASCII digits (U+0030..U+0039) instead
|
||||
# of the Arabic digits (U+0660..U+0669).
|
||||
# 1.0 version: updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 0x30..0x39 remapped to the ASCII digits (U+0030..U+0039) instead
|
||||
# of the Arabic digits (U+0660..U+0669).
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
@@ -257,4 +246,4 @@
|
||||
0xEF 0x064F # ARABIC DAMMA
|
||||
0xF0 0x0650 # ARABIC KASRA
|
||||
0xF1 0x0651 # ARABIC SHADDA
|
||||
0xF2 0x0652 # ARABIC SUKUN
|
||||
0xF2 0x0652 # ARABIC SUKUN
|
||||
@@ -1,34 +1,23 @@
|
||||
# 8859-7.TXT
|
||||
# Date: 2015-12-02 21:47:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO 8859-7:1987 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Name: ISO 8859-7:2003 to Unicode
|
||||
# Unicode version: 4.0
|
||||
# Table version: 3.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# 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 optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# 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.
|
||||
# Date: 2003-Nov-12 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO 8859-7:1987 characters map into Unicode.
|
||||
# ISO 8859-7:2003 characters map into Unicode.
|
||||
#
|
||||
# ISO 8859-7:1987 is equivalent to ISO-IR-126, ELOT 928,
|
||||
# and ECMA 118.
|
||||
# and ECMA 118. ISO 8859-7:2003 adds two currency signs
|
||||
# and one other character not in the earlier standard.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO 8859-7 code (in hex as 0xXX)
|
||||
@@ -43,12 +32,17 @@
|
||||
# Remap 0xA1 to U+2018 (instead of 0x02BD) to match text of 8859-7
|
||||
# Remap 0xA2 to U+2019 (instead of 0x02BC) to match text of 8859-7
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
# 2.0 version updates 1.0 version by adding mappings for the
|
||||
# three newly added characters 0xA4, 0xA5, 0xAA.
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
# 3.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
@@ -214,10 +208,13 @@
|
||||
0xA1 0x2018 # LEFT SINGLE QUOTATION MARK
|
||||
0xA2 0x2019 # RIGHT SINGLE QUOTATION MARK
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x20AC # EURO SIGN
|
||||
0xA5 0x20AF # DRACHMA SIGN
|
||||
0xA6 0x00A6 # BROKEN BAR
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x00A8 # DIAERESIS
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x037A # GREEK YPOGEGRAMMENI
|
||||
0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC # NOT SIGN
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
@@ -299,4 +296,4 @@
|
||||
0xFB 0x03CB # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
|
||||
0xFC 0x03CC # GREEK SMALL LETTER OMICRON WITH TONOS
|
||||
0xFD 0x03CD # GREEK SMALL LETTER UPSILON WITH TONOS
|
||||
0xFE 0x03CE # GREEK SMALL LETTER OMEGA WITH TONOS
|
||||
0xFE 0x03CE # GREEK SMALL LETTER OMEGA WITH TONOS
|
||||
@@ -1,26 +1,14 @@
|
||||
# 8859-8.TXT
|
||||
# Date: 2015-12-02 21:50:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-8:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.1
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 2000-Jan-03
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# 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 optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# 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.
|
||||
# Date: 2000-Jan-03 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
@@ -37,15 +25,16 @@
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 1.1 version updates to the published 8859-8:1999, correcting
|
||||
# 1.1 version updates to the published 8859-8:1999, correcting
|
||||
# the mapping of 0xAF and adding mappings for LRM and RLM.
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
@@ -267,4 +256,3 @@
|
||||
0xFA 0x05EA # HEBREW LETTER TAV
|
||||
0xFD 0x200E # LEFT-TO-RIGHT MARK
|
||||
0xFE 0x200F # RIGHT-TO-LEFT MARK
|
||||
|
||||
|
||||
@@ -1,26 +1,14 @@
|
||||
# 8859-9.TXT
|
||||
# Date: 2015-12-02 21:51:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-9:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# 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
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# 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.
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
@@ -37,15 +25,16 @@
|
||||
# ISO/IEC 8859-9 is also equivalent to ISO-IR-148.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 1.0 version: updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
@@ -304,4 +293,3 @@
|
||||
0xFE 0x015F # LATIN SMALL LETTER S WITH CEDILLA
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
|
||||
|
||||
|
||||
+28
-26
@@ -1,33 +1,24 @@
|
||||
# JIS0201.TXT
|
||||
# Date: 2015-12-02 23:49:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: JIS X 0201 (1976) to Unicode 1.1 Table
|
||||
# Unicode version: 1.1
|
||||
# Table version: 0.9
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 8 March 1994
|
||||
# Authors: Glenn Adams <glenn@metis.com>
|
||||
# John H. Jenkins <John_Jenkins@taligent.com>
|
||||
#
|
||||
# Copyright (c) 1991-1994 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
|
||||
# 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.
|
||||
# Date: 2011 October 14 (header updated: 2015 December 02)
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# single-byte JIS X 0201 characters map into Unicode 1.1
|
||||
# (ISO/IEC 10646:1-1993 UCS-2).
|
||||
#
|
||||
# This table contains one set of mappings from JIS X 0201 into Unicode.
|
||||
# Note that these data are *possible* mappings only and may not be the
|
||||
# same as those used by actual products, nor may they be the best suited
|
||||
# for all uses. For more information on the mappings between various code
|
||||
# pages incorporating the repertoire of JIS X 0201 and Unicode, consult the
|
||||
# VENDORS mapping data.
|
||||
#
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the shift JIS code (in hex as 0xXX)
|
||||
@@ -36,11 +27,22 @@
|
||||
#
|
||||
# The entries are in JIS order
|
||||
#
|
||||
# These mappings are provisional, pending definition of
|
||||
# official mappings by Japanese standards bodies.
|
||||
# Revision History:
|
||||
#
|
||||
# Any comments or problems, contact <John_Jenkins@taligent.com>
|
||||
# [v2.0, 2015 December 02]
|
||||
# updates to copyright notice and terms of use
|
||||
# no changes to character mappings
|
||||
#
|
||||
# [v1.0, 2011 October 14]
|
||||
# Updated terms of use to current wording.
|
||||
# Updated contact information.
|
||||
# No changes to the mapping data.
|
||||
#
|
||||
# [v0.9, 8 March 1994]
|
||||
# First release.
|
||||
#
|
||||
# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
|
||||
# for any questions or comments or to report errors in the data.
|
||||
#
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
|
||||
+35
-33
@@ -1,45 +1,37 @@
|
||||
# JIS0208.TXT
|
||||
# Date: 2015-12-02 23:50:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: JIS X 0208 (1990) to Unicode
|
||||
# Unicode version: 1.1
|
||||
# Table version: 0.9
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 8 March 1994
|
||||
# Authors: Glenn Adams <glenn@metis.com>
|
||||
# John H. Jenkins <John_Jenkins@taligent.com>
|
||||
#
|
||||
# Copyright (c) 1991-1994 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
|
||||
# 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.
|
||||
# Date: 2011 October 14 (header updated: 2015 December 02)
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# JIS X 0208 (1983) characters map into Unicode.
|
||||
#
|
||||
# This table contains one set of mappings from JIS X 0208 (1990) into Unicode.
|
||||
# Note that these data are *possible* mappings only and may not be the
|
||||
# same as those used by actual products, nor may they be the best suited
|
||||
# for all uses. For more information on the mappings between various code
|
||||
# pages incorporating the repertoire of JIS X 0208 (1990) and Unicode, consult the
|
||||
# VENDORS mapping data.
|
||||
#
|
||||
#
|
||||
# Format: Four tab-separated columns
|
||||
# Column #1 is the shift-JIS code (in hex)
|
||||
# Column #2 is the JIS X 0208 code (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #4 the Unicode name (follows a comment sign, '#')
|
||||
# The official names for Unicode characters U+4E00
|
||||
# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",
|
||||
# where XXXX is the code point. Including all these
|
||||
# names in this file increases its size substantially
|
||||
# and needlessly. The token "<CJK>" is used for the
|
||||
# name of these characters. If necessary, it can be
|
||||
# expanded algorithmically by a parser or editor.
|
||||
# The official names for Unicode characters U+4E00
|
||||
# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",
|
||||
# where XXXX is the code point. Including all these
|
||||
# names in this file increases its size substantially
|
||||
# and needlessly. The token "<CJK>" is used for the
|
||||
# name of these characters. If necessary, it can be
|
||||
# expanded algorithmically by a parser or editor.
|
||||
#
|
||||
# The entries are in JIS X 0208 order
|
||||
#
|
||||
@@ -52,12 +44,22 @@
|
||||
# the kuten form. For example, 0x2121 -> 0x0101 -> 0101;
|
||||
# 0x7426 -> 0x5406 -> 8406
|
||||
#
|
||||
# The kanji mappings are a normative part of ISO/IEC 10646. The
|
||||
# non-kanji mappings are provisional, pending definition of
|
||||
# official mappings by Japanese standards bodies
|
||||
# Revision History:
|
||||
#
|
||||
# Any comments or problems, contact <John_Jenkins@taligent.com>
|
||||
# [v2.0, 2015 December 02]
|
||||
# updates to copyright notice and terms of use
|
||||
# no changes to character mappings
|
||||
#
|
||||
# [v1.0, 2011 October 14]
|
||||
# Updated terms of use to current wording.
|
||||
# Updated contact information.
|
||||
# No changes to the mapping data.
|
||||
#
|
||||
# [v0.9, 8 March 1994]
|
||||
# First release.
|
||||
#
|
||||
# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
|
||||
# for any questions or comments or to report errors in the data.
|
||||
#
|
||||
0x8140 0x2121 0x3000 # IDEOGRAPHIC SPACE
|
||||
0x8141 0x2122 0x3001 # IDEOGRAPHIC COMMA
|
||||
|
||||
+38
-35
@@ -1,44 +1,36 @@
|
||||
# JIS0212.TXT
|
||||
# Date: 2015-12-02 23:51:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: JIS X 0212 (1990) to Unicode
|
||||
# Unicode version: 1.1
|
||||
# Table version: 0.9
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 8 March 1994
|
||||
# Authors: Glenn Adams <glenn@metis.com>
|
||||
# John H. Jenkins <John_Jenkins@taligent.com>
|
||||
#
|
||||
# Copyright (c) 1991-1994 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
|
||||
# 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.
|
||||
# Date: 2011 October 14 (header updated: 2015 December 02)
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# JIS X 0212 (1983) characters map into Unicode.
|
||||
#
|
||||
# This table contains one set of mappings from JIS X 0212 into Unicode.
|
||||
# Note that these data are *possible* mappings only and may not be the
|
||||
# same as those used by actual products, nor may they be the best suited
|
||||
# for all uses. For more information on the mappings between various code
|
||||
# pages incorporating the repertoire of JIS X 0212 and Unicode, consult the
|
||||
# VENDORS mapping data.
|
||||
#
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the JIS X 0212 code (in hex as 0xXXXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
# The official names for Unicode characters U+4E00
|
||||
# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",
|
||||
# where XXXX is the code point. Including all these
|
||||
# names in this file increases its size substantially
|
||||
# and needlessly. The token "<CJK>" is used for the
|
||||
# name of these characters. If necessary, it can be
|
||||
# expanded algorithmically by a parser or editor.
|
||||
# The official names for Unicode characters U+4E00
|
||||
# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",
|
||||
# where XXXX is the code point. Including all these
|
||||
# names in this file increases its size substantially
|
||||
# and needlessly. The token "<CJK>" is used for the
|
||||
# name of these characters. If necessary, it can be
|
||||
# expanded algorithmically by a parser or editor.
|
||||
#
|
||||
# The entries are in JIS X 0212 order
|
||||
#
|
||||
@@ -51,12 +43,6 @@
|
||||
# the kuten form. For example, 0x2121 -> 0x0101 -> 0101;
|
||||
# 0x6D63 -> 0x4D43 -> 7767
|
||||
#
|
||||
# The kanji mappings are a normative part of ISO/IEC 10646. The
|
||||
# non-kanji mappings are provisional, pending definition of
|
||||
# official mappings by Japanese standards bodies
|
||||
#
|
||||
# Any comments or problems, contact <John_Jenkins@taligent.com>
|
||||
#
|
||||
# Notes:
|
||||
#
|
||||
# 1. JIS X 0212 apparently unified the following two symbols
|
||||
@@ -72,6 +58,23 @@
|
||||
# Consequently, in the Unicode mapping, 0x2922 is treated as
|
||||
# LATIN CAPITAL LETTER D WITH STROKE.
|
||||
#
|
||||
# Revision History:
|
||||
#
|
||||
# [v2.0, 2015 December 02]
|
||||
# updates to copyright notice and terms of use
|
||||
# no changes to character mappings
|
||||
#
|
||||
# [v1.0, 2011 October 14]
|
||||
# Updated terms of use to current wording.
|
||||
# Updated contact information.
|
||||
# No changes to the mapping data.
|
||||
#
|
||||
# [v0.9, 8 March 1994]
|
||||
# First release.
|
||||
#
|
||||
# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
|
||||
# for any questions or comments or to report errors in the data.
|
||||
#
|
||||
0x222F 0x02D8 # BREVE
|
||||
0x2230 0x02C7 # CARON (Mandarin Chinese third tone)
|
||||
0x2231 0x00B8 # CEDILLA
|
||||
|
||||
+35
-33
@@ -1,44 +1,36 @@
|
||||
# SHIFTJIS.TXT
|
||||
# Date: 2015-12-02 23:52:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: Shift-JIS to Unicode
|
||||
# Unicode version: 1.1
|
||||
# Table version: 0.9
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 8 March 1994
|
||||
# Authors: Glenn Adams <glenn@metis.com>
|
||||
# John H. Jenkins <John_Jenkins@taligent.com>
|
||||
#
|
||||
# Copyright (c) 1991-1994 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
|
||||
# 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.
|
||||
# Date: 2011 October 14 (header updated: 2015 December 02)
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# Shift-JIS (a combination of JIS 0201 and JIS 0208) maps into Unicode.
|
||||
#
|
||||
# This table contains one set of mappings from Shift-JIS into Unicode.
|
||||
# Note that these data are *possible* mappings only and may not be the
|
||||
# same as those used by actual products, nor may they be the best suited
|
||||
# for all uses. For more information on the mappings between various code
|
||||
# pages incorporating the repertoire of Shift-JIS and Unicode, consult the
|
||||
# VENDORS mapping data.
|
||||
#
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the shift-JIS code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
# The official names for Unicode characters U+4E00
|
||||
# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",
|
||||
# where XXXX is the code point. Including all these
|
||||
# names in this file increases its size substantially
|
||||
# and needlessly. The token "<CJK>" is used for the
|
||||
# name of these characters. If necessary, it can be
|
||||
# expanded algorithmically by a parser or editor.
|
||||
# The official names for Unicode characters U+4E00
|
||||
# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",
|
||||
# where XXXX is the code point. Including all these
|
||||
# names in this file increases its size substantially
|
||||
# and needlessly. The token "<CJK>" is used for the
|
||||
# name of these characters. If necessary, it can be
|
||||
# expanded algorithmically by a parser or editor.
|
||||
#
|
||||
# The entries are ordered by their Shift-JIS codes as follows:
|
||||
# Single-byte characters precede double-byte characters
|
||||
@@ -49,12 +41,22 @@
|
||||
# This alternate order can be generated from the one given here
|
||||
# by a simple sort.
|
||||
#
|
||||
# The kanji mappings are a normative part of ISO/IEC 10646. The
|
||||
# non-kanji mappings are provisional, pending definition of
|
||||
# official mappings by Japanese standards bodies
|
||||
# Revision History:
|
||||
#
|
||||
# Any comments or problems, contact <John_Jenkins@taligent.com>
|
||||
# [v2.0, 2015 December 02]
|
||||
# updates to copyright notice and terms of use
|
||||
# no changes to character mappings
|
||||
#
|
||||
# [v1.0, 2011 October 14]
|
||||
# Updated terms of use to current wording.
|
||||
# Updated contact information.
|
||||
# No changes to the mapping data.
|
||||
#
|
||||
# [v0.9, 8 March 1994]
|
||||
# First release.
|
||||
#
|
||||
# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
|
||||
# for any questions or comments or to report errors in the data.
|
||||
#
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
|
||||
+1
-1
@@ -209,7 +209,7 @@ TCL_LIB_FLAG = @TCL_LIB_FLAG@
|
||||
#TCL_LIB_FLAG = -ltcl
|
||||
|
||||
# support for embedded libraries on Darwin / Mac OS X
|
||||
DYLIB_INSTALL_DIR = ${LIB_RUNTIME_DIR}
|
||||
DYLIB_INSTALL_DIR = $(libdir)
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# The information below is modified by the configure script when Makefile is
|
||||
|
||||
+3
-3
@@ -8,11 +8,11 @@ MacOSX platform too, but they all depend on UNIX (POSIX/ANSI C) interfaces and
|
||||
some of them only make sense under UNIX.
|
||||
|
||||
Updated forms of the information found in this file is available at:
|
||||
http://www.tcl.tk/doc/howto/compile.html#unix
|
||||
https://www.tcl-tk.org/doc/howto/compile.html#unix
|
||||
|
||||
For information on platforms where Tcl is known to compile, along with any
|
||||
porting notes for getting it to work on those platforms, see:
|
||||
http://www.tcl.tk/software/tcltk/platforms.html
|
||||
https://www.tcl-tk.org/software/tcltk/platforms.html
|
||||
|
||||
The rest of this file contains instructions on how to do this. The release
|
||||
should compile and run either "out of the box" or with trivial changes on any
|
||||
@@ -91,7 +91,7 @@ How To Compile And Install Tcl:
|
||||
--enable-dtrace Enable tcl DTrace provider (if DTrace is
|
||||
available on the platform), c.f. tclDTrace.d
|
||||
for descriptions of the probes made available,
|
||||
see http://wiki.tcl.tk/DTrace for more details
|
||||
see https://wiki.tcl-lang.org/page/DTrace for more details
|
||||
--with-encoding=ENCODING Specifies the encoding for compile-time
|
||||
configuration values. Defaults to iso8859-1,
|
||||
which is also sufficient for ASCII.
|
||||
|
||||
Vendored
+7
-4
@@ -308,7 +308,7 @@ ac_includes_default="\
|
||||
# include <unistd.h>
|
||||
#endif"
|
||||
|
||||
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAN_FLAGS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP TCL_THREADS TCLSH_PROG ZLIB_OBJS ZLIB_SRCS ZLIB_INCLUDE RANLIB ac_ct_RANLIB AR ac_ct_AR LIBOBJS TCL_LIBS DL_LIBS DL_OBJS PLAT_OBJS PLAT_SRCS LDAIX_SRC CFLAGS_DEBUG CFLAGS_OPTIMIZE CFLAGS_WARNING CFLAGS_NOLTO LDFLAGS_DEBUG LDFLAGS_OPTIMIZE CC_SEARCH_FLAGS LD_SEARCH_FLAGS STLIB_LD SHLIB_LD TCL_SHLIB_LD_EXTRAS TK_SHLIB_LD_EXTRAS SHLIB_LD_LIBS SHLIB_CFLAGS SHLIB_SUFFIX MAKE_LIB MAKE_STUB_LIB INSTALL_LIB DLL_INSTALL_DIR INSTALL_STUB_LIB CFLAGS_DEFAULT LDFLAGS_DEFAULT DTRACE TCL_VERSION TCL_MAJOR_VERSION TCL_MINOR_VERSION TCL_PATCH_LEVEL TCL_YEAR PKG_CFG_ARGS TCL_LIB_FILE TCL_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC TCL_STUB_LIB_PATH TCL_INCLUDE_SPEC TCL_BUILD_STUB_LIB_SPEC TCL_BUILD_STUB_LIB_PATH TCL_SRC_DIR CFG_TCL_SHARED_LIB_SUFFIX CFG_TCL_UNSHARED_LIB_SUFFIX TCL_SHARED_BUILD LD_LIBRARY_PATH_VAR TCL_BUILD_LIB_SPEC TCL_LIB_VERSIONS_OK TCL_SHARED_LIB_SUFFIX TCL_UNSHARED_LIB_SUFFIX TCL_HAS_LONGLONG INSTALL_TZDATA DTRACE_SRC DTRACE_HDR DTRACE_OBJ MAKEFILE_SHELL BUILD_DLTEST TCL_PACKAGE_PATH TCL_MODULE_PATH TCL_LIBRARY PRIVATE_INCLUDE_DIR HTML_DIR PACKAGE_DIR EXTRA_CC_SWITCHES EXTRA_APP_CC_SWITCHES EXTRA_INSTALL EXTRA_INSTALL_BINARIES EXTRA_BUILD_HTML EXTRA_TCLSH_LIBS DLTEST_LD DLTEST_SUFFIX'
|
||||
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAN_FLAGS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP TCL_THREADS SHARED_BUILD TCLSH_PROG ZLIB_OBJS ZLIB_SRCS ZLIB_INCLUDE RANLIB ac_ct_RANLIB AR ac_ct_AR LIBOBJS TCL_LIBS DL_LIBS DL_OBJS PLAT_OBJS PLAT_SRCS LDAIX_SRC CFLAGS_DEBUG CFLAGS_OPTIMIZE CFLAGS_WARNING CFLAGS_NOLTO LDFLAGS_DEBUG LDFLAGS_OPTIMIZE CC_SEARCH_FLAGS LD_SEARCH_FLAGS STLIB_LD SHLIB_LD TCL_SHLIB_LD_EXTRAS TK_SHLIB_LD_EXTRAS SHLIB_LD_LIBS SHLIB_CFLAGS SHLIB_SUFFIX MAKE_LIB MAKE_STUB_LIB INSTALL_LIB DLL_INSTALL_DIR INSTALL_STUB_LIB CFLAGS_DEFAULT LDFLAGS_DEFAULT DTRACE TCL_VERSION TCL_MAJOR_VERSION TCL_MINOR_VERSION TCL_PATCH_LEVEL TCL_YEAR PKG_CFG_ARGS TCL_LIB_FILE TCL_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC TCL_STUB_LIB_PATH TCL_INCLUDE_SPEC TCL_BUILD_STUB_LIB_SPEC TCL_BUILD_STUB_LIB_PATH TCL_SRC_DIR CFG_TCL_SHARED_LIB_SUFFIX CFG_TCL_UNSHARED_LIB_SUFFIX TCL_SHARED_BUILD LD_LIBRARY_PATH_VAR TCL_BUILD_LIB_SPEC TCL_LIB_VERSIONS_OK TCL_SHARED_LIB_SUFFIX TCL_UNSHARED_LIB_SUFFIX TCL_HAS_LONGLONG INSTALL_TZDATA DTRACE_SRC DTRACE_HDR DTRACE_OBJ MAKEFILE_SHELL BUILD_DLTEST TCL_PACKAGE_PATH TCL_MODULE_PATH TCL_LIBRARY PRIVATE_INCLUDE_DIR HTML_DIR PACKAGE_DIR EXTRA_CC_SWITCHES EXTRA_APP_CC_SWITCHES EXTRA_INSTALL EXTRA_INSTALL_BINARIES EXTRA_BUILD_HTML EXTRA_TCLSH_LIBS DLTEST_LD DLTEST_SUFFIX'
|
||||
ac_subst_files=''
|
||||
|
||||
# Initialize some variables set by options.
|
||||
@@ -5731,6 +5731,7 @@ _ACEOF
|
||||
fi
|
||||
|
||||
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Look for a native installed tclsh binary (if available)
|
||||
# If one cannot be found then use the binary we build (fails for
|
||||
@@ -7509,7 +7510,6 @@ fi
|
||||
;;
|
||||
DragonFly-*|FreeBSD-*)
|
||||
# This configuration from FreeBSD Ports.
|
||||
SHLIB_CFLAGS="-fPIC"
|
||||
SHLIB_LD="${CC} -shared"
|
||||
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,-soname,\$@"
|
||||
SHLIB_SUFFIX=".so"
|
||||
@@ -8707,9 +8707,11 @@ fi
|
||||
AIX-*) ;;
|
||||
BSD/OS*) ;;
|
||||
CYGWIN_*|MINGW32_*|MSYS_*) ;;
|
||||
IRIX*) ;;
|
||||
NetBSD-*|DragonFly-*|FreeBSD-*|OpenBSD-*) ;;
|
||||
HP-UX*) ;;
|
||||
Darwin-*) ;;
|
||||
IRIX*) ;;
|
||||
NetBSD-*|OpenBSD-*) ;;
|
||||
OSF1-*) ;;
|
||||
SCO_SV-3.2*) ;;
|
||||
*) SHLIB_CFLAGS="-fPIC" ;;
|
||||
esac
|
||||
@@ -19648,6 +19650,7 @@ s,@OBJEXT@,$OBJEXT,;t t
|
||||
s,@CPP@,$CPP,;t t
|
||||
s,@EGREP@,$EGREP,;t t
|
||||
s,@TCL_THREADS@,$TCL_THREADS,;t t
|
||||
s,@SHARED_BUILD@,$SHARED_BUILD,;t t
|
||||
s,@TCLSH_PROG@,$TCLSH_PROG,;t t
|
||||
s,@ZLIB_OBJS@,$ZLIB_OBJS,;t t
|
||||
s,@ZLIB_SRCS@,$ZLIB_SRCS,;t t
|
||||
|
||||
+6
-11
@@ -13,14 +13,6 @@
|
||||
#undef STATIC_BUILD
|
||||
#include "tcl.h"
|
||||
|
||||
/*
|
||||
* TCL_STORAGE_CLASS is set unconditionally to DLLEXPORT because the
|
||||
* Pkga_Init declaration is in the source file itself, which is only
|
||||
* accessed when we are building a library.
|
||||
*/
|
||||
#undef TCL_STORAGE_CLASS
|
||||
#define TCL_STORAGE_CLASS DLLEXPORT
|
||||
|
||||
/*
|
||||
* Prototypes for procedures defined later in this file:
|
||||
*/
|
||||
@@ -58,6 +50,7 @@ Pkga_EqObjCmd(
|
||||
int result;
|
||||
const char *str1, *str2;
|
||||
int len1, len2;
|
||||
(void)dummy;
|
||||
|
||||
if (objc != 3) {
|
||||
Tcl_WrongNumArgs(interp, 1, objv, "string1 string2");
|
||||
@@ -99,6 +92,8 @@ Pkga_QuoteObjCmd(
|
||||
int objc, /* Number of arguments. */
|
||||
Tcl_Obj *const objv[]) /* Argument strings. */
|
||||
{
|
||||
(void)dummy;
|
||||
|
||||
if (objc != 2) {
|
||||
Tcl_WrongNumArgs(interp, 1, objv, "value");
|
||||
return TCL_ERROR;
|
||||
@@ -124,17 +119,17 @@ Pkga_QuoteObjCmd(
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
EXTERN int
|
||||
DLLEXPORT int
|
||||
Pkga_Init(
|
||||
Tcl_Interp *interp) /* Interpreter in which the package is to be
|
||||
* made available. */
|
||||
{
|
||||
int code;
|
||||
|
||||
if (Tcl_InitStubs(interp, TCL_VERSION, 0) == NULL) {
|
||||
if (Tcl_InitStubs(interp, "8.5", 0) == NULL) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
code = Tcl_PkgProvide(interp, "Pkga", "1.0");
|
||||
code = Tcl_PkgProvide(interp, "pkga", "1.0");
|
||||
if (code != TCL_OK) {
|
||||
return code;
|
||||
}
|
||||
|
||||
+12
-4
@@ -54,6 +54,7 @@ Pkgb_SubObjCmd(
|
||||
Tcl_Obj *const objv[]) /* Argument objects. */
|
||||
{
|
||||
int first, second;
|
||||
(void)dummy;
|
||||
|
||||
if (objc != 3) {
|
||||
Tcl_WrongNumArgs(interp, 1, objv, "num num");
|
||||
@@ -94,6 +95,10 @@ Pkgb_UnsafeObjCmd(
|
||||
int objc, /* Number of arguments. */
|
||||
Tcl_Obj *const objv[]) /* Argument objects. */
|
||||
{
|
||||
(void)dummy;
|
||||
(void)objc;
|
||||
(void)objv;
|
||||
|
||||
return Tcl_EvalEx(interp, "list unsafe command invoked", -1, TCL_EVAL_GLOBAL);
|
||||
}
|
||||
|
||||
@@ -106,6 +111,9 @@ Pkgb_DemoObjCmd(
|
||||
{
|
||||
#if (TCL_MAJOR_VERSION > 8) || (TCL_MINOR_VERSION > 4)
|
||||
Tcl_Obj *first;
|
||||
(void)dummy;
|
||||
(void)objc;
|
||||
(void)objv;
|
||||
|
||||
if (Tcl_ListObjIndex(NULL, Tcl_GetEncodingSearchPath(), 0, &first)
|
||||
== TCL_OK) {
|
||||
@@ -141,10 +149,10 @@ Pkgb_Init(
|
||||
{
|
||||
int code;
|
||||
|
||||
if (Tcl_InitStubs(interp, "8.5-", 0) == NULL) {
|
||||
if (Tcl_InitStubs(interp, "8.5", 0) == NULL) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
code = Tcl_PkgProvide(interp, "Pkgb", "2.3");
|
||||
code = Tcl_PkgProvide(interp, "pkgb", "2.3");
|
||||
if (code != TCL_OK) {
|
||||
return code;
|
||||
}
|
||||
@@ -178,10 +186,10 @@ Pkgb_SafeInit(
|
||||
{
|
||||
int code;
|
||||
|
||||
if (Tcl_InitStubs(interp, "8.5-", 0) == NULL) {
|
||||
if (Tcl_InitStubs(interp, "8.5", 0) == NULL) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
code = Tcl_PkgProvide(interp, "Pkgb", "2.3");
|
||||
code = Tcl_PkgProvide(interp, "pkgb", "2.3");
|
||||
if (code != TCL_OK) {
|
||||
return code;
|
||||
}
|
||||
|
||||
+11
-14
@@ -14,14 +14,6 @@
|
||||
#undef STATIC_BUILD
|
||||
#include "tcl.h"
|
||||
|
||||
/*
|
||||
* TCL_STORAGE_CLASS is set unconditionally to DLLEXPORT because the
|
||||
* Pkgc_Init declaration is in the source file itself, which is only
|
||||
* accessed when we are building a library.
|
||||
*/
|
||||
#undef TCL_STORAGE_CLASS
|
||||
#define TCL_STORAGE_CLASS DLLEXPORT
|
||||
|
||||
/*
|
||||
* Prototypes for procedures defined later in this file:
|
||||
*/
|
||||
@@ -56,6 +48,7 @@ Pkgc_SubObjCmd(
|
||||
Tcl_Obj *const objv[]) /* Argument objects. */
|
||||
{
|
||||
int first, second;
|
||||
(void)dummy;
|
||||
|
||||
if (objc != 3) {
|
||||
Tcl_WrongNumArgs(interp, 1, objv, "num num");
|
||||
@@ -93,6 +86,10 @@ Pkgc_UnsafeObjCmd(
|
||||
int objc, /* Number of arguments. */
|
||||
Tcl_Obj *const objv[]) /* Argument objects. */
|
||||
{
|
||||
(void)dummy;
|
||||
(void)objc;
|
||||
(void)objv;
|
||||
|
||||
Tcl_SetObjResult(interp, Tcl_NewStringObj("unsafe command invoked", -1));
|
||||
return TCL_OK;
|
||||
}
|
||||
@@ -114,17 +111,17 @@ Pkgc_UnsafeObjCmd(
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
EXTERN int
|
||||
DLLEXPORT int
|
||||
Pkgc_Init(
|
||||
Tcl_Interp *interp) /* Interpreter in which the package is to be
|
||||
* made available. */
|
||||
{
|
||||
int code;
|
||||
|
||||
if (Tcl_InitStubs(interp, TCL_VERSION, 0) == NULL) {
|
||||
if (Tcl_InitStubs(interp, "8.5", 0) == NULL) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
code = Tcl_PkgProvide(interp, "Pkgc", "1.7.2");
|
||||
code = Tcl_PkgProvide(interp, "pkgc", "1.7.2");
|
||||
if (code != TCL_OK) {
|
||||
return code;
|
||||
}
|
||||
@@ -151,17 +148,17 @@ Pkgc_Init(
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
EXTERN int
|
||||
DLLEXPORT int
|
||||
Pkgc_SafeInit(
|
||||
Tcl_Interp *interp) /* Interpreter in which the package is to be
|
||||
* made available. */
|
||||
{
|
||||
int code;
|
||||
|
||||
if (Tcl_InitStubs(interp, TCL_VERSION, 0) == NULL) {
|
||||
if (Tcl_InitStubs(interp, "8.5", 0) == NULL) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
code = Tcl_PkgProvide(interp, "Pkgc", "1.7.2");
|
||||
code = Tcl_PkgProvide(interp, "pkgc", "1.7.2");
|
||||
if (code != TCL_OK) {
|
||||
return code;
|
||||
}
|
||||
|
||||
+11
-14
@@ -14,14 +14,6 @@
|
||||
#undef STATIC_BUILD
|
||||
#include "tcl.h"
|
||||
|
||||
/*
|
||||
* TCL_STORAGE_CLASS is set unconditionally to DLLEXPORT because the
|
||||
* Pkgd_Init declaration is in the source file itself, which is only
|
||||
* accessed when we are building a library.
|
||||
*/
|
||||
#undef TCL_STORAGE_CLASS
|
||||
#define TCL_STORAGE_CLASS DLLEXPORT
|
||||
|
||||
/*
|
||||
* Prototypes for procedures defined later in this file:
|
||||
*/
|
||||
@@ -56,6 +48,7 @@ Pkgd_SubObjCmd(
|
||||
Tcl_Obj *const objv[]) /* Argument objects. */
|
||||
{
|
||||
int first, second;
|
||||
(void)dummy;
|
||||
|
||||
if (objc != 3) {
|
||||
Tcl_WrongNumArgs(interp, 1, objv, "num num");
|
||||
@@ -93,6 +86,10 @@ Pkgd_UnsafeObjCmd(
|
||||
int objc, /* Number of arguments. */
|
||||
Tcl_Obj *const objv[]) /* Argument objects. */
|
||||
{
|
||||
(void)dummy;
|
||||
(void)objc;
|
||||
(void)objv;
|
||||
|
||||
Tcl_SetObjResult(interp, Tcl_NewStringObj("unsafe command invoked", -1));
|
||||
return TCL_OK;
|
||||
}
|
||||
@@ -114,17 +111,17 @@ Pkgd_UnsafeObjCmd(
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
EXTERN int
|
||||
DLLEXPORT int
|
||||
Pkgd_Init(
|
||||
Tcl_Interp *interp) /* Interpreter in which the package is to be
|
||||
* made available. */
|
||||
{
|
||||
int code;
|
||||
|
||||
if (Tcl_InitStubs(interp, TCL_VERSION, 0) == NULL) {
|
||||
if (Tcl_InitStubs(interp, "8.5", 0) == NULL) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
code = Tcl_PkgProvide(interp, "Pkgd", "7.3");
|
||||
code = Tcl_PkgProvide(interp, "pkgd", "7.3");
|
||||
if (code != TCL_OK) {
|
||||
return code;
|
||||
}
|
||||
@@ -151,17 +148,17 @@ Pkgd_Init(
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
EXTERN int
|
||||
DLLEXPORT int
|
||||
Pkgd_SafeInit(
|
||||
Tcl_Interp *interp) /* Interpreter in which the package is to be
|
||||
* made available. */
|
||||
{
|
||||
int code;
|
||||
|
||||
if (Tcl_InitStubs(interp, TCL_VERSION, 0) == NULL) {
|
||||
if (Tcl_InitStubs(interp, "8.5", 0) == NULL) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
code = Tcl_PkgProvide(interp, "Pkgd", "7.3");
|
||||
code = Tcl_PkgProvide(interp, "pkgd", "7.3");
|
||||
if (code != TCL_OK) {
|
||||
return code;
|
||||
}
|
||||
|
||||
+2
-11
@@ -13,15 +13,6 @@
|
||||
|
||||
#undef STATIC_BUILD
|
||||
#include "tcl.h"
|
||||
|
||||
/*
|
||||
* TCL_STORAGE_CLASS is set unconditionally to DLLEXPORT because the
|
||||
* Pkge_Init declaration is in the source file itself, which is only
|
||||
* accessed when we are building a library.
|
||||
*/
|
||||
#undef TCL_STORAGE_CLASS
|
||||
#define TCL_STORAGE_CLASS DLLEXPORT
|
||||
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
@@ -40,14 +31,14 @@
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
EXTERN int
|
||||
DLLEXPORT int
|
||||
Pkge_Init(
|
||||
Tcl_Interp *interp) /* Interpreter in which the package is to be
|
||||
* made available. */
|
||||
{
|
||||
static const char script[] = "if 44 {open non_existent}";
|
||||
|
||||
if (Tcl_InitStubs(interp, TCL_VERSION, 0) == NULL) {
|
||||
if (Tcl_InitStubs(interp, "8.5", 0) == NULL) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
return Tcl_EvalEx(interp, script, -1, 0);
|
||||
|
||||
+12
-3
@@ -38,6 +38,8 @@ Pkgooa_StubsOKObjCmd(
|
||||
int objc, /* Number of arguments. */
|
||||
Tcl_Obj *const objv[]) /* Argument objects. */
|
||||
{
|
||||
(void)dummy;
|
||||
|
||||
if (objc != 1) {
|
||||
Tcl_WrongNumArgs(interp, 1, objv, "");
|
||||
return TCL_ERROR;
|
||||
@@ -76,12 +78,19 @@ static TclOOStubs stubsCopy = {
|
||||
* a function with a different memory address than
|
||||
* the real Tcl_CopyObjectInstance function in Tcl. */
|
||||
(Tcl_Object (*) (Tcl_Interp *, Tcl_Object, const char *,
|
||||
const char *t)) Pkgooa_StubsOKObjCmd
|
||||
const char *t))(void *)Pkgooa_StubsOKObjCmd,
|
||||
/* More entries could be here, but those are not used
|
||||
* for this test-case. So, being NULL is OK. */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL
|
||||
#ifdef Tcl_MethodIsPrivate
|
||||
,NULL
|
||||
#endif
|
||||
};
|
||||
|
||||
extern DLLEXPORT int
|
||||
DLLEXPORT int
|
||||
Pkgooa_Init(
|
||||
Tcl_Interp *interp) /* Interpreter in which the package is to be
|
||||
* made available. */
|
||||
@@ -132,7 +141,7 @@ Pkgooa_Init(
|
||||
|
||||
tclOOStubsPtr = &stubsCopy;
|
||||
|
||||
code = Tcl_PkgProvide(interp, "Pkgooa", "1.0");
|
||||
code = Tcl_PkgProvide(interp, "pkgooa", "1.0");
|
||||
if (code != TCL_OK) {
|
||||
return code;
|
||||
}
|
||||
|
||||
+45
-37
@@ -14,14 +14,6 @@
|
||||
#undef STATIC_BUILD
|
||||
#include "tcl.h"
|
||||
|
||||
/*
|
||||
* TCL_STORAGE_CLASS is set unconditionally to DLLEXPORT because the
|
||||
* Pkgua_Init declaration is in the source file itself, which is only
|
||||
* accessed when we are building a library.
|
||||
*/
|
||||
#undef TCL_STORAGE_CLASS
|
||||
#define TCL_STORAGE_CLASS DLLEXPORT
|
||||
|
||||
/*
|
||||
* Prototypes for procedures defined later in this file:
|
||||
*/
|
||||
@@ -30,6 +22,7 @@ static int PkguaEqObjCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);
|
||||
static int PkguaQuoteObjCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);
|
||||
static void CommandDeleted(ClientData clientData);
|
||||
|
||||
/*
|
||||
* In the following hash table we are going to store a struct that holds all
|
||||
@@ -39,23 +32,32 @@ static int PkguaQuoteObjCmd(ClientData clientData,
|
||||
* need to keep the various command tokens we have registered, as they are the
|
||||
* only safe way to unregister our registered commands, even if they have been
|
||||
* renamed.
|
||||
*
|
||||
* Note that this code is utterly single-threaded.
|
||||
*/
|
||||
|
||||
static Tcl_HashTable interpTokenMap;
|
||||
static int interpTokenMapInitialised = 0;
|
||||
typedef struct ThreadSpecificData {
|
||||
int interpTokenMapInitialised;
|
||||
Tcl_HashTable interpTokenMap;
|
||||
} ThreadSpecificData;
|
||||
static Tcl_ThreadDataKey dataKey;
|
||||
#define MAX_REGISTERED_COMMANDS 2
|
||||
|
||||
static void
|
||||
CommandDeleted(ClientData clientData)
|
||||
{
|
||||
Tcl_Command *cmdToken = (Tcl_Command *)clientData;
|
||||
*cmdToken = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
PkguaInitTokensHashTable(void)
|
||||
{
|
||||
if (interpTokenMapInitialised) {
|
||||
ThreadSpecificData *tsdPtr = (ThreadSpecificData *)Tcl_GetThreadData((&dataKey), sizeof(ThreadSpecificData));
|
||||
|
||||
if (tsdPtr->interpTokenMapInitialised) {
|
||||
return;
|
||||
}
|
||||
Tcl_InitHashTable(&interpTokenMap, TCL_ONE_WORD_KEYS);
|
||||
interpTokenMapInitialised = 1;
|
||||
Tcl_InitHashTable(&tsdPtr->interpTokenMap, TCL_ONE_WORD_KEYS);
|
||||
tsdPtr->interpTokenMapInitialised = 1;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -63,12 +65,13 @@ PkguaFreeTokensHashTable(void)
|
||||
{
|
||||
Tcl_HashSearch search;
|
||||
Tcl_HashEntry *entryPtr;
|
||||
ThreadSpecificData *tsdPtr = (ThreadSpecificData *)Tcl_GetThreadData((&dataKey), sizeof(ThreadSpecificData));
|
||||
|
||||
for (entryPtr = Tcl_FirstHashEntry(&interpTokenMap, &search);
|
||||
for (entryPtr = Tcl_FirstHashEntry(&tsdPtr->interpTokenMap, &search);
|
||||
entryPtr != NULL; entryPtr = Tcl_NextHashEntry(&search)) {
|
||||
Tcl_Free((char *) Tcl_GetHashValue(entryPtr));
|
||||
}
|
||||
interpTokenMapInitialised = 0;
|
||||
tsdPtr->interpTokenMapInitialised = 0;
|
||||
}
|
||||
|
||||
static Tcl_Command *
|
||||
@@ -77,13 +80,14 @@ PkguaInterpToTokens(
|
||||
{
|
||||
int newEntry;
|
||||
Tcl_Command *cmdTokens;
|
||||
ThreadSpecificData *tsdPtr = (ThreadSpecificData *)Tcl_GetThreadData((&dataKey), sizeof(ThreadSpecificData));
|
||||
Tcl_HashEntry *entryPtr =
|
||||
Tcl_CreateHashEntry(&interpTokenMap, (char *) interp, &newEntry);
|
||||
Tcl_CreateHashEntry(&tsdPtr->interpTokenMap, (char *) interp, &newEntry);
|
||||
|
||||
if (newEntry) {
|
||||
cmdTokens = (Tcl_Command *)
|
||||
Tcl_Alloc(sizeof(Tcl_Command) * (MAX_REGISTERED_COMMANDS+1));
|
||||
for (newEntry=0 ; newEntry<MAX_REGISTERED_COMMANDS+1 ; ++newEntry) {
|
||||
Tcl_Alloc(sizeof(Tcl_Command) * (MAX_REGISTERED_COMMANDS));
|
||||
for (newEntry=0 ; newEntry<MAX_REGISTERED_COMMANDS ; ++newEntry) {
|
||||
cmdTokens[newEntry] = NULL;
|
||||
}
|
||||
Tcl_SetHashValue(entryPtr, cmdTokens);
|
||||
@@ -97,8 +101,9 @@ static void
|
||||
PkguaDeleteTokens(
|
||||
Tcl_Interp *interp)
|
||||
{
|
||||
ThreadSpecificData *tsdPtr = (ThreadSpecificData *)Tcl_GetThreadData((&dataKey), sizeof(ThreadSpecificData));
|
||||
Tcl_HashEntry *entryPtr =
|
||||
Tcl_FindHashEntry(&interpTokenMap, (char *) interp);
|
||||
Tcl_FindHashEntry(&tsdPtr->interpTokenMap, (char *) interp);
|
||||
|
||||
if (entryPtr) {
|
||||
Tcl_Free((char *) Tcl_GetHashValue(entryPtr));
|
||||
@@ -134,6 +139,7 @@ PkguaEqObjCmd(
|
||||
int result;
|
||||
const char *str1, *str2;
|
||||
int len1, len2;
|
||||
(void)dummy;
|
||||
|
||||
if (objc != 3) {
|
||||
Tcl_WrongNumArgs(interp, 1, objv, "string1 string2");
|
||||
@@ -175,6 +181,8 @@ PkguaQuoteObjCmd(
|
||||
int objc, /* Number of arguments. */
|
||||
Tcl_Obj *const objv[]) /* Argument strings. */
|
||||
{
|
||||
(void)dummy;
|
||||
|
||||
if (objc != 2) {
|
||||
Tcl_WrongNumArgs(interp, 1, objv, "value");
|
||||
return TCL_ERROR;
|
||||
@@ -200,39 +208,39 @@ PkguaQuoteObjCmd(
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
EXTERN int
|
||||
DLLEXPORT int
|
||||
Pkgua_Init(
|
||||
Tcl_Interp *interp) /* Interpreter in which the package is to be
|
||||
* made available. */
|
||||
{
|
||||
int code, cmdIndex = 0;
|
||||
int code;
|
||||
Tcl_Command *cmdTokens;
|
||||
|
||||
if (Tcl_InitStubs(interp, TCL_VERSION, 0) == NULL) {
|
||||
if (Tcl_InitStubs(interp, "8.5", 0) == NULL) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialise our Hash table, where we store the registered command tokens
|
||||
* Initialize our Hash table, where we store the registered command tokens
|
||||
* for each interpreter.
|
||||
*/
|
||||
|
||||
PkguaInitTokensHashTable();
|
||||
|
||||
code = Tcl_PkgProvide(interp, "Pkgua", "1.0");
|
||||
code = Tcl_PkgProvide(interp, "pkgua", "1.0");
|
||||
if (code != TCL_OK) {
|
||||
return code;
|
||||
}
|
||||
|
||||
Tcl_SetVar(interp, "::pkgua_loaded", ".", TCL_APPEND_VALUE);
|
||||
Tcl_SetVar2(interp, "::pkgua_loaded", NULL, ".", TCL_APPEND_VALUE);
|
||||
|
||||
cmdTokens = PkguaInterpToTokens(interp);
|
||||
cmdTokens[cmdIndex++] =
|
||||
Tcl_CreateObjCommand(interp, "pkgua_eq", PkguaEqObjCmd, NULL,
|
||||
NULL);
|
||||
cmdTokens[cmdIndex++] =
|
||||
cmdTokens[0] =
|
||||
Tcl_CreateObjCommand(interp, "pkgua_eq", PkguaEqObjCmd, &cmdTokens[0],
|
||||
CommandDeleted);
|
||||
cmdTokens[1] =
|
||||
Tcl_CreateObjCommand(interp, "pkgua_quote", PkguaQuoteObjCmd,
|
||||
NULL, NULL);
|
||||
&cmdTokens[1], CommandDeleted);
|
||||
return TCL_OK;
|
||||
}
|
||||
|
||||
@@ -253,7 +261,7 @@ Pkgua_Init(
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
EXTERN int
|
||||
DLLEXPORT int
|
||||
Pkgua_SafeInit(
|
||||
Tcl_Interp *interp) /* Interpreter in which the package is to be
|
||||
* made available. */
|
||||
@@ -278,7 +286,7 @@ Pkgua_SafeInit(
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
EXTERN int
|
||||
DLLEXPORT int
|
||||
Pkgua_Unload(
|
||||
Tcl_Interp *interp, /* Interpreter from which the package is to be
|
||||
* unloaded. */
|
||||
@@ -299,7 +307,7 @@ Pkgua_Unload(
|
||||
|
||||
PkguaDeleteTokens(interp);
|
||||
|
||||
Tcl_SetVar(interp, "::pkgua_detached", ".", TCL_APPEND_VALUE);
|
||||
Tcl_SetVar2(interp, "::pkgua_detached", NULL, ".", TCL_APPEND_VALUE);
|
||||
|
||||
if (flags == TCL_UNLOAD_DETACH_FROM_PROCESS) {
|
||||
/*
|
||||
@@ -309,7 +317,7 @@ Pkgua_Unload(
|
||||
*/
|
||||
|
||||
PkguaFreeTokensHashTable();
|
||||
Tcl_SetVar(interp, "::pkgua_unloaded", ".", TCL_APPEND_VALUE);
|
||||
Tcl_SetVar2(interp, "::pkgua_unloaded", NULL, ".", TCL_APPEND_VALUE);
|
||||
}
|
||||
return TCL_OK;
|
||||
}
|
||||
@@ -331,7 +339,7 @@ Pkgua_Unload(
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
EXTERN int
|
||||
DLLEXPORT int
|
||||
Pkgua_SafeUnload(
|
||||
Tcl_Interp *interp, /* Interpreter from which the package is to be
|
||||
* unloaded. */
|
||||
|
||||
+5
-3
@@ -519,6 +519,7 @@ AC_DEFUN([SC_ENABLE_SHARED], [
|
||||
SHARED_BUILD=0
|
||||
AC_DEFINE(STATIC_BUILD, 1, [Is this a static build?])
|
||||
fi
|
||||
AC_SUBST(SHARED_BUILD)
|
||||
])
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
@@ -1492,7 +1493,6 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
;;
|
||||
DragonFly-*|FreeBSD-*)
|
||||
# This configuration from FreeBSD Ports.
|
||||
SHLIB_CFLAGS="-fPIC"
|
||||
SHLIB_LD="${CC} -shared"
|
||||
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,-soname,\$[@]"
|
||||
SHLIB_SUFFIX=".so"
|
||||
@@ -1984,9 +1984,11 @@ dnl # preprocessing tests use only CPPFLAGS.
|
||||
AIX-*) ;;
|
||||
BSD/OS*) ;;
|
||||
CYGWIN_*|MINGW32_*|MSYS_*) ;;
|
||||
IRIX*) ;;
|
||||
NetBSD-*|DragonFly-*|FreeBSD-*|OpenBSD-*) ;;
|
||||
HP-UX*) ;;
|
||||
Darwin-*) ;;
|
||||
IRIX*) ;;
|
||||
NetBSD-*|OpenBSD-*) ;;
|
||||
OSF1-*) ;;
|
||||
SCO_SV-3.2*) ;;
|
||||
*) SHLIB_CFLAGS="-fPIC" ;;
|
||||
esac])
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ includedir=@includedir@
|
||||
|
||||
Name: Tool Command Language
|
||||
Description: Tcl is a powerful, easy-to-learn dynamic programming language, suitable for a wide range of uses.
|
||||
URL: http://www.tcl.tk/
|
||||
URL: https://www.tcl-tk.org/
|
||||
Version: @TCL_VERSION@@TCL_PATCH_LEVEL@
|
||||
Requires.private: zlib >= 1.2.3
|
||||
Libs: -L${libdir} @TCL_LIB_FLAG@ @TCL_STUB_LIB_FLAG@
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ Release: 2
|
||||
License: BSD
|
||||
Group: Development/Languages
|
||||
Source: http://prdownloads.sourceforge.net/tcl/tcl%{version}-src.tar.gz
|
||||
URL: http://www.tcl.tk/
|
||||
URL: https://www.tcl-lang.org/
|
||||
Buildroot: /var/tmp/%{name}%{version}
|
||||
|
||||
%description
|
||||
|
||||
+1
-2
@@ -16,7 +16,6 @@
|
||||
#include "tcl.h"
|
||||
|
||||
static Tcl_ObjCmdProc TesteventloopCmd;
|
||||
extern DLLEXPORT Tcl_PackageInitProc Tclxttest_Init;
|
||||
|
||||
/*
|
||||
* Functions defined in tclXtNotify.c for use by users of the Xt Notifier:
|
||||
@@ -44,7 +43,7 @@ extern XtAppContext TclSetAppContext(XtAppContext ctx);
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int
|
||||
DLLEXPORT int
|
||||
Tclxttest_Init(
|
||||
Tcl_Interp *interp) /* Interpreter for application. */
|
||||
{
|
||||
|
||||
+2
-7
@@ -9,7 +9,7 @@ that are specific to Microsoft Windows.
|
||||
|
||||
The information in this file is maintained on the web at:
|
||||
|
||||
http://www.tcl.tk/doc/howto/compile.html#win
|
||||
https://www.tcl-lang.org/doc/howto/compile.html#win
|
||||
|
||||
2. Compiling Tcl
|
||||
----------------
|
||||
@@ -29,7 +29,7 @@ In order to compile Tcl for Windows, you need the following:
|
||||
|
||||
or
|
||||
|
||||
Cygwin + MinGW-w64 [http://cygwin.com/install.html]
|
||||
Cygwin + MinGW-w64 [https://cygwin.com/install.html]
|
||||
(win32 or win64)
|
||||
|
||||
or
|
||||
@@ -42,11 +42,6 @@ In order to compile Tcl for Windows, you need the following:
|
||||
Msys + MinGW-w64 [http://mingw-w64.sourceforge.net/]
|
||||
(win32 or win64)
|
||||
|
||||
or
|
||||
|
||||
Msys + MinGW [http://www.mingw.org/download.shtml]
|
||||
(win32 only)
|
||||
|
||||
|
||||
In practice, this release is built with Visual C++ 6.0 and the TEA
|
||||
Makefile.
|
||||
|
||||
+22
-22
@@ -14,8 +14,10 @@
|
||||
|
||||
#define _CRT_SECURE_NO_DEPRECATE
|
||||
#include <windows.h>
|
||||
#ifdef _MSC_VER
|
||||
#pragma comment (lib, "user32.lib")
|
||||
#pragma comment (lib, "kernel32.lib")
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
|
||||
@@ -37,7 +39,7 @@
|
||||
/* protos */
|
||||
|
||||
static int CheckForCompilerFeature(const char *option);
|
||||
static int CheckForLinkerFeature(const char **options, int count);
|
||||
static int CheckForLinkerFeature(char **options, int count);
|
||||
static int IsIn(const char *string, const char *substring);
|
||||
static int SubstituteFile(const char *substs, const char *filename);
|
||||
static int QualifyPath(const char *path);
|
||||
@@ -54,8 +56,8 @@ typedef struct {
|
||||
char buffer[STATICBUFFERSIZE];
|
||||
} pipeinfo;
|
||||
|
||||
pipeinfo Out = {INVALID_HANDLE_VALUE, '\0'};
|
||||
pipeinfo Err = {INVALID_HANDLE_VALUE, '\0'};
|
||||
pipeinfo Out = {INVALID_HANDLE_VALUE, ""};
|
||||
pipeinfo Err = {INVALID_HANDLE_VALUE, ""};
|
||||
|
||||
/*
|
||||
* exitcodes: 0 == no, 1 == yes, 2 == error
|
||||
@@ -273,7 +275,7 @@ CheckForCompilerFeature(
|
||||
"Tried to launch: \"%s\", but got error [%u]: ", cmdline, err);
|
||||
|
||||
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS|
|
||||
FORMAT_MESSAGE_MAX_WIDTH_MASK, 0L, err, 0, (LPVOID)&msg[chars],
|
||||
FORMAT_MESSAGE_MAX_WIDTH_MASK, 0L, err, 0, (LPSTR)&msg[chars],
|
||||
(300-chars), 0);
|
||||
WriteFile(GetStdHandle(STD_ERROR_HANDLE), msg, lstrlen(msg), &err,NULL);
|
||||
return 2;
|
||||
@@ -326,7 +328,7 @@ CheckForCompilerFeature(
|
||||
|
||||
static int
|
||||
CheckForLinkerFeature(
|
||||
const char **options,
|
||||
char **options,
|
||||
int count)
|
||||
{
|
||||
STARTUPINFO si;
|
||||
@@ -407,7 +409,7 @@ CheckForLinkerFeature(
|
||||
"Tried to launch: \"%s\", but got error [%u]: ", cmdline, err);
|
||||
|
||||
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS|
|
||||
FORMAT_MESSAGE_MAX_WIDTH_MASK, 0L, err, 0, (LPVOID)&msg[chars],
|
||||
FORMAT_MESSAGE_MAX_WIDTH_MASK, 0L, err, 0, (LPSTR)&msg[chars],
|
||||
(300-chars), 0);
|
||||
WriteFile(GetStdHandle(STD_ERROR_HANDLE), msg, lstrlen(msg), &err,NULL);
|
||||
return 2;
|
||||
@@ -503,7 +505,6 @@ GetVersionFromFile(
|
||||
const char *match,
|
||||
int numdots)
|
||||
{
|
||||
size_t cbBuffer = 100;
|
||||
static char szBuffer[100];
|
||||
char *szResult = NULL;
|
||||
FILE *fp = fopen(filename, "rt");
|
||||
@@ -513,7 +514,7 @@ GetVersionFromFile(
|
||||
* Read data until we see our match string.
|
||||
*/
|
||||
|
||||
while (fgets(szBuffer, cbBuffer, fp) != NULL) {
|
||||
while (fgets(szBuffer, sizeof(szBuffer), fp) != NULL) {
|
||||
LPSTR p, q;
|
||||
|
||||
p = strstr(szBuffer, match);
|
||||
@@ -523,7 +524,7 @@ GetVersionFromFile(
|
||||
*/
|
||||
|
||||
p += strlen(match);
|
||||
while (*p && !isdigit(*p)) {
|
||||
while (*p && !isdigit((unsigned char)*p)) {
|
||||
++p;
|
||||
}
|
||||
|
||||
@@ -532,14 +533,13 @@ GetVersionFromFile(
|
||||
*/
|
||||
|
||||
q = p;
|
||||
while (*q && (strchr("0123456789.ab", *q)) && ((!strchr(".ab", *q)
|
||||
&& (!strchr("ab", q[-1])) || --numdots))) {
|
||||
while (*q && (strchr("0123456789.ab", *q)) && (((!strchr(".ab", *q)
|
||||
&& !strchr("ab", q[-1])) || --numdots))) {
|
||||
++q;
|
||||
}
|
||||
|
||||
memcpy(szBuffer, p, q - p);
|
||||
szBuffer[q-p] = 0;
|
||||
szResult = szBuffer;
|
||||
*q = 0;
|
||||
szResult = p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -562,7 +562,7 @@ typedef struct list_item_t {
|
||||
static list_item_t *
|
||||
list_insert(list_item_t **listPtrPtr, const char *key, const char *value)
|
||||
{
|
||||
list_item_t *itemPtr = malloc(sizeof(list_item_t));
|
||||
list_item_t *itemPtr = (list_item_t *)malloc(sizeof(list_item_t));
|
||||
if (itemPtr) {
|
||||
itemPtr->key = strdup(key);
|
||||
itemPtr->value = strdup(value);
|
||||
@@ -611,9 +611,7 @@ SubstituteFile(
|
||||
const char *substitutions,
|
||||
const char *filename)
|
||||
{
|
||||
size_t cbBuffer = 1024;
|
||||
static char szBuffer[1024], szCopy[1024];
|
||||
char *szResult = NULL;
|
||||
list_item_t *substPtr = NULL;
|
||||
FILE *fp, *sp;
|
||||
|
||||
@@ -626,7 +624,7 @@ SubstituteFile(
|
||||
|
||||
sp = fopen(substitutions, "rt");
|
||||
if (sp != NULL) {
|
||||
while (fgets(szBuffer, cbBuffer, sp) != NULL) {
|
||||
while (fgets(szBuffer, sizeof(szBuffer), sp) != NULL) {
|
||||
unsigned char *ks, *ke, *vs, *ve;
|
||||
ks = (unsigned char*)szBuffer;
|
||||
while (ks && *ks && isspace(*ks)) ++ks;
|
||||
@@ -657,7 +655,7 @@ SubstituteFile(
|
||||
* Run the substitutions over each line of the input
|
||||
*/
|
||||
|
||||
while (fgets(szBuffer, cbBuffer, fp) != NULL) {
|
||||
while (fgets(szBuffer, sizeof(szBuffer), fp) != NULL) {
|
||||
list_item_t *p = NULL;
|
||||
for (p = substPtr; p != NULL; p = p->nextPtr) {
|
||||
char *m = strstr(szBuffer, p->key);
|
||||
@@ -674,7 +672,7 @@ SubstituteFile(
|
||||
memcpy(szBuffer, szCopy, sizeof(szCopy));
|
||||
}
|
||||
}
|
||||
printf(szBuffer);
|
||||
printf("%s", szBuffer);
|
||||
}
|
||||
|
||||
list_free(&substPtr);
|
||||
@@ -725,7 +723,8 @@ static int LocateDependencyHelper(const char *dir, const char *keypath)
|
||||
{
|
||||
HANDLE hSearch;
|
||||
char path[MAX_PATH+1];
|
||||
int dirlen, keylen, ret;
|
||||
size_t dirlen;
|
||||
int keylen, ret;
|
||||
WIN32_FIND_DATA finfo;
|
||||
|
||||
if (dir == NULL || keypath == NULL)
|
||||
@@ -792,7 +791,8 @@ static int LocateDependencyHelper(const char *dir, const char *keypath)
|
||||
*/
|
||||
static int LocateDependency(const char *keypath)
|
||||
{
|
||||
int i, ret;
|
||||
size_t i;
|
||||
int ret;
|
||||
static const char *paths[] = {"..", "..\\..", "..\\..\\.."};
|
||||
|
||||
for (i = 0; i < (sizeof(paths)/sizeof(paths[0])); ++i) {
|
||||
|
||||
+23
-5
@@ -1123,7 +1123,7 @@ STUBPREFIX = $(PROJECT)stub
|
||||
|
||||
# TIP 430. Unused for 8.6 but no harm defining it to allow a common rules.vc
|
||||
TCLSCRIPTZIPNAME = libtcl$(TCL_MAJOR_VERSION).$(TCL_MINOR_VERSION)$(TCL_PATCH_LETTER)$(TCL_RELEASE_SERIAL).zip
|
||||
TKSCRIPTZIPNAME = libtk$(TK_MAJOR_VERSION)$(TK_MINOR_VERSION)$(TK_PATCH_LETTER)$(TK_RELEASE_SERIAL).zip
|
||||
TKSCRIPTZIPNAME = libtk$(TK_MAJOR_VERSION).$(TK_MINOR_VERSION)$(TK_PATCH_LETTER)$(TK_RELEASE_SERIAL).zip
|
||||
|
||||
!if $(DOING_TCL)
|
||||
TCLSHNAME = $(PROJECT)sh$(VERSION)$(SUFX).exe
|
||||
@@ -1260,7 +1260,13 @@ tklibs = "$(TKSTUBLIB)" "$(TKIMPLIB)"
|
||||
|
||||
# Various output paths
|
||||
PRJIMPLIB = $(OUT_DIR)\$(PROJECT)$(VERSION)$(SUFX).lib
|
||||
PRJLIBNAME = $(PROJECT)$(VERSION)$(SUFX).$(EXT)
|
||||
PRJLIBNAME8 = $(PROJECT)$(VERSION)$(SUFX).$(EXT)
|
||||
PRJLIBNAME9 = tcl9$(PROJECT)$(VERSION)$(SUFX).$(EXT)
|
||||
!if $(TCL_MAJOR_VERSION) == 8
|
||||
PRJLIBNAME = $(PRJLIBNAME8)
|
||||
!else
|
||||
PRJLIBNAME = $(PRJLIBNAME9)
|
||||
!endif
|
||||
PRJLIB = $(OUT_DIR)\$(PRJLIBNAME)
|
||||
|
||||
PRJSTUBLIBNAME = $(STUBPREFIX)$(VERSION).lib
|
||||
@@ -1338,7 +1344,7 @@ INCLUDE_INSTALL_DIR = $(_INSTALLDIR)\..\include
|
||||
# baselibs - minimum Windows libraries required. Parent makefile can
|
||||
# define PRJ_LIBS before including rules.rc if additional libs are needed
|
||||
|
||||
OPTDEFINES = /DSTDC_HEADERS
|
||||
OPTDEFINES = /DSTDC_HEADERS /DUSE_NMAKE=1
|
||||
!if $(VCVERSION) > 1600
|
||||
OPTDEFINES = $(OPTDEFINES) /DHAVE_STDINT_H=1
|
||||
!else
|
||||
@@ -1590,12 +1596,22 @@ default-target: $(DEFAULT_BUILD_TARGET)
|
||||
|
||||
!if $(MULTIPLATFORM_INSTALL)
|
||||
default-pkgindex:
|
||||
@echo if {[package vsatisfies [package provide Tcl] 9.0-]} { > $(OUT_DIR)\pkgIndex.tcl
|
||||
@echo package ifneeded $(PRJ_PACKAGE_TCLNAME) $(DOTVERSION) \
|
||||
[list load [file join $$dir $(PLATFORM_IDENTIFY) $(PRJLIBNAME)]] > $(OUT_DIR)\pkgIndex.tcl
|
||||
[list load [file join $$dir $(PLATFORM_IDENTIFY) $(PRJLIBNAME9)]] >> $(OUT_DIR)\pkgIndex.tcl
|
||||
@echo } else { >> $(OUT_DIR)\pkgIndex.tcl
|
||||
@echo package ifneeded $(PRJ_PACKAGE_TCLNAME) $(DOTVERSION) \
|
||||
[list load [file join $$dir $(PLATFORM_IDENTIFY) $(PRJLIBNAME8)]] >> $(OUT_DIR)\pkgIndex.tcl
|
||||
@echo } >> $(OUT_DIR)\pkgIndex.tcl
|
||||
!else
|
||||
default-pkgindex:
|
||||
@echo if {[package vsatisfies [package provide Tcl] 9.0-]} { > $(OUT_DIR)\pkgIndex.tcl
|
||||
@echo package ifneeded $(PRJ_PACKAGE_TCLNAME) $(DOTVERSION) \
|
||||
[list load [file join $$dir $(PRJLIBNAME)]] > $(OUT_DIR)\pkgIndex.tcl
|
||||
[list load [file join $$dir $(PRJLIBNAME9)]] >> $(OUT_DIR)\pkgIndex.tcl
|
||||
@echo } else { >> $(OUT_DIR)\pkgIndex.tcl
|
||||
@echo package ifneeded $(PRJ_PACKAGE_TCLNAME) $(DOTVERSION) \
|
||||
[list load [file join $$dir $(PRJLIBNAME8)]] >> $(OUT_DIR)\pkgIndex.tcl
|
||||
@echo } >> $(OUT_DIR)\pkgIndex.tcl
|
||||
!endif
|
||||
|
||||
default-pkgindex-tea:
|
||||
@@ -1604,6 +1620,8 @@ default-pkgindex-tea:
|
||||
@PACKAGE_NAME@ $(PRJ_PACKAGE_TCLNAME)
|
||||
@PACKAGE_TCLNAME@ $(PRJ_PACKAGE_TCLNAME)
|
||||
@PKG_LIB_FILE@ $(PRJLIBNAME)
|
||||
@PKG_LIB_FILE8@ $(PRJLIBNAME8)
|
||||
@PKG_LIB_FILE9@ $(PRJLIBNAME9)
|
||||
<<
|
||||
|
||||
default-install: default-install-binaries default-install-libraries
|
||||
|
||||
+1
-1
@@ -3128,7 +3128,7 @@ TclNativeCreateNativeRep(
|
||||
* If there is no "\\?\" prefix but there is a drive or UNC path prefix
|
||||
* and the path is larger than MAX_PATH chars, no Win32 API function can
|
||||
* handle that unless it is prefixed with the extended path prefix. See:
|
||||
* <http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx#maxpath>
|
||||
* <https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#maxpath>
|
||||
*/
|
||||
|
||||
if (((str[0] >= 'A' && str[0] <= 'Z') || (str[0] >= 'a' && str[0] <= 'z'))
|
||||
|
||||
Reference in New Issue
Block a user