Guy-Fleury Iteriteka, le lun. 02 mai 2022 09:27:57 +0200, a ecrit: > autoconf consider that 'AC_FUNC_VPRINTF' is obsolescent. > see 'info autoconf AC_FUNC_VPRINTF'
applied, thanks! > * Makefile.am: remove 'vprint.c' on src files. > configure.ac: remove 'AC_FUNC_VPRINTF' macro. > vprint.c: delete file. > --- > Makefile.am | 2 +- > configure.ac | 4 - > vprint.c | 433 --------------------------------------------------- > 3 files changed, 1 insertion(+), 438 deletions(-) > delete mode 100644 vprint.c > > diff --git a/Makefile.am b/Makefile.am > index 5d924da..918efa1 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -19,7 +19,7 @@ migcom_SOURCES = boolean.h error.c error.h global.c > global.h \ > header.c lexxer.h lexxer.l message.h mig_string.h \ > migcom.c parser.h parser.y routine.c routine.h \ > server.c statement.c statement.h string.c \ > - type.c type.h user.c utils.c utils.h vprint.c write.h > + type.c type.h user.c utils.c utils.h write.h > migcom_LDADD = @LEXLIB@ > > SUFFIXES = .h .symo .symc .sym > diff --git a/configure.ac b/configure.ac > index d992264..e4645bd 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -38,10 +38,6 @@ AC_PROG_INSTALL > dnl Checks for header files. > AC_HEADER_STDC > > -dnl Checks for library functions. > -AC_FUNC_VPRINTF > - > - > [if [ "$target" = "$host" ]; then > TARGET_CC='${CC}' > else] > diff --git a/vprint.c b/vprint.c > deleted file mode 100644 > index db5d2cb..0000000 > --- a/vprint.c > +++ /dev/null > @@ -1,433 +0,0 @@ > -/* > - * Copyright (c) 1990,1992,1993 Carnegie Mellon University > - * All Rights Reserved. > - * > - * Permission to use, copy, modify and distribute this software and its > - * documentation is hereby granted, provided that both the copyright > - * notice and this permission notice appear in all copies of the > - * software, derivative works or modified versions, and any portions > - * thereof, and that both notices appear in supporting documentation. > - * > - * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" > - * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR > - * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. > - * > - * Carnegie Mellon requests users of this software to return to > - * > - * Software Distribution Coordinator or software_distribut...@cs.cmu.edu > - * School of Computer Science > - * Carnegie Mellon University > - * Pittsburgh PA 15213-3890 > - * > - * any improvements or extensions that they make and grant Carnegie Mellon > - * the rights to redistribute these changes. > - */ > - > -#ifndef HAVE_VPRINTF > - > -/* > - * ansi varargs versions of printf routines > - * This are directly included to deal with nonansi libc's. > - */ > -#include <stdio.h> > -#include <stdarg.h> > -#include <ctype.h> > -#include <limits.h> > - > -/* > - * Forward declaration. > - */ > -static void _doprnt_ansi(const char *_fmt, va_list _args, FILE *_stream); > - > -int > -vprintf(const char *fmt, va_list args) > -{ > - _doprnt_ansi(fmt, args, stdout); > - return (ferror(stdout) ? EOF : 0); > -} > - > -int > -vfprintf(FILE *f, const char *fmt, va_list args) > -{ > - _doprnt_ansi(fmt, args, f); > - return (ferror(f) ? EOF : 0); > -} > - > -int > -vsprintf(char *s, const char *fmt, va_list args) > -{ > - FILE fakebuf; > - > - fakebuf._flag = _IOSTRG; /* no _IOWRT: avoid stdio bug */ > - fakebuf._ptr = s; > - fakebuf._cnt = 32767; > - _doprnt_ansi(fmt, args, &fakebuf); > - putc('\0', &fakebuf); > - return (strlen(s)); > -} > - > -int > -vsnprintf(char *s, int n, const char *fmt, va_list args) > -{ > - FILE fakebuf; > - > - fakebuf._flag = _IOSTRG; /* no _IOWRT: avoid stdio bug */ > - fakebuf._ptr = s; > - fakebuf._cnt = n-1; > - _doprnt_ansi(fmt, args, &fakebuf); > - fakebuf._cnt++; > - putc('\0', &fakebuf); > - if (fakebuf._cnt<0) > - fakebuf._cnt = 0; > - return (n-fakebuf._cnt-1); > -} > - > -/* > - * Common code for printf et al. > - * > - * The calling routine typically takes a variable number of arguments, > - * and passes the address of the first one. This implementation > - * assumes a straightforward, stack implementation, aligned to the > - * machine's wordsize. Increasing addresses are assumed to point to > - * successive arguments (left-to-right), as is the case for a machine > - * with a downward-growing stack with arguments pushed right-to-left. > - * > - * To write, for example, fprintf() using this routine, the code > - * > - * fprintf(fd, format, args) > - * FILE *fd; > - * char *format; > - * { > - * _doprnt_ansi(format, &args, fd); > - * } > - * > - * would suffice. (This example does not handle the fprintf's "return > - * value" correctly, but who looks at the return value of fprintf > - * anyway?) > - * > - * This version implements the following printf features: > - * > - * %d decimal conversion > - * %u unsigned conversion > - * %x hexadecimal conversion > - * %X hexadecimal conversion with capital letters > - * %o octal conversion > - * %c character > - * %s string > - * %m.n field width, precision > - * %-m.n left adjustment > - * %0m.n zero-padding > - * %*.* width and precision taken from arguments > - * > - * This version does not implement %f, %e, or %g. It accepts, but > - * ignores, an `l' as in %ld, %lo, %lx, and %lu, and therefore will not > - * work correctly on machines for which sizeof(long) != sizeof(int). > - * It does not even parse %D, %O, or %U; you should be using %ld, %o and > - * %lu if you mean long conversion. > - * > - * As mentioned, this version does not return any reasonable value. > - * > - * Permission is granted to use, modify, or propagate this code as > - * long as this notice is incorporated. > - * > - * Steve Summit 3/25/87 > - */ > - > -/* > - * Added for general use: > - * # prefix for alternate format: > - * 0x (0X) for hex > - * leading 0 for octal > - * + print '+' if positive > - * blank print ' ' if positive > - * > - */ > - > -/* > - * Fixed to handle `l' and `h' prefixes, %% format, and ANSI %p format. > - * It does not handle the ANSI %n format. > - * > - * ANSI NOTE: The formating of %d, %o, %u, %x, and %X are not compliant. > - * > - * NOTE: Given that this routine uses stdarg.h, I'm not sure that the > - * comment above about stack layout is valid. > - * > - * Peter Stout, 1/11/93 > - */ > - > -#define Ctod(c) ((c) - '0') > - > -#define MAXBUF (sizeof(long int) * 8) /* enough for binary */ > - > -typedef int boolean_t; > -#define FALSE ((boolean_t) 0) > -#define TRUE ((boolean_t) 1) > - > -#define SHORT sizeof(short) > -#define INT sizeof(int) > -#define LONG sizeof(long) > - > -static void > -_doprnt_ansi(const char *fmt, va_list args, FILE *stream) > -{ > - int length; > - int prec; > - boolean_t ladjust; > - char padc; > - long n; > - unsigned long u; > - int plus_sign; > - int sign_char; > - boolean_t altfmt; > - int base; > - int size; > - unsigned char char_buf[2]; > - > - char_buf[1] = '\0'; > - > - while (*fmt != '\0') { > - if (*fmt != '%') { > - putc(*fmt++, stream); > - continue; > - } > - > - fmt++; > - > - length = 0; > - prec = -1; > - ladjust = FALSE; > - padc = ' '; > - plus_sign = 0; > - sign_char = 0; > - altfmt = FALSE; > - > - while (TRUE) { > - if (*fmt == '#') { > - altfmt = TRUE; > - fmt++; > - } > - else if (*fmt == '-') { > - ladjust = TRUE; > - fmt++; > - } > - else if (*fmt == '+') { > - plus_sign = '+'; > - fmt++; > - } > - else if (*fmt == ' ') { > - if (plus_sign == 0) > - plus_sign = ' '; > - fmt++; > - } > - else > - break; > - } > - > - if (*fmt == '0') { > - padc = '0'; > - fmt++; > - } > - > - if (isdigit(*fmt)) { > - while(isdigit(*fmt)) > - length = 10 * length + Ctod(*fmt++); > - } > - else if (*fmt == '*') { > - length = va_arg(args, int); > - fmt++; > - if (length < 0) { > - ladjust = !ladjust; > - length = -length; > - } > - } > - > - if (*fmt == '.') { > - prec = 0; > - fmt++; > - if (isdigit(*fmt)) { > - prec = 0; > - while(isdigit(*fmt)) > - prec = 10 * prec + Ctod(*fmt++); > - } > - else if (*fmt == '*') { > - prec = va_arg(args, int); > - fmt++; > - } > - } > - > - if (*fmt == 'l' || *fmt == 'h') > - size = *(fmt++) == 'l' ? LONG : SHORT; > - else > - size = INT; > - > - switch(*fmt) { > - case 'c': > - { > - const char *p; > - const char *p2; > - > - char_buf[0] = va_arg(args, int); > - p = char_buf; > - prec = 1; > - goto put_string; > - > - case 's': > - if (prec == -1) > - prec = INT_MAX; > - > - p = va_arg(args, char *); > - > - if (p == (const char *)0) > - p = ""; > - > - put_string: > - if (length > 0 && !ladjust) { > - n = 0; > - p2 = p; > - > - for (; *p != '\0' && n < prec; p++) > - n++; > - > - p = p2; > - > - while (n < length) { > - putc(padc, stream); > - n++; > - } > - } > - > - n = 0; > - > - while (*p != '\0') { > - if (++n > prec) > - break; > - > - putc(*p++, stream); > - } > - > - if (n < length && ladjust) { > - while (n < length) { > - putc(' ', stream); > - n++; > - } > - } > - > - break; > - } > - > - case 'o': > - base = 8; > - goto print_unsigned; > - > - case 'i': > - case 'd': > - base = 10; > - goto print_signed; > - > - case 'u': > - base = 10; > - goto print_unsigned; > - > - case 'x': > - case 'X': > - base = 16; > - goto print_unsigned; > - > - case 'p': > - base = 16; > - altfmt = TRUE; > - u = (unsigned long) va_arg(args, void *); > - goto print_num; > - > - print_signed: > - if (size == INT) > - n = va_arg(args, int); > - else if (size == LONG) > - n = va_arg(args, long); > - else > - n = (short) va_arg(args, int); > - if (n >= 0) { > - u = n; > - sign_char = plus_sign; > - } > - else { > - u = -n; > - sign_char = '-'; > - } > - goto print_num; > - > - print_unsigned: > - if (size == INT) > - u = va_arg(args, unsigned int); > - else if (size == LONG) > - u = va_arg(args, unsigned long); > - else > - u = (unsigned short) va_arg(args, unsigned int); > - goto print_num; > - > - print_num: > - { > - char buf[MAXBUF]; /* build number here */ > - char * p = &buf[MAXBUF-1]; > - static const char digits[] = "0123456789abcdef"; > - const char *prefix = 0; > - > - if (u != 0 && altfmt) { > - if (base == 8) > - prefix = "0"; > - else if (base == 16) > - prefix = "0x"; > - } > - > - do { > - *p-- = digits[u % base]; > - u /= base; > - } while (u != 0); > - > - length -= (&buf[MAXBUF-1] - p); > - if (sign_char) > - length--; > - if (prefix) > - length -= strlen(prefix); > - > - if (padc == ' ' && !ladjust) { > - /* blank padding goes before prefix */ > - while (--length >= 0) > - putc(' ', stream); > - } > - if (sign_char) > - putc(sign_char, stream); > - if (prefix) > - while (*prefix) > - putc(*prefix++, stream); > - if (padc == '0') { > - /* zero padding goes after sign and prefix */ > - while (--length >= 0) > - putc('0', stream); > - } > - while (++p != &buf[MAXBUF]) > - putc(*p, stream); > - > - if (ladjust) { > - while (--length >= 0) > - putc(' ', stream); > - } > - break; > - } > - > - case '%': > - putc('%', stream); > - break; > - > - case '\0': > - fmt--; > - break; > - > - default: > - putc(*fmt, stream); > - } > - fmt++; > - } > -} > - > -#endif /* !HAVE_VPRINTF */ > -- > 2.34.0 > > -- Samuel --- Pour une évaluation indépendante, transparente et rigoureuse ! Je soutiens la Commission d'Évaluation de l'Inria.