void bsp_printf(char * pcStr,...) { char *argP; vaStart(argP, pcStr); /* point at the end of the format string */ while (*pcStr) { /* this works because args are all ints */ if (*pcStr == '%') pcStr = format_item(pcStr + 1, vaArg(argP, int)); else bsp_putchar(*pcStr++); }
void NU_printf(CHAR *f, ...) /* variable arguments */ { CHAR *argP; vaStart(argP, f); /* point at the end of the format string */ while (*f) { /* this works because args are all ints */ if (*f == '%') f = FormatItem(f + 1, vaArg(argP, INT)); else NET_putchar(*f++); } }
refObject makingJoker(refChar string, int hook, ...) { refJoker newJoker = malloc(jokerSize); if (newJoker == nil) { fail("Cannot make '%s' in makingJoker!", string); } else { vaList hooks; degree(newJoker) = jokerDegree; size(newJoker) = jokerSize; state(newJoker) = 0x7F; tag(newJoker) = jokerTag; self(newJoker) = setEmpty(); string(newJoker) = string; vaStart(hooks, hook); while (hook != 0) { self(newJoker) = setAdjoin(self(newJoker), hook); hook = vaArg(hooks, int); } vaEnd(hooks); return toRefObject(newJoker); }}