aboutsummaryrefslogtreecommitdiff
path: root/src/emess.c
diff options
context:
space:
mode:
authorFrank Warmerdam <warmerdam@pobox.com>1999-03-18 16:34:52 +0000
committerFrank Warmerdam <warmerdam@pobox.com>1999-03-18 16:34:52 +0000
commit565a4bd035b9d4a83955808efef20f1d8dfa24cf (patch)
tree75785fc897708023f1ccdaf40079afcbaaf0fd3a /src/emess.c
downloadPROJ-565a4bd035b9d4a83955808efef20f1d8dfa24cf.tar.gz
PROJ-565a4bd035b9d4a83955808efef20f1d8dfa24cf.zip
New
git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@776 4e78687f-474d-0410-85f9-8d5e500ac6b2
Diffstat (limited to 'src/emess.c')
-rw-r--r--src/emess.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/emess.c b/src/emess.c
new file mode 100644
index 00000000..9e357f9f
--- /dev/null
+++ b/src/emess.c
@@ -0,0 +1,50 @@
+/* Error message processing */
+#ifndef lint
+static const char SCCSID[]="@(#)emess.c 4.6 94/05/24 GIE REL";
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <errno.h>
+#include <string.h>
+#define EMESS_ROUTINE
+#include "emess.h"
+extern char const pj_release[];
+ void
+emess(int code, char *fmt, ...) {
+ va_list args;
+
+ va_start(args, fmt);
+ /* prefix program name, if given */
+ if (fmt != NULL)
+ (void)fprintf(stderr,"%s\n<%s>: ",pj_release,emess_dat.Prog_name);
+ /* print file name and line, if given */
+ if (emess_dat.File_name != NULL && *emess_dat.File_name) {
+ (void)fprintf(stderr,"while processing file: %s", emess_dat.File_name);
+ if (emess_dat.File_line > 0)
+ (void)fprintf(stderr,", line %d\n", emess_dat.File_line);
+ else
+ (void)fputc('\n', stderr);
+ } else
+ putc('\n', stderr);
+ /* if |code|==2, print errno code data */
+ if (code == 2 || code == -2)
+ (void)fprintf(stderr, "Sys errno: %d: %s\n",
+ errno,
+#ifdef HAVE_STRERROR
+ strerror(errno));
+#else
+ "<system mess. texts unavail.>");
+#endif
+ /* post remainder of call data */
+ (void)vfprintf(stderr,fmt,args);
+ va_end(args);
+ /* die if code positive */
+ if (code > 0) {
+ (void)fputs("\nprogram abnormally terminated\n", stderr);
+ exit(code);
+ }
+ else
+ putc('\n', stderr);
+}