head 1.2; access; symbols pkgsrc-2013Q2:1.2.0.44 pkgsrc-2013Q2-base:1.2 pkgsrc-2012Q4:1.2.0.42 pkgsrc-2012Q4-base:1.2 pkgsrc-2011Q4:1.2.0.40 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q2:1.2.0.38 pkgsrc-2011Q2-base:1.2 pkgsrc-2009Q4:1.2.0.36 pkgsrc-2009Q4-base:1.2 pkgsrc-2008Q4:1.2.0.34 pkgsrc-2008Q4-base:1.2 pkgsrc-2008Q3:1.2.0.32 pkgsrc-2008Q3-base:1.2 cube-native-xorg:1.2.0.30 cube-native-xorg-base:1.2 pkgsrc-2008Q2:1.2.0.28 pkgsrc-2008Q2-base:1.2 pkgsrc-2008Q1:1.2.0.26 pkgsrc-2008Q1-base:1.2 pkgsrc-2007Q4:1.2.0.24 pkgsrc-2007Q4-base:1.2 pkgsrc-2007Q3:1.2.0.22 pkgsrc-2007Q3-base:1.2 pkgsrc-2007Q2:1.2.0.20 pkgsrc-2007Q2-base:1.2 pkgsrc-2007Q1:1.2.0.18 pkgsrc-2007Q1-base:1.2 pkgsrc-2006Q4:1.2.0.16 pkgsrc-2006Q4-base:1.2 pkgsrc-2006Q3:1.2.0.14 pkgsrc-2006Q3-base:1.2 pkgsrc-2006Q2:1.2.0.12 pkgsrc-2006Q2-base:1.2 pkgsrc-2006Q1:1.2.0.10 pkgsrc-2006Q1-base:1.2 pkgsrc-2005Q4:1.2.0.8 pkgsrc-2005Q4-base:1.2 pkgsrc-2005Q3:1.2.0.6 pkgsrc-2005Q3-base:1.2 pkgsrc-2005Q2:1.2.0.4 pkgsrc-2005Q2-base:1.2 pkgsrc-2005Q1:1.2.0.2 pkgsrc-2005Q1-base:1.2 pkgsrc-base:1.1.1.1 TNF:1.1.1; locks; strict; comment @# @; 1.2 date 2005.02.26.22.30.35; author is; state dead; branches; next 1.1; 1.1 date 2005.02.25.15.54.59; author is; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2005.02.25.15.54.59; author is; state Exp; branches; next ; desc @@ 1.2 log @Update to SR-2.3.3. @ text @$NetBSD: patch-ak,v 1.1 2005/02/25 15:54:59 is Exp $ --- rts/misc.c.orig 1999-07-28 23:08:48.000000000 +0200 +++ rts/misc.c @@@@ -1,6 +1,6 @@@@ /* misc.c -- miscellaneous routines supporting the generated code */ -#include +#include #include "rts.h" @@@@ -15,8 +15,7 @@@@ */ /*VARARGS*/ Ptr -sr_cat (va_alist) -va_dcl +sr_cat (String *q, ...) { va_list ap; String *s, *t; @@@@ -24,12 +23,15 @@@@ va_dcl char *p; n = 0; /* total the string lengths */ - va_start (ap); - while ((s = va_arg (ap, String *)) != NULL) + s = q; + va_start (ap, q); + while (s != NULL) { if ((int) s & 1) n++; /* char argument */ else n += s->length; /* String argument */ + s = va_arg (ap, String *); + } va_end (ap); t = (String *) sr_alc (n + STRING_OVH, 1); @@@@ -37,14 +39,16 @@@@ va_dcl t->length = n; p = DATA (t); - va_start (ap); - while ((s = va_arg (ap, String *)) != NULL) { /* for each input string: */ + va_start (ap, q); + s = q; + while (s != NULL) { /* for each input string: */ if ((int) s & 1) { *p++ = (int) s >> 2; /* copy in char argument */ } else { memcpy (p, DATA (s), s->length); /* copy into new string */ p += s->length; /* advance pointer*/ } + s = va_arg (ap, String *); } va_end (ap); return (Ptr) t; /* return result address */ @ 1.1 log @Initial revision @ text @d1 1 a1 1 $NetBSD$ @ 1.1.1.1 log @This is the SR, a language for concurrent programming from the University of Arizona, version 2.3.2. SR is described in "The SR Programming Language: Concurrency in Practice" by Gregory R. Andrews and Ronald A. Olsson (Benjamin/Cummings, 1993, ISBN 0-8053-0088-0). @ text @@