rkd77 / elinks

Fork of elinks
Other
345 stars 38 forks source link

floating point exception. #276

Open johngalt01 opened 10 months ago

johngalt01 commented 10 months ago

on the 0.17rc i used the binaries elinks-0.17.0rc1-armhf-bin.tar.xz i keep getting a floating point error for both elinks and elinks-lite. i don't know what dependency it might be.

sorry floating point exception.

maybe its my conf file i copied into config.

i just tested elinks 0.16.1 and it works fine

rkd77 commented 10 months ago

I checked it on rpi zero and it worked. Do you have ~/.config/elinks/hooks.lua ? If yes, rename this file. How to reproduce this error?

johngalt01 commented 10 months ago

if it helps I'm not running in xwindows.

I'm running via a remote telnet session.

I will check for the ~/.config/elinks/hooks.lua file.

0.16 has been a vast improvement over 0.13 :-)

rkd77 commented 10 months ago

I'm running it via ssh. May I know what machine it is? It "fails" on startup or viewing some documents, or what?

johngalt01 commented 10 months ago

sure some more information:

its a raspberry pi 4, it appears to open fine if I'm inside xwindows and launch a terminal session. if i'm telneting into the machine and try to start from the command line it gives the floating point exception message and drops back to the prompt. the previous version of 0.16.1 (not .16.1.1 no binary) works no problem.

rkd77 commented 10 months ago

@johngalt01 On rpi zero 2, started telnetd and telnet to rpi. No error. Could you show your elinks.conf, name of terminal, and size (cols, rows)?

johngalt01 commented 10 months ago

actually i have it on my github, its a carry over from 0.13

the terminal is set to that Xterm-256 if i remember have to look at my bash configuration.

i have it inside my readme. https://github.com/johngalt01/johngalt01.github.io/blob/main/README.TXT

my terminal is set to LINES to 48 and COLUMNS to 83

johngalt01 commented 10 months ago

this is interesting.

If i login via teraterm i can launch 0.17 over telnet if i login via my terminal over modem i get the floating point exception

changing the Lines and Columns has no effect on the error over the terminal. term is set to xterm-color.

no hooks.lua file.

no issues with version 0.16.1

johngalt01 commented 10 months ago

i've been playing with 0.16.1 all evening but i wanted to see if i run 0.17 elinks --help and it will display the help menu and not crash. is there a log option i can trigger from the command line?

for 0.17 elinks -terminfo 0 gives the Floating point exception. -always-load-config 0 also errors. -no-home 0 also errors.

rkd77 commented 10 months ago
#include <sys/ioctl.h>
#include <stdio.h>

void
get_terminal_size(int fd)
{
    struct winsize ws;

    if (ioctl(fd, TIOCGWINSZ, &ws) != -1) {
        printf("fd=%d ws.ws_col=%d ws.ws_row=%d ws.ws_xpixel=%d ws.ws_ypixel=%d\n",
            fd, ws.ws_col, ws.ws_row, ws.ws_xpixel, ws.ws_ypixel);
    } else {
        printf("fd=%d ioctl = -1\n", fd);
    }
}

int
main(int argc, char **argv)
{
    int fd;

    for (fd = 0; fd < 6; fd++) {
        get_terminal_size(fd);
    }

    return 0;
}

@johngalt01 Could you copy this code, compile and run it? It displays terminal sizes for first 6 descriptors. Save as term_size.c Compile: gcc -o term_size term_size.c And run as ./term_size You can check it for various terminals. Please show results for telnet's one. Terminal code is suspected.

johngalt01 commented 10 months ago

will report back.

johngalt01 commented 10 months ago

ok cool i see the problem. What do i need to fix it?

Here are the results:

Run from inside Xwindows on terminal

fd=0 ws.ws_col=84 ws.ws_row=46 ws.ws_xpixel=0 ws.ws_ypixel=0 fd=1 ws.ws_col=84 ws.ws_row=46 ws.ws_xpixel=0 ws.ws_ypixel=0 fd=2 ws.ws_col=84 ws.ws_row=46 ws.ws_xpixel=0 ws.ws_ypixel=0 fd=3 ioctl = -1 fd=4 ioctl = -1 fd=5 ioctl = -1

run from Teraterm on my PC over telnet

fd=0 ws.ws_col=80 ws.ws_row=24 ws.ws_xpixel=0 ws.ws_ypixel=0 fd=1 ws.ws_col=80 ws.ws_row=24 ws.ws_xpixel=0 ws.ws_ypixel=0 fd=2 ws.ws_col=80 ws.ws_row=24 ws.ws_xpixel=0 ws.ws_ypixel=0 fd=3 ioctl = -1 fd=4 ioctl = -1 fd=5 ioctl = -1

run from the terminal that gives the Floating point exception

fd=0 ws.ws_col=0 ws.ws_row=0 ws.ws_xpixel=0 ws.ws_ypixel=0 fd=1 ws.ws_col=0 ws.ws_row=0 ws.ws_xpixel=0 ws.ws_ypixel=0 fd=2 ws.ws_col=0 ws.ws_row=0 ws.ws_xpixel=0 ws.ws_ypixel=0 fd=3 ioctl = -1 fd=4 ioctl = -1 fd=5 ioctl = -1

If I echo $LINES and $COLUMNS on the terminal it shows the correct 46 and 84 i have set.

johngalt01 commented 10 months ago

if i run eval 'resize'

on the terminal then rerun term_size i get the correct numbers in place of the zeros and elinks 0.17 starts up and runs

so i added it to my bash initialization scripts.

rkd77 commented 10 months ago

OK. Thanks. I'm going to release on Sunday rc2 with this ^ commit.