pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/converters/macfork Fix (well, hack around) broken amd6...
details: https://anonhg.NetBSD.org/pkgsrc/rev/c67e90feb2b2
branches: trunk
changeset: 545430:c67e90feb2b2
user: dholland <dholland%pkgsrc.org@localhost>
date: Sat Aug 02 21:00:29 2008 +0000
description:
Fix (well, hack around) broken amd64 build caused by misuse of va_list.
diffstat:
converters/macfork/distinfo | 3 +-
converters/macfork/patches/patch-ac | 111 ++++++++++++++++++++++++++++++++++++
2 files changed, 113 insertions(+), 1 deletions(-)
diffs (128 lines):
diff -r d887909e84c6 -r c67e90feb2b2 converters/macfork/distinfo
--- a/converters/macfork/distinfo Sat Aug 02 20:36:50 2008 +0000
+++ b/converters/macfork/distinfo Sat Aug 02 21:00:29 2008 +0000
@@ -1,7 +1,8 @@
-$NetBSD: distinfo,v 1.4 2005/02/23 16:12:34 agc Exp $
+$NetBSD: distinfo,v 1.5 2008/08/02 21:00:29 dholland Exp $
SHA1 (macfork-1.0.tar.gz) = 86cbf8a7a3c65bd168f40ef9ab1e1a73161abdd0
RMD160 (macfork-1.0.tar.gz) = e37842b9dbec86e235dcd759be002f4810be1421
Size (macfork-1.0.tar.gz) = 15451 bytes
SHA1 (patch-aa) = be6282f1fb0ca57fc3a002e830885ff64eaab233
SHA1 (patch-ab) = 82c91966a3875afdcaaf2ff65957dc97e1e3786a
+SHA1 (patch-ac) = 6ffb0e1eeb3a43167053f0abdc18ff1a8fdc9ea2
diff -r d887909e84c6 -r c67e90feb2b2 converters/macfork/patches/patch-ac
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/converters/macfork/patches/patch-ac Sat Aug 02 21:00:29 2008 +0000
@@ -0,0 +1,111 @@
+$NetBSD: patch-ac,v 1.1 2008/08/02 21:00:29 dholland Exp $
+
+Fix misuses of va_list to allow building on amd64.
+
+--- arg.c.orig 1999-08-31 12:49:19.000000000 -0400
++++ arg.c 2008-08-02 16:56:12.000000000 -0400
+@@ -28,5 +28,6 @@
+
+ #include <stdarg.h>
++#include <stdint.h>
+ #include <ctype.h>
+ #include <string.h>
+ #include <stdlib.h>
+@@ -65,7 +66,11 @@ int arg_warning = 1; /* print warnings
+
+ static Arg_form *regf; /* advancing form ptr used by arg_find_reg */
+
+-va_list arg_doc_parse();
++struct va_holder {
++ va_list ap;
++};
++
++static void arg_doc_parse(Arg_form *, struct va_holder *);
+ int arg_format(Arg_form *f);
+ void arg_init(Arg_form *form);
+ int arg_done();
+@@ -180,7 +185,7 @@ Arg_form *arg_to_form1(va_list ap)
+ }
+ for (; (s = va_arg(ap, char *)) != 0;) {
+ /* note that we continue (not break) in all cases except one */
+- switch ((int)s) {
++ switch ((int)(intptr_t)s) {
+ case ARG_FLAGNEXT: /* ptr to flag vbl */
+ CHECKTYPE(form, "FLAG");
+ form->type = ARG_SIMPFLAG;
+@@ -220,7 +225,12 @@ Arg_form *arg_to_form1(va_list ap)
+ form->doc = prevs = s;
+
+ /* skip over doc args */
+- ap = arg_doc_parse(form, ap);
++ {
++ struct va_holder tmp;
++ va_copy(tmp.ap, ap);
++ arg_doc_parse(form, &tmp);
++ va_copy(ap, tmp.ap);
++ }
+ }
+ va_end(ap);
+ return rootform;
+@@ -289,13 +299,13 @@ int arg_format(Arg_form *f)
+ * documentation string and returns the new ap.
+ */
+
+-va_list arg_doc_parse(Arg_form *f, va_list ap)
++static void arg_doc_parse(Arg_form *f, struct va_holder *app)
+ {
+ char *s, buf[256];
+ int size, gotparam;
+ va_list ap0;
+
+- ap0 = ap;
++ va_copy(ap0, app->ap);
+ gotparam = 0;
+ for (s=f->doc; *s; s++) {
+ for (; *s; s++) /* search for next format code */
+@@ -329,22 +339,22 @@ va_list arg_doc_parse(Arg_form *f, va_li
+ case 'o': case 'O':
+ case 'x': case 'X':
+ case 'c':
+- if (size==2 || *s>='A' && *s<='Z') va_arg(ap, long);
+- else va_arg(ap, int);
++ if (size==2 || *s>='A' && *s<='Z') va_arg(app->ap, long);
++ else va_arg(app->ap, int);
+ break;
+ case 'e':
+ case 'f':
+ case 'g':
+ /* note: float args are converted to doubles by MOST compilers*/
+- va_arg(ap, double);
++ va_arg(app->ap, double);
+ break;
+ case 's':
+- va_arg(ap, char *);
++ va_arg(app->ap, char *);
+ break;
+ default:
+ fprintf(stderr, "arg: unknown format code %%%c in %s\n",
+ *s, f->doc);
+- va_arg(ap, int);
++ va_arg(app->ap, int);
+ break;
+ }
+ }
+@@ -354,7 +364,7 @@ va_list arg_doc_parse(Arg_form *f, va_li
+ strcpy(f->doc, buf);
+ }
+
+- return ap; /* varargs ptr past end of doc params */
++ /*return ap;*/ /* varargs ptr past end of doc params */
+ }
+
+ /*----------------------------------------------------------------------*/
+@@ -851,7 +861,7 @@ static void space(FILE *fp, int c, int c
+ putc('\n', fp);
+ c = 0;
+ }
+- for (; c<c1&~7; c=(c+7)&~7) putc('\t', fp);
++ for (; c<(c1&~7); c=(c+7)&~7) putc('\t', fp);
+ for (; c<c1; c++) putc(' ', fp);
+ }
+
Home |
Main Index |
Thread Index |
Old Index