e2926f243aded468f725da2946c227c5ae8bbb74
[pinentry.git] / ChangeLog
1 2009-05-04  Till Adam <till@kdab.net>
2
3         * qt4/main.cpp (qt_cmd_handler): Use WId instead of HWND.
4
5 2009-04-14  Marcus Brinkmann  <marcus@g10code.de>
6
7         * pinentry/pinentry.h (struct pinentry): New member NOTOK.
8         Rename member USER_CLOSED to CANCELED.
9         * pinentry/pinentry.c: Add initializer for NOTOK.
10         (register_commands): Add SETNOTOK.
11         * pinentry/pinentry-curses.c (STRING_NOTOK): New macro.
12         (dialog_pos_t): New value DIALOG_POS_NOTOK.
13         (struct dialog): New members notok, notok_x, notok_y.
14         (dialog_create): Implement NOTOK.
15         (dialog_switch_pos): Likewise.
16         (dialog_run): Likewise.
17         * gtk+-2/pinentry-gtk-2.c: Rename confirm_yes to confirm_value.
18         (confirm_value_t): New type.  Use it for confirm_value.
19         (window_closed): Remove.
20         (confirm_button_clicked): Set confirm_value.
21         (create_window): Implement NOTOK.
22         (gtk_cmd_handler): Implement cancel behaviour a bit differently.
23
24 2009-04-09  Marcus Brinkmann  <marcus@g10code.de>
25
26         * qt4/qsecurelineedit.h (QSecureLineEdit): Don't export.
27
28 2009-04-06  Marcus Brinkmann  <marcus@g10code.de>
29
30         * configure.ac: Portability fixes.
31
32 2009-04-03  Marcus Brinkmann  <marcus@g10code.de>
33
34         * qt4/Makefile.am (pinentry_qt4_SOURCES): Add qsecurelineedit_p.h.
35
36         * secmem/Makefile.am (libsecmem_a_SOURCES): Add secmem++.h.
37         * qt4/Makefile.am (pinentry_qt4_SOURCES): Add pinentrydialog.moc
38         and qsecurelineedit.
39
40         * configure.ac: Incorporate revision number in version string.
41
42 2009-04-02  Till Adam <till@kdab.net>
43
44         * qt4/qsecurelineedit.moc, qt4/main.cpp, qt4/pinentrydialog.moc,
45         qt4/qsecurelineedit.cpp, qt4/pinentrydialog.cpp,
46         qt4/pinentrydialog.h: Implement quality bar and grabbing.
47
48         * qt4/pinentrydialog.cpp (PinEntryDialog): Enable word wrapping.
49
50 2009-04-03  Marcus Brinkmann  <marcus@g10code.de>
51
52         * qt4/main.cpp (qt_cmd_handler): Cast window handle ID.
53
54 2009-03-19  Werner Koch  <wk@g10code.com>
55
56         * pinentry/pinentry.h (struct pinentry): Add field user_closed.
57         * pinentry/pinentry.c (cmd_getpin, cmd_confirm, cmd_message):
58         Reset this field.
59         (cmd_confirm): Return cancel if the user closed the window.
60         * gtk+-2/pinentry-gtk-2.c (window_closed): New.
61         (gtk_cmd_handler, delete_event): Set it.
62
63 2009-02-19  Marcus Brinkmann  <marcus@g10code.de>
64
65         * secmem/secmem++.h: New file.
66         * qt4/Makefile.am, qt4/main.cpp, qt4/pinentrydialog.cpp,
67         qt4/pinentrydialog.h: Changes to use secure memory.
68         * qt4/pinentrydialog.moc, qt4/qsecurelineedit.moc: New files.
69         * qt4/qsecurelineedit.cpp, qt4/qsecurelineedit.h,
70         qt4/qsecurelineedit_p.h, qt4/secstring.h, qt4/secstring.cpp: New
71         files.
72         Submitted by Marc Mutz <marc@kdab.net>.
73
74 2008-12-08  Werner Koch  <wk@g10code.com>
75
76         * qt/main.cpp (qt_cmd_handler) <!want_pass>: Translate from utf8.
77         * qt4/main.cpp (qt_cmd_handler) <!want_pass>: Translate from utf8.
78
79 2008-11-12  Ludovic Rousseau <ludovic.rousseau@gmail.com>  (wk)
80
81         * pinentry/pinentry.h (struct pinentry): Add field TITLE.
82         * pinentry/pinentry.c (cmd_settitle): New.
83         (register_commands): Add command SETTITLE.
84         * gtk+-2/pinentry-gtk-2.c (create_window): Set the title.
85
86 2008-10-17  Werner Koch  <wk@g10code.com>
87
88         * secmem/memory.h: Add C++ extern declaration.
89
90         * secmem/secmem.c (secmem_get_max_size): New.
91
92 2008-07-25  Marcus Brinkmann  <marcus@ulysses.g10code.com>
93
94         * qt4/Makefile.am (DISTCLEANFILES): Rename to CLEANFILES.
95         (BUILD_SOURCES): New.
96
97 2008-07-25  Marcus Brinkmann  <marcus@g10code.de>
98
99         * configure.ac: Prefer pinentry gtk2 over gtk.  Now also choose
100         qt4 (after qt and before w32 native).
101         * README: Document Qt.
102
103 2008-07-24  Marcus Brinkmann  <marcus@g10code.de>
104
105         * qt4/pinentrydialog.h, qt4/pinentrydialog.cpp, qt4/main.cpp,
106         qt4/Makefile.am: New files.
107         * configure.ac: Add check for Qt4.
108         (AC_CONFIG_FILES): Add qt4/Makefile.am.
109         * Makefile.am (pinentry_qt4): New variable.
110         (SUBDIRS): Add ${pinentry_qt4}.
111
112 2008-07-23  Werner Koch  <wk@g10code.com>
113
114         * secmem/secmem.c (secmem_init): Fix apostrophe in error
115         message. Reported by Petr Uzel.
116
117 2008-05-05  Marcus Brinkmann  <marcus@ulysses.g10code.com>
118
119         * gtk+-2/gtksecentry.c (GMALLOC_SIZE): New symbol.
120         (g_malloc, g_malloc0, g_realloc): Use GMALLOC_SIZE instead of
121         gulong for size attribute.
122
123 2008-03-03  Marcus Brinkmann  <marcus@g10code.de>
124
125         * gtk+-2/pinentry-gtk-2.c (create_window): Install realize callback.
126         (ungrab_keyboard): Unmake dialog transient.
127         (make_transient): New function.
128         Submitted by Joachim Breitner.
129
130 2008-02-15  Werner Koch  <wk@g10code.com>
131
132         Release 0.7.4.
133
134 2008-02-14  Werner Koch  <wk@g10code.com>
135
136         * configure.ac: Check for -Wno-pointer-sign.
137
138         * pinentry/pinentry.c (cmd_getinfo): New.
139         (register_commands): Register it.
140
141 2008-01-02  Marcus Brinkmann  <marcus@g10code.de>
142
143         * configure.ac: Use PKG_CONFIG instead of PKGCONFIG and
144         pkg-config.  Use AC_PATH_PROG instead of AC_CHECK_PROG.
145
146         * Makefile.am (install-exec-local): Add exe extension to link.
147
148 2007-11-29  Marcus Brinkmann  <marcus@g10code.de>
149
150         Released 0.7.4.
151
152 2007-11-19  Werner Koch  <wk@g10code.com>
153
154         * doc/pinentry.texi (Protocol): Typo fixes by Bernhard Herzog.
155         Describe SETQUALITYBAR_TT.
156
157 2007-11-19  Bernhard Herzog  <bernhard.herzog@intevation.de>  (wk)
158
159         * qt/pinentrydialog.cpp (PinEntryDialog): Fixed crash
160         
161 2007-11-19  Werner Koch  <wk@g10code.com>
162
163         * gtk+-2/pinentry-gtk-2.c (create_window): Use again map-event and
164         unmap-event as this works on my setup far more reliable than
165         expose-event/no-expose-event.
166
167         * gtk+-2/gtksecentry.c (get_cursor_time): s/time/blinktime/ t
168         avoid shadowing warning.
169
170         * pinentry/pinentry.h (struct pinentry): Change QUALITY_BAR to a
171         char ptr.
172         (struct pinentry): Add QUALITY_BAR_TT.
173         * pinentry/pinentry.c (cmd_setqualitybar): Allow to set a label text.
174         (cmd_setqualitybar_tt): New.
175         * gtk+-2/pinentry-gtk-2.c (create_window): Take label and tooltip
176         from global.
177         * qt/pinentrydialog.h (setQualityBar, setQualityBarTT)
178         (_quality_bar_label): New.
179         * qt/pinentrydialog.cpp (setQualityBar, setQualityBarTT): New.
180         (PinEntryDialog): Remove setting of tooltip.
181
182         * qt/main.cpp (qt_cmd_handler): Propagate quality bar label and tootip.
183
184 2007-11-19  Bernhard Herzog  <bernhard.herzog@intevation.de>  (wk)
185
186         * qt/pinentrydialog.cpp (PinEntryDialog): Move the quality bar
187         below the text entry and align them properly.  Show a tooltip.
188         * gtk+-2/pinentry-gtk-2.c (create_window): Ditto.  Don't let it
189         change its height.
190         (QUALITYBAR_EMPTY_TEXT): New.
191
192 2007-09-18  Werner Koch  <wk@g10code.com>
193
194         * qt/secqlineedit.h (SecQLineEdit): New signal textModified.
195         * qt/secqlineedit.cpp (finishChange): Emit it.
196         * qt/pinentrydialog.cpp (setPinentryInfo): New.
197         (PinEntryDialog): Add arg ENABLE_QUALITY_BAR.
198         * qt/pinentrydialog.h (setPinentryInfo): New.
199         (PinEntryDialog): Add arg ENABLE_QUALITY_BAR.
200
201         * pinentry/pinentry.h (struct pinentry): Add member QUALITY_BAR
202         and CTX_ASSUAN.
203         * pinentry/pinentry.c (cmd_setqualitybar): New.
204         (copy_and_escape): New.
205         (pinentry_inq_quality): New.
206
207 2007-07-09  Werner Koch  <wk@g10code.com>
208
209         * doc/pinentry.texi: Fixed direntry syntax.
210
211         * configure.ac: Add --without-libcap.  From the Gentoo patch archive.
212
213         * gtk+-2/pinentry-gtk-2.c (create_window): Use expose-event
214         instead of map-event.  From Alon Bar-Lev.
215
216 2007-07-06  Werner Koch  <wk@g10code.com>
217
218         Released 0.7.3.
219
220         * config.sub, config.guess: Updated from current Savannah CVS.
221
222 2007-06-27  Werner Koch  <wk@g10code.com>
223
224         * w32/main.c: Revamped the SetFocus stuff.  It is all not that easy.
225
226 2007-06-26  Werner Koch  <wk@g10code.com>
227
228         * w32/Makefile.am (pinentry_w32_LDFLAGS): Add -mconsole again.
229
230         * w32/main.c (dlg_proc): Set focus.
231         (resize_button): New.  No code yet.
232         (dlg_proc): Call it for the buttons.
233         (w32_cmd_handler): Restore old foreground window.
234
235 2007-06-20  Werner Koch  <wk@g10code.com>
236
237         * w32/Makefile.am (pinentry_w32_LDFLAGS): Remove -mconsole.
238
239         * w32/main.c (wchar_to_utf8): New.
240         (ok_button_clicked): Use it.
241         (utf8_to_wchar): New.
242         (set_dlg_item_text): New.
243         (dlg_proc): Use new function so that we are able to correctly
244         display all prompts.
245         (main): Load LockSetForegroundWindow.
246         (dlg_proc): Call LockSetForegroundWindow via its fnc ptr.
247         (center_window): New.  Taken from GPGol.
248         (dlg_proc): Call it.
249         (w32_cmd_handler): Revamped the confirm mode.
250
251 2007-06-18  Werner Koch  <wk@g10code.com>
252
253         * w32/main.c (dlg_proc): Call LockSetForegroundWindow.
254
255         * Makefile.am (signed-dist, %.sig): Remove.
256
257         * autogen.sh: Modernized.
258
259 2007-05-10  Marcus Brinkmann  <marcus@g10code.de>
260
261         * pinentry/pinentry.h (pinentry_color_t): New type.
262         (struct pinentry): New members COLOR_FG, COLOR_FG_BRIGHT,
263         COLOR_BG, COLOR_SO.
264         * pinentry/pinentry.c (pinentry_parse_opts): Support new option --colors.
265         (parse_color): New function.
266         * pinentry/pinentry-curses.c (USE_COLORS): New macro.
267         (pinentry_color): New static variable.
268         (dialog_create): Redo color management.
269
270         * pinentry/pinentry-curses.c (dialog_create): Re-add calculation
271         of cancel button position.  Adjust calculation of OK button
272         position if it is the only one used.
273
274 2007-04-13  Marcus Brinkmann  <marcus@g10code.de>
275
276         * qt/secqlineedit.h (SecQLineEdit::contextMenuEvent,
277         SecQLineEdit::createPopupMenu): Remove prototype.
278         * qt/secqlineedit.cpp (SecQLineEdit::contextMenuEvent,
279         SecQLineEdit::createPopupMenu): Remove implementation.
280         Submitted by Tobias Koenig <tokoe@kde.org>.
281
282 2007-02-14  Werner Koch  <wk@g10code.com>
283
284         * pinentry/pinentry.h (struct pinentry): Add TOUCH_FILE.
285         * pinentry/pinentry.c (option_handler): New option "touch-file".
286         (pinentry_have_display): Ignore an empty DISPLAY.
287         * pinentry/pinentry-curses.c (do_touch_file): New.
288         (curses_cmd_handler): Call it.
289         * configure.ac: Check for utime.h.
290
291 2007-01-24  Werner Koch  <wk@g10code.com>
292
293         * pinentry/pinentry.c (cmd_message): New.
294         (cmd_confirm): New command option --one-button.
295         (cmd_getpin): Zeroise ONE_BUTTON.
296         * pinentry/pinentry.h (struct pinentry): Add field ONE_BUTTON.
297         * gtk/pinentry-gtk.c (create_window): Take care of new option.
298         * gtk+-2/pinentry-gtk-2.c (create_window): Ditto.
299         * pinentry/pinentry-curses.c (dialog_create): Ditto.
300         (dialog_create, dialog_switch_pos): Allow CANCEL to be optional.
301
302 2006-07-29  Marcus Brinkmann  <marcus@g10code.de>
303
304         * secmem/secmem.c (init_pool): Close FD after establishing the
305         mapping.
306
307 2005-09-28  Marcus Brinkmann  <marcus@g10code.de>
308
309         * configure.ac (PINENTRY_GTK): Error out if iconv is not found but
310         needed.
311
312         * config.rpath: New file from gettext.  Needed by iconv.m4.
313
314 2005-07-11  Marcus Brinkmann  <marcus@g10code.de>
315
316         * pinentry/pinentry-curses.c (dialog_switch_pos): Set the cursor
317         state to invisible before moving around.  Move the cursor to the
318         beginning of the dialog buttons for accessibility.
319
320 2005-06-16  Marcus Brinkmann  <marcus@g10code.de>
321
322         * pinentry/pinentry-curses.c (dialog_run): Only convert pin if a
323         pin actually exists.
324
325 2005-01-27  Werner Koch  <wk@g10code.com>
326
327         Released 0.7.2.
328         
329         * gtk+-2/Makefile.am: Removed padlock-keyhole.xpm.
330
331         * configure.ac: Use AC_GNU_SOURCE instead of the custom define.
332         Prefer gtk2 pinentry over qt.
333
334 2005-01-21  Marcus Brinkmann  <marcus@g10code.de>
335
336         * doc/pinentry.texi: Fix spelling errors.
337         Submitted by Ville Skytt√§.
338
339 2004-12-23  Werner Koch  <wk@g10code.com>
340
341         * w32/pinentry-w32.rc: Remove the default texts for description,
342         prompt and error.  Make it system modal.  Enlarge the description
343         field.
344
345 2004-12-22  Timo Schulz  <twoaday@g10code.com>
346
347         * w32/main.c: Remove all helper functions and use a callback
348         to set the dialog items directly.
349         (dlg_proc): Set 'result' to -1 to indicate cancel.
350         (ok_button_clicked): Adjusted. Set 'result' to the len of
351         the PIN to indicate success.
352         
353 2004-12-22  Werner Koch  <wk@g10code.com>
354
355         * w32/main.c: Simplified.
356         * w32/dialog.h, w32/dialog.c, w32/controller.h, w32/controller.c:
357         Removed
358         
359         * w32/resource.h, w32/pinentry-w32.rc, w32/main.c, w32/dialog.h
360         * w32/dialog.c, w32/controller.h, w32/controller.c
361         * w32/Makefile.am: New.  Based on Timo's work.
362
363         Update to automake 1.9.
364         
365         * autogen.sh (configure_ac): Add --build-w32 option.
366         * Makefile.am: Support for the W32 pinentry. 
367         * configure.ac: Ditto.  Reformatted some error messages.
368         Define the usual conditionals for W32.
369         Check for a couple of more usually required headers.
370
371         * pinentry/pinentry.h (sleep) [W32]: New.
372
373         * pinentry/pinentry.c: Include langinfo.h only if available.
374         (pinentry_loop) [DOSISH]: Don't do uid check.
375
376         * secmem/util.c [DOSISH]: Disable UID stuff.
377         
378 2004-09-27  Marcus Brinkmann  <marcus@g10code.de>
379
380         * acinclude.m4 (IU_LIB_NCURSES, IU_LIB_CURSES, IU_LIB_TERMCAP):
381         Moved to m4/curses.m4.
382         (AM_ICONV): Moved to m4/iconv.m4.
383         (AM_PATH_GLIB): Moved to m4/glib.m4.
384         (QT_FIND_FILE, QT_PATH_MOC, QT_PATH_X, QT_PRINT_PROGRAM,
385         QT_CHECK_VERSION, QT_PATH_1_3, QT_PATH, QT_CHECK_COMPILER_FLAG,
386         QT_REMOVE_FORBIDDEN, QT_VALIDIFY_CXXFLAGS, QT_CHECK_COMPILERS,
387         QT_CHECK_RPATH, QT_CHECK_LIBPTHREAD, QT_CHECK_PTHREAD_OPTION,
388         QT_CHECK_THREADING): Move to m4/qt.m4.
389
390 2004-09-21  Marcus Brinkmann  <marcus@g10code.de>
391
392         * qt/Makefile.am (pinentry_qt_LDFLAGS): Add $(QT_RPATH).
393         Requested by Leo Savernik <l.savernik@aon.at>.
394
395 2004-09-02  Marcus Brinkmann  <marcus@g10code.de>
396
397         * gtk+-2/padlock-keyhole.xpm: File removed.
398         * gtk+-2/pinentry-gtk-2.c (create_window): Use stock icon.
399         * gtk+-2/gtksecentry.h, gtk+-2/gtksecentry.c: Fix copyright notice.
400
401         Submitted by Albrecht Dress albrecht.dress@arcor.de.
402
403 2004-08-17  Marcus Brinkmann  <marcus@g10code.de>
404
405         * configure.ac: Invoke AC_PROG_LN_S.
406         (PINENTRY_DEFAULT): New variable.  Substitute it.  Fail if no
407         default can be determined.
408         * Makefile.am (install-exec-local): Install pinentry default link.
409
410         * configure.ac: Check for Gtk+-2.
411         * gtk+-2: New directory with gtk+-2 pinentry.
412         * gtk+-2/Makefile.am, gtk+-2/gtksecentry.h, gtk+-2/gtksecentry.c,
413         gtk+-2/pinentry-gtk-2.c, gtk+-2/padlock-keyhole.xpm: New files.
414         * Makefile.am (pinentry_gtk_2): New variable.
415         (SUBDIRS): Add pinentry_gtk_2.
416
417         Submitted by Albrecht Dress albrecht.dress@arcor.de.
418         
419 2004-08-04  Werner Koch  <wk@g10code.de>
420
421         * pinentry/pinentry.c (usage): Print help to stdout.
422
423 2004-07-30  Moritz Schulte  <moritz@g10code.com>
424
425         * qt/Makefile.am (ncurses_include): Removed
426         -I$(top_srcdir)/pinentry ...
427         (AM_CPPFLAGS): ... added: -I$(top_srcdir)/pinentry.  Thanks to
428         Peter Eisentraut.
429
430         * pinentry/pinentry.c (pinentry_utf8_to_local): Declare INPUT
431         const.
432         (pinentry_local_to_utf8): Likewise.
433         (pinentry_utf8_to_local, pinentry_local_to_utf8): Compile only, if
434         either Curses or GTK+ support is enabled.
435         * configure.ac: Do also check for libiconv when the GTK+ version
436         of pinentry is to be build.  Define PINENTRY_CURSES, PINENTRY_GTK,
437         PINENTRY_QT depending on which versions of pinentry should be
438         build.
439
440 2004-05-21  Marcus Brinkmann  <marcus@g10code.de>
441
442         * acinclude.m4 (QT_CHECK_DIRECT): Removed.
443         (QT_PATH_1_3): Do never invoke QT_CHECK_DIRECT.
444
445 2004-04-21  Werner Koch  <wk@gnupg.org>
446
447         Released 0.7.1.
448
449 2004-04-20  Werner Koch  <wk@gnupg.org>
450
451         * secmem/secmem.c [!ORIGINAL_GPG_VERSION]: Include util.h for some
452         typedefs and protos.
453         (secmem_free, secmem_term): Use wipememory2 instead of memset.
454
455         * autogen.sh (configure_ac): Fixed version check (s/==/=/).
456
457 2004-04-02  Thomas Schwinge  <schwinge@nic-nac-project.de>
458
459         * autogen.sh: Added ACLOCAL_FLAGS.
460
461 2004-02-23  Marcus Brinkmann  <marcus@g10code.de>
462
463         * qt/main.cpp: Include "pinentry.h", not <pinentry.h>.
464
465 2004-01-30  Werner Koch  <wk@gnupg.org>
466
467         * configure.ac (fopencookie): Remove that test.
468
469 2004-01-28  Moritz Schulte  <mo@g10code.com>
470
471         * gtk/gtksecentry.c:
472         (gtk_secure_entry_key_press): Treat GDK_KP_Enter just like
473         GDK_Return.
474
475 2004-01-18  Marcus Brinkmann  <marcus@g10code.de>
476
477         * qt/secqstring.cpp: Do not include "private/qunicodetables_p.h".
478         (isRightToLeft): De-optimize direction query.
479
480         * qt/secqinternal_p.h, qt/secqinternal.cpp: New files.
481         * qt/Makefile.am (pinentry_qt_SOURCES): Add secqinternal_p.h
482         and secqinternal.cpp.
483         (EXTRA_DIST): Add README.SecQ.
484         * qt/secqlineedit.cpp: Include "secqinternal_p.h".
485         (drawContents): Use SecQSharedDoubleBuffer.
486
487 2004-01-02  Werner Koch  <wk@gnupg.org>
488
489         * configure.ac: Early check for a c++ compiler.
490
491 2003-12-23  Werner Koch  <wk@gnupg.org>
492
493         Released 0.7.0.
494
495         Added Manifest files to all directories.
496
497 2003-12-22  Werner Koch  <wk@gnupg.org>
498
499         * qt/main.cpp: Include errno.h.
500         (main): Translate the --display option to -display, so that the Qt
501         init code can grasp it.
502
503         * doc/ChangeLog: Removed and merged with this file.
504         * doc/pinentry.texi: Cleaned up.
505         * doc/fdl.texi: Removed.
506
507         * pinentry/pinentry.h (struct pinentry): Added LOCALE_ERR.
508         * gtk/pinentry-gtk.c (button_clicked): Set the LOCAE_ERR flag.
509         * pinentry/pinentry-curses.c (dialog_run): Ditto.
510         * pinentry/pinentry.c (cmd_getpin, cmd_confirm): Check this flag.
511         (pinentry_local_to_utf8): Release the correct buffer in the error
512         case. Print diagnostics.
513         (pinentry_utf8_to_local): Print diagnostics.
514         (pinentry_parse_opts): Make short options work.
515         (pinentry_utf8_to_local): Pass nl_langinfo to iconv_open.
516
517         * gtk/pinentry-gtk.c (button_clicked): Use the right value as
518         input for the conversion.
519
520         * pinentry/pinentry.c: New variable THIS_PGMNAME.
521         (pinentry_init): Add arg PGMNAME and store it.  Use it at all
522         marked placed instead of the constant "pinentry".
523         (usage): Use it here too.
524         * curses/pinentry-curses.c (main): Call pinentry_init with our name. 
525         * qt/main.cpp (main): Ditto.
526         * gtk/pinentry-gtk.c (main): Ditto. 
527
528         * configure.ac: Check for mmap.
529
530         * secmem/util.h (wipememory2,wipememory,wipe): New.
531         * secmem/util.c (wipe): Removed.
532         * secmem/util.c (lower_privs, raise_privs): Commented out.
533
534         * pinentry/pinentry.c (pinentry_loop): Add paranoia check for
535         dropped privs.
536
537         * secmem/secmem.c (lock_pool): Cleanup syntax of cpp directives.
538
539         * gtk/pinentry-gtk.c (main): Print package name in the version line.
540         * curses/pinentry-curses.c (main): Ditto.
541         * qt/main.cpp (main): Ditto. Fixed typo.
542
543         * gtk/pinentry-gtk.c: Include memory.h.
544         
545 2003-12-20  Marcus Brinkmann  <marcus@g10code.de>
546
547         * pinentry/pinentry.h (struct pinentry): New member PARENT_WID.
548         * pinentry/pinentry.c (pinentry): Add new member here.
549         (usage): Add --parent-wid.
550         (pinentry_parse_opts): Add case for "parent-wid".
551         (option_handler): Same here.
552
553 2003-12-19  Marcus Brinkmann  <marcus@g10code.de>
554
555         * pinentry/pinentry.c (cmd_setcancel): Use strcpy_escaped.
556         (cmd_setok): Likewise.
557         (cmd_setprompt): Likewise.
558         (pinentry_utf8_to_local): Don't use
559         nl_langinfo, but just lc_ctype directly.
560         * pinentry/pinentry.c (cmd_getpin): Do not convert passphrase to
561         UTF-8 here.
562         * gtk/pinentry-gtk.c (button_clicked): Convert passphrase to UTF8
563         here.
564         * pinentry/pinentry-curses.c (dialog_run): Likewise.
565
566 2003-12-14  Marcus Brinkmann  <marcus@g10code.de>
567
568         * pinentry/pinentry.c (pinentry_init): Register secmem_term as
569         atexit function.  Set assuan malloc hooks to secmem.
570         (pinentry_parse_opts): Add break statement to silence gcc warning.
571         * pinentry/pinentry.c (cmd_getpin): If canceled, release and clear
572         PINENTRY->pin nevertheless.
573
574         * acinclude.m4 (qt_incdirs): Add /usr/include/qt3.
575         * qt/Makefile.am (pinentry_qt_SOURCES): Remove cppmemory.h,
576         cppmemory.cpp, pinentrycontroller.h, pinentrycontroller.cpp.
577         (nodist_pinentry_qt_SOURCES): Remove pinentrycontroller.moc.cpp.
578         (libcurses): Move ../pinentry/libpinentry.a from here to ...
579         (pinentry_qt_LDADD): ... here.  Change order a bit to make it
580         work.
581         * qt/cppmemory.h, qt/cppmemory.cpp, qt/pinentrycontroller.h,
582         qt/pinentrycontroller.cpp: Files removed.
583         * qt/secqstring.h, qt/secqstring.cpp, secqlineedit.h,
584         secqlineedit.cpp: New files.
585         * qt/Makefile.am (pinentry_qt_SOURCES): Add secqstring.h,
586         secqstring.cpp, secqlineedit.h, and secqlineedit.cpp.
587         (nodist_pinentry_qt_SOURCES): Add secqlineedit.moc.cpp.
588         * qt/main.cpp: Do not include "memory.h" or "secmem-util.h", nor
589         <new> or "pinentrycontroller.h".  Include <qapplication.h>,
590         <qmessagebox.h>, <qwidget.h> and "secqstring.h".  Always include
591         <pinentry.h>.
592         [USE_KDE]: Remove all instances.
593         (curses_main): Function removed.
594         (my_new_handler): Likewise.
595         (qt_main): Likewise.
596         (qt_cmd_handler): New function.
597         (pinentry_cmd_handler): Define always (to qt_cmd_handler).
598         (main): Rewritten.
599         * qt/pinentrydialog.cpp: Do not include <qlineedit.h>, but
600         "secqlineedit.h".
601         (PinEntryDialog::PinEntryDialog): Make _edit a SecQLineEdit
602         object.  Connect accepted SIGNAL to accept SLOT, and rejected
603         SIGNAL to reject SLOT.
604         (PinEntryDialog::setText): Make argument SecQString rather than
605         QString.
606         (PinEntryDialog::text): Likewise for return value.
607         * qt/pinentrydialog.h: Declare SecQString and SecQLineEdit classes.
608         (class PinEntryDialog): Disable property text (for now).  Adjust
609         argument of setText and return value of text, as well as type of
610         _edit.  
611
612 2003-12-09  Werner Koch  <wk@gnupg.org>
613
614         * README.CVS: New.
615         * Makefile.am (EXTRA_DIST): Add README.CVS
616         (ACLOCAL_AMFLAGS): New.
617         * configure.ac: Added min_automake_versions.
618         * autogen.sh: Revamped.
619
620 2003-04-23  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
621
622         * configure.ac: Version 0.6.10-cvs
623
624 2003-04-23  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
625
626         * configure.ac: Version 0.6.9
627         * qt/Makefile.am: Added moc files to DISTCLEANFILES
628         * qt/pinentrycontroller.cpp: Dont spew assuan debug stuff out on stderr.
629
630 2003-03-26  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
631
632         * qt/cppmemory.cpp, qt/main.cpp: Only override array allocation
633           operators. This should take care of the reported memory-problems
634           and even make pinentry-qt use a bit less memory.
635
636 2003-02-15  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
637
638         * qt/pinentrydialog.h, qt/pinentrydialog.cpp: Added icons 
639           for error/non-error messages.
640
641 2003-02-07  Marcus Brinkmann  <marcus@g10code.de>
642
643         Released 0.6.8.
644
645 2003-02-04  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
646
647         * qt/main.cpp: Work around '--display' option. This fixes 
648           the pinentry-qt problem reported by several people lately.
649
650 2003-01-24  Werner Koch  <wk@gnupg.org>
651
652         * autogen.sh: Print a hint to use maintainer mode.
653
654 2002-12-24  Marcus Brinkmann  <marcus@g10code.de>
655
656         * pinentry/pinentry-curses.c (collect_line): New function.
657         (COPY_OUT, MAKE_BUTTON): New macros.
658         (dialog_create): Rewrite the initializing code and the description
659         calculation routine with word wrapping.
660
661 2002-11-20  Werner Koch  <wk@gnupg.org>
662
663         Released 0.6.7.
664
665         * pinentry/pinentry-curses.c (dialog_create): Better truncate
666         lines than to go into an infinite loop.  We need to implement word
667         wrap.
668         (dialog_run): Add DIALOG_POS_NONE to switch so prevent a warning.
669
670 2002-11-12  Werner Koch  <wk@gnupg.org>
671
672         * config.sub, config.guess: Updated from ftp.gnu.org/gnu/config
673         to version 2002-11-08.
674
675 2002-11-09  Werner Koch  <wk@gnupg.org>
676
677         Released 0.6.6.
678
679 2002-11-08  Werner Koch  <wk@gnupg.org>
680
681         * pinentry/pinentry-curses.c (convert_utf8_string): Renamed to 
682         * pinentry/pinentry.c (pinentry_utf8_to_local): this. Changed
683         callers.
684         (pinentry_local_to_utf8): New.
685         (cmd_getpin): Convert result back to UTF-8.
686         * gtk/pinentry-gtk.c (create_utf8_label): New.
687         (create_window): Use it here to set the prompts.
688
689 2002-11-06  Werner Koch  <wk@gnupg.org>
690
691         * pinentry/pinentry-curses.c (dialog_run): Fixed retrun value tests
692         for fopen.
693
694 2002-11-05  Werner Koch  <wk@gnupg.org>
695
696         * secmem/util.c (init_uids): Make it a prototype.
697
698         * gtk/pinentry-gtk.c (enter_callback): Changed argument name to
699         avoid shadowing warning.
700         (create_window): Removed unused variable I.
701         (ok): Not used, commented.
702
703         * pinentry/pinentry.c: Include headers for getpid and sleep
704         prototypes.
705
706         * secmem/util.h: Correctly declare functions taking no args. 
707
708         * gtk/pinentry-gtk.c: Move gtk headers to the top to avoid
709         compiler warnings about shadowing index etc.
710
711         * curses/pinentry-curses.c: Include stdio.h for the printf prototype.
712
713         * pinentry/pinentry-curses.c (dialog_switch_pos): Return a value.
714
715         * pinentry/pinentry.c (pinentry_have_display): New.
716         (pinentry_setbufferlen): Must return a value. Fixed documentation.
717         (usage): Print a question mark as a substitue for the program name.
718
719         * gtk/pinentry-gtk.c (main): use it here instead of getenv().
720         * qt/main.cpp (main): Ditto.
721
722 2002-10-11  Werner Koch  <wk@gnupg.org>
723
724         * configure.ac, Makefile.am: Added doc/ and tests for makeinfo
725
726         * doc/pinentry.texi, doc/Makefile.am: New.
727         * doc/gpl.texi, doc/fdl.texi: Added these standard files.
728
729 2002-09-30  Werner Koch  <wk@gnupg.org>
730
731         Released 0.6.5.
732         
733         * qt/pinentrycontroller.cpp (optionHandler): Make sure that a
734         value is returned.
735         * configure.ac: Use -Wall also for C++.
736
737 2002-08-19  Steffen Hansen  <steffen@hrhansen.dk>
738
739         * Relased 0.6.4.
740
741 2002-08-11  Steffen Hansen  <steffen@hrhansen.dk>
742
743         * Adapted pinentry-qt to new CONFIRM spec.
744
745 2002-06-26  Werner Koch  <wk@gnupg.org>
746
747         Release 0.6.3.
748
749 2002-05-24  Werner Koch  <wk@gnupg.org>
750
751         * AUTHORS: Added Marcus
752         * README: Fixed spelling of Quintuple-Agent. 
753
754 2002-05-13  Marcus Brinkmann  <marcus@g10code.de>
755
756         Released 0.6.2.
757         
758         * configure.ac: Set version number to 0.6.2.
759         * NEWS: Add information for 0.6.2.
760         * README: Update for release.
761
762 2002-05-09  Marcus Brinkmann  <marcus@g10code.de>
763
764         * configure.ac: Add option --enable-fallback-curses and bind it to
765         the ncurses check.  Add automake conditional
766         BUILD_LIBPINENTRY_CURSES and FALLBACK_CURSES. Add preprocessor
767         symbol FALLBACK_CURSES.
768
769         * curses/Makefile.am (AM_CPPFLAGS): Add $(NCURSES_INCLUDE).
770         (LDADD): Add ../pinentry/libpinentry-curses.a.
771         * curses/pinentry-curses.c: Include "pinentry-curses.h".
772         Moved most of the meat to ...
773         * pinentry/pinentry-curses.c: ... here.  New file.  Make all
774         functions and global variables static.
775         (dialog_cmd_handler): Rename to ...
776         (curses_cmd_handler): ... this.
777         * pinentry/pinentry-curses.h: New file.
778         * pinentry/Makefile.am (noinst_LIBRARIES)
779         [BUILD_LIBPINENTRY_CURSES]: Add libpinentry-curses.a.
780         (libpinentry_curses_a_SOURCES): New target.
781
782         * gtk/Makefile.am (INCLUDES): Moved all to ...
783         (AM_CPPFLAGS): ... here.
784         [CURSES_FALLBACK]: Define ncurses_include and libcurses.
785         (AM_CPPFLAGS): Add $(ncurses_include).
786         (LDADD): Add $(libcurses).
787         * gtk/pinentry-gtk.c: Rename TIMEOUT to TIME_OUT to avoid conflict
788         with curses.h.
789         [CURSES_FALLBACK]: Include "pinentry-curses.h".
790         (button_clicked): Likewise.
791         (create_window): Likewise.
792         (cmd_handler): Renamed to ...
793         (gtk_cmd_handler): ... this.
794         (pinentry_cmd_handler): Set to gtk_cmd_handler.
795         (main) [CURSES_FALLBACK]: Initialize GTK+ only if environment
796         variable DISPLAY is set, otherwise fall back to curses dialog.
797
798         * pinentry/pinentry.h: Protect against multiple inclusion.
799
800 2002-05-09  Marcus Brinkmann  <marcus@g10code.de>
801
802         * curses/pinentry-curses.c (dialog_create): Allow multi-line error
803         texts.
804
805         * pinentry/pinentry.c (cmd_seterror): Call strcpy_escaped, rather
806         than strcpy, to allow percent-escaping the error text.
807
808 2002-04-25  Steffen Hansen  <steffen@hrhansen.dk>
809
810         * pinentry-qt: Use ok and cancel value if
811         provided.
812
813 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
814
815         * gtk/pinentry-gtk.c (create_window): Use ok and cancel value if
816         provided.
817
818 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
819
820         * qt/pinentrycontroller.h: New members _ok and _cancel.
821         * qt/pinentrycontroller.cpp (registerCommands): Add SETOK and SETCANCEL.
822         (assuanOk): New method.
823         (assuanCancel): Likewise.
824
825 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
826
827         * curses/pinentry-curses.c (dialog_create): Grok the new ok and
828         cancel members to set the pbutton texts, rather than parsing the
829         prompt in the confirm case.
830
831         * pinentry/pinentry.h (struct pinentry): Add new members ok and cancel.
832         * pinentry/pinentry.c (register_commands): Add new commands SETOK
833         and SETCANCEL to set button texts.
834         (struct pinentry pinentry): Add initializers for new members.
835         (cmd_setok): New function.
836         (cmd_setcancel): Likewise.
837
838 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
839
840         * curses/pinentry-curses.c (dialog_create): Add '<' and '>' around
841         the user provided button texts.  Replace sizeof by strlen to fix
842         size calculation of ok and cancel button.
843
844 2002-04-23  Marcus Brinkmann  <marcus@g10code.de>
845
846         * pinentry/pinentry.h (struct pinentry): New variables lc_ctype
847         and lc_messages.
848         * pinentry/pinentry.c (usage): New options --lc-ctype and
849         --lc-messages.
850         (pinentry_parse_opts): Likewise.
851         (option_handler): Likewise.
852         (struct pinentry pinentry): New initializers for new members.
853
854         * curses/pinentry-curses.c (convert_utf8_string): New function.
855         (struct dialog): New members ok and cancel.
856         (dialog_create): New variables ERR, DESCRIPTION, ERROR, PROMPT,
857         OK, and CANCEL.  Initialize them with the localised versions of
858         the pinentry strings.  If in confirm mode, split up the prompt at
859         '|' and use the values as button texts.  Use localised strings.
860         (dialog_switch_pos): Use localised strings.
861         (dialog_run): Free dialog strings.
862
863         * acinclude.m4 (AM_ICONV): New check from gettext.
864         * configure.ac: Run AM_ICONV if curses pinentry is build.
865         Don't check for inttypes.h, don't check size of unsigned int or
866         unsigned long.
867         (LIBCAP): Move check to interface independent part.
868
869 2002-04-21  Steffen Hansen  <steffen@hrhansen.dk>
870
871         * Removed X11 dependency and use Qt for grabbing the keyboard.
872         * Clear the lineedit before asking the user for the PIN.
873
874 2002-04-12  Steffen Hansen  <steffen@hrhansen.dk>
875
876         * Enable pinentry-qt if Qt is found
877
878 2002-04-06  Marcus Brinkmann  <marcus@g10code.de>
879
880         * qt: New directory.
881         * qt/Makefile.am, qt/cppmemory.cpp, qt/main.cpp,
882         pinentrycontroller.cpp, qt/pinentrycontroller.h,
883         qt/pinentrydialog.cpp, qt/pinentrydialog.h: New file, copied from
884         kde/.
885         * kde: Directory removed.
886         * kde/Makefile.am, kde/cppmemory.cpp, kde/main.cpp,
887         kde/pinentry.desktop, kde/pinentrycontroller.cpp,
888         kde/pinentrycontroller.h, kde/pinentrydialog.cpp,
889         kde/pinentrydialog.h: Files removed.
890         * acinclude.m4: Removed the KE checks and completely overhauled
891         the Qt checks, putting all Qt checks in their own namespace QT_,
892         and make it declare QT_-prefixed variables for linking and
893         compilation.
894         * configure.ac: Use the new Qt checks instead the KDE checks.
895         Replace "kde" with "qt" everywhere.
896         * Makefile.am: Replace "kde" with "qt" everywhere.
897         
898 2002-04-06  Marcus Brinkmann  <marcus@g10code.de>
899
900         * acinclude.m4: Reworked the Qt and KDE checks, cutting out a lot
901         of dead and not-so-dead wood.  Gave all KDE checks proper names.
902         * configure.ac: Use the new names for the KDE checks.
903
904 2002-04-06  Marcus Brinkmann  <marcus@g10code.de>
905
906         * kde/Makefile.am (EXTRA_DIST): Remove variable.
907         (install-data-local): Remove target.
908         (uninstall-local): Likewise.
909
910 2002-04-05  Marcus Brinkmann  <marcus@g10code.de>
911
912         Released 0.6.0.
913         
914         * configure.ac: Set version number to 0.6.
915         * NEWS: Add information for 0.6.0.
916         * secmem/Makefile.am (libsecmem_a_SOURCES): Replace secmem.h with memory.
917         * kde/Makefile.am (pinentry_kde_SOURCES): Move
918         pinentrydialog.moc.cpp and pinentrycontroller.moc.cpp to ...
919         (nodist_pinentry_kde_SOURCES): ... this new target.
920
921 2002-04-05  Marcus Brinkmann  <marcus@g10code.de>
922
923         * acinclude.m4: A lot of new checks more or less straight from KDE's
924         admin/acinclude.m4.in.
925         * configure.ac (AC_CANONICAL_HOST): Call that macro.
926         (AC_CHECK_COMPILERS, AC_PATH_KDE): Call those macros if KDE
927         pinentry is enabled.
928         * kde/Makefile.am (CXXFLAGS, XXX_PREFIX, XXX_KDE_DEFINES, LIB_QT,
929         LIB_KDECORE, LIB_KDEUI, KDE_RPATH, MOC, kde_appsdir): Variables removed.
930         (AM_CPPFLAGS): Replace XXX_KDE_DEFINES by all_includes.
931         (pinentry_kde_LDFLAGS): Add all_libraries.
932         * README: Document that automatic check is not possible for KDE.
933
934 2002-04-05  Marcus Brinkmann  <marcus@g10code.de>
935
936         * curses/pinentry-curses.c (dialog_run): Add handling for TAB key.
937         (dialog_create): New variable description_x.  Calculate dimension
938         of multi-line description correctly.
939
940 2002-04-04  Marcus Brinkmann  <marcus@g10code.de>
941
942         * pinentry/pinentry.h (struct pinentry): New members DISPLAY,
943         TTYNAME and TTYTYPE.
944         * pinentry/pinentry.c (pinentry): Likewise.
945         * pinentry/pinentry.c: Include <string.h>.
946         (usage): Add new options --display,
947         --ttyname and --ttytype.
948         (option_handler): Likewise.
949         (pinentry_parse_opts): Likewise.
950
951         * curses/pinentry-curses.c (dialog_cmd_handler): Use
952         PINENTRY->ttyname and PINENTRY->ttytype.
953
954 2002-03-30  Marcus Brinkmann  <marcus@g10code.de>
955
956         * acinclude.m4: Add AM_PATH_GLIB and AM_PATH_GTK.
957
958 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
959
960         * configure.ac: Choose a more appropriate AC_CONFIG_SRCDIR.
961
962 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
963
964         * kde/Makefile.am (pinentry_kde_LDADD): Link with $(LIBCAP).
965         * gtk/Makefile.am (install-exec-local): Moved to ...
966         * Makefile.am (install-exec-local): ... here.
967
968 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
969
970         * kde/Makefile.am (kde_appsdir): New variable.
971         * kde/Makefile.am (install-data-local): Use DESTDIR.
972         (uninstall-local): Likewise.
973
974 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
975
976         Merge of the gpinentry and curses pinentry program into the
977         pinentry distribution.  For this, the structure of the repository
978         has been thoroughly overhauled.  Some of the changes:
979         * secmem: New directory with secure memory allocation code.
980         * pinentry: New directory with pinentry support library.
981         * curses: New directory with curses frontend.
982         * gtk: New directory with GTK+ frontend.
983         * kde: New directory with only the core of the old kpinentry program.
984         * admin: Directory removed.
985         * po: Directory removed.
986         * kpinentry: Directory removed.
987         * doc: Directory removed.
988         * jnlib: Directory removed.x
989
990         The changes in more detail:
991         * AUTHORS: Add authors of other pinentry frontends.
992         * ChangeLog: Add the one from gpinentry.
993         * Makefile.am: Completely rewritten.
994         * README: Add content.
995         * TODO: Add content.
996         * NEWS: New file from gpinentry.
997         * THANKS: New file from gpinentry.
998         * acinclude.m4: New file.
999         * configure.ac: New file which configures for all frontends.
1000         * curses/Makefile.am, curses/pinentry-curses.c: New files for
1001         curses frontend.
1002         * gtk/Makefile.am, gtk/gtksecentry.c, gtk/gtksecentry.h,
1003         gtk/pinentry-gtk.c: New files, modified from gpinentry, for GTK+
1004         frontend.
1005         * kde/Makefile.am, kde/cppmemory.cpp, kde/main.cpp,
1006         kde/pinentry.desktop, kde/pinentrycontroller.cpp,
1007         kde/pinentrycontroller.h, kde/pinentrydialog.cpp,
1008         kde/pinentrydialog.h: New files, modified from kpinentry, for KDE
1009         frontend.
1010         * pinentry/Makefile.am, pinentry/pinentry.c, pinentry/pinentry.h:
1011         New files containing pinentry support library, partly factored out
1012         from gpinentry.
1013         * secmem/Makefile.am, secmem/memory.h, secmem/secmem-util.h,
1014         secmem/secmem.c, secmem/util.c, secmem/util.h: New files
1015         containing secure memory allocation code common to all pinentry
1016         frontends.
1017         * Makefile.dist, acconfig.h, configure.files, configure.in.in:
1018         Files removed in favor of new configure.ac.
1019         * pinentry.lsm: Removed file never used.
1020         * stamp-h.in: Removed generated file.
1021         * admin/ChangeLog, admin/Makefile.common, admin/acinclude.m4.in,
1022         admin/am_edit, admin/am_edit.py, admin/conf.change.pl,
1023         admin/config.guess, admin/config.pl, admin/config.sub,
1024         admin/configure.in.min, admin/debianrules, admin/depcomp,
1025         admin/install-sh, admin/libtool.m4.in, admin/ltcf-c.sh,
1026         admin/ltcf-cxx.sh, admin/ltcf-gcj.sh, admin/ltconfig,
1027         admin/ltmain.sh, admin/missing, admin/mkinstalldirs, admin/ylwrap:
1028         Removed KDE build suite in favor of configure.ac.
1029         * doc/Makefile.am, doc/en/Makefile.am, doc/en/index.docbook:
1030         Removed files never used.
1031         * jnlib/ChangeLog, jnlib/Makefile.am, jnlib/argparse.c,
1032         jnlib/argparse.h jnlib/dotlock.c, jnlib/dotlock.h,
1033         jnlib/libjnlib-config.h, jnlib/logging.c, jnlib/logging.h,
1034         jnlib/mischelp.h, jnlib/stringhelp.c, jnlib/stringhelp.h,
1035         jnlib/strlist.c, jnlib/strlist.h, jnlib/types.h, jnlib/xmalloc.c,
1036         jnlib/xmalloc.h: Removed files no longer used.
1037         * kpinentry/Makefile.am, kpinentry/cppmemory.cpp,
1038         kpinentry/cppmemory.h, kpinentry/i18n.h, kpinentry/main.cpp,
1039         kpinentry/memory.h, kpinentry/pinentry.desktop,
1040         kpinentry/pinentrycontroller.cpp, kpinentry/pinentrycontroller.h,
1041         kpinentry/pinentrydialog.cpp, kpinentry/pinentrydialog.h,
1042         kpinentry/secmem.cpp, kpinentry/util.cpp, kpinentry/util.h:
1043         Removed files in favor of new files in kde/.
1044         * po/Makefile.am, po/pinentry.pot: Removed files never used.
1045
1046         * autogen.sh: New file.
1047
1048 2002-03-04  Werner Koch  <wk@gnupg.org>
1049
1050         * gpinentry.c (enter_callback): New
1051         (create_window): Connect it to the entry field.
1052
1053 2002-02-18  Werner Koch  <wk@gnupg.org>
1054
1055         Released 0.5.1.
1056
1057         * gpinentry.c (create_window): Add CONFIRM_MODE.
1058         (cmd_confirm): Implemented.
1059
1060         * assuan/:  Updated from NewPG.
1061
1062 2002-01-20  Werner Koch  <wk@gnupg.org>
1063
1064         * gpinentry.c (option_handler): New to allow changing of the grab
1065         status.
1066         (grab_keyboard): Shortcut this when global grab is not set.
1067
1068 2002-01-04  Werner Koch  <wk@gnupg.org>
1069
1070         Released 0.5.0.
1071         
1072         * configure.ac: Bumbed version
1073
1074         * util.h (xtoi_1, xtoi_2): New.
1075         * gpinentry.c (strcpy_escaped): New
1076         (cmd_setdesc, cmd_seterror): Use it here to allo multiline texts.
1077
1078         * gpinentry: Removed debugging outbut
1079         (create_window): Tweaked layout.
1080
1081 2001-12-07  Werner Koch  <wk@gnupg.org>
1082
1083         New package gpinentry based on quintuple-agent.
1084         
1085         Removed all stuff except for the basic configuration stuff and
1086         what is needed to build gpinentry.  Also removed i18n support.
1087         * gpinentry.c: Renamed from secret-query.c
1088
1089 2001-02-12  Robert Bihlmeyer  <robbe@orcus.priv.at>
1090
1091         * 1.0.0 released. Woo-hoo!
1092
1093         * configure.in, NEWS: Bumped version.
1094
1095 2001-02-04  Robert Bihlmeyer  <robbe@orcus.priv.at>
1096
1097         * agent.c (make_tmpdir): Honor $TMPDIR.
1098
1099         (agent): Would exit on every minor problem. Now, we just close the
1100         offending connection.
1101         Ignore SIGPIPE, so that EPIPE will close connection.
1102
1103 2001-01-11  Robert Bihlmeyer  <robbe@orcus.priv.at>
1104
1105         * secmem.c: Move one include statement so that the thing compiles.
1106
1107         * secret-query.c (main): Minor source cosmetics.
1108
1109 2000-11-16  Robert Bihlmeyer  <robbe@orcus.priv.at>
1110
1111         * gtksecentry.c (gtk_secure_entry_insert_text): Secured a couple
1112         of memory (de)allocations that were missed. Thanks to John Steele
1113         <jhs28@eng.cam.ac.uk> for spotting these.
1114
1115 2000-11-10  Robert Bihlmeyer  <robbe@orcus.priv.at>
1116
1117         * Thoughts: Removed in favor of new TODO.
1118
1119         * README: Remove content and refer to doc/manual.info instead.
1120
1121         * agent.c (do_get): Would burn badly on a premature exit of the
1122         query program (which would occur routinely if you selected /cancel/).
1123
1124 2000-10-25  Robert Bihlmeyer  <robbe@orcus.priv.at>
1125
1126         * memory.h: Include sys/types.h for size_t.
1127
1128 2000-10-08  Robert Bihlmeyer  <robbe@orcus.priv.at>
1129
1130         * README: Removed apology about missing documentation.
1131         Updated paragraph about Linux capability patch.
1132         Typo & Refill.
1133
1134 2000-10-03  Robert Bihlmeyer  <robbe@orcus.priv.at>
1135
1136         * 0.9 released.
1137
1138         * Makefile.am (EXTRA_DIST): Distribute BUGS (the file, that is).
1139
1140         * configure.in, NEWS: Bumped version.
1141
1142         * Makefile.am, configure.in: Add debian subdir.
1143
1144         * README: Recommend GTK+.
1145         Update list of checked platforms.
1146
1147 2000-10-02  Robert Bihlmeyer  <robbe@orcus.priv.at>
1148
1149         * secret-query.c (ok): Simplify.
1150         Put empty line between headers and secret.
1151         (usage): Document '--help' and '--version'.
1152
1153         * agent.c (do_get): Use enhanced secret-query output to fill in
1154         options.
1155
1156 2000-10-01  Robert Bihlmeyer  <robbe@orcus.priv.at>
1157
1158         * secret-query.c (main): Clarify error.
1159
1160         * client.c (query_options): New global variable.
1161         (main): New option '--query-options' to pass options to the query
1162         program.
1163         (xgetpass): Use it.
1164
1165         * agent.c (main): New option '--query-options' to pass options to
1166         the query program.
1167         (do_get): Use 'query_options'.
1168
1169         * acconfig.h, configure.in: Add QUERY_PROGRAM definition.
1170         * client.c: Remove here.
1171         * agent.c (do_get): Use it here, too.
1172
1173         * secret-query.c (main): New option '--no-global-grab' introduced,
1174         that prevents keyboard grabbing unless the window has focus.
1175
1176 2000-09-11  Robert Bihlmeyer  <robbe@orcus.priv.at>
1177
1178         * secret-query.c (usage): Add two missing pieces of "\n\".
1179
1180         * agent.c (main): --nofork is now the default, and the option is
1181         deprecated. New option --fork added to turn forking on again.
1182         Close stdout (and stderr unless debugging) even when not forking,
1183         so that normal usage inside eval is still possible.
1184         (agent): Exit gracefully on HUP, so that logging out now kills the
1185         agent. 
1186
1187         * README (Contact Information): Old URL - duh!
1188         (Using Secret Agent): We no longer fork per default.
1189
1190         * Makefile.am (lib/libutil.a): New target, allows targets that not
1191         automatically recurse (but still depend on libutil.a) to succeed.
1192
1193 2000-07-20  Robert Bihlmeyer  <robbe@orcus.priv.at>
1194
1195         * secret-query.c (usage): New function.
1196         (main): Parse options: debug, enhanced, help, version.
1197         Turn on locale support.
1198         If enhanced, insert widgets to ask for timeout and insurance.
1199         (ok): If enhanced, print more information on exit.
1200         (grab_keyboard): Die if grab was unsuccessful.
1201
1202 2000-05-31  Robert Bihlmeyer  <robbe@orcus.priv.at>
1203
1204         * 0.8 released.
1205
1206         * configure.in, NEWS: Bumped version.
1207
1208         * Makefile.am (SUBDIRS): Include doc.
1209
1210         * configure.in, acconfig.h: Check for ssize_t.
1211         Check for vsnprintf(), strdup().
1212         Generate doc/Makefile.
1213
1214         * apgp.c, agpg.c, agentlib.c, util.c: Include more stuff.
1215
1216         * agent.c (do_get): Use asprintf() instead of snprintf() so we
1217         don't need to roll our own for yet another function.
1218         Fix some includes.
1219
1220         * acinclude.m4: gettext macros copied from automake and fixed.
1221
1222 2000-05-30  Robert Bihlmeyer  <robbe@orcus.priv.at>
1223
1224         * configure.in, Makefile.am: Properly include doc subdir.
1225
1226 2000-05-29  Robert Bihlmeyer  <robbe@orcus.priv.at>
1227
1228         * configure.in, acconfig.h: Add test for XMESSAGE path.
1229
1230         * client.c (main): Decode command from string to integer code
1231         first, then evaluate that in ifs.
1232
1233         * secret-ask.c: New file, external ask-for-confirmation utility.
1234
1235         * configure.in, Makefile.am: Add secret-ask to programs being
1236         built when GTK is available. Rename QUERY to more descriptive
1237         GTK_PROGRAMS.
1238
1239         * agent.c (do_get): If GTK is available, try executing secret-ask
1240         first.
1241         Only put the comment into the insure-question if there is a
1242         comment.
1243         (main): --csh was missing from usage message.
1244
1245 2000-04-23  Robert Bihlmeyer  <robbe@orcus.priv.at>
1246
1247         * secret-query.c (constrain_size): Lower window max_width to
1248         accomodate bugs in GTK and Scwm.
1249
1250         * agent.c (main): Set x_enabled if X appears to be available.
1251         Use it to selectively make FLAGS_INSURE supported.
1252         (do_get): Use it instead of testing at every call.
1253         (do_put): Requests containing unsupported flags fail.
1254         (forget_old_stuff): Would not set next_deadline correctly.
1255         (do_get): Implement FLAGS_INSURE.
1256
1257         * client.c (main): "list" format changed so that comment is to the
1258         far right. Display the deadline as proper date/time, too.
1259
1260 1999-11-11  Robert Bihlmeyer  <robbe@orcus.priv.at>
1261
1262         * agent.c (next_deadline): New global variable, holds time when
1263         next secret has to be killed.
1264         (store): Keep it up-to-date.
1265         (forget_old_stuff): New function, reaps secrets ready to kill,
1266         keeps next_deadline updated.
1267         (agent): Use it on all secrets, whenever a deadline is active.
1268
1269 1999-11-08  Robert Bihlmeyer  <robbe@orcus.priv.at>
1270
1271         * agent.h (request_put): Add flags, deadline. Increase REQUEST_MAGIC. 
1272         (reply_get): Ditto, and increase REPLY_MAGIC.
1273         * agent.c (store): Store flags, deadline in reply.
1274         (do_put): Hand flags, deadline from request on to store().
1275         (do_get): Store on-demand queried secrets without deadline or
1276         special flags, for now.
1277         (agent): Do not ignore obsolete clients, return an error reply.
1278         * agentlib.c (agent_put): Add flags, deadline arguments, and copy
1279         them into the request.
1280         * agentlib.h (agent_put): Update prototype.
1281 *       * client.c (main): Added --time-to-live (-t) and --insure (-i)
1282         options, influencing PUT's deadline and flags, respectively.
1283         (main): Change list format to include new attributes.
1284
1285 1999-11-05  Robert Bihlmeyer  <robbe@orcus.priv.at>
1286
1287         * configure.in: <getopt.h> check had redundant definition.
1288         * acconfig.h: Remove here, too.
1289
1290         * configure.in: Check for <inttypes.h>. If not found, check for
1291         unsigned {int, long} sizes.
1292         * agent.h: Either include <inttypes.h>, or try to define uint32_t
1293         yourself.
1294         Need to include "config.h".
1295
1296 1999-11-04  Robert Bihlmeyer  <robbe@orcus.priv.at>
1297
1298         * Makefile.am (signed-dist): New rule, generates sig for dist.
1299         (%.sig): New rule, for detached signatures in general.
1300
1301         * configure.in: Check for ulong.
1302         * acconfig.h: Document it.
1303         * secmem.c: Unconditionally defining it is no longer necessary
1304         here. But do include <sys/types.h> in all cases.
1305
1306         * 0.7 released.
1307
1308         * secmem.c: ulong is not defined on all systems.
1309
1310         * agent.h: <inttypes.h> should define `uint32_t' as per Unix98, so
1311         we use that.
1312
1313 1999-11-02  Robert Bihlmeyer  <robbe@orcus.priv.at>
1314
1315         * agent.h: Augmented requests and replies with magic numbers.
1316         Data structures heavily commented.
1317         All structures and enums typedef'd.
1318         * agent.c: Adapted.
1319         (store): Set magic number in stored reply.
1320         (do_put): Set magic number in reply.
1321         (do_delete): Ditto.
1322         (do_list): Ditto. 
1323         (agent): Check magic number in request.
1324         * agentlib.c: Adapted.
1325         (send_request): Set magic number in request. Check it in reply.
1326         * agentlib.h: Adapted.
1327         * agpg.c: Adapted.
1328         * apgp.c: Adapted.
1329         * client.c: Adapted.
1330
1331 1999-10-31  Robert Bihlmeyer  <robbe@orcus.priv.at>
1332
1333         * secmem.c: Instead of defining ulong directly, include
1334         <sys/types.h>
1335
1336         * secret-query.c (constrain_size): New function, puts constrains
1337         on size of toplevel window.
1338         (grab_keyboard): Removed protection against multiple calls.
1339         (ungrab_keyboard): New function, cancelling a keyboard grab.
1340         (main): Hang `grab_keyboard' onto map-event which makes it
1341         actually work, hang `ungrab_keyboard' onto unmap-event.
1342         Hang `constrain_size' onto size-request.
1343
1344         * secmem.c: ulong was undefined on some systems.
1345
1346 1999-10-19  Robert Bihlmeyer  <robbe@orcus.priv.at>
1347
1348         * Makefile.am (install-exec-local): Ignore setcap errors.
1349
1350         * apgp.c: New program, based on agpg.c, but for pgp2.6.
1351         * Makefile.am (bin_PROGRAMS, apgp_SOURCES): Added it.
1352
1353         * agpg.c (GPG): New constant.
1354         (find_id, main): Use it throughout.
1355         (find_id): Forgot to pclose on success.
1356
1357         * secret-query.c (main): Don't expand anything.
1358         Use a button box for the buttons.
1359         Prompt label can be overridden from the commandline.
1360         * agent.c (do_get): Make spawned secret-query show the id.
1361         * client.c (xgetpass): Pass prompt to secret-query.
1362         (main): Include id in xgetpass prompt.
1363
1364 1999-10-14  Robert Bihlmeyer  <robbe@orcus.priv.at>
1365
1366         * configure.in: setcap must be searched outside the usual user
1367         PATH, too.
1368         * Makefile.am (install-exec-local): Set cap_ipc_lock permitted on
1369         installed binaries, if possible.
1370
1371         * agent.c (xdup2): New function, dup2 with error handling.
1372         (move_fd): New function, moves fds.
1373         (store): New function, abstracted out from do_put.
1374         (do_put): Use it.
1375         (do_get): If secret was not found, and DISPLAY is set, try to
1376         query the user about it. If successful, store it.
1377         (main): Route standard file descriptors to /dev/null rather than
1378         just closing them. The latter would confuse children.
1379
1380 1999-10-13  Robert Bihlmeyer  <robbe@orcus.priv.at>
1381
1382         * gtksecentry.c, gtksecentry.h: New files, being slightly modified
1383         versions of GTK+'s gtkentry.[ch], spiffed up to use secure memory.
1384         * secret-query.c (ok, unselect, main): Replace GtkEntry with
1385         GtkSecureEntry.
1386         (main): Initialize secure memory.
1387         * Makefile.am (secret_query_SOURCES): Added gtksecentry.[ch].
1388
1389         * README (Security): New chapter.
1390
1391         * configure.in, acconfig.h: Check for POSIX capabilities, and the
1392         setcap program.
1393         * Makefile.am: Link LIBCAP to those binaries using secmem.c.
1394
1395         * util.h: Include <sys/types.h> for size_t.
1396
1397 1999-09-21  Robert Bihlmeyer  <robbe@orcus.priv.at>
1398
1399         * secmem.c: Synced with gnupg-1.0 (top new feature: capabilities).
1400         (log_fatal): New function, logs to stderr, and dies.
1401
1402 1999-09-08  Robert Bihlmeyer  <robbe@orcus.priv.at>
1403
1404         * secmem.c (log_info): New function, logs to stderr.
1405
1406         * agent.c (agent): select() expects the number of fds, not the
1407         highest fd. So remember that number.
1408
1409         * agent.c (agent): Don't use FD_SETSIZE, which is not defined on
1410         all systems. Remember the number of the highest descriptor
1411         instead.
1412
1413         * configure.in: Replace getline() instead of getdelim() because
1414         this is the function we really need. Still check for getdelim(),
1415         though - there are systems out there where this is provided, but
1416         getline() is not.
1417
1418 1999-09-01  Robert Bihlmeyer  <robbe@orcus.priv.at>
1419
1420         * 0.6 released.
1421
1422         * configure.in: Bump version.
1423
1424         * NEWS: Updated.
1425
1426 1999-08-31  Robert Bihlmeyer  <robbe@orcus.priv.at>
1427
1428         * util.c (init_uids, lower_privs, raise_privs, drop_privs): New
1429         functions, for setuid binaries, extracted from agent.c.
1430         * util.h: Add prototypes for them.
1431         * agpg.c (main): Use them.
1432         * client.c (main): Ditto.
1433         * agent.c (main): Ditto. Removed code that did the same.
1434         Unconditionally include "asprintf.h" (it protects itself now).
1435
1436 1999-08-25  Robert Bihlmeyer  <robbe@orcus.priv.at>
1437
1438         * Makefile.am (SUBDIRS): Process . before test so that "make
1439         check" always builds all in . first.
1440
1441 1999-08-21  Robert Bihlmeyer  <robbe@orcus.priv.at>
1442
1443         * secret-query.c: Include "config.h".
1444
1445         * agent.h (reply_list_entry, reply_list): New reply structures.
1446         * agent.c (send_list_entry): New function.
1447         (do_list): First send number of entries, then each entry via
1448         send_list_entry().
1449         * agentlib.c (agent_list): Read entries returned by LIST request.
1450         * client.c (main): Output all entries returned by agent_list().
1451
1452         * agentlib.c (agent_put): Don't construct PUT request in insecure
1453         stack space.
1454
1455 1999-08-20  Robert Bihlmeyer  <robbe@orcus.priv.at>
1456
1457         * NEWS: Bump patchlevel.
1458
1459         * configure.in: Bump patchlevel.
1460         Check for missing setenv().
1461
1462 1999-08-09  Robert Bihlmeyer  <robbe@orcus.priv.at>
1463
1464         * configure.in: Check for strsignal().
1465
1466         * client-test: Obsoleted by test/client.
1467
1468         * Makefile.am (SUBDIRS): New subdirectory.
1469         * configure.in (AC_OUTPUT): Add here, too.
1470
1471         * 0.5 released.
1472
1473         * README: Explain why secret-client will not output secrets to a
1474         tty, and mention the cat-trick.
1475
1476         * agent.c (main): If seteuid is not available, don't use it and
1477         issue a warning if running setuid.
1478
1479         * configure.in: Run together two REPLACE_FUNCS.
1480         Check for seteuid.
1481
1482         * client-test: Mask out insecure memory warnings.
1483
1484         * agentlib.c (send_request): Let the calling functions reserve
1485         space for the reply, but offer a simple way for simple requests.
1486         (agent_get): Allocate secure memory.
1487
1488         * agent.c (main): Moved secmem_init() after the fork, since that
1489         seemingly munlock's all pages.
1490         Drop priviledges just in case somebody wants to install this
1491         suid-root.
1492         Flush stdout.
1493
1494         * agpg.c (find_id): Would reorder arguments.
1495         Initialize opt_version.
1496         (main): Initialize secure memory.
1497
1498         * Makefile.am (agpg_SOURCES): Link with secure memory module.
1499
1500         * client.c (usage): Fixed another program name reference.
1501
1502 1999-08-06  Robert Bihlmeyer  <robbe@orcus.priv.at>
1503
1504         * configure.in: Conditionally define HAVE_GTK.
1505         * acconfig.h: Add here too.
1506
1507         * client.c (xgetpass): Use "secret-query" only if it was built.
1508         (main): Don't output secret (GET command) to ttys.
1509
1510         * agpg.c (find_id): Also print own version if "--version" is given.
1511         (main): Check agent_init() errors.
1512         Print error if exec fails.
1513
1514         * agent.c (main): Added an option to produce csh-compatible
1515         output.
1516
1517         * agent.c, client.c: Forgot the terminating NULL in long options.
1518         Fixed the program names in usage and version output.
1519
1520         * agent.c (create_socket): AF_UNIX and PF_UNIX are Unix98, so
1521         that's what we use. AF_LOCAL, PF_LOCAL removed.
1522         * agentlib.c (agent_init): Ditto.
1523
1524 1999-08-05  Robert Bihlmeyer  <robbe@orcus.priv.at>
1525
1526         * 0.4 released.
1527
1528         * configure.in: Bumped version.
1529         Check for missing getdelim.
1530
1531         * cgpg: Removed, obsoleted by agpg.
1532         * Makefile.am: Here, too.
1533
1534         * agpg.c (find_id): New function.
1535         (main): Use it.
1536
1537         * Makefile.am (INCLUDES): Put GTK_FLAGS and GLIB_FLAGS here. It
1538         is the easiest way for sources needing it, and it won't hurt those 
1539         that don't.
1540         (agent.o): Explicit command removed accordingly.
1541
1542 1999-08-04  Robert Bihlmeyer  <robbe@orcus.priv.at>
1543
1544         * configure.in: Need double quoting in nested AC_MSG_WARN.
1545
1546         * client.c (xgetpass): If no tty is available, but a DISPLAY is,
1547         fork off "secure-query" to read the secret.
1548         Put the fgets into a loop that keeps reading until all of the
1549         secret is read.
1550
1551         * client-test: Unset DISPLAY, so that "secret-query" is never used.
1552
1553 1999-08-03  Robert Bihlmeyer  <robbe@orcus.priv.at>
1554
1555         * agpg.c: New file, first cut at a C version of the gpg wrapper,
1556         written in a hurry (20 keys waiting to be signed, and a growling
1557         stomach).
1558         * Makefile.am: Add it to built programs.
1559         (LDADD): New default.
1560         (secret_client_LDADD): Removed, since it was identical to default.
1561
1562 1999-08-01  Robert Bihlmeyer  <robbe@orcus.priv.at>
1563
1564         * secret-query.c: New program, queries the user for a password.
1565         * Makefile.am (bin_PROGRAMS): Added it.
1566         * configure.in: Check for GTK+, build "secret-query" only when
1567         that is available.
1568
1569         * cgpg: Extra argument for ID is no longer necessary. cgpg will
1570         scan the gpg args for switches that affect user-id, and determine
1571         the right key itself. Per convention, the key-id is used by "GET".
1572
1573         * configure.in: The project name is now "secret-agent".
1574
1575         * Makefile.am: "agent" & "client" renamed to "secret-agent" &
1576         "secret-client", respectively.
1577         * client-test: Adapt to new names.
1578
1579         * Thoughts: Removed discussion of other names.
1580         Added indication of which things already work.
1581
1582         * agent.c (make_tmpdir): Removed occurance of "gpg-agent."
1583
1584         * README: First proper version.
1585
1586         * client-test: Context diffs are more portable then unified diffs.
1587
1588         * agent.c, agent.h, agentlib.c, agentlib.h, client.c, memory.h,
1589         util.c, util.h: Banner updated to new name.
1590
1591 1999-07-29  Robert Bihlmeyer  <robbe@orcus.priv.at>
1592
1593         * configure.in: Check for missing asprintf.
1594         Check if -lsocket is needed.
1595
1596         * secmem.c (secmem_dump_stats): Replace usage of ulong.
1597
1598         * Makefile.am (INCLUDES): Add the lib subdirectory to include search.
1599
1600         * agent.c: Forgot to include <string.h>.
1601         Include RYO asprintf header if this function is missing.
1602         For the sake of compatibility, provide a definition for AF_LOCAL,
1603         PF_LOCAL, if missing.
1604         * agentlib.c: Ditto.
1605
1606 1999-07-28  Robert Bihlmeyer  <robbe@orcus.priv.at>
1607
1608         * Makefile.am (client_SOURCES): Add "secmem.c", "memory.h".
1609
1610         * client.c (xgetpass): Use secmem_malloc() instead of RYO.
1611         (main): Init and shutdown secmem.
1612
1613 1999-07-27  Robert Bihlmeyer  <robbe@orcus.priv.at>
1614
1615         * Makefile.am (agent_SOURCES): Add "secmem.c", "i18n.h", "memory.h".
1616         (client_SOURCES): Add "i18n.h".
1617
1618         * client.c (main): Exit on agent_init() failure.
1619
1620         * agent.c (main): Init secmem.
1621         Make --debug switch cumulative.
1622         (cleanup): Shutdown secmem.
1623         (do_put): Use secmem for storage of secrets.
1624         (do_delete): Use secmem_free(). Since this wipes the memory on its 
1625         own, wipe() is superflous now.
1626         (agent): Use secmem for inbound requests.
1627         (delete_secret): New function, takes part of do_delete's
1628         functionality.
1629         (do_put): Use it to remove old versions stored under the same id.
1630         (do_delete): Use it to delete secrets.
1631
1632         * memory.h: New file.
1633
1634         * secmem.c: New file, snarfed from GnuPG and modified slightly.
1635
1636         * acinclude.m4: New file.
1637         * configure.in: (ALL_LINGUAS): Expanded list of available
1638         languages. Most of them only have a few translations from gpg,
1639         tough ...
1640         getopt_long test was commented out for debugging,
1641         and left such. Fixed.
1642         Check for mlock.
1643         * acconfig.h: Comment HAVE_BROKEN_MLOCK.
1644
1645         * cgpg: A space was missing.
1646
1647         * i18n.h: New file, centralizing the gettext macro defs.
1648
1649         * agent.c (BLIND): New macro, that blinds out a secret if debug
1650         level is too low.
1651         (do_put): Use it.
1652         (do_get): Use it.
1653         Include i18n.h.
1654
1655         * agentlib.c: Include i18n.h
1656         
1657         * client.c (usage): New function.
1658         Usage-message made gettext-friendly.
1659         (xgetpass): Use perror() instead of fprintf().
1660         (main): Use it.
1661         Make comment an optional argument of PUT.
1662         Include i18n.h.
1663
1664 1999-07-26  Robert Bihlmeyer  <robbe@orcus.priv.at>
1665
1666         * Makefile.am (client_LDADD): Add lib/libutil.a for portability.
1667         (agent_LDADD): Ditto.
1668         (SUBDIRS): Add lib directory.
1669         (bin_SCRIPTS): New with cgpg, so it gets installed, too.
1670
1671         * configure.in: Add lib/Makefile to output.
1672
1673 1999-07-24  Robert Bihlmeyer  <robbe@orcus.priv.at>
1674
1675         * cgpg: New file.
1676         * Makefile.am (EXTRA_DIST): Added it.
1677
1678         * agent.c: Moved inclusion of config.h before inclusion of
1679         libintl.h since the latter needs HAVE_LC_MESSAGE.
1680         * client.c: Ditto.
1681         * clientlib.c: Ditto.
1682
1683         * client-test: Update for new client semantics.
1684
1685         * client.c (check_status): Use debugmsg(). Do nothing if not
1686         debugging.
1687         (xgetpass): New function, getpass replacement that uses mlock'ed
1688         memory.
1689         (main): PUT now asks for the secret rather then getting it from
1690         the commandline.
1691         GET prints only the secret to stdout.
1692
1693         * configure.in: Rearranged.
1694         Check for socklen_t.
1695         * acconfig.h: Added a definition for it.
1696
1697         * client.c: Include packaged getopt.h if the system doesn't provide 
1698         one. 
1699         * agent.c: Ditto.
1700         (create_socket): Replace AF_FILE, PF_FILE with AF_LOCAL, PF_LOCAL
1701         for portability.
1702         * agentlib.c (agent_init): Ditto.
1703         Explicitly cast addr to a sockaddr pointer.
1704
1705         * Makefile.am (client_LDADD): Added @INTLLIBS@.
1706         (agent_LDADD): Ditto.
1707
1708 1999-07-19  Robert Bihlmeyer  <robbe@orcus.priv.at>
1709
1710         * configure.in: Check for getopt.h and getopt_long.
1711         * acconfig.h (HAVE_GETOPT_H): New define.
1712         * lib/getopt.c, lib/getopt1.c, lib/getopt.h: Added.
1713
1714 1999-07-18  Robert Bihlmeyer  <robbe@orcus.priv.at>
1715
1716         * 0.2 released.
1717
1718         * NEWS: Updated.
1719
1720         * Makefile.am (agent.o): Mentioning the source explicitly does not 
1721         work for srcdir!=builddir.
1722
1723         * client.c (main): Function arguments are not always evaluated in
1724         order, so drop the neat ++optind in favor of optind+1, optind+2,
1725         etc.
1726
1727         * configure.in: Upped version.
1728
1729 1999-06-28  Robert Bihlmeyer  <robbe@orcus.priv.at>
1730
1731         * util.h: Added multi-inclusion guard.
1732
1733         * agent.c Include "util.h".
1734         (main): Forgot to exit at end.
1735         (do_delete): Assume that value is a string and wipe it accordingly.
1736
1737         * configure.in (--enable-debug): New switch.
1738
1739         * agent.h (status_t): Added STATUS_COMM_ERR code.
1740         Added multi-inclusion guard.
1741
1742         * client.c (main): Abstracted out most functionality into a
1743         function library, namely:
1744         * agentlib.c: New file.
1745         * agentlib.h: New file.
1746         * Makefile.am (client_SOURCES): Added agentlib.c, agentlib.h.
1747
1748         * Makefile.am (INCLUDES): GLIB_CFLAGS moved again, this time to
1749         the agent.o target. 
1750
1751 1999-06-15  Robert Bihlmeyer  <robbe@orcus.priv.at>
1752
1753         * 0.1 released.
1754
1755         * Makefile.am (agent_CFLAGS): Removed - did not work.
1756         (INCLUDES): Moved the GLIB stuff here.
1757
1758 1999-06-14  Robert Bihlmeyer  <robbe@orcus.priv.at>
1759
1760         * configure.in (ALL_LINGUAS): Added `de'.
1761
1762         * agent.c (do_get): Added more debugmsgs.
1763         (do_put): Wouldn't allocate enough for `value'.
1764         (main): New option "--nofork" prevents forking.
1765         Use macros for the std filedescriptor numbers.
1766         Only close stderr if not debugging.
1767         (main): Make Usage string gettext-friendly.
1768
1769         * client-test (cleanup): New function.
1770         Call it on shell exit.
1771         (client): New function.
1772         Use it instead of calling client binary directly.
1773         diff client output with expected one in GET testcases.
1774
1775 1999-06-13  Robert Bihlmeyer  <robbe@orcus.priv.at>
1776
1777         * agent.c (failed_reply): New constant.
1778         (do_list): Use it.
1779         (do_put): The hash key was overwritten - strdup it.
1780         Construct a GET reply and save that in the hash.
1781         (do_get): Just send the preconstructed reply if the id is present, 
1782         and failed_reply otherwise.
1783         (do_delete): Actually free the hashed stuff.
1784
1785         * client.c: Exit with error if agent returned STATUS_FAIL.
1786
1787         * Makefile.am (EXTRA_DIST): Added autogen.sh, Thoughts,
1788         client-test.
1789         (TESTS): Added client-test.
1790         (AUTOMAKE_OPTIONS): Added gnits. 
1791
1792         
1793  Copyright 2002, 2003 g10 Code GmbH
1794
1795  This file is free software; as a special exception the author gives
1796  unlimited permission to copy and/or distribute it, with or without
1797  modifications, as long as this notice is preserved.
1798
1799  This file is distributed in the hope that it will be useful, but
1800  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1801  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.