Date: Tue, 17 Aug 2004 23:27:52 -0300 (BRT) From: Marcus Grando <marcus@corp.grupos.com.br> To: FreeBSD-gnats-submit@FreeBSD.org Cc: perky@FreeBSD.org Subject: ports/70601: Problem on compile cjkcodecs Message-ID: <20040818022752.24EE420A24@corp.grupos.com.br> Resent-Message-ID: <200408180230.i7I2UOlu025598@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 70601 >Category: ports >Synopsis: Problem on compile cjkcodecs >Confidential: no >Severity: non-critical >Priority: high >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Wed Aug 18 02:30:23 GMT 2004 >Closed-Date: >Last-Modified: >Originator: Marcus Grando >Release: FreeBSD 4.10-STABLE i386 >Organization: Grupos Internet S/A >Environment: System: FreeBSD corp.grupos.com.br 4.10-STABLE FreeBSD 4.10-STABLE #22: Sat Aug 7 20:09:49 BRT 2004 root@corp.grupos.com.br:/usr/obj/usr/src/sys/CORP i386 >Description: Problems on compile cjkcodecs This patch is from main CVS cjkcodecs >How-To-Repeat: >Fix: diff -ruN python-devel.old/Makefile python-devel/Makefile --- python-devel.old/Makefile Sat Aug 7 03:36:57 2004 +++ python-devel/Makefile Mon Aug 16 11:23:19 2004 @@ -6,6 +6,7 @@ PORTNAME= python PORTVERSION= 2.4.a2 +PORTREVISION= 1 CATEGORIES= lang python ipv6 MASTER_SITES= ${PYTHON_MASTER_SITES} MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR} diff -ruN python-devel.old/files/patch-_codecs_iso2022.c python-devel/files/patch-_codecs_iso2022.c --- python-devel.old/files/patch-_codecs_iso2022.c Wed Dec 31 21:00:00 1969 +++ python-devel/files/patch-_codecs_iso2022.c Mon Aug 16 11:05:21 2004 @@ -0,0 +1,268 @@ +--- Modules/cjkcodecs/_codecs_iso2022.c.old Sun Jul 18 01:34:33 2004 ++++ Modules/cjkcodecs/_codecs_iso2022.c Mon Aug 16 11:04:08 2004 +@@ -1,8 +1,32 @@ + /* + * _codecs_iso2022.c: Codecs collection for ISO-2022 encodings. + * +- * Written by Hye-Shik Chang <perky@FreeBSD.org> +- * $CJKCodecs: _codecs_iso2022.c,v 1.18 2004/07/07 18:30:17 perky Exp $ ++ * Copyright (C) 2003-2004 Hye-Shik Chang <perky@FreeBSD.org>. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, ++ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR ++ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING ++ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ++ * POSSIBILITY OF SUCH DAMAGE. ++ * ++ * $Id: _codecs_iso2022.c,v 1.21 2004/08/11 22:07:27 perky Exp $ + */ + + #define USING_IMPORTED_MAPS +@@ -117,7 +141,7 @@ + + struct iso2022_config { + int flags; +- const struct iso2022_designation designations[]; /* non-ascii desigs */ ++ const struct iso2022_designation *designations; /* non-ascii desigs */ + }; + + /*-*- iso-2022 codec implementation -*-*/ +@@ -420,7 +444,7 @@ + DECODER(iso2022) + { + const struct iso2022_designation *dsgcache = NULL; +- ++ + while (inleft > 0) { + unsigned char c = IN1; + int err; +@@ -560,6 +584,12 @@ + DECMAP(gb2312) + + /* tw */ ++#ifndef NO_EXTRA_ENCODINGS ++ENCMAP(cns11643_bmp) ++ENCMAP(cns11643_nonbmp) ++DECMAP(cns11643_1) ++DECMAP(cns11643_2) ++#endif + + /*-*- mapping access functions -*-*/ + +@@ -976,6 +1006,98 @@ + return MAP_UNMAPPABLE; + } + ++#ifndef NO_EXTRA_ENCODINGS ++static int ++cns11643_init(void) ++{ ++ static int initialized = 0; ++ ++ if (!initialized && ( ++ IMPORT_MAP(tw, cns11643_bmp, ++ &cns11643_bmp_encmap, NULL) || ++ IMPORT_MAP(tw, cns11643_nonbmp, ++ &cns11643_nonbmp_encmap, NULL) || ++ IMPORT_MAP(tw, cns11643_1, NULL, &cns11643_1_decmap) || ++ IMPORT_MAP(tw, cns11643_2, NULL, &cns11643_2_decmap))) ++ return -1; ++ initialized = 1; ++ return 0; ++} ++ ++static ucs4_t ++cns11643_1_decoder(const unsigned char *data) ++{ ++ ucs4_t u; ++ TRYMAP_DEC(cns11643_1, u, data[0], data[1]) ++ return u; ++ else TRYMAP_DEC(cns11643_1, u, data[0] | 0x80, data[1]) ++ return u | 0x20000; ++ else ++ return MAP_UNMAPPABLE; ++} ++ ++static ucs4_t ++cns11643_2_decoder(const unsigned char *data) ++{ ++ ucs4_t u; ++ TRYMAP_DEC(cns11643_2, u, data[0], data[1]) ++ return u; ++ else TRYMAP_DEC(cns11643_2, u, data[0] | 0x80, data[1]) ++ return u | 0x20000; ++ else ++ return MAP_UNMAPPABLE; ++} ++ ++static DBCHAR ++cns11643_encoder(const ucs4_t *data, int *length) ++{ ++ unsigned char whi, wlo; ++ int plane; ++ ++ assert(*length == 1); ++ ++ if (*data <= 0xFFFF) { ++ TRYMAP_ENC_MPLANE(cns11643_bmp, plane, whi, wlo, *data); ++ else return MAP_UNMAPPABLE; ++ } ++ else if (0x20000 <= *data && *data < 0x30000) { ++ TRYMAP_ENC_MPLANE(cns11643_nonbmp, plane, whi, wlo, ++ (*data) & 0xffff); ++ else return MAP_UNMAPPABLE; ++ } ++ else ++ return MAP_UNMAPPABLE; ++ ++ switch (plane) { ++ case 1: ++ return (whi << 16) | wlo; ++ case 2: ++ return 0x8000 | (whi << 16) | wlo; ++ default: ++ return MAP_UNMAPPABLE; ++ } ++} ++ ++static DBCHAR ++cns11643_1_encoder(const ucs4_t *data, int *length) ++{ ++ DBCHAR coded = cns11643_encoder(data, length); ++ if (coded == MAP_UNMAPPABLE || (coded & 0x8000)) ++ return MAP_UNMAPPABLE; ++ else ++ return coded; ++} ++ ++static DBCHAR ++cns11643_2_encoder(const ucs4_t *data, int *length) ++{ ++ DBCHAR coded = cns11643_encoder(data, length); ++ if (coded == MAP_UNMAPPABLE || !(coded & 0x8000)) ++ return MAP_UNMAPPABLE; ++ else ++ return coded; ++} ++#endif + + static ucs4_t + dummy_decoder(const unsigned char *data) +@@ -1047,51 +1169,60 @@ + #define REGISTRY_ISO8859_7 { CHARSET_ISO8859_7, 2, 1, \ + NULL, dummy_decoder, dummy_encoder } + #define REGISTRY_SENTINEL { 0, } ++#define CONFIGDEF(var, attrs) \ ++ static const struct iso2022_config iso2022_##var##_config = { \ ++ attrs, iso2022_##var##_designations \ ++ }; + +-static const struct iso2022_config iso2022_kr_config = { +- 0, +- { REGISTRY_KSX1001, REGISTRY_SENTINEL }, ++static const struct iso2022_designation iso2022_kr_designations[] = { ++ REGISTRY_KSX1001, REGISTRY_SENTINEL + }; ++CONFIGDEF(kr, 0) + +-static const struct iso2022_config iso2022_jp_config = { +- NO_SHIFT | USE_JISX0208_EXT, +- { REGISTRY_JISX0208, REGISTRY_JISX0201_R, REGISTRY_JISX0208_O, +- REGISTRY_SENTINEL }, ++static const struct iso2022_designation iso2022_jp_designations[] = { ++ REGISTRY_JISX0208, REGISTRY_JISX0201_R, REGISTRY_JISX0208_O, ++ REGISTRY_SENTINEL + }; ++CONFIGDEF(jp, NO_SHIFT | USE_JISX0208_EXT) + +-static const struct iso2022_config iso2022_jp_1_config = { +- NO_SHIFT | USE_JISX0208_EXT, +- { REGISTRY_JISX0208, REGISTRY_JISX0212, REGISTRY_JISX0201_R, +- REGISTRY_JISX0208_O, REGISTRY_SENTINEL }, ++static const struct iso2022_designation iso2022_jp_1_designations[] = { ++ REGISTRY_JISX0208, REGISTRY_JISX0212, REGISTRY_JISX0201_R, ++ REGISTRY_JISX0208_O, REGISTRY_SENTINEL + }; ++CONFIGDEF(jp_1, NO_SHIFT | USE_JISX0208_EXT) + +-static const struct iso2022_config iso2022_jp_2_config = { +- NO_SHIFT | USE_G2 | USE_JISX0208_EXT, +- { REGISTRY_JISX0208, REGISTRY_JISX0212, REGISTRY_KSX1001, +- REGISTRY_GB2312, REGISTRY_JISX0201_R, REGISTRY_JISX0208_O, +- REGISTRY_ISO8859_1, REGISTRY_ISO8859_7, REGISTRY_SENTINEL }, ++static const struct iso2022_designation iso2022_jp_2_designations[] = { ++ REGISTRY_JISX0208, REGISTRY_JISX0212, REGISTRY_KSX1001, ++ REGISTRY_GB2312, REGISTRY_JISX0201_R, REGISTRY_JISX0208_O, ++ REGISTRY_ISO8859_1, REGISTRY_ISO8859_7, REGISTRY_SENTINEL + }; ++CONFIGDEF(jp_2, NO_SHIFT | USE_G2 | USE_JISX0208_EXT) + +-static const struct iso2022_config iso2022_jp_2004_config = { +- NO_SHIFT | USE_G2 | USE_JISX0208_EXT, +- { REGISTRY_JISX0213_2004_1_PAIRONLY, REGISTRY_JISX0208, +- REGISTRY_JISX0213_2004_1, REGISTRY_JISX0213_2004_2, +- REGISTRY_SENTINEL }, ++static const struct iso2022_designation iso2022_jp_2004_designations[] = { ++ REGISTRY_JISX0213_2004_1_PAIRONLY, REGISTRY_JISX0208, ++ REGISTRY_JISX0213_2004_1, REGISTRY_JISX0213_2004_2, REGISTRY_SENTINEL + }; ++CONFIGDEF(jp_2004, NO_SHIFT | USE_JISX0208_EXT) + +-static const struct iso2022_config iso2022_jp_3_config = { +- NO_SHIFT | USE_JISX0208_EXT, +- { REGISTRY_JISX0213_2000_1_PAIRONLY, REGISTRY_JISX0208, +- REGISTRY_JISX0213_2000_1, REGISTRY_JISX0213_2000_2, +- REGISTRY_SENTINEL }, ++static const struct iso2022_designation iso2022_jp_3_designations[] = { ++ REGISTRY_JISX0213_2000_1_PAIRONLY, REGISTRY_JISX0208, ++ REGISTRY_JISX0213_2000_1, REGISTRY_JISX0213_2000_2, REGISTRY_SENTINEL + }; ++CONFIGDEF(jp_3, NO_SHIFT | USE_JISX0208_EXT) + +-static const struct iso2022_config iso2022_jp_ext_config = { +- NO_SHIFT | USE_JISX0208_EXT, +- { REGISTRY_JISX0208, REGISTRY_JISX0212, REGISTRY_JISX0201_R, +- REGISTRY_JISX0201_K, REGISTRY_JISX0208_O, REGISTRY_SENTINEL }, ++static const struct iso2022_designation iso2022_jp_ext_designations[] = { ++ REGISTRY_JISX0208, REGISTRY_JISX0212, REGISTRY_JISX0201_R, ++ REGISTRY_JISX0201_K, REGISTRY_JISX0208_O, REGISTRY_SENTINEL + }; ++CONFIGDEF(jp_ext, NO_SHIFT | USE_JISX0208_EXT) + ++#ifndef NO_EXTRA_ENCODINGS ++static const struct iso2022_designation iso2022_cn_designations[] = { ++ REGISTRY_GB2312, REGISTRY_CNS11643_1, REGISTRY_CNS11643_2, ++ REGISTRY_SENTINEL ++}; ++CONFIGDEF(cn, NO_SHIFT | USE_G2) ++#endif + + BEGIN_MAPPINGS_LIST + /* no mapping table here */ +@@ -1112,6 +1243,9 @@ + ISO2022_CODEC(jp_2004) + ISO2022_CODEC(jp_3) + ISO2022_CODEC(jp_ext) ++#ifndef NO_EXTRA_ENCODINGS ++ ISO2022_CODEC(cn) ++#endif + END_CODECS_LIST + + I_AM_A_MODULE_FOR(iso2022) >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040818022752.24EE420A24>