diff options
author | pgoyette <pgoyette> | 2009-12-10 22:00:24 +0000 |
---|---|---|
committer | pgoyette <pgoyette> | 2009-12-10 22:00:24 +0000 |
commit | 03fe3834b764dd0a83292a6eda18a5d587ef5eab (patch) | |
tree | f42800573ea19714222ff16da834bc3fbc40bda7 /games | |
parent | 06f663d04f66a7b6d5e1f59027ce71dd4f3e379c (diff) | |
download | pkgsrc-03fe3834b764dd0a83292a6eda18a5d587ef5eab.tar.gz |
Fix a patch that was erroneously fed upstream. This should avoid some
unexpected SIGSEGV crashes.
Diffstat (limited to 'games')
-rw-r--r-- | games/dungeon/distinfo | 3 | ||||
-rw-r--r-- | games/dungeon/patches/patch-ac | 52 |
2 files changed, 54 insertions, 1 deletions
diff --git a/games/dungeon/distinfo b/games/dungeon/distinfo index 773d533e470..b300dcaa658 100644 --- a/games/dungeon/distinfo +++ b/games/dungeon/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.1 2009/11/28 20:25:40 pgoyette Exp $ +$NetBSD: distinfo,v 1.2 2009/12/10 22:00:24 pgoyette Exp $ SHA1 (dungeon-gdt-glk.tar.gz) = ec148735ae713566c9511057473fbd899d673a6a RMD160 (dungeon-gdt-glk.tar.gz) = aed6e4a42c03be0a9bce2248dcab3370e1b1fbde @@ -8,3 +8,4 @@ RMD160 (glkterm-080.tar.gz) = 57e317e816a8c233fd0f2fe24a7c8a54c223edbc Size (glkterm-080.tar.gz) = 91260 bytes SHA1 (patch-aa) = d12f8125b0bfe51dbbe942af8f1c77a90ff23f21 SHA1 (patch-ab) = d7d83456c67f39c75b9fa161b82257fdf10eb966 +SHA1 (patch-ac) = b2fbb85157db8061fec21c9dd97b88cc39918331 diff --git a/games/dungeon/patches/patch-ac b/games/dungeon/patches/patch-ac new file mode 100644 index 00000000000..c497e3da5c9 --- /dev/null +++ b/games/dungeon/patches/patch-ac @@ -0,0 +1,52 @@ +$NetBSD: patch-ac,v 1.1 2009/12/10 22:00:25 pgoyette Exp $ + +The f2c translation maintains Fortran's pass-everything-by-reference, +and as a result we get lots of constant values defined. Upstream +took an earlier patch to provide a ftnlen typed version of the c__3 +constant, but that patch was wrong. Correctly initialize the new +constant. + +--- parser.c.orig 2009-11-23 18:27:42.000000000 -0800 ++++ parser.c 2009-12-10 13:45:56.000000000 -0800 +@@ -663,7 +663,7 @@ + /* System generated locals */ + address a__1[3]; + integer ret_val; +- ftnlen i__1[3], cc__3; ++ ftnlen i__1[3], cc__3 = c__3; + char ch__1[8]; + + /* Local variables */ +@@ -1318,7 +1318,6 @@ + i__1[1] = 8, a__1[1] = ch__1; + i__1[2] = 1, a__1[2] = " "; + s_cat(lcwrd1, a__1, i__1, &cc__3, 10L); +- c__3 = cc__3; + } + if (obj < 0) { + goto L7200; +@@ -1914,7 +1913,7 @@ + { + /* System generated locals */ + address a__1[3]; +- ftnlen i__1[3], cc__3; ++ ftnlen i__1[3], cc__3 = c__3; + integer i__2, i__3, i__4; + logical ret_val; + char ch__1[8], ch__2[8]; +@@ -2061,7 +2060,6 @@ + i__1[1] = 8, a__1[1] = ch__1; + i__1[2] = 1, a__1[2] = " "; + s_cat(lcprp1, a__1, i__1, &cc__3, 10L); +- c__3 = cc__3; + /* Writing concatenation */ + i__1[0] = 1, a__1[0] = " "; + i__2 = prssta_1.iobj & 511; +@@ -2070,7 +2068,6 @@ + i__1[1] = 8, a__1[1] = ch__1; + i__1[2] = 1, a__1[2] = " "; + s_cat(lcprp2, a__1, i__1, &cc__3, 10L); +- c__3 = cc__3; + + /* Try to fill direct object slot if that was the problem. */ + |