home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.2 (Developer) / NS_dev_3.2.iso / NextDeveloper / Source / GNU / cctools / libstuff / errors.c < prev    next >
C/C++ Source or Header  |  1992-03-18  |  3KB  |  163 lines

  1. #include <stdlib.h>
  2. #include <string.h>
  3. #include <stdio.h>
  4. #include <stdarg.h>
  5. #include <errno.h>
  6. #include <mach/mach.h>
  7. #include <mach/mach_error.h>
  8.  
  9. #include "stuff/errors.h"
  10.  
  11. unsigned long errors = 0;    /* number of calls to error() */
  12.  
  13. /*
  14.  * Just print the message in the standard format without setting an error.
  15.  */
  16. void
  17. warning(
  18. const char *format,
  19. ...)
  20. {
  21.     va_list ap;
  22.  
  23.     va_start(ap, format);
  24.         fprintf(stderr, "%s: ", progname);
  25.     vfprintf(stderr, format, ap);
  26.         fprintf(stderr, "\n");
  27.     va_end(ap);
  28. }
  29.  
  30. /*
  31.  * Print the error message and return to the caller after setting the error
  32.  * indication.
  33.  */
  34. void
  35. error(
  36. const char *format,
  37. ...)
  38. {
  39.     va_list ap;
  40.  
  41.     va_start(ap, format);
  42.         fprintf(stderr, "%s: ", progname);
  43.     vfprintf(stderr, format, ap);
  44.         fprintf(stderr, "\n");
  45.     va_end(ap);
  46.     errors++;
  47. }
  48.  
  49. /*
  50.  * Print the error message, the architecture if not NULL and return to the
  51.  * caller after setting the error indication.
  52.  */
  53. void
  54. error_with_arch(
  55. const char *arch_name,
  56. const char *format,
  57. ...)
  58. {
  59.     va_list ap;
  60.  
  61.     va_start(ap, format);
  62.         fprintf(stderr, "%s: ", progname);
  63.     if(arch_name != NULL)
  64.         fprintf(stderr, "for architecture: %s ", arch_name);
  65.     vfprintf(stderr, format, ap);
  66.         fprintf(stderr, "\n");
  67.     va_end(ap);
  68.     errors++;
  69. }
  70.  
  71. /*
  72.  * Print the error message along with the system error message and return to
  73.  * the caller after setting the error indication.
  74.  */
  75. void
  76. system_error(
  77. const char *format,
  78. ...)
  79. {
  80.     va_list ap;
  81.  
  82.     va_start(ap, format);
  83.         fprintf(stderr, "%s: ", progname);
  84.     vfprintf(stderr, format, ap);
  85.     fprintf(stderr, " (%s)\n", strerror(errno));
  86.     va_end(ap);
  87.     errors++;
  88. }
  89.  
  90. /*
  91.  * Print the fatal error message and exit.
  92.  */
  93. void
  94. fatal(
  95. const char *format,
  96. ...)
  97. {
  98.     va_list ap;
  99.  
  100.     va_start(ap, format);
  101.         fprintf(stderr, "%s: ", progname);
  102.     vfprintf(stderr, format, ap);
  103.         fprintf(stderr, "\n");
  104.     va_end(ap);
  105.     exit(1);
  106. }
  107.  
  108. /*
  109.  * Print the fatal error message along with the system error message and exit.
  110.  */
  111. void
  112. system_fatal(
  113. const char *format,
  114. ...)
  115. {
  116.     va_list ap;
  117.  
  118.     va_start(ap, format);
  119.         fprintf(stderr, "%s: ", progname);
  120.     vfprintf(stderr, format, ap);
  121.     fprintf(stderr, " (%s)\n", strerror(errno));
  122.     va_end(ap);
  123.     exit(1);
  124. }
  125.  
  126. /*
  127.  * Print the error message along with the mach error string.
  128.  */
  129. void
  130. my_mach_error(
  131. kern_return_t r,
  132. char *format,
  133. ...)
  134. {
  135.     va_list ap;
  136.  
  137.     va_start(ap, format);
  138.         fprintf(stderr, "%s: ", progname);
  139.     vfprintf(stderr, format, ap);
  140.     fprintf(stderr, " (%s)\n", mach_error_string(r));
  141.     va_end(ap);
  142.     errors++;
  143. }
  144.  
  145. /*
  146.  * Print the fatal error message along with the mach error string and exit.
  147.  */
  148. void
  149. mach_fatal(
  150. kern_return_t r,
  151. char *format,
  152. ...)
  153. {
  154.     va_list ap;
  155.  
  156.     va_start(ap, format);
  157.         fprintf(stderr, "%s: ", progname);
  158.     vfprintf(stderr, format, ap);
  159.     fprintf(stderr, " (%s)\n", mach_error_string(r));
  160.     va_end(ap);
  161.     exit(1);
  162. }
  163.