error.c
上传用户:knt0001
上传日期:2022-01-28
资源大小:264k
文件大小:2k
源码类别:

Email客户端

开发平台:

C/C++

  1. /**
  2.     eMail is a command line SMTP client.
  3.     Copyright (C) 2001 - 2008 email by Dean Jones
  4.     Software supplied and written by http://www.cleancode.org
  5.     This file is part of eMail.
  6.     eMail is free software; you can redistribute it and/or modify
  7.     it under the terms of the GNU General Public License as published by
  8.     the Free Software Foundation; either version 2 of the License, or
  9.     (at your option) any later version.
  10.     eMail is distributed in the hope that it will be useful,
  11.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.     GNU General Public License for more details.
  14.     You should have received a copy of the GNU General Public License
  15.     along with eMail; if not, write to the Free Software
  16.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  17. **/
  18. #if HAVE_CONFIG_H
  19. # include "config.h"
  20. #endif
  21. #include <stdio.h>
  22. #include <string.h>
  23. #include <stdarg.h>
  24. #include <errno.h>
  25. #include "email.h"
  26. #include "error.h"
  27. /**
  28.  * Simply provide an fatal error message to stderr
  29.  * We don't exit inside of this function because cleanup may 
  30.  * need to happen so we allow the caller to handle the exit.
  31. **/
  32. void
  33. fatal(const char *message, ...)
  34. {
  35. int tmp_error = errno;
  36. va_list vp;
  37. va_start(vp, message);
  38. fprintf(stderr, "email: FATAL: ");
  39. vfprintf(stderr, message, vp);
  40. /* if message has a n mark, don't call perror */
  41. if (strchr(message, 'n') == NULL) {
  42. fprintf(stderr, ": %sn", strerror(tmp_error));
  43. }
  44. va_end(vp);
  45. }
  46. /**
  47.  * Warning will just warn with the specified warning message 
  48.  * and then return from the function not exiting the system.
  49. **/
  50. void
  51. warning(const char *message, ...)
  52. {
  53. int tmp_error = errno;
  54. va_list vp;
  55. va_start(vp, message);
  56. fprintf(stderr, "email: WARNING: ");
  57. vfprintf(stderr, message, vp);
  58. /* if message has a n mark, don't call perror */
  59. if (strchr(message, 'n') == NULL) {
  60. fprintf(stderr, ": %sn", strerror(tmp_error));
  61. }
  62. va_end(vp);
  63. }