Skip site navigation (1)Skip section navigation (2)
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>