*** empty log message ***
[m17n/libotf.git] / src / otferror.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4
5 #include "otf.h"
6
7 static char *error_message;
8 int OTF_error;
9
10 static char *error_string[] =
11   {
12     "No error",
13     "Memory shortage",
14     "File error",
15     "Invalid table",
16     "CMAP drive",
17     "GDEF drive",
18     "GSUB drive",
19     "GPOS drive"
20   };
21
22 int
23 otf__error (int err, char *fmt, void *arg)
24 {
25   if (! error_message)
26     error_message = (char *) malloc (256);
27   sprintf (error_message, "OTF-Error (%s): ", error_string[err]);
28   sprintf (error_message + strlen (error_message), fmt, arg);
29   OTF_error = err;
30   return 0;
31 }
32
33 void
34 OTF_perror (char *prefix)
35 {
36   if (OTF_error == 0)
37     error_message = error_string[0];
38   if (prefix)
39     fprintf (stderr, "%s: %s\n", prefix, error_message);
40   else
41     fprintf (stderr, "%s\n", error_message);
42 }