home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / dld-3.2.6-src.tgz / tar.out / fsf / dld / error.c < prev    next >
C/C++ Source or Header  |  1996-09-28  |  2KB  |  70 lines

  1. /* error.c -- print out the error strings. */
  2.  
  3. /* This file is part of DLD, a dynamic link/unlink editor for C.
  4.  
  5.    Copyright (C) 1990 by W. Wilson Ho.
  6.  
  7.    The author can be reached electronically by how@cs.ucdavis.edu or
  8.    through physical mail at:
  9.  
  10.    W. Wilson Ho
  11.    Division of Computer Science
  12.    University of California at Davis
  13.    Davis, CA 95616
  14.  */
  15.  
  16. /* This program is free software; you can redistribute it and/or modify it
  17.    under the terms of the GNU General Public License as published by the
  18.    Free Software Foundation; either version 1, or (at your option) any
  19.    later version. */
  20.  
  21. #include "defs.h"
  22.  
  23. static char *errlst[] = {
  24.     "Error 0",
  25.     "cannot open file",            /* 1 DLD_ENOFILE */
  26.     "bad magic number",            /* 2 DLD_EBADMAGIC */
  27.     "fail to read header",        /* 3 DLD_EBADHEADER */
  28.     "premature eof in text section",    /* 4 DLD_ENOTEXT */
  29.     "premature eof in symbols",        /* 5 DLD_ENOSYMBOLS */
  30.     "bad string table",            /* 6 DLD_ENOSTRINGS */
  31.     "premature eof in text relocation",    /* 7 DLD_ENOTXTRELOC */
  32.     "premature eof in data section",    /* 8 DLD_ENODATA */
  33.     "premature eof in data relocation",    /* 9 DLD_ENODATRELOC */
  34.     "multiple definitions of symbol",    /* 10 DLD_EMULTDEFS */
  35.     "malformed library archive",    /* 11 DLD_EBADLIBRARY */
  36.     "common block not supported",    /* 12 DLD_EBADCOMMON */
  37.     "malformed input file",        /* 13 DLD_EBADOBJECT */
  38.     "bad relocation info",        /* 14 DLD_EBADRELOC */
  39.     "virtual memory exhausted",        /* 15 DLD_ENOMEMORY */
  40.     "undefined symbol"            /* 16 DLD_EUNDEFSYM */
  41.     };
  42.  
  43. char dld_str_error[ 256 ];
  44.  
  45.  
  46. /* Prints out the given string and the error message corresponding to
  47.    dld_errno to the stderr. */
  48. void
  49. dld_perror (str)
  50. char *str;
  51. {
  52.     if (str)
  53.     fprintf (stderr, "%s: ", str);
  54.  
  55.     if (dld_errno < 1 || dld_errno > sizeof (errlst)/sizeof (char *))
  56.     fprintf (stderr, "Unknown error.\n");
  57.     else fprintf (stderr, "%s.\n", errlst[dld_errno]);
  58. } /* dld_perror */
  59.  
  60. /* Returns the error message corresponding to the given error code. */
  61. char *
  62. dld_strerror (code)
  63. int code;
  64. {
  65.     if (code < 1 || code > sizeof (errlst)/sizeof (char *))
  66.     strcpy (dld_str_error, "Unknown error");
  67.     else strcpy (dld_str_error, errlst[code]);
  68.     return (dld_str_error);
  69. } /* dld_perror */
  70.