diff options
author | John Sonnenschein <johns@joyent.com> | 2011-10-03 21:04:40 +0000 |
---|---|---|
committer | John Sonnenschein <johns@joyent.com> | 2011-10-03 21:04:40 +0000 |
commit | 4171a80dc48c62297457d0820f26cac6516e068a (patch) | |
tree | 5e20c8b91e74482baeed81d9cda1af2f63207b82 /usr/src/cmd/tcpd/vfprintf.c | |
parent | cb866ae1d95a57b3ac6bf38040e40ed0cd4fe835 (diff) | |
parent | ed22c7109fc5dd9e1b7a5d0333bdc7ad2718e2ab (diff) | |
download | illumos-joyent-4171a80dc48c62297457d0820f26cac6516e068a.tar.gz |
[OS-663] Post-6.5 Illumos sync
Merge https://github.com/illumos/illumos-gate
Conflicts:
exception_lists/packaging
usr/src/cmd/dtrace/test/cmd/scripts/dtest.pl
usr/src/cmd/dtrace/test/tst/common/usdt/tst.badguess.ksh
usr/src/cmd/dtrace/test/tst/common/usdt/tst.enabled2.ksh
usr/src/cmd/dtrace/test/tst/common/usdt/tst.guess32.ksh
usr/src/cmd/dtrace/test/tst/common/usdt/tst.guess64.ksh
usr/src/cmd/dtrace/test/tst/common/usdt/tst.include.ksh
usr/src/cmd/dtrace/test/tst/common/usdt/tst.nodtrace.ksh
usr/src/cmd/dtrace/test/tst/common/usdt/tst.noreap.ksh
usr/src/cmd/dtrace/test/tst/common/usdt/tst.noreapring.ksh
usr/src/cmd/dtrace/test/tst/common/usdt/tst.reap.ksh
usr/src/cmd/lp/Makefile
usr/src/cmd/lp/cmd/lpadmin/options.c
usr/src/cmd/lp/cmd/lpfilter.c
usr/src/cmd/lp/cmd/lpforms.c
usr/src/cmd/lp/cmd/lpusers.c
usr/src/cmd/lp/lib/lp/isterminfo.c
usr/src/cmd/lp/lib/lp/tidbit.c
usr/src/cmd/terminfo/att.ti
usr/src/cmd/zpool/zpool_main.c
usr/src/common/dis/i386/dis_tables.c
usr/src/lib/libdtrace/common/dt_options.c
usr/src/lib/libzfs/common/libzfs_dataset.c
usr/src/man/man1m/dladm.1m
usr/src/man/man1m/flowadm.1m
usr/src/man/man1m/zoneadm.1m
usr/src/man/man1m/zonecfg.1m
usr/src/pkg/manifests/print-lp-print-client-commands.mf
usr/src/pkg/manifests/print-lp.mf
usr/src/uts/common/fs/zfs/sys/zio.h
usr/src/uts/common/fs/zfs/zio.c
usr/src/uts/i86pc/ml/mach_offsets.in
usr/src/uts/intel/amd64/ml/mach_offsets.in
usr/src/uts/intel/sys/tss.h
Diffstat (limited to 'usr/src/cmd/tcpd/vfprintf.c')
-rw-r--r-- | usr/src/cmd/tcpd/vfprintf.c | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/usr/src/cmd/tcpd/vfprintf.c b/usr/src/cmd/tcpd/vfprintf.c deleted file mode 100644 index d6f37d59bf..0000000000 --- a/usr/src/cmd/tcpd/vfprintf.c +++ /dev/null @@ -1,125 +0,0 @@ - /* - * vfprintf() and vprintf() clones. They will produce unexpected results - * when excessive dynamic ("*") field widths are specified. To be used for - * testing purposes only. - * - * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands. - */ - -#ifndef lint -static char sccsid[] = "@(#) vfprintf.c 1.2 94/03/23 17:44:46"; -#endif - -#include <stdio.h> -#include <ctype.h> -#ifdef __STDC__ -#include <stdarg.h> -#else -#include <varargs.h> -#endif - -/* vfprintf - print variable-length argument list to stream */ - -int vfprintf(fp, format, ap) -FILE *fp; -char *format; -va_list ap; -{ - char fmt[BUFSIZ]; /* format specifier */ - register char *fmtp; - register char *cp; - int count = 0; - - /* - * Iterate over characters in the format string, picking up arguments - * when format specifiers are found. - */ - - for (cp = format; *cp; cp++) { - if (*cp != '%') { - putc(*cp, fp); /* ordinary character */ - count++; - } else { - - /* - * Format specifiers are handled one at a time, since we can only - * deal with arguments one at a time. Try to determine the end of - * the format specifier. We do not attempt to fully parse format - * strings, since we are ging to let fprintf() do the hard work. - * In regular expression notation, we recognize: - * - * %-?0?([0-9]+|\*)?\.?([0-9]+|\*)?l?[a-z] - * - * which includes some combinations that do not make sense. - */ - - fmtp = fmt; - *fmtp++ = *cp++; - if (*cp == '-') /* left-adjusted field? */ - *fmtp++ = *cp++; - if (*cp == '0') /* zero-padded field? */ - *fmtp++ = *cp++; - if (*cp == '*') { /* dynamic field witdh */ - sprintf(fmtp, "%d", va_arg(ap, int)); - fmtp += strlen(fmtp); - cp++; - } else { - while (isdigit(*cp)) /* hard-coded field width */ - *fmtp++ = *cp++; - } - if (*cp == '.') /* width/precision separator */ - *fmtp++ = *cp++; - if (*cp == '*') { /* dynamic precision */ - sprintf(fmtp, "%d", va_arg(ap, int)); - fmtp += strlen(fmtp); - cp++; - } else { - while (isdigit(*cp)) /* hard-coded precision */ - *fmtp++ = *cp++; - } - if (*cp == 'l') /* long whatever */ - *fmtp++ = *cp++; - if (*cp == 0) /* premature end, punt */ - break; - *fmtp++ = *cp; /* type (checked below) */ - *fmtp = 0; - - /* Execute the format string - let fprintf() do the hard work. */ - - switch (fmtp[-1]) { - case 's': /* string-valued argument */ - count += fprintf(fp, fmt, va_arg(ap, char *)); - break; - case 'c': /* integral-valued argument */ - case 'd': - case 'u': - case 'o': - case 'x': - if (fmtp[-2] == 'l') - count += fprintf(fp, fmt, va_arg(ap, long)); - else - count += fprintf(fp, fmt, va_arg(ap, int)); - break; - case 'e': /* float-valued argument */ - case 'f': - case 'g': - count += fprintf(fp, fmt, va_arg(ap, double)); - break; - default: /* anything else */ - putc(fmtp[-1], fp); - count++; - break; - } - } - } - return (count); -} - -/* vprintf - print variable-length argument list to stdout */ - -vprintf(format, ap) -char *format; -va_list ap; -{ - return (vfprintf(stdout, format, ap)); -} |