From statue@freebsd.sinica.edu.tw  Thu Jul 24 09:19:08 2003
Return-Path: <statue@freebsd.sinica.edu.tw>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 531A337B401
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 24 Jul 2003 09:19:08 -0700 (PDT)
Received: from freebsd.sinica.edu.tw (freebsd.sinica.edu.tw [140.109.13.51])
	by mx1.FreeBSD.org (Postfix) with ESMTP id D12DF43F85
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 24 Jul 2003 09:19:06 -0700 (PDT)
	(envelope-from statue@freebsd.sinica.edu.tw)
Received: by freebsd.sinica.edu.tw (Postfix, from userid 1014)
	id 091AA9EF; Fri, 25 Jul 2003 00:19:08 +0800 (CST)
Message-Id: <20030724161908.091AA9EF@freebsd.sinica.edu.tw>
Date: Fri, 25 Jul 2003 00:19:08 +0800 (CST)
From: Statue <statue@freebsd.sinica.edu.tw>
Reply-To: Statue <statue@freebsd.sinica.edu.tw>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: Update port: print/wprint
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         54819
>Category:       ports
>Synopsis:       Update port: print/wprint
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jul 24 09:20:12 PDT 2003
>Closed-Date:    Thu Jul 24 22:56:12 PDT 2003
>Last-Modified:  Thu Jul 24 22:56:12 PDT 2003
>Originator:     Statue
>Release:        FreeBSD 4.7-PRERELEASE i386
>Organization:
>Environment:
System: FreeBSD freebsd.sinica.edu.tw 4.7-PRERELEASE FreeBSD 4.7-PRERELEASE #2: Mon Sep 9 10:45:46 CST 2002 ycheng@freebsd.sinica.edu.tw:/usr/src/sys/compile/GENERIC i386


	
>Description:
A patch for hinting ftface.
you can use follows to specify mingliu.ttc font face 1.
default:EUC-TW:mingliu.ttc=zh_TW.Big5;14;14;72;1:wprint.ps
	
>How-To-Repeat:
	
>Fix:

diff -ruN wprint.orig/files/patch-hinting-ftface.diff wprint/files/patch-hinting-ftface.diff
--- wprint.orig/files/patch-hinting-ftface.diff	Thu Jan  1 08:00:00 1970
+++ wprint/files/patch-hinting-ftface.diff	Fri Jul 25 00:16:40 2003
@@ -0,0 +1,91 @@
+diff -ur src/wprint-ft2.c.orig src/wprint-ft2.c
+--- src/wprint-ft2.c.orig	2001-10-26 02:41:29.000000000 +0800
++++ src/wprint-ft2.c	2003-07-19 15:18:55.000000000 +0800
+@@ -20,8 +20,11 @@
+ 		Error("Couldn't find suitable Cmap");
+ 
+ 	index = FT_Get_Char_Index(ti->font.ttface,unicode );
++	
++	FT_Set_Char_Size (ti->font.ttface, 0, 16*64, 0, 0);
+ 
+-	if((error=FT_Load_Glyph(ti->font.ttface, index, FT_LOAD_NO_SCALE)))
++	if((error=FT_Load_Glyph(ti->font.ttface, index, FT_LOAD_NO_BITMAP 
++						    | FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH)))
+ 		FTError("Couldn't load glyph", error);
+ 	glyphToPs(out,unicode,ti,b64name);
+ 
+@@ -280,13 +283,13 @@
+ {
+ 	FT_Done_Face(ti->font.ttface);
+ }
+-int	setFont(struct tt_info *ti,char *file)
++int	setFont(struct tt_info *ti,char *file,int faceindex)
+ {
+ int	error;
+ int	i,l,total;
+ FT_SfntName	name;
+ 
+-	if ((error = FT_New_Face(ti->ttengine,file,0,&(ti->font.ttface)) != 0))
++	if ((error = FT_New_Face(ti->ttengine,file,faceindex,&(ti->font.ttface)) != 0))
+ 	{
+ 		FTError("Coudn't set TrueType font", error);
+ 	}
+diff -ur src/wprint.c.orig src/wprint.c
+--- src/wprint.c.orig	2002-04-02 04:59:57.000000000 +0800
++++ src/wprint.c	2003-07-19 15:18:32.000000000 +0800
+@@ -518,6 +518,7 @@
+ 			fnc[i].xr = 72;
+ 			fnc[i].yr = 72;
+ 			fnc[i].pt = 14.0;
++			fnc[i].faceindex = 0;
+ 
+ 			comma = strchr(from,',');
+ 			if (comma != NULL)
+@@ -531,8 +532,8 @@
+ 
+ 				*p = 0;
+ 				if (strchr(p + 1,';') != NULL)
+-					sscanf(p + 1,"%[^;];%d;%d;%lf",enco,
+-					&fnc[i].xr,&fnc[i].yr,&fnc[i].pt);
++					sscanf(p + 1,"%[^;];%d;%d;%lf;%d",enco,
++					&fnc[i].xr,&fnc[i].yr,&fnc[i].pt,&fnc[i].faceindex);
+ 				else
+ 					strcpy(enco,p + 1);
+ 
+@@ -559,6 +560,7 @@
+ 			fnc[i].xr = fnc[i - 1].xr;
+ 			fnc[i].yr = fnc[i - 1].yr;
+ 			fnc[i].pt = fnc[i - 1].pt;
++			fnc[i].faceindex = fnc[i - 1].faceindex;
+ 		}
+ 	}
+ 	return(i);
+@@ -925,7 +927,7 @@
+ 				ttglobalinfo.font.xr = fnc[i].xr;
+ 				ttglobalinfo.font.yr = fnc[i].yr;
+ 				ttglobalinfo.font.charsize = fnc[i].pt;
+-				setFont(&ttglobalinfo,fnc[i].filename);
++				setFont(&ttglobalinfo,fnc[i].filename,fnc[i].faceindex);
+ 				generateFont(out,aux,&ttglobalinfo);
+ 				unsetFont(&ttglobalinfo);
+ 			}
+diff -ur src/wprint.h.orig src/wprint.h
+--- src/wprint.h.orig	2002-04-02 04:39:04.000000000 +0800
++++ src/wprint.h	2003-07-19 14:58:57.000000000 +0800
+@@ -152,6 +152,7 @@
+ 	int	xr;
+ 	int	yr;
+ 	double	pt;
++	int	faceindex;
+ };
+ typedef struct
+ {
+@@ -161,7 +162,7 @@
+ Font	*newFont(unsigned short fid,unsigned short feid);
+ Font	*addChar(unsigned short unicode,int fontid);
+ int	initTT(struct tt_info *ti);
+-int	setFont(struct tt_info *ti,char *);
++int	setFont(struct tt_info *ti,char *,int faceindex);
+ int	unsetFont(struct tt_info *ti);
+ void	finalizeTT(struct tt_info *ti);
+ FILE	*processConfiguration(FILE *in,char *entry,char *encoding);
	


>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: daichi 
State-Changed-When: Thu Jul 24 22:55:52 PDT 2003 
State-Changed-Why:  
Committed. Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=54819 
>Unformatted:
