* pinentry/pinentry-curses.c (dialog_create): Better truncate pinentry-0-6-7
authorWerner Koch <wk@gnupg.org>
Wed, 20 Nov 2002 12:35:00 +0000 (12:35 +0000)
committerWerner Koch <wk@gnupg.org>
Wed, 20 Nov 2002 12:35:00 +0000 (12:35 +0000)
lines than to go into an infinite loop.  We need to implement word
wrap.
(dialog_run): Add DIALOG_POS_NONE to switch so prevent a warning.

ChangeLog
NEWS
configure.ac
pinentry/pinentry-curses.c

index 3a8e676..dae5c29 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2002-11-20  Werner Koch  <wk@gnupg.org>
+
+       Released 0.6.7.
+
+       * pinentry/pinentry-curses.c (dialog_create): Better truncate
+       lines than to go into an infinite loop.  We need to implement word
+       wrap.
+       (dialog_run): Add DIALOG_POS_NONE to switch so prevent a warning.
+
 2002-11-12  Werner Koch  <wk@gnupg.org>
 
        * config.sub, config.guess: Updated from ftp.gnu.org/gnu/config
diff --git a/NEWS b/NEWS
index 9eab3a6..9031758 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,8 @@
-Noteworthy changes in version 0.6.7 (unreleased)
+Noteworthy changes in version 0.6.7 (2002-11-20)
 ------------------------------------------------
 
+ * Workaround for a bug in the curses version which led to an infinite
+   loop.
 
 Noteworthy changes in version 0.6.6 (2002-11-09)
 ------------------------------------------------
index ef175d0..604d7f8 100644 (file)
@@ -24,7 +24,7 @@ AC_REVISION($Revision$)
 AC_PREREQ(2.52)
 # Remember to remove the "-cvs" suffix *before* a release and to bump the
 # version number immediately *after* a release and to re-append the suffix.
-AC_INIT(pinentry, 0.6.7-cvs, [gpa-dev@gnupg.org])
+AC_INIT(pinentry, 0.6.7, [gpa-dev@gnupg.org])
 AM_CONFIG_HEADER(config.h)
 AC_CONFIG_SRCDIR(pinentry/pinentry.h)
 AM_INIT_AUTOMAKE($PACKAGE_NAME, $PACKAGE_VERSION)
index 695de8e..636d6ab 100644 (file)
@@ -171,6 +171,7 @@ dialog_create (pinentry_t pinentry, dialog_t dialog)
       char *p = description;
       int desc_x = 0;
 
+      /* fixme: Implement autowrap so that we don't need to truncate lines. */
       while (*p)
        {
          if (*(p++) == '\n')
@@ -299,11 +300,11 @@ dialog_create (pinentry_t pinentry, dialog_t dialog)
          move (ypos, xpos);
          addch (ACS_VLINE);
          addch (' ');
-         while (*p && *p != '\n')
+         for (;*p && *p != '\n'; p++)
            if (i < x - 4)
              {
                i++;
-               addch ((unsigned char) *(p++));
+               addch ((unsigned char) *p);
              }
          if (*p == '\n')
            p++;
@@ -332,11 +333,11 @@ dialog_create (pinentry_t pinentry, dialog_t dialog)
                attron (COLOR_PAIR(1) | A_BOLD);
              else
                standout ();
-             while (*p && *p != '\n')
+             for (;*p && *p != '\n'; p++)
                if (i < x - 4)
                  {
                    i++;
-                   addch ((unsigned char) *(p++));
+                   addch ((unsigned char) *p);
                  }
              if (has_colors () && COLOR_PAIRS >= 1)
                attroff (COLOR_PAIR(1) | A_BOLD);
@@ -656,6 +657,8 @@ dialog_run (pinentry_t pinentry, const char *tty_name, const char *tty_type)
            case DIALOG_POS_CANCEL:
              done = -2;
              break;
+            case DIALOG_POS_NONE:
+              break;
            }
          break;