summaryrefslogtreecommitdiff
path: root/usr/src/cmd/tcpd/vfprintf.c
diff options
context:
space:
mode:
authorJohn Sonnenschein <johns@joyent.com>2011-10-03 21:04:40 +0000
committerJohn Sonnenschein <johns@joyent.com>2011-10-03 21:04:40 +0000
commit4171a80dc48c62297457d0820f26cac6516e068a (patch)
tree5e20c8b91e74482baeed81d9cda1af2f63207b82 /usr/src/cmd/tcpd/vfprintf.c
parentcb866ae1d95a57b3ac6bf38040e40ed0cd4fe835 (diff)
parented22c7109fc5dd9e1b7a5d0333bdc7ad2718e2ab (diff)
downloadillumos-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.c125
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));
-}