PageRenderTime 46ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/tools/cc65-2.13.2/src/ld65/error.c

http://github.com/gilligan/snesdev
C | 112 lines | 41 code | 31 blank | 40 comment | 0 complexity | ed86c207d9a2f95a7df861056a3143d2 MD5 | raw file
  1. /*****************************************************************************/
  2. /* */
  3. /* error.c */
  4. /* */
  5. /* Error handling for the ld65 linker */
  6. /* */
  7. /* */
  8. /* */
  9. /* (C) 1998-2008 Ullrich von Bassewitz */
  10. /* Roemerstrasse 52 */
  11. /* D-70794 Filderstadt */
  12. /* EMail: uz@cc65.org */
  13. /* */
  14. /* */
  15. /* This software is provided 'as-is', without any expressed or implied */
  16. /* warranty. In no event will the authors be held liable for any damages */
  17. /* arising from the use of this software. */
  18. /* */
  19. /* Permission is granted to anyone to use this software for any purpose, */
  20. /* including commercial applications, and to alter it and redistribute it */
  21. /* freely, subject to the following restrictions: */
  22. /* */
  23. /* 1. The origin of this software must not be misrepresented; you must not */
  24. /* claim that you wrote the original software. If you use this software */
  25. /* in a product, an acknowledgment in the product documentation would be */
  26. /* appreciated but is not required. */
  27. /* 2. Altered source versions must be plainly marked as such, and must not */
  28. /* be misrepresented as being the original software. */
  29. /* 3. This notice may not be removed or altered from any source */
  30. /* distribution. */
  31. /* */
  32. /*****************************************************************************/
  33. #include <stdio.h>
  34. #include <stdlib.h>
  35. #include <stdarg.h>
  36. /* common */
  37. #include "cmdline.h"
  38. #include "strbuf.h"
  39. /* ld65 */
  40. #include "error.h"
  41. /*****************************************************************************/
  42. /* Code */
  43. /*****************************************************************************/
  44. void Warning (const char* Format, ...)
  45. /* Print a warning message */
  46. {
  47. StrBuf S = STATIC_STRBUF_INITIALIZER;
  48. va_list ap;
  49. va_start (ap, Format);
  50. SB_VPrintf (&S, Format, ap);
  51. va_end (ap);
  52. SB_Terminate (&S);
  53. fprintf (stderr, "%s: Warning: %s\n", ProgName, SB_GetConstBuf (&S));
  54. SB_Done (&S);
  55. }
  56. void Error (const char* Format, ...)
  57. /* Print an error message and die */
  58. {
  59. StrBuf S = STATIC_STRBUF_INITIALIZER;
  60. va_list ap;
  61. va_start (ap, Format);
  62. SB_VPrintf (&S, Format, ap);
  63. va_end (ap);
  64. SB_Terminate (&S);
  65. fprintf (stderr, "%s: Error: %s\n", ProgName, SB_GetConstBuf (&S));
  66. SB_Done (&S);
  67. exit (EXIT_FAILURE);
  68. }
  69. void Internal (const char* Format, ...)
  70. /* Print an internal error message and die */
  71. {
  72. StrBuf S = STATIC_STRBUF_INITIALIZER;
  73. va_list ap;
  74. va_start (ap, Format);
  75. SB_VPrintf (&S, Format, ap);
  76. va_end (ap);
  77. SB_Terminate (&S);
  78. fprintf (stderr, "%s: Internal Error: %s\n", ProgName, SB_GetConstBuf (&S));
  79. SB_Done (&S);
  80. exit (EXIT_FAILURE);
  81. }