Hi, I've emerged urlview-0.9 to use within mutt, but the following goes even for the commandline: urlview segfaults, when it finds a valid URL in its input, and when it is compiled with ncurses. I have recompiled it with ./configure --with-slang, and everything works fine. I have: Gentoo 1.4_rc1, gcc-3.2, ncurses-5.2.20020511-r2 (as everything above is masked), and slang-1.4.5-r2. Christian
what compiler optimisations are you using?
I have the follwoing in /etc/make.conf: CHOST="i686-pc-linux-gnu" CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer" Christian
I have experienced no problems with urlview. Using the same version as you or the newest ncurses-5.3-r1... I have also compiled it both with gcc-3.2 and gcc-3.2.1 and have had no problems. Can you give me an example of how you use it with mutt as I am testing it standalone...
I have the following in my ~/.muttrc: macro pager "\Cb" "|urlview -\n" But it also segfaults when I call it at the command prompt and give it a file with a valid URL in it, e.g.: $ cat textfile|urlview If there is no URL in that file, it says "No URLs found.", without segfaulting. So, it is not a mutt-urlview problem.
And just in case ncurses was a problem, I just emerged it on our current stable profile with the same ncurses version as you. Try removing -fomit-frame-pointer from your compile options... this will cause problems with some packages that I have seen.
Sorry for the late reply. I have recompiled ncurses (5.3-r1) and urlview (0.9) with CFLAGS="-O2", and CXXFLAGS=$CFLAGS in my /etc/make.conf, but the result remains the same: urlview segfaults when reading a file with a valid url in it. BTW: an upgrade from gcc-3.2 to gcc-3.2.1 changed nothing.
I still don't have any problems with urlview and just emerged it on a different test system with the latest gcc,ncurses, etc... I have tested urlview in both a console and x-window envrionment. As I have not been able to re-create your problem on multiple test systems I am not sure what the problem is. Do you have any special locale settings or terminal settings that you use? The log of your latest compile and/or a log or a backtrace from a run of urlview might be helpful as well.
Hello, My locale settings: LC_ALL=de_DE@euro, LANG=de_DE@euro, but even if I set them to "C" or "POSIX", urlview segfaults. BTW it only segfaults, when reading from a pipe, so: cat file_with_url|urlview - ==> segmentation fault urlview file_with_url ==> it works! Here a strace: $ strace cat urlfile|urlview execve("/bin/cat", ["cat", "urlfile"], [/* 69 vars */]) = 0 uname({sys="Linux", node="tethys.terminus.net", ...}) = 0 brk(0) = 0x804c9a8 open("/etc/ld.so.preload", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 close(3) = 0 open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=68192, ...}) = 0 mmap2(NULL, 68192, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360^\1"..., 1024) = 1024 fstat64(3, {st_mode=S_IFREG|0755, st_size=1408568, ...}) = 0 mmap2(NULL, 1231972, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40025000 mprotect(0x40149000, 35940, PROT_NONE) = 0 mmap2(0x40149000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x124) = 0x40149000 mmap2(0x4014e000, 15460, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4014e000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40152000 munmap(0x40014000, 68192) = 0 brk(0) = 0x804c9a8 brk(0x804d9a8) = 0x804d9a8 brk(0x804e000) = 0x804e000 fstat64(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 open("urlfile", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFREG|0640, st_size=59, ...}) = 0 read(3, "Dies ist ein Test.\nDies: http://"..., 4096) = 59 write(1, "Dies ist ein Test.\nDies: http://"..., 59) = 59 read(3, "", 4096) = 0 close(3) = 0 _exit(0) = ? Segmentation fault Maybe an ncurses problem? As spice (app-sci/spice) segfaults, too, and it is compiled with ncurses, here a last lines from a strace run: $ strace cat RC-Hochpass.cir|spice ...open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360^\1"..., 1024) = 1024 fstat64(3, {st_mode=S_IFREG|0755, st_size=1408568, ...}) = 0 mmap2(NULL, 1231972, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40025000 mprotect(0x40149000, 35940, PROT_NONE) = 0 mmap2(0x40149000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x124) = 0x40149000 mmap2(0x4014e000, 15460, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4014e000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40152000 munmap(0x40014000, 68192) = 0 brk(0) = 0x804c9a8 brk(0x804d9a8) = 0x804d9a8 brk(0x804e000) = 0x804e000 fstat64(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 open("RC-Hochpass.cir", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFREG|0600, st_size=396, ...}) = 0 read(3, "Hochpass\n* Stand: Son 19 Jan 200"..., 4096) = 396 write(1, "Hochpass\n* Stand: Son 19 Jan 200"..., 396) = 396 read(3, "", 4096) = 0 close(3) = 0 _exit(0) = ? Circuit: Hochpass internal error -- segmentation violation But, spice segfaults even, when not reading from a pipe, so maybe I'm totally wrong. Thank you for your trouble, Christian