2003-02-04 Marcus Brinkmann <marcus@g10code.de>
[gpgme.git] / gpgme / mkerrors
1 #!/bin/sh
2 # mkerrors - Extract error strings from gpgme.h
3 #            and create C source for gpgme_strerror
4 #       Copyright (C) 2000 Werner Koch (dd9jn)
5 #       Copyright (C) 2001 g10 Code GmbH
6 #
7 # This file is part of GPGME.
8 #
9 # GPGME is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
13 #
14 # GPGME is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 # GNU General Public License for more details.
18 #
19 # You should have received a copy of the GNU General Public License
20 # along with this program; if not, write to the Free Software
21 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
22
23 cat <<EOF
24 /* Generated automatically by mkerrors */
25 /* Do not edit! */
26
27 #include <stdio.h>
28 #include "gpgme.h"
29
30 /**
31  * gpgme_strerror:
32  * @err:  Error code 
33  * 
34  * This function returns a textual representaion of the given
35  * errocode. If this is an unknown value, a string with the value
36  * is returned (which is hold in a static buffer).
37  * 
38  * Return value: String with the error description.
39  **/
40 const char *
41 gpgme_strerror (GpgmeError err)
42 {
43     const char *s;
44     static char buf[25];
45
46     switch (err) {
47 EOF
48
49 awk '
50 /GPGME_No_Error/   { okay=1 }
51 !okay              {next}
52 /}/                { exit 0 }
53 /GPGME_[A-Za-z_]*/ { print_code($1) }
54
55
56 function print_code( s )
57 {
58 printf "  case %s: s=\"", s ;
59 gsub(/_/, " ", s );
60 printf "%s\"; break;\n", substr(s,7);
61 }
62 '
63
64 cat <<EOF
65     default:  sprintf (buf, "ec=%d", err ); s=buf; break;
66 }
67
68 return s;
69 }
70
71 EOF
72
73
74
75
76
77
78
79
80
81
82
83
84