L4Re/departure

libext2fs/lib/libet/vfprintf.c

617:2733e5770ee9
9 months ago Paul Boddie Made the run command wait for completion, introducing the spawn command to run programs in the background. Introduced conveniences for waiting for the last job to be initiated and for piping from the last job, also subscribing to signals from pipe-supplying jobs so that they may be transparently removed from the job list upon completion. Augmented the job listing with the "+" notation familiar from Unix. Prevented new jobs from being started when no job slots are available.
     1 /*     2  * Copyright (c) 1988 Regents of the University of California.     3  * All rights reserved.     4  *     5  * Redistribution and use in source and binary forms are permitted     6  * provided that the above copyright notice and this paragraph are     7  * duplicated in all such forms and that any documentation,     8  * advertising materials, and other materials related to such     9  * distribution and use acknowledge that the software was developed    10  * by the University of California, Berkeley.  The name of the    11  * University may not be used to endorse or promote products derived    12  * from this software without specific prior written permission.    13  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR    14  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED    15  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.    16  */    17     18 #if defined(LIBC_SCCS) && !defined(lint)    19 static char sccsid[] = "@(#)vfprintf.c	5.2 (Berkeley) 6/27/88";    20 #endif /* LIBC_SCCS and not lint */    21     22 #include "config.h"    23 #if !HAVE_VPRINTF && HAVE_DOPRNT    24 #include <stdio.h>    25 #include <varargs.h>    26     27 int    28 vfprintf(iop, fmt, ap)    29 	FILE *iop;    30 	char *fmt;    31 	va_list ap;    32 {    33 	int len;    34 	char localbuf[BUFSIZ];    35     36 	if (iop->_flag & _IONBF) {    37 		iop->_flag &= ~_IONBF;    38 		iop->_ptr = iop->_base = localbuf;    39 		len = _doprnt(fmt, ap, iop);    40 		(void) fflush(iop);    41 		iop->_flag |= _IONBF;    42 		iop->_base = NULL;    43 		iop->_bufsiz = 0;    44 		iop->_cnt = 0;    45 	} else    46 		len = _doprnt(fmt, ap, iop);    47     48 	return (ferror(iop) ? EOF : len);    49 }    50 #endif /* !HAVE_VPRINTF */