/[winpt]/trunk/Src/wptErrors.cpp
ViewVC logotype

Contents of /trunk/Src/wptErrors.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 161 - (show annotations)
Thu Jan 19 16:10:37 2006 UTC (19 years, 1 month ago) by twoaday
File size: 7947 byte(s)
2006-01-19  Timo Schulz  <ts@g10code.com>
 
        * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Do not
        reload the entire cache, just update the key.
        * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Likewise.
        * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Set update flag.
        * wptKeyRevokersDlg.cpp (key_revokers_dlg_proc): Likewise.
        * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Update key
        if need after showing the properties.
         

1 /* wptErrors.cpp - Error management
2 * Copyright (C) 2000-2004 Timo Schulz
3 *
4 * This file is part of WinPT.
5 *
6 * WinPT is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * WinPT 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 GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with WinPT; if not, write to the Free Software Foundation,
18 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20
21 #ifdef HAVE_CONFIG_H
22 #include <config.h>
23 #endif
24
25 #include <windows.h>
26 #include <stdio.h>
27
28 #include "wptErrors.h"
29 #include "wptTypes.h"
30 #include "wptW32API.h"
31 #include "wptVersion.h"
32 #include "wptGPG.h"
33 #include "wptNLS.h"
34
35
36 static char *
37 gpg_strerror( int errid )
38 {
39 static char buf[512];
40 char * path = NULL;
41
42 path = get_gnupg_path();
43 if( !path )
44 BUG( NULL );
45 switch( errid ) {
46 case WPTERR_GPG_EXEFILE:
47 _snprintf( buf, sizeof buf - 1, _("Could not locate GPG.exe in %s."), path );
48 break;
49 case WPTERR_GPG_OPT_KEYRINGS:
50 case WPTERR_GPG_KEYRINGS:
51 _snprintf( buf, sizeof buf - 1,
52 _("Could not find keyring entries into the options file in %s "
53 "or the file does NOT exist."), path );
54 break;
55 }
56 free_if_alloc( path );
57 return buf;
58 } /* gpg_strerror */
59
60
61 static void
62 w32_fmt_msg (char *buf, size_t buflen)
63 {
64 FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError (),
65 MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
66 buf, buflen, NULL);
67 }
68
69 /* Return an error specific message.
70 If there is a translation available, it returns the translated text. */
71 const char*
72 winpt_strerror (int errid)
73 {
74 static char buf[256];
75
76 switch( errid ) {
77 case -1: w32_fmt_msg (buf, 255); return buf;
78 case WPTERR_GENERAL: return _("General error occured");
79 case WPTERR_FILE_OPEN: return _("Could not open file");
80 case WPTERR_FILE_CREAT: return _("Could not create file");
81 case WPTERR_FILE_READ: return _("Could not read file");
82 case WPTERR_FILE_WRITE: return _("Could not write file");
83 case WPTERR_FILE_CLOSE: return _("Could not close file");
84 case WPTERR_FILE_EXIST: return _("File does not exist");
85 case WPTERR_FILE_REMOVE: return _("Could not delete file");
86 case WPTERR_CLIP_OPEN: return _("Could not open Clipboard");
87 case WPTERR_CLIP_CLOSE: return _("Could not close Clipboard");
88 case WPTERR_CLIP_EMPTY: return _("Could not empty Clipboard");
89 case WPTERR_CLIP_SET: return _("Could not set Clipboard data");
90 case WPTERR_CLIP_GET: return _("Could not get Clipboard data");
91 case WPTERR_CLIP_ISEMPTY: return _("There is no text in the Clipboard");
92 case WPTERR_CLIP_SECURED: return _("The Clipboard already contains GPG data");
93 case WPTERR_CLIP: return _("General Clipboard error");
94 case WPTERR_REGISTRY: sprintf (buf, "%s", _("Registry error: "));
95 w32_fmt_msg (buf + strlen (buf), 128);
96 return buf;
97 case WPTERR_WINSOCK_INIT: return _("Could not startup Winsock 2 interface");
98 case WPTERR_WINSOCK_RESOLVE: return _("Could not resolve hostname");
99 case WPTERR_WINSOCK_SOCKET: return _("Could not create new socket");
100 case WPTERR_WINSOCK_CONNECT: return _("Could not connect to the host");
101 case WPTERR_WINSOCK_SENDKEY: return _("Could not send the key to the keyserver");
102 case WPTERR_WINSOCK_RECVKEY: return _("Could not receive the key from the keyserver");
103 case WPTERR_WINSOCK_TIMEOUT: return _("Socket timed out, no data");
104 case WPTERR_KEYSERVER_NOTFOUND: return _("Keyserver returned: no matching keys in database");
105 case WPTERR_HOTKEY: sprintf (buf, "%s", _("Could not register hotkey: "));
106 w32_fmt_msg (buf + strlen (buf), 128);
107 return buf;
108 case WPTERR_DIR_OPEN: return _("Could not open directory");
109 case WPTERR_DIR_CREAT: return _("Could not create directory");
110 case WPTERR_CURR_WND: return _("Could not extract data from the current window");
111 case WPTERR_CONFIG_FILE: return _("Could not load config file");
112 case WPTERR_GPG_EXEFILE:
113 case WPTERR_GPG_OPT_KEYRINGS:
114 case WPTERR_GPG_KEYRINGS: return gpg_strerror (errid);
115 case WPTERR_NODATA: return _("No data available");
116 case WPTERR_NOCARD: return _("There is no card in the reader");
117 case WPTERR_NOREADER: return _("There was no reader found");
118 case WPTERR_NOPGPCARD: return _("This is not an OpenPGP card");
119 case WPTERR_CDISK_LOCK: return _("Could not lock or unlock volume");
120 case WPTERR_CDISK_MOUNT: return _("Could not mount volume");
121 case WPTERR_CDISK_UMOUNT: return _("Could not unmount volume");
122 case WPTERR_CDISK_OPEN: return _("Could not open volume");
123 case WPTERR_CDISK_BUSY: return _("Drive that belongs to the volume is busy");
124 case WPTERR_CDISK_QUERY: return _("Could not query volume information");
125 default: _snprintf (buf, sizeof (buf) - 1, _("Unknown error=%d"), errid); return buf;
126 }
127
128 return NULL;
129 } /* winpt_strerror */
130
131
132 void
133 winpt_errmsg (const char * name, int is_file)
134 {
135 TCHAR buf[500], head[500];
136 DWORD last_err;
137
138 memset (head, 0, sizeof head);
139 last_err = GetLastError ();
140 if (!name)
141 strcpy (head, _("WinPT Error"));
142 else if (is_file)
143 _snprintf (head, DIM (head)-1, "%s: %d", name, last_err);
144 else
145 strncpy (head, name, DIM (head)-1);
146 FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM, NULL, last_err,
147 MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
148 buf, DIM (buf)-1, NULL);
149 MessageBox (NULL, buf, head, MB_OK);
150 } /* winpt_errmsg */
151
152
153
154 void
155 winpt_debug_msg( void )
156 {
157 char output[768], temp[384];
158
159 GetTempPath( sizeof temp -1, temp );
160 _snprintf( output, sizeof output - 1,
161 "The GPGME output file is gpgme.dbg\n"
162 "The WinPT output file is %swinpt.log\n", temp );
163 MessageBox( NULL, output, "WinPT now runs in DEBUG MODE", MB_INFO );
164 } /* winpt_debug_msg */
165
166
167 /* Dummy function. Not sure for what it is used. */
168 void
169 debug_end (void)
170 {
171
172
173 }
174
175
176
177 void
178 debug_box( const char *msg, const char *file, int line )
179 {
180 #if _DEBUG
181 char output[4096];
182
183 memset( output, 0, sizeof output );
184 _snprintf( output, sizeof output -1,
185 "WinPT DBG:\n \"%s\", file %s, line %d\n", msg, file, line );
186 MessageBox( NULL, output, PGM_NAME, MB_OK | MB_ICONERROR );
187 #endif
188 } /* debug_box */
189
190
191 void
192 debug_f( const char *msg, const char *file, int line )
193 {
194 #if _DEBUG
195 FILE *fp;
196 char temp_path[ 1024 ];
197 char output[ 4096 ];
198
199 GetTempPath( sizeof temp_path - 1, temp_path );
200 strcat( temp_path, "\\WinPT.DEBUG" );
201 fp = fopen( temp_path, "a+b" );
202 if( !fp )
203 return;
204 memset( output, 0, sizeof output );
205 _snprintf( output, sizeof output -1,
206 "WinPT DBG:\n \"%s\", file %s, line %d\n", msg, file, line );
207 fwrite( output, 1, strlen( output ), fp );
208 fflush( fp );
209 fclose( fp );
210 #endif
211 } /* debug_f */
212
213
214 void
215 log_debug (const char *format, ...)
216 {
217 FILE *fp;
218 char temp_path[384];
219 va_list arg_ptr;
220
221 if (!debug)
222 return;
223
224 GetTempPath (sizeof temp_path - 1, temp_path);
225 strcat (temp_path, "\\WinPT.LOG");
226 fp = fopen (temp_path, "a+b");
227 if (!fp)
228 return;
229 va_start (arg_ptr, format);
230 vfprintf (fp, format, arg_ptr);
231 va_end (arg_ptr);
232 fflush (fp);
233 fclose (fp);
234 }
235
236
237 int
238 printf_box (const char *title, int style, const char *format, ...)
239 {
240 va_list arg_ptr;
241 char log[8192];
242 int id;
243
244 va_start (arg_ptr, format);
245 _vsnprintf (log, sizeof (log)-1, format, arg_ptr);
246 id = msg_box (NULL, log, title? title : "Log Output", style);
247 va_end( arg_ptr );
248
249 return id;
250 } /* log_box */

Properties

Name Value
svn:eol-style native

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26