Package: ydpdict
Version: 0.63-1
Severity: normal
Tags: patch

$ echo `tput cols`x`tput lines`
132x40
$ ydpdict -w yul

Then, pressing PageDown twice causes SEGFAULT.

The patch below fixes this bug.

diff -ur ydpdict-0.63-org/src/ydpdict.c ydpdict-0.63-new/src/ydpdict.c
--- ydpdict-0.63-org/src/ydpdict.c      2004-05-31 11:44:37.000000000 +0200
+++ ydpdict-0.63-new/src/ydpdict.c      2005-11-12 12:03:03.000000000 +0100
@@ -373,7 +373,7 @@
                                } else {
                                        if (menu < ysize - 5)
                                                menu = ysize - 5;
-                                       else if (pos < wordcount - 39)
+                                       else if (pos < wordcount - (ysize - 4) 
* 2 - 1)
                                                pos += ysize - 4;
                                        else
                                                pos = wordcount - (ysize - 4);
@@ -534,10 +534,7 @@
        keypad(wordwin, TRUE);
        halfdelay(100);

-       werase(wordwin);
-       werase(defwin);
-       werase(headwin);
-       werase(splitwin);
+       erase();

        /* narysuj cudowną pionową linię */
        for (x = 0; x < ysize; x++) {
@@ -592,7 +589,7 @@

void checksize()
{
-       int newx, newy, fake = 0;
+       int diff, newx, newy, fake = 0;

        newx = stdscr->_maxx + 1;
        newy = stdscr->_maxy + 1;
@@ -608,6 +605,17 @@

        xsize = newx;
        ysize = newy;
+
+       diff = pos + (ysize - 4) - wordcount;
+       if (diff > 0) {
+               pos -= diff;
+               menu += diff;
+       }
+       diff = menu - (ysize - 5);
+       if (diff > 0) {
+               pos += diff;
+               menu -= diff;
+       }
}

/* czy podany znaczek da się wyświetlić i wprowadzić z klawiatury? */


-- System Information:
Debian Release: testing/unstable
 APT prefers testing
 APT policy: (900, 'testing'), (600, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/dash
Kernel: Linux 2.6.14
Locale: LANG=C, LC_CTYPE=pl_PL (charmap=ISO-8859-2)

Versions of packages ydpdict depends on:
ii  libc6                         2.3.5-6    GNU C Library: Shared libraries an
ii  libncurses5                   5.4-9      Shared libraries for terminal hand

ydpdict recommends no packages.

-- no debconf information

--
Jakub Wilk

Reply via email to