See ChangeLog: Wed Dec 23 13:34:22 CET 1998 Werner Koch
[gnupg.git] / util / errors.c
1 /* errors.c  -  error strings
2  *      Copyright (C) 1998 Free Software Foundation, Inc.
3  *
4  * This file is part of GnuPG.
5  *
6  * GnuPG 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  *
11  * GnuPG is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
19  */
20
21 #include <config.h>
22 #include <stdio.h>
23 #include <stdlib.h>
24 #include <stdarg.h>
25
26 #include "errors.h"
27 #include "i18n.h"
28
29 #ifndef HAVE_STRERROR
30 char *
31 strerror( int n )
32 {
33     extern char *sys_errlist[];
34     extern int sys_nerr;
35     static char buf[15];
36
37     if( n >= 0 && n < sys_nerr )
38         return sys_errlist[n];
39     strcpy( buf, "Unknown error" );
40     return buf;
41 }
42 #endif /* !HAVE_STRERROR */
43
44 const char *
45 g10_errstr( int err )
46 {
47     static char buf[50];
48     const char *p;
49
50   #define X(n,s) case G10ERR_##n : p = s; break;
51     switch( err ) {
52       case -1:          p = "eof"; break;
53       case 0:           p = "okay"; break;
54       X(GENERAL,        N_("General error"))
55       X(UNKNOWN_PACKET, N_("Unknown packet type"))
56       X(UNKNOWN_VERSION,N_("Unknown version"))
57       X(PUBKEY_ALGO    ,N_("Unknown pubkey algorithm"))
58       X(DIGEST_ALGO    ,N_("Unknown digest algorithm"))
59       X(BAD_PUBKEY     ,N_("Bad public key"))
60       X(BAD_SECKEY     ,N_("Bad secret key"))
61       X(BAD_SIGN       ,N_("Bad signature"))
62       X(CHECKSUM   ,    N_("Checksum error"))
63       X(BAD_PASS     ,  N_("Bad passphrase"))
64       X(NO_PUBKEY      ,N_("Public key not found"))
65       X(CIPHER_ALGO    ,N_("Unknown cipher algorithm"))
66       X(KEYRING_OPEN   ,N_("Can't open the keyring"))
67       X(INVALID_PACKET ,N_("Invalid packet"))
68       X(INVALID_ARMOR  ,N_("Invalid armor"))
69       X(NO_USER_ID     ,N_("No such user id"))
70       X(NO_SECKEY      ,N_("Secret key not available"))
71       X(WRONG_SECKEY   ,N_("Wrong secret key used"))
72       X(UNSUPPORTED    ,N_("Not supported"))
73       X(BAD_KEY        ,N_("Bad key"))
74       X(READ_FILE      ,N_("File read error"))
75       X(WRITE_FILE     ,N_("File write error"))
76       X(COMPR_ALGO     ,N_("Unknown compress algorithm"))
77       X(OPEN_FILE      ,N_("File open error"))
78       X(CREATE_FILE    ,N_("File create error"))
79       X(PASSPHRASE     ,N_("Invalid passphrase"))
80       X(NI_PUBKEY      ,N_("Unimplemented pubkey algorithm"))
81       X(NI_CIPHER      ,N_("Unimplemented cipher algorithm"))
82       X(SIG_CLASS      ,N_("Unknown signature class"))
83       X(TRUSTDB        ,N_("Trust database error"))
84       X(BAD_MPI        ,N_("Bad MPI"))
85       X(RESOURCE_LIMIT ,N_("Resource limit"))
86       X(INV_KEYRING    ,N_("Invalid keyring"))
87       X(BAD_CERT       ,N_("Bad certificate"))
88       X(INV_USER_ID    ,N_("Malformed user id"))
89       X(CLOSE_FILE     ,N_("File close error"))
90       X(RENAME_FILE    ,N_("File rename error"))
91       X(DELETE_FILE    ,N_("File delete error"))
92       X(UNEXPECTED     ,N_("Unexpected data"))
93       X(TIME_CONFLICT  ,N_("Timestamp conflict"))
94       X(WR_PUBKEY_ALGO ,N_("Unusable pubkey algorithm"))
95       X(FILE_EXISTS    ,N_("File exists"))
96       X(WEAK_KEY       ,N_("Weak key"))
97       default: p = buf; sprintf(buf, "g10err=%d", err); break;
98     }
99   #undef X
100     return _(p);
101 }
102