bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] mig: remove local definition of 'vprintf'


From: Samuel Thibault
Subject: Re: [PATCH] mig: remove local definition of 'vprintf'
Date: Mon, 2 May 2022 18:05:17 +0200
User-agent: NeoMutt/20170609 (1.8.3)

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_Distribution@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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]