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