Subject: pkg/33164: fonts/fontforge v20060209nb2 parse errors
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <keith+pkgsrc@lib.uchicago.edu>
List: pkgsrc-bugs
Date: 03/29/2006 02:10:00
>Number:         33164
>Category:       pkg
>Synopsis:       fontforge has several parse errors due to variables not declared at top of block
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Mar 29 02:10:00 +0000 2006
>Originator:     Keith Waclena
>Release:        NetBSD 1.6.2_STABLE
>Organization:
The University of Chicago Library
>Environment:
System: NetBSD jfcl.lib.uchicago.edu 1.6.2_STABLE NetBSD 1.6.2_STABLE (JFCL) #1: Thu Jul 29 18:06:18 CDT 2004 root@test-keith:/usr/src/sys/arch/i386/compile/JFCL i386
Architecture: i386
Machine: i386
>Description:
Several vars in several source files use the C++ -ism (?) of declaring vars at
first use rather than at top of block; my gcc (2.95.3) doesn't like this.
>How-To-Repeat:
cd /usr/pkgsrc/fonts/fontforge && make
>Fix:
Here's a patch; warning: compiles, but I didn't test since I don't
know how fontforge works (it's a dependency of something else):

diff -u work/fontforge-20060209/fontforge/fontinfo.c /tmp/work/fontforge-20060209/fontforge/fontinfo.c
--- work/fontforge-20060209/fontforge/fontinfo.c	Sun Feb  5 19:51:00 2006
+++ /tmp/work/fontforge-20060209/fontforge/fontinfo.c	Tue Mar 28 18:56:03 2006
@@ -5151,6 +5151,7 @@
 #endif
 	char os2_vendor[4];
 	NameList *nl;
+	int ans;
 
 	if ( d->tn_smallactive!=-1 )
 	    TN_FinishSmallEdit(d);
@@ -5324,7 +5325,7 @@
 	    buts[2] = GTK_STOCK_CANCEL;
 #endif
 	    buts[3] = NULL;
-	    int ans = gwwv_ask(_("Change UniqueID?"),(const char **) buts,0,2,_("You have changed this font's name without changing the UniqueID (or XUID).\nThis is probably not a good idea, would you like me to\ngenerate a random new value?"));
+	    ans = gwwv_ask(_("Change UniqueID?"),(const char **) buts,0,2,_("You have changed this font's name without changing the UniqueID (or XUID).\nThis is probably not a good idea, would you like me to\ngenerate a random new value?"));
 	    if ( ans==2 ) {
 		GDrawSetCursor(gw,ct_pointer);
 return(true);
diff -u work/fontforge-20060209/fontforge/openfontdlg.c /tmp/work/fontforge-20060209/fontforge/openfontdlg.c
--- work/fontforge-20060209/fontforge/openfontdlg.c	Sun Feb  5 20:45:51 2006
+++ /tmp/work/fontforge-20060209/fontforge/openfontdlg.c	Tue Mar 28 18:56:03 2006
@@ -134,6 +134,7 @@
 }
 
 static int e_h(GWindow gw, GEvent *event) {
+	GRect r, size;
     if ( event->type==et_close ) {
 	struct gfc_data *d = GDrawGetUserData(gw);
 	d->done = true;
@@ -152,7 +153,6 @@
 	struct gfc_data *d = GDrawGetUserData(gw);
 return( GGadgetDispatchEvent((GGadget *) (d->gfc),event));
     } else if ( event->type == et_resize ) {
-	GRect r, size;;
 	struct gfc_data *d = GDrawGetUserData(gw);
 	GDrawGetSize(gw,&size);
 	GGadgetGetSize(d->gfc,&r);
diff -u work/fontforge-20060209/fontforge/parsettf.c /tmp/work/fontforge-20060209/fontforge/parsettf.c
--- work/fontforge-20060209/fontforge/parsettf.c	Wed Feb  1 16:25:43 2006
+++ /tmp/work/fontforge-20060209/fontforge/parsettf.c	Tue Mar 28 18:56:03 2006
@@ -4255,6 +4255,7 @@
 static int readttf(FILE *ttf, struct ttfinfo *info, char *filename) {
     char *oldloc;
     int i;
+    int choice;
 
 #if !defined(FONTFORGE_CONFIG_NO_WINDOWING_UI)
     gwwv_progress_change_stages(3);
@@ -4283,10 +4284,10 @@
 	buts[3] = NULL;
 #if defined(FONTFORGE_CONFIG_GDRAW)
 	buts[2] = _("_Cancel");
-	int choice = gwwv_ask(_("Pick a font, any font..."),(const char **) buts,0,2,_("This font contains both a TrueType 'glyf' table and an OpenType 'CFF ' table. FontForge can only deal with one at a time, please pick which one you want to use"));
+	choice = gwwv_ask(_("Pick a font, any font..."),(const char **) buts,0,2,_("This font contains both a TrueType 'glyf' table and an OpenType 'CFF ' table. FontForge can only deal with one at a time, please pick which one you want to use"));
 #elif defined(FONTFORGE_CONFIG_GTK)
 	buts[2] = GTK_STOCK_CANCEL;
-	int choice = gwwv_ask(_("Pick a font, any font..."),(const char **) buts,0,2,_("This font contains both a TrueType 'glyf' table and an OpenType 'CFF ' table. FontForge can only deal with one at a time, please pick which one you want to use"));
+	choice = gwwv_ask(_("Pick a font, any font..."),(const char **) buts,0,2,_("This font contains both a TrueType 'glyf' table and an OpenType 'CFF ' table. FontForge can only deal with one at a time, please pick which one you want to use"));
 #else
 	int choice = 0;
 #endif
diff -u work/fontforge-20060209/fontforge/savefontdlg.c /tmp/work/fontforge-20060209/fontforge/savefontdlg.c
--- work/fontforge-20060209/fontforge/savefontdlg.c	Sun Feb  5 19:51:00 2006
+++ /tmp/work/fontforge-20060209/fontforge/savefontdlg.c	Tue Mar 28 18:56:03 2006
@@ -2143,6 +2143,12 @@
     struct sflist *sfs=NULL, *cur, *last=NULL;
     static int psscalewarned=0, ttfscalewarned=0;
     int flags;
+    struct sflist *sfl;
+    char **former;
+    NameList *rename_to;
+    GTextInfo *ti = GGadgetGetListItemSelected(d->rename);
+    char *nlname = u2utf8_copy(ti->text);
+    extern NameList *force_names_when_saving;
 #if defined(FONTFORGE_CONFIG_GDRAW)
     char *buts[3];
     buts[0] = _("_Yes");
@@ -2151,12 +2157,6 @@
 #elif defined(FONTFORGE_CONFIG_GTK)
     static char *buts[] = { GTK_STOCK_YES, GTK_STOCK_NO, NULL };
 #endif
-    struct sflist *sfl;
-    char **former;
-    NameList *rename_to;
-    GTextInfo *ti = GGadgetGetListItemSelected(d->rename);
-    char *nlname = u2utf8_copy(ti->text);
-    extern NameList *force_names_when_saving;
 
     rename_to = NameListByName(nlname);
     free(nlname);