diff --git a/make/neutrino-plugins.mk b/make/neutrino-plugins.mk index 079e00d4..e0676ddd 100644 --- a/make/neutrino-plugins.mk +++ b/make/neutrino-plugins.mk @@ -149,7 +149,7 @@ neutrino-mediathek: $(SHAREPLUGINS) | $(TARGET_DIR) # ----------------------------------------------------------------------------- -LINKS_VER = 2.19 +LINKS_VER = 2.20 LINKS_TMP = links-$(LINKS_VER) LINKS_SOURCE = links-$(LINKS_VER).tar.bz2 LINKS_URL = http://links.twibright.com/download @@ -157,12 +157,14 @@ LINKS_URL = http://links.twibright.com/download $(ARCHIVE)/$(LINKS_SOURCE): $(DOWNLOAD) $(LINKS_URL)/$(LINKS_SOURCE) +LINKS_DEPS = libpng libjpeg openssl + LINKS_PATCH = links.patch LINKS_PATCH += links-ac-prog-cxx.patch LINKS_PATCH += links-input-$(BOXTYPE).patch LINKS_PATCH += links-accept_https_play.patch -links: libpng libjpeg openssl $(ARCHIVE)/$(LINKS_SOURCE) $(SHAREPLUGINS) | $(TARGET_DIR) +links: $(LINKS_DEPS) $(ARCHIVE)/$(LINKS_SOURCE) $(SHAREPLUGINS) | $(TARGET_DIR) $(REMOVE)/$(LINKS_TMP) $(UNTAR)/$(LINKS_SOURCE) $(CHDIR)/$(LINKS_TMP)/intl; \ diff --git a/patches/links.patch b/patches/links.patch index 4ffc92ee..01c66167 100644 --- a/patches/links.patch +++ b/patches/links.patch @@ -15,7 +15,7 @@ # --- a/Makefile.am +++ b/Makefile.am -@@ -16,7 +16,7 @@ +@@ -24,7 +24,7 @@ links_LDADD=builtin.o context.o ipret.o javascr.o javascript.o md5.o md5hl.o ns.o pomocny.o regexp.o endif @@ -26,8 +26,8 @@ dist-hook: --- a/Makefile.in +++ b/Makefile.in -@@ -77,7 +77,7 @@ - @ATHEOS_GR_TRUE@links_LDADD = atheos.o +@@ -78,7 +78,7 @@ + @HAIKU_GR_TRUE@links_LDADD = haiku.o @JAVASCRIPT_TRUE@links_LDADD = builtin.o context.o ipret.o javascr.o javascript.o md5.o md5hl.o ns.o pomocny.o regexp.o -links_SOURCES = af_unix.c auth.c beos.c bfu.c block.c bookmark.c cache.c charsets.c compress.c connect.c cookies.c data.c default.c dip.c directfb.c dither.c dns.c dos.c drivers.c error.c file.c finger.c fn_impl.c fontconf.c font_inc.c framebuf.c freetype.c ftp.c gif.c grx.c hpux.c html.c html_gr.c html_r.c html_tbl.c http.c https.c img.c imgcache.c jpeg.c jsint.c kbd.c language.c listedit.c lru.c mailto.c main.c memory.c menu.c objreq.c os_dep.c pmshell.c png.c sched.c select.c session.c smb.c string.c suffix.c svg.c svgalib.c terminal.c tiff.c types.c url.c view.c view_gr.c vms.c x.c xbm.c beos.h bits.h cfg.h codepage.h com-defs.h config-vms.h dfb_cur.h hpux.h language.h links.h os_dep.h os_depx.h setup.h arrow.inc certs.inc codepage.inc entity.inc fbcommon.inc language.inc links_ic.inc locase.inc suffix.inc suffix_x.inc uni_7b.inc upcase.inc vpipe.inc @@ -35,15 +35,15 @@ CXXFLAGS = @CXXFLAGS@ -@@ -101,7 +101,7 @@ +@@ -102,7 +102,7 @@ imgcache.o jpeg.o jsint.o kbd.o language.o listedit.o lru.o mailto.o \ main.o memory.o menu.o objreq.o os_dep.o pmshell.o png.o sched.o \ select.o session.o smb.o string.o suffix.o svg.o svgalib.o terminal.o \ -tiff.o types.o url.o view.o view_gr.o vms.o x.o xbm.o +tiff.o types.o url.o view.o view_gr.o vms.o x.o xbm.o rcmouse.o rc.o rcinput.o - @ATHEOS_GR_TRUE@links_DEPENDENCIES = atheos.o @JAVASCRIPT_TRUE@links_DEPENDENCIES = builtin.o context.o ipret.o \ @JAVASCRIPT_TRUE@javascr.o javascript.o md5.o md5hl.o ns.o pomocny.o \ + @JAVASCRIPT_TRUE@regexp.o --- a/bfu.c +++ b/bfu.c @@ -1544,7 +1544,7 @@ @@ -68,7 +68,7 @@ #if SIZEOF_UNSIGNED_LONG >= 8 || defined(__x86_64__) || defined(__aarch64__) --- a/configure +++ b/configure -@@ -8403,7 +8403,7 @@ +@@ -8578,7 +8578,7 @@ fi done @@ -79,7 +79,7 @@ EOF --- a/configure.in +++ b/configure.in -@@ -1050,7 +1050,7 @@ +@@ -1069,7 +1069,7 @@ if test "$disable_fb" != yes; then AC_CHECK_HEADERS(linux/fb.h linux/kd.h linux/vt.h sys/mman.h) @@ -90,8 +90,8 @@ fi --- a/default.c +++ b/default.c -@@ -750,7 +750,7 @@ - } +@@ -761,7 +761,7 @@ + home = NULL; } #endif - if (!home) home = stracpy(cast_uchar getenv("HOME")); @@ -99,8 +99,8 @@ #ifdef WIN /* When we run in Cygwin without Cygwin environment, it reports home "/". Unfortunatelly, it can't write anything to that directory */ -@@ -799,7 +799,7 @@ - #ifdef OPENVMS +@@ -812,7 +812,7 @@ + #elif defined(OPENVMS) || defined(HAIKU) add_to_strn(&home_links, cast_uchar "links"); #else - add_to_strn(&home_links, cast_uchar ".links"); @@ -108,7 +108,7 @@ #endif } EINTRLOOP(rs, stat(cast_const_char home_links, &st)); -@@ -2073,7 +2073,7 @@ +@@ -2086,7 +2086,7 @@ if (links_home) mem_free(links_home); } @@ -148,7 +148,7 @@ #include #include -@@ -112,6 +112,7 @@ +@@ -116,6 +116,7 @@ static struct fb_var_screeninfo vi; static struct fb_fix_screeninfo fi; @@ -156,7 +156,7 @@ static void fb_draw_bitmap(struct graphics_device *dev, struct bitmap *bmp, int x, int y); static unsigned char *fb_driver_param; -@@ -272,7 +273,7 @@ +@@ -276,7 +277,7 @@ static void redraw_mouse(void); @@ -165,7 +165,7 @@ { struct links_event ev; mouse_x += dx; -@@ -698,6 +699,7 @@ +@@ -702,6 +703,7 @@ static void set_palette(struct palette *pal) { @@ -173,7 +173,7 @@ struct fb_cmap cmap; int i; unsigned short *red = pal->red; -@@ -874,7 +876,7 @@ +@@ -878,7 +880,7 @@ EINTRLOOP(rs, ioctl(TTY, VT_GETMODE, &vt_omode)); if (rs == -1) { in_gr_operation--; @@ -182,7 +182,7 @@ } memcpy(&vt_mode, &vt_omode, sizeof(vt_mode)); -@@ -886,7 +888,7 @@ +@@ -890,7 +892,7 @@ EINTRLOOP(rs, ioctl(TTY, VT_SETMODE, &vt_mode)); if (rs == -1) { in_gr_operation--; @@ -191,7 +191,7 @@ } EINTRLOOP(rs, ioctl(TTY, VT_WAITACTIVE, fb_console)); -@@ -927,6 +929,7 @@ +@@ -931,6 +933,7 @@ static void fb_gpm_in(void *nic) { @@ -199,8 +199,8 @@ struct links_event ev; int g; Gpm_Event gev; -@@ -1021,10 +1024,12 @@ - if (current_virtual_device->mouse_handler) current_virtual_device->mouse_handler(current_virtual_device, ev.x, ev.y, (int)ev.b); +@@ -1103,10 +1106,12 @@ + if (current_virtual_device->mouse_handler) current_virtual_device->mouse_handler(current_virtual_device, mouse_x, mouse_y, button); redraw_mouse(); EINTRLOOP(rs, fsync(fb_handle)); +#endif @@ -210,9 +210,9 @@ { +#if 0 Gpm_Connect conn; - fb_hgpm = -2; - conn.eventMask = (unsigned short)~0U; -@@ -1049,6 +1054,7 @@ + + fb_hmice = c_open(cast_uchar "/dev/input/mice", O_RDWR | O_NOCTTY); +@@ -1176,6 +1181,7 @@ #ifdef SIGTTIN install_signal_handler(SIGTTIN, sig_tstp, NULL, 0); #endif @@ -220,7 +220,7 @@ return 0; } -@@ -1056,12 +1062,14 @@ +@@ -1183,12 +1189,14 @@ static void unhandle_fb_mouse(void) { if (fb_hgpm >= 0) set_handlers(fb_hgpm, (void (*)(void *))NULL, (void (*)(void *))NULL, NULL); @@ -232,10 +232,10 @@ } fb_hgpm = -2; +#endif + + close_socket(&fb_hmice); #ifdef SIGTSTP - install_signal_handler(SIGTSTP, sig_tstp, NULL, 0); - #endif -@@ -1093,14 +1101,77 @@ +@@ -1222,14 +1230,77 @@ { fb_print(seq_show_cursor); } @@ -313,7 +313,7 @@ } static unsigned char *fb_init_driver(unsigned char *param, unsigned char *ignore) -@@ -1217,6 +1288,16 @@ +@@ -1346,6 +1417,16 @@ } else { border_bottom = border_top; } @@ -330,7 +330,7 @@ if (*param) goto bad_p; EINTRLOOP(rs, fstat(TTY, &st)); -@@ -1252,6 +1333,17 @@ +@@ -1381,6 +1462,17 @@ e = stracpy(cast_uchar "Cannot get FB FSCREENINFO.\n"); goto fail4; } @@ -348,7 +348,7 @@ #if 0 { -@@ -1340,7 +1432,9 @@ +@@ -1469,7 +1561,9 @@ fb_mem_size = fi.smem_len; init_virtual_devices(&fb_driver, NUMBER_OF_DEVICES); @@ -358,7 +358,7 @@ /* Mikulas: nechodi to na sparcu */ if (fb_mem_size < (unsigned)((border_top + fb_ysize + border_bottom) * fb_linesize)) { -@@ -1391,6 +1485,10 @@ +@@ -1520,6 +1614,10 @@ e = stracpy(cast_uchar "Cannot mmap graphics memory.\n"); goto fail5; } @@ -369,7 +369,7 @@ fb_vmem = fb_mem + border_left * fb_pixelsize + border_top * fb_linesize; fb_driver.depth = fb_pixelsize & 7; fb_driver.depth |= (fb_bits_pp & 31) << 3; -@@ -1507,7 +1605,9 @@ +@@ -1637,7 +1735,9 @@ EINTRLOOP(rs, munmap(fb_mem, fb_mapped_size)); shutdown_virtual_devices(); fb_switch_shutdown(); @@ -379,8 +379,8 @@ if(fb_driver_param) mem_free(fb_driver_param); /* show cursor */ fb_show_cursor(); -@@ -1615,6 +1715,27 @@ - dest->skip = dest->x * fb_pixelsize; +@@ -1745,6 +1845,27 @@ + dest->skip = (ssize_t)dest->x * fb_pixelsize; dest->flags = 0; return 0; +} @@ -407,7 +407,7 @@ } static void fb_register_bitmap(struct bitmap *bmp) -@@ -1937,7 +2058,9 @@ +@@ -2067,7 +2188,9 @@ unhandle_fb_mouse(); fb_old_vd = current_virtual_device; current_virtual_device=NULL; @@ -417,7 +417,7 @@ if (have_cmap && fb_active) set_palette(&old_palette); EINTRLOOP(rs, fsync(fb_handle)); fb_switch_shutdown(); -@@ -1952,7 +2075,9 @@ +@@ -2082,7 +2205,9 @@ unsigned char *e; if (current_virtual_device) return 0; if (dev != fb_block_dev) return -2; @@ -1276,7 +1276,7 @@ FD_CLR(fd, &w_read); FD_CLR(fd, &x_read); } -@@ -936,9 +941,14 @@ +@@ -943,9 +948,14 @@ } int terminate_loop = 0; @@ -1291,7 +1291,7 @@ #if !defined(USE_LIBEVENT) || !defined(USE_POLL) restrict_fds(); #endif -@@ -993,6 +1003,15 @@ +@@ -1000,6 +1010,15 @@ nopr(); } else #endif @@ -1306,7 +1306,7 @@ + set_handlers(mousefd, (void (*)(void *))rc_mouse_event, NULL, NULL); while (!terminate_loop) { - volatile int n; /* volatile because of setjmp */ + volatile int n, i; /* volatile because of setjmp */ --- a/view_gr.c +++ b/view_gr.c @@ -1032,6 +1032,7 @@