diff options
-rw-r--r-- | binutils/ChangeLog | 5 | ||||
-rw-r--r-- | binutils/bucomm.c | 169 | ||||
-rw-r--r-- | binutils/bucomm.h | 32 |
3 files changed, 115 insertions, 91 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 2349388..ab3a047 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ + + * bucomm.c (xmalloc, xrealloc): Deleted. + * bucomm.h (xmalloc, xrealloc): Fix prototypes, to correspond to + libiberty version of functions. + Thu Jan 6 06:18:15 1994 David J. Mackenzie (djm@thepub.cygnus.com) * binutils.texi: Add a chapter summarizing the ways to select diff --git a/binutils/bucomm.c b/binutils/bucomm.c index 3f84b54..4401166 100644 --- a/binutils/bucomm.c +++ b/binutils/bucomm.c @@ -1,24 +1,24 @@ /* bucomm.c -- Bin Utils COMmon code. Copyright (C) 1991 Free Software Foundation, Inc. -This file is part of GNU Binutils. + This file is part of GNU Binutils. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ - -/* We might put this in a library someday so it could be dynamically - loaded, but for now it's not necessary */ + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* We might put this in a library someday so it could be dynamically + loaded, but for now it's not necessary. */ #include "bfd.h" #include "sysdep.h" @@ -27,120 +27,107 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ char *target = NULL; /* default as late as possible */ /* Yes, this is what atexit is for, but that isn't guaranteed yet. - And yes, I know this isn't as good, but it does what is needed just fine */ + And yes, I know this isn't as good, but it does what is needed just fine. */ void (*exit_handler) (); - - /* Error reporting */ char *program_name; void -DEFUN(bfd_fatal,(string), - char *string) +bfd_nonfatal (string) + char *string; { - const char *errmsg = bfd_errmsg (bfd_error); - + CONST char *errmsg = bfd_errmsg (bfd_error); + if (string) fprintf (stderr, "%s: %s: %s\n", program_name, string, errmsg); else fprintf (stderr, "%s: %s\n", program_name, errmsg); +} - if (NULL != exit_handler) (*exit_handler) (); +void +bfd_fatal (string) + char *string; +{ + bfd_nonfatal (string); + + if (NULL != exit_handler) + (*exit_handler) (); exit (1); } -#if 0 /* !defined(NO_STDARG) */ +#if 0 /* !defined(NO_STDARG) */ void fatal (Format) const char *Format; { va_list args; - + + fprintf (stderr, "%s: ", program_name); va_start (args, Format); vfprintf (stderr, Format, args); va_end (args); - (void) putc ('\n', stderr); - if (NULL != exit_handler) (*exit_handler) (); + putc ('\n', stderr); + if (NULL != exit_handler) + (*exit_handler) (); exit (1); } #else -void fatal (va_alist) +void +fatal (va_alist) va_dcl { - char *Format; - va_list args; - - va_start (args); - Format = va_arg(args, char *); - vfprintf (stderr, Format, args); - va_end (args); - (void) putc ('\n', stderr); - if (NULL != exit_handler) (*exit_handler) (); - exit (1); -} /* fatal() */ -#endif + char *Format; + va_list args; + fprintf (stderr, "%s: ", program_name); + va_start (args); + Format = va_arg (args, char *); + vfprintf (stderr, Format, args); + va_end (args); + putc ('\n', stderr); + if (NULL != exit_handler) + (*exit_handler) (); + exit (1); +} +#endif -/** Display the archive header for an element as if it were an ls -l listing */ -/* Mode User\tGroup\tSize\tDate Name */ +void mode_string (); + +/* Display the archive header for an element as if it were an ls -l listing: + + Mode User\tGroup\tSize\tDate Name */ void -DEFUN(print_arelt_descr,(file, abfd, verbose), - FILE *file AND - bfd *abfd AND - boolean verbose) +print_arelt_descr (file, abfd, verbose) + FILE *file; + bfd *abfd; + boolean verbose; { - void mode_string (); struct stat buf; - if (verbose) { - - if (bfd_stat_arch_elt (abfd, &buf) == 0) { /* if not, huh? */ - char modebuf[11]; - char timebuf[40]; - long when = buf.st_mtime; - CONST char *ctime_result = (CONST char *)ctime (&when); - - /* Posix format: skip weekday and seconds from ctime output. */ - sprintf(timebuf, "%.12s %.4s", ctime_result+4, ctime_result+20); - - mode_string (buf.st_mode, modebuf); - modebuf[10] = '\0'; - /* Posix 1003.2/D11 says to skip first character (entry type). */ - fprintf (file, "%s %d/%d %6ld %s ", modebuf+1, buf.st_uid, buf.st_gid, buf.st_size, timebuf); + if (verbose) + { + if (bfd_stat_arch_elt (abfd, &buf) == 0) + { + char modebuf[11]; + char timebuf[40]; + long when = buf.st_mtime; + CONST char *ctime_result = (CONST char *) ctime (&when); + + /* POSIX format: skip weekday and seconds from ctime output. */ + sprintf (timebuf, "%.12s %.4s", ctime_result + 4, ctime_result + 20); + + mode_string (buf.st_mode, modebuf); + modebuf[10] = '\0'; + /* POSIX 1003.2/D11 says to skip first character (entry type). */ + fprintf (file, "%s %d/%d %6ld %s ", modebuf + 1, + buf.st_uid, buf.st_gid, buf.st_size, timebuf); + } } - } - - fprintf (file, "%s\n",abfd->filename); -} - -/* Like malloc but get fatal error if memory is exhausted. */ -char * -xmalloc (size) - unsigned size; -{ - register char *result = malloc (size); - if (result == (char *) NULL && size != 0) { - fatal ("virtual memory exhausted"); - } - - return result; -} - -/* Like realloc but get fatal error if memory is exhausted. */ -char * -xrealloc (ptr, size) - char *ptr; - unsigned size; -{ - register char *result = realloc (ptr, size); - if (result == 0 && size != 0) { - fatal ("virtual memory exhausted"); - } - return result; + fprintf (file, "%s\n", abfd->filename); } diff --git a/binutils/bucomm.h b/binutils/bucomm.h new file mode 100644 index 0000000..3d79d19 --- /dev/null +++ b/binutils/bucomm.h @@ -0,0 +1,32 @@ +/* bucomm.h -- binutils common include file. + Copyright 1992 Free Software Foundation, Inc. + +This file is part of GNU Binutils. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +void bfd_nonfatal PARAMS ((CONST char *)); + +void bfd_fatal PARAMS ((CONST char *)); + +PTR xmalloc PARAMS ((size_t)); + +PTR xrealloc PARAMS ((char *, size_t)); + +void fatal PARAMS ((CONST char *, ...)); + +void print_arelt_descr PARAMS ((FILE *file, bfd *abfd, boolean verbose)); + +extern char *program_name; |