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