Compare commits

...

7 Commits

Author SHA1 Message Date
Juhani Krekelä f35eb9357a Add sortix.c to the build system 2024-01-22 02:11:55 +02:00
Juhani Krekelä 81bac29127 Add .gitignore 2024-01-22 02:08:14 +02:00
Juhani Krekelä cb75256439 Sortix patches 2024-01-22 02:04:58 +02:00
Juhani Krekelä adc4c50290 Upstream Links 2.29 2023-04-06 20:18:18 +03:00
Juhani Krekelä c5df2f9b41 Upstream Links 2.28 2023-01-11 02:17:30 +02:00
Juhani Krekelä 991c30eae1 Upstream Links 2.27 2022-06-06 16:14:24 +03:00
Juhani Krekelä 062136efb3 Upstream Links 2.26 2022-06-06 16:08:05 +03:00
96 changed files with 5413 additions and 2497 deletions

8
.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
*.o
links
Makefile
config.cache
config.h
config.log
config.status
stamp-h

19
AUTHORS
View File

@ -389,3 +389,22 @@ pluvano <me@pluvano.com>
Ing. Daniel G. Gionco <dggionco@hotmail.com> Ing. Daniel G. Gionco <dggionco@hotmail.com>
Updated the Spanish translation Updated the Spanish translation
Timur Adamov <nbvec222@gmail.com>
Handle the "TD" tag outside "TR" the same way as in other browsers
zinov@waifu.club:
Fix a bug when form submit url contained '#'
Martin Michel <martin.famic.de>:
Updated the German translation
Updated the initial bookmarks
notcancername <notcancername@protonmail.com>
Support AVIF images
Juhani Krekela <juhani@krekela.fi>
Implement strike formatting
Florian Weimer <fweimer@redhat.com>
Add "#define _GNU_SOURCE" to the configure test for memrchr

106
ChangeLog
View File

@ -1,3 +1,109 @@
=== RELEASE 2.29 ===
Thu Mar 9 19:51:20 CET 2023 Florian Weimer <fweimer@redhat.com>:
Add "#define _GNU_SOURCE" to the configure test for memrchr
Thu Mar 9 18:37:12 CET 2023 Juhani Krekela <juhani@krekela.fi>:
Implement strike formatting
Wed Mar 8 20:08:01 CET 2023 mikulas:
Fixed a bug that image was sometimes displayed with too small size
Mon Jan 23 19:25:18 CET 2023 mikulas:
Fixed a bug that webp images from local disk could not be displayed
Mon Jan 23 19:24:06 CET 2023 notcancername <notcancername@protonmail.com>:
Support AVIF images
Sun Oct 9 15:54:06 CEST 2022 Jakub Bogusz <qboosh@pld-linux.org>:
Updated Polish Translation
=== RELEASE 2.28 ===
Sat Sep 17 21:54:44 CEST 2022 mikulas:
Disable cache when following redirects from consent.google.com
Sat Sep 10 16:05:02 CEST 2022 mikulas:
On Windows, change the default directory to the "Downloads" directory,
so that downloaded files are placed there
Sat Sep 10 15:31:20 CEST 2022 mikulas:
Compile the 32-bit Windows version without SSE2 instructions
Tue May 31 21:07:51 CEST 2022 mikulas:
Fix a display glitch on framebuffer, if the user doesn't have mouse and
if he presses F5, F6, F7 or F8
=== RELEASE 2.27 ===
Fri May 27 20:10:59 CEST 2022 mikulas:
Compile the Windows version with libevent 2.0 (note that libevent 2.1
doesn't work on Windows 7)
This fixes "Fatal error: too big handle" because Cygwin has too low
FD_SETSIZE (64)
Wed Apr 13 19:43:10 CEST 2022 Emir Yasin SARI <bitigchi@me.com>:
Updated the Turkish translation
Mon Apr 11 19:23:19 CEST 2022 mikulas:
Allow the user to specify a numeric IPv6 address in the dns-over-https
box
=== RELEASE 2.26 ===
Wed Apr 6 18:13:16 CEST 2022 mikulas:
Fix a display glitch if the list is empty and the user presses '*'
Sat Mar 26 11:09:12 CET 2022 mikulas:
Add a possibility to pass gopher:// URLs to an external program
Sat Jan 1 14:46:06 CET 2022 Martin Michel <martin.famic.de>:
Updated the German translation
Updated the initial bookmarks
Fri Dec 24 12:47:58 CET 2021 zinov@waifu.club:
Fix a bug when form submit url contained '#'
Sun Dec 5 18:17:11 CET 2021 mikulas:
Support WEBP images
Fri Dec 3 17:40:55 CET 2021 mikulas:
Support DNS-over-HTTPS
Sun Nov 21 11:36:45 CET 2021 mikulas:
Try multiple IPv4 addresses on systems that don't have getaddrinfo
Sun Nov 14 20:55:11 CET 2021 Timur Adamov <nbvec222@gmail.com>:
Handle the "TD" tag outside "TR" the same way as in other browsers
Tue Oct 19 18:42:50 CEST 2021 mikulas:
Make it possible to bind a socket to a network interface
It could be activated by specifying interface name in the "Bind to local
IP address" box
=== RELEASE 2.25 === === RELEASE 2.25 ===
Fri Oct 1 18:27:25 CEST 2021 mikulas: Fri Oct 1 18:27:25 CEST 2021 mikulas:

View File

@ -1,4 +1,4 @@
Links 2.25 -- How To Install Links 2.29 -- How To Install
---------------------------- ----------------------------
Follow this step-by-step: Follow this step-by-step:

View File

@ -24,7 +24,7 @@ if JAVASCRIPT
links_LDADD=builtin.o context.o ipret.o javascr.o javascript.o md5.o md5hl.o ns.o pomocny.o regexp.o links_LDADD=builtin.o context.o ipret.o javascr.o javascript.o md5.o md5hl.o ns.o pomocny.o regexp.o
endif endif
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 links_SOURCES=af_unix.c avif.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 doh.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 sortix.c string.c suffix.c svg.c svgalib.c terminal.c tiff.c types.c url.c view.c view_gr.c vms.c webp.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
# builtin.c context.c ipret.c javascr.c javascript.c md5.c md5hl.c ns.c pomocny.c regexp.c md5.h ns.h struct.h tree.h typy.h ipret.h javascript.h builtin.h builtin_keys.h # builtin.c context.c ipret.c javascr.c javascript.c md5.c md5hl.c ns.c pomocny.c regexp.c md5.h ns.h struct.h tree.h typy.h ipret.h javascript.h builtin.h builtin_keys.h
dist-hook: dist-hook:
@ -45,4 +45,3 @@ haiku.o: $(srcdir)/haiku.cpp
datadir = $(prefix)/@DATADIRNAME@ datadir = $(prefix)/@DATADIRNAME@
LIBS = @LIBS@ LIBS = @LIBS@

View File

@ -35,8 +35,6 @@ mandir = @mandir@
includedir = @includedir@ includedir = @includedir@
oldincludedir = /usr/include oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
@ -78,7 +76,7 @@ bin_PROGRAMS = links
@HAIKU_GR_TRUE@links_LDADD = haiku.o @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 @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 links_SOURCES = af_unix.c avif.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 doh.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 sortix.c string.c suffix.c svg.c svgalib.c terminal.c tiff.c types.c url.c view.c view_gr.c vms.c webp.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
CXXFLAGS = @CXXFLAGS@ CXXFLAGS = @CXXFLAGS@
@ -94,15 +92,15 @@ PROGRAMS = $(bin_PROGRAMS)
DEFS = @DEFS@ -I. -I$(srcdir) -I. DEFS = @DEFS@ -I. -I$(srcdir) -I.
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@
links_OBJECTS = af_unix.o auth.o beos.o bfu.o block.o bookmark.o \ links_OBJECTS = af_unix.o avif.o auth.o beos.o bfu.o block.o bookmark.o \
cache.o charsets.o compress.o connect.o cookies.o data.o default.o \ cache.o charsets.o compress.o connect.o cookies.o data.o default.o \
dip.o directfb.o dither.o dns.o dos.o drivers.o error.o file.o finger.o \ dip.o directfb.o dither.o dns.o doh.o dos.o drivers.o error.o file.o \
fn_impl.o fontconf.o font_inc.o framebuf.o freetype.o ftp.o gif.o grx.o \ finger.o fn_impl.o fontconf.o font_inc.o framebuf.o freetype.o ftp.o \
hpux.o html.o html_gr.o html_r.o html_tbl.o http.o https.o img.o \ gif.o grx.o hpux.o html.o html_gr.o html_r.o html_tbl.o http.o https.o \
imgcache.o jpeg.o jsint.o kbd.o language.o listedit.o lru.o mailto.o \ img.o imgcache.o jpeg.o jsint.o kbd.o language.o listedit.o lru.o \
main.o memory.o menu.o objreq.o os_dep.o pmshell.o png.o sched.o \ mailto.o main.o memory.o menu.o objreq.o os_dep.o pmshell.o png.o \
select.o session.o smb.o string.o suffix.o svg.o svgalib.o terminal.o \ sched.o select.o session.o smb.o sortix.o string.o suffix.o svg.o svgalib.o \
tiff.o types.o url.o view.o view_gr.o vms.o x.o xbm.o terminal.o tiff.o types.o url.o view.o view_gr.o vms.o webp.o x.o xbm.o
@ATHEOS_GR_TRUE@links_DEPENDENCIES = atheos.o @ATHEOS_GR_TRUE@links_DEPENDENCIES = atheos.o
@JAVASCRIPT_TRUE@links_DEPENDENCIES = builtin.o context.o ipret.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@javascr.o javascript.o md5.o md5hl.o ns.o pomocny.o \
@ -352,6 +350,8 @@ af_unix.o: af_unix.c links.h cfg.h config.h com-defs.h os_dep.h \
os_depx.h setup.h language.h codepage.h os_depx.h setup.h language.h codepage.h
auth.o: auth.c links.h cfg.h config.h com-defs.h os_dep.h os_depx.h \ auth.o: auth.c links.h cfg.h config.h com-defs.h os_dep.h os_depx.h \
setup.h language.h codepage.h setup.h language.h codepage.h
avif.o: avif.c cfg.h config.h links.h com-defs.h os_dep.h os_depx.h \
setup.h language.h codepage.h
beos.o: beos.c beos.o: beos.c
bfu.o: bfu.c links.h cfg.h config.h com-defs.h os_dep.h os_depx.h \ bfu.o: bfu.c links.h cfg.h config.h com-defs.h os_dep.h os_depx.h \
setup.h language.h codepage.h setup.h language.h codepage.h
@ -382,6 +382,8 @@ dither.o: dither.c cfg.h config.h links.h com-defs.h os_dep.h os_depx.h \
setup.h language.h codepage.h bits.h setup.h language.h codepage.h bits.h
dns.o: dns.c links.h cfg.h config.h com-defs.h os_dep.h os_depx.h \ dns.o: dns.c links.h cfg.h config.h com-defs.h os_dep.h os_depx.h \
setup.h language.h codepage.h setup.h language.h codepage.h
doh.o: doh.c links.h cfg.h config.h com-defs.h os_dep.h os_depx.h \
setup.h language.h codepage.h
dos.o: dos.c dos.o: dos.c
drivers.o: drivers.c cfg.h config.h links.h com-defs.h os_dep.h \ drivers.o: drivers.c cfg.h config.h links.h com-defs.h os_dep.h \
os_depx.h setup.h language.h codepage.h os_depx.h setup.h language.h codepage.h
@ -459,6 +461,8 @@ session.o: session.c links.h cfg.h config.h com-defs.h os_dep.h \
os_depx.h setup.h language.h codepage.h os_depx.h setup.h language.h codepage.h
smb.o: smb.c links.h cfg.h config.h com-defs.h os_dep.h os_depx.h \ smb.o: smb.c links.h cfg.h config.h com-defs.h os_dep.h os_depx.h \
setup.h language.h codepage.h setup.h language.h codepage.h
sortix.o: sortix.c links.h cfg.h config.h com-defs.h os_dep.h os_depx.h \
setup.h language.h codepage.h
string.o: string.c links.h cfg.h config.h com-defs.h os_dep.h os_depx.h \ string.o: string.c links.h cfg.h config.h com-defs.h os_dep.h os_depx.h \
setup.h language.h codepage.h setup.h language.h codepage.h
suffix.o: suffix.c links.h cfg.h config.h com-defs.h os_dep.h os_depx.h \ suffix.o: suffix.c links.h cfg.h config.h com-defs.h os_dep.h os_depx.h \
@ -481,6 +485,8 @@ view.o: view.c links.h cfg.h config.h com-defs.h os_dep.h os_depx.h \
view_gr.o: view_gr.c cfg.h config.h links.h com-defs.h os_dep.h \ view_gr.o: view_gr.c cfg.h config.h links.h com-defs.h os_dep.h \
os_depx.h setup.h language.h codepage.h os_depx.h setup.h language.h codepage.h
vms.o: vms.c vms.o: vms.c
webp.o: webp.c cfg.h config.h links.h com-defs.h os_dep.h os_depx.h \
setup.h language.h codepage.h
x.o: x.c cfg.h config.h links.h com-defs.h os_dep.h os_depx.h setup.h \ x.o: x.c cfg.h config.h links.h com-defs.h os_dep.h os_depx.h setup.h \
language.h codepage.h language.h codepage.h
xbm.o: xbm.c cfg.h config.h links.h com-defs.h os_dep.h os_depx.h \ xbm.o: xbm.c cfg.h config.h links.h com-defs.h os_dep.h os_depx.h \

View File

@ -229,6 +229,9 @@
/* */ /* */
#undef GRDRV_GRX #undef GRDRV_GRX
/* */
#undef GRDRV_SORTIX
/* Have freetype */ /* Have freetype */
#undef HAVE_FREETYPE #undef HAVE_FREETYPE
@ -241,5 +244,11 @@
/* SVG */ /* SVG */
#undef HAVE_SVG #undef HAVE_SVG
/* WebP */
#undef HAVE_WEBP
/* AVIF */
#undef HAVE_AVIF
/* Gpm_Event has wdx and wdy */ /* Gpm_Event has wdx and wdy */
#undef HAVE_WDX_WDY #undef HAVE_WDX_WDY

105
avif.c Normal file
View File

@ -0,0 +1,105 @@
#include "cfg.h"
#ifdef G
#include "links.h"
#ifdef HAVE_AVIF
#include <avif/avif.h>
struct avif_decoder {
unsigned char *buffer;
int len;
};
void avif_start(struct cached_image *cimg)
{
struct avif_decoder *deco;
deco = mem_alloc(sizeof(struct avif_decoder));
deco->buffer = init_str();
deco->len = 0;
cimg->decoder = deco;
}
void avif_restart(struct cached_image *cimg, unsigned char *data, int length)
{
struct avif_decoder *deco = (struct avif_decoder *)cimg->decoder;
add_bytes_to_str(&deco->buffer, &deco->len, data, length);
}
void avif_finish(struct cached_image *cimg)
{
avifRGBImage ari;
struct avif_decoder *deco;
avifDecoder *decoder;
memset(&ari, 0, sizeof(avifRGBImage));
deco = (struct avif_decoder *)cimg->decoder;
decoder = avifDecoderCreate();
if (!decoder)
goto end;
#if AVIF_VERSION > 90001
decoder->strictFlags = AVIF_STRICT_DISABLED;
#endif
decoder->ignoreExif = 1;
decoder->ignoreXMP = 1;
if (avifDecoderSetIOMemory(decoder, deco->buffer, deco->len) != AVIF_RESULT_OK)
goto destroy_decoder;
if (avifDecoderParse(decoder) != AVIF_RESULT_OK)
goto destroy_decoder;
cimg->width = decoder->image->width;
cimg->height = decoder->image->height;
cimg->buffer_bytes_per_pixel = 4;
cimg->red_gamma = cimg->green_gamma = cimg->blue_gamma = (float)sRGB_gamma;
cimg->strip_optimized = 0;
if (avifDecoderNextImage(decoder) != AVIF_RESULT_OK)
goto destroy_decoder;
avifRGBImageSetDefaults(&ari, decoder->image);
ari.depth = 8;
ari.format = AVIF_RGB_FORMAT_RGBA;
if (header_dimensions_known(cimg))
goto destroy_decoder;
ari.pixels = cimg->buffer;
ari.rowBytes = (unsigned)cimg->width * 4;
if (avifImageYUVToRGB(decoder->image, &ari) != AVIF_RESULT_OK)
goto destroy_decoder;
destroy_decoder:
avifDecoderDestroy(decoder);
end:
img_end(cimg);
}
void avif_destroy_decoder(struct cached_image *cimg)
{
struct avif_decoder *deco = (struct avif_decoder *)cimg->decoder;
mem_free(deco->buffer);
}
void add_avif_version(unsigned char **s, int *l)
{
add_to_str(s, l, cast_uchar "AVIF (");
add_num_to_str(s, l, AVIF_VERSION_MAJOR);
add_chr_to_str(s, l, '.');
add_num_to_str(s, l, AVIF_VERSION_MINOR);
add_chr_to_str(s, l, '.');
add_num_to_str(s, l, AVIF_VERSION_PATCH);
#ifdef AVIF_VERSION_DEVEL
if (AVIF_VERSION_DEVEL) {
add_chr_to_str(s, l, '-');
add_num_to_str(s, l, AVIF_VERSION_DEVEL);
}
#endif
add_chr_to_str(s, l, ')');
}
#endif
#endif

9
bfu.c
View File

@ -1666,15 +1666,6 @@ static int check_local_ip_address_internal(struct dialog_data *dlg, struct dialo
if (!*p) { if (!*p) {
return 0; return 0;
} }
#ifdef SUPPORT_IPV6
if (pf == PF_INET6) rs = numeric_ipv6_address(p, NULL, NULL);
else
#endif
rs = numeric_ip_address(p, NULL);
if (rs) {
msg_box(dlg->win->term, NULL, TEXT_(T_BAD_IP_ADDRESS), AL_CENTER, TEXT_(T_INVALID_IP_ADDRESS_SYNTAX), MSG_BOX_END, NULL, 1, TEXT_(T_CANCEL), msg_box_null, B_ENTER | B_ESC);
return 1;
}
s = socket_and_bind(pf, p); s = socket_and_bind(pf, p);
if (s != -1) { if (s != -1) {
EINTRLOOP(rs, close(s)); EINTRLOOP(rs, close(s));

View File

@ -512,12 +512,12 @@ static void create_initial_bookmarks(void)
{ {
add_bookmark(cast_uchar "Links", NULL, 0); add_bookmark(cast_uchar "Links", NULL, 0);
add_bookmark(cast_uchar "English", NULL, 1); add_bookmark(cast_uchar "English", NULL, 1);
add_bookmark(cast_uchar "Calibration Procedure", cast_uchar "http://atrey.karlin.mff.cuni.cz/~clock/twibright/links/calibration.html", 2); add_bookmark(cast_uchar "Calibration Procedure", cast_uchar "http://links.twibright.com/calibration.html", 2);
add_bookmark(cast_uchar "Links Homepage", cast_uchar "http://atrey.karlin.mff.cuni.cz/~clock/twibright/links/", 2); add_bookmark(cast_uchar "Links Homepage", cast_uchar "http://links.twibright.com/", 2);
add_bookmark(cast_uchar "Links Manual", cast_uchar "http://links.twibright.com/user_en.html", 2); add_bookmark(cast_uchar "Links Manual", cast_uchar "http://links.twibright.com/user_en.html", 2);
add_bookmark(cast_uchar "Cesky", NULL, 1); add_bookmark(cast_uchar "Cesky", NULL, 1);
add_bookmark(cast_uchar "Kalibracni procedura", cast_uchar "http://atrey.karlin.mff.cuni.cz/~clock/twibright/links/kalibrace.html", 2); add_bookmark(cast_uchar "Kalibracni procedura", cast_uchar "http://links.twibright.com/kalibrace.html", 2);
add_bookmark(cast_uchar "Links: domaci stranka", cast_uchar "http://atrey.karlin.mff.cuni.cz/~clock/twibright/links/index_cz.html", 2); add_bookmark(cast_uchar "Links: domaci stranka", cast_uchar "http://links.twibright.com/index_cz.php", 2);
add_bookmark(cast_uchar "Manual k Linksu", cast_uchar "http://links.twibright.com/user.html", 2); add_bookmark(cast_uchar "Manual k Linksu", cast_uchar "http://links.twibright.com/user.html", 2);
} }

View File

@ -232,9 +232,7 @@ void detach_cache_entry(struct cache_entry *e)
static void mem_free_fragment(struct fragment *f) static void mem_free_fragment(struct fragment *f)
{ {
size_t s = (size_t)f->length;
mem_free(f); mem_free(f);
s += sizeof(struct fragment);
} }
#define sf(x) e->data_size += (x), cache_size += (my_uintptr_t)(x) #define sf(x) e->data_size += (x), cache_size += (my_uintptr_t)(x)
@ -477,6 +475,11 @@ void delete_cache_entry(struct cache_entry *e)
mem_free(e); mem_free(e);
} }
void finish_cache_entry(struct cache_entry *e)
{
e->count = cache_count++;
}
static int shrink_file_cache(int u) static int shrink_file_cache(int u)
{ {
int r = 0; int r = 0;

View File

@ -126,6 +126,15 @@
/* Define if you have the SSL_set_security_level function. */ /* Define if you have the SSL_set_security_level function. */
/* #undef HAVE_SSL_SET_SECURITY_LEVEL */ /* #undef HAVE_SSL_SET_SECURITY_LEVEL */
/* Define if you have the WebPDecodeRGBA function. */
/* #undef HAVE_WEBPDECODERGBA */
/* Define if you have the WebPFree function. */
/* #undef HAVE_WEBPFREE */
/* Define if you have the X509_VERIFY_PARAM_set_flags function. */
/* #undef HAVE_X509_VERIFY_PARAM_SET_FLAGS */
/* Define if you have the X509_check_host function. */ /* Define if you have the X509_check_host function. */
/* #undef HAVE_X509_CHECK_HOST */ /* #undef HAVE_X509_CHECK_HOST */
@ -549,6 +558,9 @@
/* Define if you have the <atheos/threads.h> header file. */ /* Define if you have the <atheos/threads.h> header file. */
/* #undef HAVE_ATHEOS_THREADS_H */ /* #undef HAVE_ATHEOS_THREADS_H */
/* Define if you have the <avif/avif.h> header file. */
/* #undef HAVE_AVIF_AVIF_H */
/* Define if you have the <brotli/decode.h> header file. */ /* Define if you have the <brotli/decode.h> header file. */
/* #undef HAVE_BROTLI_DECODE_H */ /* #undef HAVE_BROTLI_DECODE_H */
@ -798,6 +810,9 @@
/* Define if you have the <values.h> header file. */ /* Define if you have the <values.h> header file. */
/* #undef HAVE_VALUES_H */ /* #undef HAVE_VALUES_H */
/* Define if you have the <webp/decode.h> header file. */
/* #undef HAVE_WEBP_DECODE_H */
/* Define if you have the <windowsx.h> header file. */ /* Define if you have the <windowsx.h> header file. */
/* #undef HAVE_WINDOWSX_H */ /* #undef HAVE_WINDOWSX_H */
@ -816,6 +831,9 @@
/* Define if you have the atheos library (-latheos). */ /* Define if you have the atheos library (-latheos). */
/* #undef HAVE_LIBATHEOS */ /* #undef HAVE_LIBATHEOS */
/* Define if you have the avif library (-lavif). */
/* #undef HAVE_LIBAVIF */
/* Define if you have the be library (-lbe). */ /* Define if you have the be library (-lbe). */
/* #undef HAVE_LIBBE */ /* #undef HAVE_LIBBE */
@ -897,6 +915,9 @@
/* Define if you have the watt library (-lwatt). */ /* Define if you have the watt library (-lwatt). */
/* #undef HAVE_LIBWATT */ /* #undef HAVE_LIBWATT */
/* Define if you have the webp library (-lwebp). */
/* #undef HAVE_LIBWEBP */
/* Define if you have the x86 library (-lx86). */ /* Define if you have the x86 library (-lx86). */
/* #undef HAVE_LIBX86 */ /* #undef HAVE_LIBX86 */
@ -919,11 +940,11 @@
#define PACKAGE "links" #define PACKAGE "links"
/* Version number of package */ /* Version number of package */
#define VERSION "2.25" #define VERSION "2.29"
/* */ /* */
#define VERSION "2.25" #define VERSION "2.29"
/* */ /* */
/* #undef HAVE_OPENMP */ /* #undef HAVE_OPENMP */
@ -1156,5 +1177,11 @@
/* SVG */ /* SVG */
/* #undef HAVE_SVG */ /* #undef HAVE_SVG */
/* WebP */
/* #undef HAVE_WEBP */
/* AVIF */
/* #undef HAVE_AVIF */
/* Gpm_Event has wdx and wdy */ /* Gpm_Event has wdx and wdy */
/* #undef HAVE_WDX_WDY */ /* #undef HAVE_WDX_WDY */

View File

@ -125,6 +125,15 @@
/* Define if you have the SSL_set_security_level function. */ /* Define if you have the SSL_set_security_level function. */
#undef HAVE_SSL_SET_SECURITY_LEVEL #undef HAVE_SSL_SET_SECURITY_LEVEL
/* Define if you have the WebPDecodeRGBA function. */
#undef HAVE_WEBPDECODERGBA
/* Define if you have the WebPFree function. */
#undef HAVE_WEBPFREE
/* Define if you have the X509_VERIFY_PARAM_set_flags function. */
#undef HAVE_X509_VERIFY_PARAM_SET_FLAGS
/* Define if you have the X509_check_host function. */ /* Define if you have the X509_check_host function. */
#undef HAVE_X509_CHECK_HOST #undef HAVE_X509_CHECK_HOST
@ -215,6 +224,9 @@
/* Define if you have the dirfd function. */ /* Define if you have the dirfd function. */
#undef HAVE_DIRFD #undef HAVE_DIRFD
/* Define if you have the <display.h> header file. */
#undef HAVE_DISPLAY_H
/* Define if you have the event_base_free function. */ /* Define if you have the event_base_free function. */
#undef HAVE_EVENT_BASE_FREE #undef HAVE_EVENT_BASE_FREE
@ -563,6 +575,9 @@
/* Define if you have the <atheos/threads.h> header file. */ /* Define if you have the <atheos/threads.h> header file. */
#undef HAVE_ATHEOS_THREADS_H #undef HAVE_ATHEOS_THREADS_H
/* Define if you have the <avif/avif.h> header file. */
#undef HAVE_AVIF_AVIF_H
/* Define if you have the <brotli/decode.h> header file. */ /* Define if you have the <brotli/decode.h> header file. */
#undef HAVE_BROTLI_DECODE_H #undef HAVE_BROTLI_DECODE_H
@ -596,6 +611,9 @@
/* Define if you have the <fontconfig/fontconfig.h> header file. */ /* Define if you have the <fontconfig/fontconfig.h> header file. */
#undef HAVE_FONTCONFIG_FONTCONFIG_H #undef HAVE_FONTCONFIG_FONTCONFIG_H
/* Define if you have the <framebuffer.h> header file. */
#undef HAVE_FRAMEBUFFER_H
/* Define if you have the <ft2build.h> header file. */ /* Define if you have the <ft2build.h> header file. */
#undef HAVE_FT2BUILD_H #undef HAVE_FT2BUILD_H
@ -764,6 +782,9 @@
/* Define if you have the <sys/ioctl.h> header file. */ /* Define if you have the <sys/ioctl.h> header file. */
#undef HAVE_SYS_IOCTL_H #undef HAVE_SYS_IOCTL_H
/* Define if you have the <sys/keycodes.h> header file. */
#undef HAVE_SYS_KEYCODES_H
/* Define if you have the <sys/mman.h> header file. */ /* Define if you have the <sys/mman.h> header file. */
#undef HAVE_SYS_MMAN_H #undef HAVE_SYS_MMAN_H
@ -818,6 +839,9 @@
/* Define if you have the <values.h> header file. */ /* Define if you have the <values.h> header file. */
#undef HAVE_VALUES_H #undef HAVE_VALUES_H
/* Define if you have the <webp/decode.h> header file. */
#undef HAVE_WEBP_DECODE_H
/* Define if you have the <windowsx.h> header file. */ /* Define if you have the <windowsx.h> header file. */
#undef HAVE_WINDOWSX_H #undef HAVE_WINDOWSX_H
@ -836,6 +860,9 @@
/* Define if you have the atheos library (-latheos). */ /* Define if you have the atheos library (-latheos). */
#undef HAVE_LIBATHEOS #undef HAVE_LIBATHEOS
/* Define if you have the avif library (-lavif). */
#undef HAVE_LIBAVIF
/* Define if you have the be library (-lbe). */ /* Define if you have the be library (-lbe). */
#undef HAVE_LIBBE #undef HAVE_LIBBE
@ -848,6 +875,9 @@
/* Define if you have the bz2 library (-lbz2). */ /* Define if you have the bz2 library (-lbz2). */
#undef HAVE_LIBBZ2 #undef HAVE_LIBBZ2
/* Define if you have the display library (-ldisplay). */
#undef HAVE_LIBDISPLAY
/* Define if you have the dl library (-ldl). */ /* Define if you have the dl library (-ldl). */
#undef HAVE_LIBDL #undef HAVE_LIBDL
@ -920,6 +950,9 @@
/* Define if you have the watt library (-lwatt). */ /* Define if you have the watt library (-lwatt). */
#undef HAVE_LIBWATT #undef HAVE_LIBWATT
/* Define if you have the webp library (-lwebp). */
#undef HAVE_LIBWEBP
/* Define if you have the x86 library (-lx86). */ /* Define if you have the x86 library (-lx86). */
#undef HAVE_LIBX86 #undef HAVE_LIBX86
@ -1173,6 +1206,9 @@
/* */ /* */
#undef GRDRV_GRX #undef GRDRV_GRX
/* */
#undef GRDRV_SORTIX
/* Have freetype */ /* Have freetype */
#undef HAVE_FREETYPE #undef HAVE_FREETYPE
@ -1185,5 +1221,11 @@
/* SVG */ /* SVG */
#undef HAVE_SVG #undef HAVE_SVG
/* WebP */
#undef HAVE_WEBP
/* AVIF */
#undef HAVE_AVIF
/* Gpm_Event has wdx and wdy */ /* Gpm_Event has wdx and wdy */
#undef HAVE_WDX_WDY #undef HAVE_WDX_WDY

1958
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@
AC_INIT(main.c) AC_INIT(main.c)
AM_INIT_AUTOMAKE(links, 2.25) AM_INIT_AUTOMAKE(links, 2.29)
ACLOCAL="./missing aclocal" ACLOCAL="./missing aclocal"
AUTOCONF="./missing autoconf" AUTOCONF="./missing autoconf"
@ -410,7 +410,8 @@ fi
AC_HAVE_FUNCS(memrchr) AC_HAVE_FUNCS(memrchr)
AC_CACHE_CHECK([for memrchr], ac_cv_have_memrchr, AC_CACHE_CHECK([for memrchr], ac_cv_have_memrchr,
AC_TRY_LINK([#include <string.h>], [char * volatile str = ""; volatile int l = 1; return !!memrchr(str, 0, l);], ac_cv_have_memrchr=yes, ac_cv_have_memrchr=no) AC_TRY_LINK([#define _GNU_SOURCE
#include <string.h>], [char * volatile str = ""; volatile int l = 1; return !!memrchr(str, 0, l);], ac_cv_have_memrchr=yes, ac_cv_have_memrchr=no)
) )
if test "$ac_cv_have_memrchr" = yes; then if test "$ac_cv_have_memrchr" = yes; then
AC_DEFINE(HAVE_MEMRCHR) AC_DEFINE(HAVE_MEMRCHR)
@ -910,7 +911,7 @@ if test -z "$disable_ssl"; then
if test "$cf_result" = nss; then if test "$cf_result" = nss; then
AC_DEFINE(HAVE_NSS) AC_DEFINE(HAVE_NSS)
fi fi
AC_HAVE_FUNCS(ASN1_STRING_get0_data ASN1_STRING_to_UTF8 OPENSSL_cleanup OPENSSL_init_ssl RAND_add RAND_egd RAND_file_name RAND_load_file RAND_write_file SSL_SESSION_is_resumable SSL_get0_verified_chain SSL_get1_peer_certificate SSL_get1_session SSL_load_error_strings SSL_set_security_level X509_check_host X509_check_ip) AC_HAVE_FUNCS(ASN1_STRING_get0_data ASN1_STRING_to_UTF8 OPENSSL_cleanup OPENSSL_init_ssl RAND_add RAND_egd RAND_file_name RAND_load_file RAND_write_file SSL_SESSION_is_resumable SSL_get0_verified_chain SSL_get1_peer_certificate SSL_get1_session SSL_load_error_strings SSL_set_security_level X509_VERIFY_PARAM_set_flags X509_check_host X509_check_ip)
AC_CACHE_CHECK([for CRYPTO_set_mem_functions without file/line], ac_cv_have_crypto_set_mem_functions_1, AC_CACHE_CHECK([for CRYPTO_set_mem_functions without file/line], ac_cv_have_crypto_set_mem_functions_1,
AC_TRY_LINK([#include <openssl/crypto.h> AC_TRY_LINK([#include <openssl/crypto.h>
static int csmf(void *(*m)(size_t), void *(*r)(void *, size_t), void (*f)(void *)) { return 0; } static int csmf(void *(*m)(size_t), void *(*r)(void *, size_t), void (*f)(void *)) { return 0; }
@ -1049,6 +1050,7 @@ AC_ARG_WITH(windows, [ --without-windows compile without Windows graphics
AC_ARG_WITH(atheos, [ --without-atheos compile without Atheos graphics driver],[if test "$withval" = no; then disable_atheos=yes; else disable_atheos=no; fi]) AC_ARG_WITH(atheos, [ --without-atheos compile without Atheos graphics driver],[if test "$withval" = no; then disable_atheos=yes; else disable_atheos=no; fi])
AC_ARG_WITH(haiku, [ --without-haiku compile without Haiku graphics driver],[if test "$withval" = no; then disable_haiku=yes; else disable_haiku=no; fi]) AC_ARG_WITH(haiku, [ --without-haiku compile without Haiku graphics driver],[if test "$withval" = no; then disable_haiku=yes; else disable_haiku=no; fi])
AC_ARG_WITH(grx, [ --without-grx compile without DOS GRX graphics driver],[if test "$withval" = no; then disable_grx=yes; else disable_grx=no; fi]) AC_ARG_WITH(grx, [ --without-grx compile without DOS GRX graphics driver],[if test "$withval" = no; then disable_grx=yes; else disable_grx=no; fi])
AC_ARG_WITH(sortix, [ --without-sortix compile without Sortix display(1) graphics driver],[if test "$withval" = no; then disable_sortix=yes; else disable_sortix=no; fi])
drivers="" drivers=""
@ -1311,6 +1313,18 @@ if test "$disable_grx" != yes -a "$ac_cv_have_djgpp" = yes; then
fi fi
fi fi
if test "$disable_sortix" != yes; then
AC_CHECK_HEADERS(display.h framebuffer.h sys/keycodes.h)
AC_CHECK_LIB(display, display_connect_default)
if test "$ac_cv_header_display_h" = yes &&
test "$ac_cv_header_framebuffer_h" = yes &&
test "$ac_cv_header_sys_keycodes_h" = yes &&
test "$ac_cv_lib_display_display_connect_default" = yes; then
AC_DEFINE(GRDRV_SORTIX)
drivers="$drivers sortix"
fi
fi
AC_ARG_WITH(freetype, [ --without-freetype compile without freetype support],[if test "$withval" = no; then disable_freetype=yes; else disable_freetype=no; fi]) AC_ARG_WITH(freetype, [ --without-freetype compile without freetype support],[if test "$withval" = no; then disable_freetype=yes; else disable_freetype=no; fi])
font_rendering=INTERNAL font_rendering=INTERNAL
@ -1441,11 +1455,12 @@ fi
fi fi
AC_CHECK_HEADERS(cairo.h librsvg/rsvg.h librsvg/rsvg-cairo.h librsvg/librsvg-features.h) AC_CHECK_HEADERS(cairo.h librsvg/rsvg.h librsvg/rsvg-cairo.h librsvg/librsvg-features.h)
AC_HAVE_FUNCS(rsvg_handle_render_cairo rsvg_handle_read_stream_sync) AC_HAVE_FUNCS(rsvg_handle_render_cairo)
if test "$ac_cv_func_rsvg_handle_render_cairo" != yes; then if test "$ac_cv_func_rsvg_handle_render_cairo" != yes; then
AC_CHECK_LIB(rsvg-2, rsvg_handle_render_cairo) AC_CHECK_LIB(rsvg-2, rsvg_handle_render_cairo)
fi fi
if test "$ac_cv_header_cairo_h" = yes -a "$ac_cv_header_librsvg_rsvg_h" = yes && test "$ac_cv_func_rsvg_handle_render_cairo" = yes -o "$ac_cv_lib_rsvg_2_rsvg_handle_render_cairo" = yes; then if test "$ac_cv_header_cairo_h" = yes -a "$ac_cv_header_librsvg_rsvg_h" = yes && test "$ac_cv_func_rsvg_handle_render_cairo" = yes -o "$ac_cv_lib_rsvg_2_rsvg_handle_render_cairo" = yes; then
AC_HAVE_FUNCS(rsvg_handle_read_stream_sync)
AC_DEFINE(HAVE_SVG) AC_DEFINE(HAVE_SVG)
cf_have_svg=yes cf_have_svg=yes
image_formats="$image_formats SVG" image_formats="$image_formats SVG"
@ -1455,6 +1470,51 @@ fi
fi fi
fi fi
AC_ARG_WITH(libwebp, [ --without-libwebp compile without WEBP support],[if test "$withval" = no; then disable_webp=yes; else disable_webp=no; fi])
cf_have_webp=no
if test "$disable_webp" != yes; then
CPPFLAGS_X="$CPPFLAGS"
LIBS_X="$LIBS"
AC_ARG_ENABLE(webp-pkgconfig, [ --disable-webp-pkgconfig don't use pkgconfig when searching for librwebp], cf_libwebp_pkgconfig="$enableval", cf_libwebp_pkgconfig=yes)
if test "$cf_libwebp_pkgconfig" != no; then
PKG_CHECK_MODULES(LIBWEBP, libwebp, pkgconfig_libwebp=yes, pkgconfig_libwebp=no)
if test "$PKG_CONFIG" != no -a "$pkgconfig_libwebp" = no; then
AC_MSG_RESULT(no)
fi
if test "$pkgconfig_libwebp" = "yes"; then
CPPFLAGS="$CPPFLAGS $LIBWEBP_CFLAGS"
LIBS="$LIBWEBP_LIBS $LIBS"
fi
fi
AC_CHECK_HEADERS(webp/decode.h)
AC_HAVE_FUNCS(WebPDecodeRGBA)
if test "$ac_cv_func_WebPDecodeRGBA" != yes; then
AC_CHECK_LIB(webp, WebPDecodeRGBA)
fi
if test "$ac_cv_header_webp_decode_h" = yes && test "$ac_cv_func_WebPDecodeRGBA" = yes -o "$ac_cv_lib_webp_WebPDecodeRGBA" = yes; then
AC_HAVE_FUNCS(WebPFree)
AC_DEFINE(HAVE_WEBP)
cf_have_webp=yes
image_formats="$image_formats WEBP"
else
CPPFLAGS="$CPPFLAGS_X"
LIBS="$LIBS_X"
fi
fi
AC_ARG_WITH(libavif, [ --without-libavif compile without AVIF support],[if test "$withval" = no; then disable_avif=yes; else disable_avif=no; fi])
cf_have_avif=no
if test "$disable_avif" != yes; then
AC_CHECK_HEADERS(avif/avif.h)
AC_CHECK_LIB(avif, avifDecoderSetIOMemory)
if test "$ac_cv_header_avif_avif_h" = yes && test "$ac_cv_lib_avif_avifDecoderSetIOMemory" = yes; then
AC_DEFINE(HAVE_AVIF)
cf_have_avif=yes
image_formats="$image_formats AVIF"
fi
fi
if test -z "$drivers" && test "$cf_use_graphics" != no; then if test -z "$drivers" && test "$cf_use_graphics" != no; then
AC_MSG_ERROR([No graphics drivers found.]) AC_MSG_ERROR([No graphics drivers found.])
@ -1544,4 +1604,3 @@ fi
dnl mv Makefile Makefile.tmp dnl mv Makefile Makefile.tmp
dnl grep -v DEPS_MAGIC Makefile.tmp >Makefile dnl grep -v DEPS_MAGIC Makefile.tmp >Makefile
dnl rm Makefile.tmp dnl rm Makefile.tmp

View File

@ -110,9 +110,7 @@ int socket_and_bind(int pf, unsigned char *address)
struct sockaddr_in sa; struct sockaddr_in sa;
unsigned char addr[4]; unsigned char addr[4];
if (numeric_ip_address(address, addr) == -1) { if (numeric_ip_address(address, addr) == -1) {
EINTRLOOP(rs, close(s)); goto bind_to_iface;
errno = EINVAL;
return -1;
} }
memset(&sa, 0, sizeof sa); memset(&sa, 0, sizeof sa);
sa.sin_family = AF_INET; sa.sin_family = AF_INET;
@ -133,9 +131,7 @@ int socket_and_bind(int pf, unsigned char *address)
unsigned char addr[16]; unsigned char addr[16];
unsigned scope; unsigned scope;
if (numeric_ipv6_address(address, addr, &scope) == -1) { if (numeric_ipv6_address(address, addr, &scope) == -1) {
EINTRLOOP(rs, close(s)); goto bind_to_iface;
errno = EINVAL;
return -1;
} }
memset(&sa, 0, sizeof sa); memset(&sa, 0, sizeof sa);
sa.sin6_family = AF_INET6; sa.sin6_family = AF_INET6;
@ -162,6 +158,16 @@ int socket_and_bind(int pf, unsigned char *address)
} }
} }
return s; return s;
bind_to_iface:
errno = EINVAL;
#ifdef SO_BINDTODEVICE
EINTRLOOP(rs, setsockopt(s, SOL_SOCKET, SO_BINDTODEVICE, address, (socklen_t)(strlen(cast_const_char address) + 1)));
if (!rs) {
return s;
}
#endif
EINTRLOOP(rs, close(s));
return -1;
} }
void close_socket(int *s) void close_socket(int *s)
@ -187,7 +193,6 @@ struct conn_info {
void make_connection(struct connection *c, int port, int *sock, void (*func)(struct connection *)) void make_connection(struct connection *c, int port, int *sock, void (*func)(struct connection *))
{ {
int socks_port = -1; int socks_port = -1;
int as;
unsigned char *host; unsigned char *host;
size_t sl; size_t sl;
struct conn_info *b; struct conn_info *b;
@ -239,14 +244,17 @@ void make_connection(struct connection *c, int port, int *sock, void (*func)(str
b->l.addr_index = c->last_lookup_state.addr_index; b->l.addr_index = c->last_lookup_state.addr_index;
b->l.dont_try_more_servers = 1; b->l.dont_try_more_servers = 1;
dns_found(c, 0); dns_found(c, 0);
as = 0;
} else if (c->no_cache >= NC_RELOAD) {
as = find_host_no_cache(host, &b->l.addr, &c->dnsquery, dns_found, c);
} else { } else {
as = find_host(host, &b->l.addr, &c->dnsquery, dns_found, c); int q = -1;
if (c->no_cache < NC_RELOAD) {
q = find_host_in_cache(host, &b->l.addr, &c->dnsquery, dns_found, c);
}
if (q) {
setcstate(c, S_DNS);
find_host_no_cache(host, c->doh, &b->l.addr, &c->dnsquery, dns_found, c);
}
} }
mem_free(host); mem_free(host);
if (as) setcstate(c, S_DNS);
} }
int is_ipv6(int h) int is_ipv6(int h)
@ -610,16 +618,13 @@ void retry_connect(struct connection *c, int err, int ssl_downgrade)
return; return;
} }
b->l.addr_index++; b->l.addr_index++;
#if MAX_ADDRESSES > 1
if (b->l.addr_index < b->l.addr.n && !b->l.dont_try_more_servers) { if (b->l.addr_index < b->l.addr.n && !b->l.dont_try_more_servers) {
if (b->l.addr_index == 1) if (b->l.addr_index == 1)
rotate_addresses(&b->l.addr); rotate_addresses(&b->l.addr);
log_string(cast_uchar "\nNEXT ADDRESS\n"); log_string(cast_uchar "\nNEXT ADDRESS\n");
close_socket(b->sock); close_socket(b->sock);
try_connect(c); try_connect(c);
} else } else {
#endif
{
dns_clear_host(b->host); dns_clear_host(b->host);
setcstate(c, b->first_error); setcstate(c, b->first_error);
retry_connection(c); retry_connection(c);
@ -702,11 +707,9 @@ static void try_connect(struct connection *c)
} }
set_handlers(s, NULL, connected, c); set_handlers(s, NULL, connected, c);
setcstate(c, !b->l.addr_index ? S_CONN : S_CONN_ANOTHER); setcstate(c, !b->l.addr_index ? S_CONN : S_CONN_ANOTHER);
#if MAX_ADDRESSES > 1
if (b->l.addr.n > 1 && (is_connection_restartable(c) || max_tries == 1)) { if (b->l.addr.n > 1 && (is_connection_restartable(c) || max_tries == 1)) {
set_connection_timeout(c); set_connection_timeout(c);
} }
#endif
} else { } else {
connected(c); connected(c);
} }
@ -846,7 +849,6 @@ skip_numeric_address:
static void update_dns_priority(struct connection *c) static void update_dns_priority(struct connection *c)
{ {
#if MAX_ADDRESSES > 1
struct conn_info *b = c->newconn; struct conn_info *b = c->newconn;
if (!b->l.dont_try_more_servers && b->host[0]) { if (!b->l.dont_try_more_servers && b->host[0]) {
if (b->l.addr_index) { if (b->l.addr_index) {
@ -857,7 +859,6 @@ static void update_dns_priority(struct connection *c)
} }
b->l.dont_try_more_servers = 1; b->l.dont_try_more_servers = 1;
} }
#endif
} }
static void connected_callback(struct connection *c) static void connected_callback(struct connection *c)

View File

@ -717,42 +717,39 @@ static unsigned char *get_home(int *n)
{ {
struct stat st; struct stat st;
int rs; int rs;
unsigned char *p;
unsigned char *home; unsigned char *home;
unsigned char *home_links; unsigned char *home_links;
unsigned char *config_dir; unsigned char *config_dir;
EINTRLOOP(rs, stat(".", &st)); EINTRLOOP(rs, stat(".", &st));
if (rs && (home = cast_uchar getenv("HOME"))) if (rs && (p = cast_uchar getenv("HOME")))
EINTRLOOP(rs, chdir(cast_const_char home)); EINTRLOOP(rs, chdir(cast_const_char p));
home = NULL; home = NULL;
config_dir = stracpy(cast_uchar getenv("CONFIG_DIR")); config_dir = stracpy(cast_uchar getenv("CONFIG_DIR"));
if (n) *n = 1; if (n) *n = 1;
#ifdef WIN #ifdef WIN
#ifdef WINDOWS_RELEASE
if ((p = cast_uchar getenv("USERPROFILE"))) {
p = stracpy(p);
translate_win32_to_unix(&p);
EINTRLOOP(rs, chdir(cast_const_char p));
mem_free(p);
if (!rs)
EINTRLOOP(rs, chdir("Downloads"));
}
#endif
if (!home) { if (!home) {
home = stracpy(cast_uchar getenv("APPDATA")); home = stracpy(cast_uchar getenv("APPDATA"));
#ifdef HAVE_CYGWIN_CONV_PATH
/* /*
* Newer Cygwin complains about windows-style path, so * Newer Cygwin complains about windows-style path, so
* we have to convert it. * we have to convert it.
*/ */
if (home) { if (home) {
unsigned char *new_path; translate_win32_to_unix(&home);
ssize_t sz = cygwin_conv_path(CCP_WIN_A_TO_POSIX | CCP_ABSOLUTE, home, NULL, 0);
if (sz < 0 || sz >= MAXINT)
goto skip_path_conv;
new_path = mem_alloc(sz);
sz = cygwin_conv_path(CCP_WIN_A_TO_POSIX | CCP_ABSOLUTE, home, new_path, sz);
if (sz < 0) {
mem_free(new_path);
goto skip_path_conv;
}
mem_free(home);
home = new_path;
skip_path_conv:;
} }
#endif
if (home) { if (home) {
EINTRLOOP(rs, stat(cast_const_char home, &st)); EINTRLOOP(rs, stat(cast_const_char home, &st));
if (rs || !S_ISDIR(st.st_mode)) { if (rs || !S_ISDIR(st.st_mode)) {
@ -1426,26 +1423,6 @@ static void dp_wr(struct option *o, unsigned char **s, int *l)
} }
} }
static unsigned char *ip_rd(struct option *o, unsigned char *c)
{
unsigned char *e;
e = str_rd(o, c);
if (e) return e;
if (*(unsigned char *)o->ptr && numeric_ip_address(o->ptr, NULL) == -1) return cast_uchar "Invalid IP address";
return NULL;
}
static unsigned char *ipv6_rd(struct option *o, unsigned char *c)
{
unsigned char *e;
e = str_rd(o, c);
if (e) return e;
#ifdef SUPPORT_IPV6
if (*(unsigned char *)o->ptr && numeric_ipv6_address(o->ptr, NULL, NULL) == -1) return cast_uchar "Invalid IPv6 address";
#endif
return NULL;
}
static unsigned char *gen_cmd(struct option *o, unsigned char ***argv, int *argc) static unsigned char *gen_cmd(struct option *o, unsigned char ***argv, int *argc)
{ {
unsigned char *e; unsigned char *e;
@ -1665,10 +1642,10 @@ fprintf(stdout, "%s%s%s%s%s%s\n",
" Timeout for connection when trying multiple addresses or keepalive connection.\n" " Timeout for connection when trying multiple addresses or keepalive connection.\n"
" (default: 3)\n" " (default: 3)\n"
"\n" "\n"
" -bind-address <ip address>\n" " -bind-address <ip address or interface name>\n"
" Use a specific local IP address.\n" " Use a specific local IP address.\n"
"\n" "\n"
" -bind-address-ipv6 <ipv6 address>\n" " -bind-address-ipv6 <ipv6 address or interface name>\n"
" Use a specific local IPv6 address.\n" " Use a specific local IPv6 address.\n"
"\n" "\n"
" -no-libevent\n" " -no-libevent\n"
@ -1677,9 +1654,6 @@ fprintf(stdout, "%s%s%s%s%s%s\n",
" -no-openmp\n" " -no-openmp\n"
" Don't use OpenMP.\n" " Don't use OpenMP.\n"
"\n" "\n"
" -async-dns <0>/<1>\n"
" Asynchronous DNS resolver on(1)/off(0).\n"
"\n"
" -download-utime <0>/<1>\n" " -download-utime <0>/<1>\n"
" Set time of downloaded files to last modification time reported by server.\n" " Set time of downloaded files to last modification time reported by server.\n"
"\n" "\n"
@ -1767,6 +1741,13 @@ fprintf(stdout, "%s%s%s%s%s%s\n",
"\n" "\n"
" -ssl.client-cert-password <text>\n" " -ssl.client-cert-password <text>\n"
" Password for the user private key.\n" " Password for the user private key.\n"
"\n"
" -async-dns <0>/<1>\n"
" Asynchronous DNS resolver on(1)/off(0).\n"
"\n"
" -dns-over-https <url>\n"
" DNS over HTTPS url.\n"
" (default: blank)\n"
"\n"),( "\n"),(
" -http-bugs.http10 <0>/<1>\n" " -http-bugs.http10 <0>/<1>\n"
" (default 0)\n" " (default 0)\n"
@ -2139,7 +2120,6 @@ int unrestartable_receive_timeout = 600;
int timeout_multiple_addresses = 3; int timeout_multiple_addresses = 3;
unsigned char bind_ip_address[16] = ""; unsigned char bind_ip_address[16] = "";
unsigned char bind_ipv6_address[INET6_ADDRSTRLEN] = ""; unsigned char bind_ipv6_address[INET6_ADDRSTRLEN] = "";
int async_lookup = 1;
int download_utime = 0; int download_utime = 0;
int max_format_cache_entries = 5; int max_format_cache_entries = 5;
@ -2157,6 +2137,8 @@ struct ssl_options ssl_options = { SSL_WARN_ON_INVALID_CERTIFICATE,
0, 0,
#endif #endif
"", "", "" }; "", "", "" };
int async_lookup = 1;
unsigned char dns_over_https[MAX_STR_LEN] = "";
struct http_options http_options = { 0, 1, 0, 0, 0, { 0, 0, REFERER_REAL_SAME_SERVER, "", "", "" } }; struct http_options http_options = { 0, 1, 0, 0, 0, { 0, 0, REFERER_REAL_SAME_SERVER, "", "", "" } };
struct ftp_options ftp_options = { "somebody@host.domain", 1, 0, 1 }; struct ftp_options ftp_options = { "somebody@host.domain", 1, 0, 1 };
struct smb_options smb_options = { 0 }; struct smb_options smb_options = { 0 };
@ -2269,11 +2251,10 @@ static struct option links_options[] = {
{1, gen_cmd, num_rd, num_wr, 1, 9999, &receive_timeout, "receive_timeout", "receive-timeout"}, {1, gen_cmd, num_rd, num_wr, 1, 9999, &receive_timeout, "receive_timeout", "receive-timeout"},
{1, gen_cmd, num_rd, num_wr, 1, 9999, &unrestartable_receive_timeout, "unrestartable_receive_timeout", "unrestartable-receive-timeout"}, {1, gen_cmd, num_rd, num_wr, 1, 9999, &unrestartable_receive_timeout, "unrestartable_receive_timeout", "unrestartable-receive-timeout"},
{1, gen_cmd, num_rd, num_wr, 1, 999, &timeout_multiple_addresses, "timeout_when_trying_multiple_addresses", "timeout-when-trying-multiple-addresses"}, {1, gen_cmd, num_rd, num_wr, 1, 999, &timeout_multiple_addresses, "timeout_when_trying_multiple_addresses", "timeout-when-trying-multiple-addresses"},
{1, gen_cmd, ip_rd, str_wr, 0, 16, bind_ip_address, "bind_address", "bind-address"}, {1, gen_cmd, str_rd, str_wr, 0, 16, bind_ip_address, "bind_address", "bind-address"},
{1, gen_cmd, ipv6_rd, str_wr, 0, INET6_ADDRSTRLEN, bind_ipv6_address, "bind_address_ipv6", "bind-address-ipv6"}, {1, gen_cmd, str_rd, str_wr, 0, INET6_ADDRSTRLEN, bind_ipv6_address, "bind_address_ipv6", "bind-address-ipv6"},
{1, set_cmd, NULL, NULL, 0, 0, &disable_libevent, NULL, "no-libevent"}, {1, set_cmd, NULL, NULL, 0, 0, &disable_libevent, NULL, "no-libevent"},
{1, set_cmd, NULL, NULL, 0, 0, &disable_openmp, NULL, "no-openmp"}, {1, set_cmd, NULL, NULL, 0, 0, &disable_openmp, NULL, "no-openmp"},
{1, gen_cmd, num_rd, num_wr, 0, 1, &async_lookup, "async_dns", "async-dns"},
{1, gen_cmd, num_rd, num_wr, 0, 1, &download_utime, "download_utime", "download-utime"}, {1, gen_cmd, num_rd, num_wr, 0, 1, &download_utime, "download_utime", "download-utime"},
{1, gen_cmd, num_rd, num_wr, 0, 999, &max_format_cache_entries, "format_cache_size", "format-cache-size"}, {1, gen_cmd, num_rd, num_wr, 0, 999, &max_format_cache_entries, "format_cache_size", "format-cache-size"},
{1, gen_cmd, num_rd, num_wr, 0, MAXINT, &memory_cache_size, "memory_cache_size", "memory-cache-size"}, {1, gen_cmd, num_rd, num_wr, 0, MAXINT, &memory_cache_size, "memory_cache_size", "memory-cache-size"},
@ -2296,6 +2277,8 @@ static struct option links_options[] = {
{1, gen_cmd, str_rd, NULL, 0, MAX_STR_LEN, &ssl_options.client_cert_password, NULL, "ssl.client-cert-password"}, {1, gen_cmd, str_rd, NULL, 0, MAX_STR_LEN, &ssl_options.client_cert_password, NULL, "ssl.client-cert-password"},
{1, gen_cmd, str_rd, NULL, 0, MAX_STR_LEN, &ssl_options.client_cert_key, "client_cert_key", "http.client_cert_key"}, /* backward compatibility with Debian patches */ {1, gen_cmd, str_rd, NULL, 0, MAX_STR_LEN, &ssl_options.client_cert_key, "client_cert_key", "http.client_cert_key"}, /* backward compatibility with Debian patches */
{1, gen_cmd, str_rd, NULL, 0, MAX_STR_LEN, &ssl_options.client_cert_crt, "client_cert_crt", "http.client_cert_crt"}, /* backward compatibility with Debian patches */ {1, gen_cmd, str_rd, NULL, 0, MAX_STR_LEN, &ssl_options.client_cert_crt, "client_cert_crt", "http.client_cert_crt"}, /* backward compatibility with Debian patches */
{1, gen_cmd, num_rd, num_wr, 0, 1, &async_lookup, "async_dns", "async-dns"},
{1, gen_cmd, str_rd, str_wr, 0, MAX_STR_LEN, dns_over_https, "dns_over_https", "dns-over-https"},
{1, gen_cmd, num_rd, num_wr, 0, 1, &http_options.http10, "http_bugs.http10", "http-bugs.http10"}, {1, gen_cmd, num_rd, num_wr, 0, 1, &http_options.http10, "http_bugs.http10", "http-bugs.http10"},
{1, gen_cmd, num_rd, num_wr, 0, 1, &http_options.allow_blacklist, "http_bugs.allow_blacklist", "http-bugs.allow-blacklist"}, {1, gen_cmd, num_rd, num_wr, 0, 1, &http_options.allow_blacklist, "http_bugs.allow_blacklist", "http-bugs.allow-blacklist"},
{1, gen_cmd, NULL, NULL, 0, 1, NULL, "http_bugs.bug_302_redirect", NULL}, {1, gen_cmd, NULL, NULL, 0, 1, NULL, "http_bugs.bug_302_redirect", NULL},
@ -2366,6 +2349,7 @@ static struct option links_options[] = {
{1, NULL, prog_rd, prog_wr, 0, 0, &tn3270_prog, "tn3270", NULL}, {1, NULL, prog_rd, prog_wr, 0, 0, &tn3270_prog, "tn3270", NULL},
{1, NULL, prog_rd, prog_wr, 0, 0, &mms_prog, "mms", NULL}, {1, NULL, prog_rd, prog_wr, 0, 0, &mms_prog, "mms", NULL},
{1, NULL, prog_rd, prog_wr, 0, 0, &magnet_prog, "magnet", NULL}, {1, NULL, prog_rd, prog_wr, 0, 0, &magnet_prog, "magnet", NULL},
{1, NULL, prog_rd, prog_wr, 0, 0, &gopher_prog, "gopher", NULL},
{1, NULL, block_rd, block_wr, 0, 0, NULL, "imageblock", NULL}, {1, NULL, block_rd, block_wr, 0, 0, NULL, "imageblock", NULL},
{1, NULL, dp_rd, dp_wr, 0, 0, NULL, "video_driver", NULL}, {1, NULL, dp_rd, dp_wr, 0, 0, NULL, "video_driver", NULL},
{0, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL}, {0, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL},

View File

@ -76,7 +76,7 @@ CFLAGS=/DEFINE=(HAVE_CONFIG_VMS_H$(DEFS_OPTIMIZE)$(DEFS_SSL)$(DEFS_GFX)) /INCLUD
LINKFLAGS=$(LIBS_SSL)$(LIBS_GFX)/MAP/FULL/THREADS_ENABLE LINKFLAGS=$(LIBS_SSL)$(LIBS_GFX)/MAP/FULL/THREADS_ENABLE
OBJS=AF_UNIX.OBJ,AUTH.OBJ,BEOS.OBJ,BFU.OBJ,BLOCK.OBJ,BOOKMARK.OBJ,CACHE.OBJ,CHARSETS.OBJ,COMPRESS.OBJ,CONNECT.OBJ,COOKIES.OBJ,DATA.OBJ,DEFAULT.OBJ,DIP.OBJ,DIRECTFB.OBJ,DITHER.OBJ,DNS.OBJ,DOS.OBJ,DRIVERS.OBJ,ERROR.OBJ,FILE.OBJ,FINGER.OBJ,FN_IMPL.OBJ,FONT_INC.OBJ,FRAMEBUF.OBJ,FTP.OBJ,GIF.OBJ,HPUX.OBJ,HTML.OBJ,HTML_GR.OBJ,HTML_R.OBJ,HTML_TBL.OBJ,HTTP.OBJ,HTTPS.OBJ,IMG.OBJ,IMGCACHE.OBJ,JPEG.OBJ,JSINT.OBJ,KBD.OBJ,LANGUAGE.OBJ,LISTEDIT.OBJ,LRU.OBJ,MAILTO.OBJ,MAIN.OBJ,MEMORY.OBJ,MENU.OBJ,OBJREQ.OBJ,OS_DEP.OBJ,PMSHELL.OBJ,PNG.OBJ,SCHED.OBJ,SELECT.OBJ,SESSION.OBJ,SMB.OBJ,STRING.OBJ,SUFFIX.OBJ,SVG.OBJ,SVGALIB.OBJ,TERMINAL.OBJ,TIFF.OBJ,TYPES.OBJ,URL.OBJ,VIEW.OBJ,VIEW_GR.OBJ,VMS.OBJ,X.OBJ,XBM.OBJ OBJS=AF_UNIX.OBJ,AUTH.OBJ,AVIF.OBJ,BEOS.OBJ,BFU.OBJ,BLOCK.OBJ,BOOKMARK.OBJ,CACHE.OBJ,CHARSETS.OBJ,COMPRESS.OBJ,CONNECT.OBJ,COOKIES.OBJ,DATA.OBJ,DEFAULT.OBJ,DIP.OBJ,DIRECTFB.OBJ,DITHER.OBJ,DNS.OBJ,DOH.OBJ,DOS.OBJ,DRIVERS.OBJ,ERROR.OBJ,FILE.OBJ,FINGER.OBJ,FN_IMPL.OBJ,FONT_INC.OBJ,FRAMEBUF.OBJ,FTP.OBJ,GIF.OBJ,HPUX.OBJ,HTML.OBJ,HTML_GR.OBJ,HTML_R.OBJ,HTML_TBL.OBJ,HTTP.OBJ,HTTPS.OBJ,IMG.OBJ,IMGCACHE.OBJ,JPEG.OBJ,JSINT.OBJ,KBD.OBJ,LANGUAGE.OBJ,LISTEDIT.OBJ,LRU.OBJ,MAILTO.OBJ,MAIN.OBJ,MEMORY.OBJ,MENU.OBJ,OBJREQ.OBJ,OS_DEP.OBJ,PMSHELL.OBJ,PNG.OBJ,SCHED.OBJ,SELECT.OBJ,SESSION.OBJ,SMB.OBJ,STRING.OBJ,SUFFIX.OBJ,SVG.OBJ,SVGALIB.OBJ,TERMINAL.OBJ,TIFF.OBJ,TYPES.OBJ,URL.OBJ,VIEW.OBJ,VIEW_GR.OBJ,VMS.OBJ,WEBP.OBJ,X.OBJ,XBM.OBJ
LINKS.EXE : $(OBJS) LINKS.EXE : $(OBJS)
$(LINK) /EXECUTABLE=LINKS.EXE $(OBJS)$(LINKFLAGS) $(LINK) /EXECUTABLE=LINKS.EXE $(OBJS)$(LINKFLAGS)

58
dip.c
View File

@ -160,8 +160,10 @@ static void add_row_gray(unsigned *my_restrict row_buf, unsigned char *my_restri
ATTR_NOINLINE ATTR_NOINLINE
#endif #endif
static void add_col_color(scale_t *my_restrict col_buf, static void add_col_color(scale_t *my_restrict col_buf,
#if defined(__GNUC__) && __GNUC__ == 3 #ifdef __GNUC__
#if __GNUC__ == 3
volatile volatile
#endif
#endif #endif
unsigned short *my_restrict ptr, unsigned short *my_restrict ptr,
size_t line_skip, size_t n, ulonglong weight) size_t line_skip, size_t n, ulonglong weight)
@ -194,8 +196,10 @@ static void add_col_color(scale_t *my_restrict col_buf,
/* n is in pixels. pixel is 3 unsigned shorts in series */ /* n is in pixels. pixel is 3 unsigned shorts in series */
/* We assume unsigned short holds at least 16 bits. */ /* We assume unsigned short holds at least 16 bits. */
static void add_row_color(scale_t *my_restrict row_buf, static void add_row_color(scale_t *my_restrict row_buf,
#if defined(__GNUC__) && __GNUC__ == 3 #ifdef __GNUC__
#if __GNUC__ == 3
volatile volatile
#endif
#endif #endif
unsigned short *my_restrict ptr, unsigned short *my_restrict ptr,
size_t n, ulonglong weight) size_t n, ulonglong weight)
@ -1992,11 +1996,14 @@ bypass_freetype:
* at least 1 apart * at least 1 apart
* Otherwise g_print_text will print nonsense (but won't segfault) * Otherwise g_print_text will print nonsense (but won't segfault)
*/ */
static void get_underline_pos(int height, int *top, int *bottom) static void get_line_pos(int height, int *top, int *bottom, unsigned style)
{ {
int thickness, baseline; int thickness, baseline;
thickness=(height+15)/16; thickness=(height+15)/16;
baseline=height/7; if (style == FF_STRIKE)
baseline=height/2 - height/12;
else
baseline=height/7;
if (baseline<=0) baseline=1; if (baseline<=0) baseline=1;
if (thickness>baseline) thickness=baseline; if (thickness>baseline) thickness=baseline;
*top=height-baseline; *top=height-baseline;
@ -2006,38 +2013,39 @@ static void get_underline_pos(int height, int *top, int *bottom)
/* *width will be advanced by the width of the text */ /* *width will be advanced by the width of the text */
void g_print_text(struct graphics_device *device, int x, int y, struct style *style, unsigned char *text, int *width) void g_print_text(struct graphics_device *device, int x, int y, struct style *style, unsigned char *text, int *width)
{ {
int top_underline, bottom_underline, original_width, my_width; int top_line, bottom_line, original_width, my_width;
unsigned char original_flags; unsigned char original_flags, line_style;
struct rect saved_clip; struct rect saved_clip;
if (y + style->height <= device->clip.y1 || y >= device->clip.y2) if (y + style->height <= device->clip.y1 || y >= device->clip.y2)
goto o; goto o;
if (style->flags & FF_UNDERLINE) { if (style->flags & FF_UNDERLINE || style->flags & FF_STRIKE) {
/* Underline */ /* Underline or strike */
if (!width) { if (!width) {
width = &my_width; width = &my_width;
*width = 0; *width = 0;
} }
original_flags = style->flags; original_flags = style->flags;
original_width = *width; original_width = *width;
style->flags &= ~FF_UNDERLINE; line_style = style->flags & FF_UNDERLINE ? FF_UNDERLINE : FF_STRIKE;
get_underline_pos(style->height, &top_underline, &bottom_underline); style->flags &= ~line_style;
restrict_clip_area(device, &saved_clip, 0, 0, device->size.x2, y + top_underline); get_line_pos(style->height, &top_line, &bottom_line, line_style);
restrict_clip_area(device, &saved_clip, 0, 0, device->size.x2, y + top_line);
g_print_text(device, x, y, style, text, width); g_print_text(device, x, y, style, text, width);
set_clip_area(device, &saved_clip); set_clip_area(device, &saved_clip);
if (bottom_underline - top_underline == 1) { if (bottom_line - top_line == 1) {
/* Line */ /* Line */
drv->draw_hline(device, x, y + top_underline, safe_add(x, *width) - original_width, style->underline_color); drv->draw_hline(device, x, y + top_line, safe_add(x, *width) - original_width, style->line_color);
} else { } else {
/* Area */ /* Area */
drv->fill_area(device, x, y + top_underline, safe_add(x, *width) - original_width, y + bottom_underline, style->underline_color); drv->fill_area(device, x, y + top_line, safe_add(x, *width) - original_width, y + bottom_line, style->line_color);
} }
if (bottom_underline < style->height) { if (bottom_line < style->height) {
/* Do the bottom half only if the underline is above /* Do the bottom half only if the line is above
* the bottom of the letters. * the bottom of the letters.
*/ */
*width = original_width; *width = original_width;
restrict_clip_area(device, &saved_clip, 0, y + bottom_underline, device->size.x2, device->size.y2); restrict_clip_area(device, &saved_clip, 0, y + bottom_line, device->size.x2, device->size.y2);
g_print_text(device, x, y, style, text, width); g_print_text(device, x, y, style, text, width);
set_clip_area(device, &saved_clip); set_clip_area(device, &saved_clip);
} }
@ -2271,9 +2279,11 @@ struct style *g_invert_style(struct style *old)
#ifdef HAVE_FREETYPE #ifdef HAVE_FREETYPE
st->ft_face = old->ft_face; st->ft_face = old->ft_face;
#endif #endif
if (st->flags & FF_UNDERLINE) { if (st->flags & FF_UNDERLINE || st->flags & FF_STRIKE) {
/* We have to get a foreground color for underlining */ /* We have to get a foreground color for underlining and
st->underline_color = dip_get_color_sRGB((st->r1 << 16) | (st->g1 << 8) | (st->b1)); * striking
*/
st->line_color = dip_get_color_sRGB((st->r1 << 16) | (st->g1 << 8) | (st->b1));
} }
st->mono_space = old->mono_space; st->mono_space = old->mono_space;
st->mono_height = old->mono_height; st->mono_height = old->mono_height;
@ -2319,9 +2329,11 @@ struct style *g_get_style_font(int fg, int bg, int size, int fflags, unsigned ch
else else
st->ft_face = freetype_get_font(font); st->ft_face = freetype_get_font(font);
#endif #endif
if (fflags & FF_UNDERLINE) { if (fflags & FF_UNDERLINE || fflags & FF_STRIKE) {
/* We have to get a foreground color for underlining */ /* We have to get a foreground color for underlining and
st->underline_color = dip_get_color_sRGB(fg); * striking
*/
st->line_color = dip_get_color_sRGB(fg);
} }
if (fflags & FF_MONOSPACED) if (fflags & FF_MONOSPACED)
load_metric(st, ' ', &st->mono_space, &st->mono_height); load_metric(st, ' ', &st->mono_space, &st->mono_height);

View File

@ -54,9 +54,11 @@
static int *red_table = DUMMY, *green_table = DUMMY, *blue_table = DUMMY; static int *red_table = DUMMY, *green_table = DUMMY, *blue_table = DUMMY;
static int table_16 = 1; static int table_16 = 1;
static unsigned short * static unsigned short *
#if defined(__GNUC__) && __GNUC__ == 3 #ifdef __GNUC__
#if __GNUC__ == 3
volatile volatile
#endif #endif
#endif
real_colors_table = NULL; real_colors_table = NULL;
/* If we want to represent some 16-bit from-screen-light, it would require certain display input /* If we want to represent some 16-bit from-screen-light, it would require certain display input

84
dns.c
View File

@ -63,6 +63,7 @@ static void my_freeaddrinfo(struct addrinfo *res)
struct dnsentry { struct dnsentry {
list_entry_1st list_entry_1st
uttime absolute_time; uttime absolute_time;
uttime timeout;
struct lookup_result addr; struct lookup_result addr;
list_entry_last list_entry_last
unsigned char name[1]; unsigned char name[1];
@ -72,23 +73,9 @@ struct dnsentry {
struct dnsquery *dns_queue = NULL; struct dnsquery *dns_queue = NULL;
#endif #endif
struct dnsquery {
#ifndef THREAD_SAFE_LOOKUP
struct dnsquery *next_in_queue;
#endif
void (*fn)(void *, int);
void *data;
int h;
struct dnsquery **s;
struct lookup_result *addr;
int addr_preference;
unsigned char name[1];
};
static int dns_cache_addr_preference = -1; static int dns_cache_addr_preference = -1;
static struct list_head dns_cache = {&dns_cache, &dns_cache}; static struct list_head dns_cache = {&dns_cache, &dns_cache};
static void end_dns_lookup(struct dnsquery *q, int a);
static int shrink_dns_cache(int u); static int shrink_dns_cache(int u);
static int get_addr_byte(unsigned char **ptr, unsigned char *res, unsigned char stp) static int get_addr_byte(unsigned char **ptr, unsigned char *res, unsigned char stp)
@ -237,22 +224,18 @@ skip_addr:
#endif #endif
#if MAX_ADDRESSES > 1
static int memcmp_host_address(struct host_address *a, struct host_address *b) static int memcmp_host_address(struct host_address *a, struct host_address *b)
{ {
if (a->af != b->af || a->scope_id != b->scope_id) if (a->af != b->af || a->scope_id != b->scope_id)
return 1; return 1;
return memcmp(a->addr, b->addr, sizeof a->addr); return memcmp(a->addr, b->addr, sizeof a->addr);
} }
#endif
static void add_address(struct lookup_result *host, int af, unsigned char *address, unsigned scope_id, int preference) void add_address(struct lookup_result *host, int af, unsigned char *address, unsigned scope_id, int preference)
{ {
struct host_address neww; struct host_address neww;
struct host_address *e, *t; struct host_address *e, *t;
#if MAX_ADDRESSES > 1
struct host_address *n; struct host_address *n;
#endif
if (af != AF_INET && preference == ADDR_PREFERENCE_IPV4_ONLY) if (af != AF_INET && preference == ADDR_PREFERENCE_IPV4_ONLY)
return; return;
#ifdef SUPPORT_IPV6 #ifdef SUPPORT_IPV6
@ -267,7 +250,6 @@ static void add_address(struct lookup_result *host, int af, unsigned char *addre
neww.scope_id = scope_id; neww.scope_id = scope_id;
e = &host->a[host->n]; e = &host->a[host->n];
t = e; t = e;
#if MAX_ADDRESSES > 1
for (n = host->a; n != e; n++) { for (n = host->a; n != e; n++) {
if (!memcmp_host_address(n, &neww)) if (!memcmp_host_address(n, &neww))
return; return;
@ -283,7 +265,6 @@ static void add_address(struct lookup_result *host, int af, unsigned char *addre
#endif #endif
} }
memmove(t + 1, t, (e - t) * sizeof(struct host_address)); memmove(t + 1, t, (e - t) * sizeof(struct host_address));
#endif
memcpy(t, &neww, sizeof(struct host_address)); memcpy(t, &neww, sizeof(struct host_address));
host->n++; host->n++;
} }
@ -329,7 +310,6 @@ static int use_getaddrinfo(unsigned char *name, struct addrinfo *hints, int pref
void rotate_addresses(struct lookup_result *host) void rotate_addresses(struct lookup_result *host)
{ {
#if MAX_ADDRESSES > 1
int first_type, first_different, i; int first_type, first_different, i;
if (host->n <= 2) if (host->n <= 2)
@ -352,7 +332,6 @@ do_swap:
memmove(&host->a[2], &host->a[1], (first_different - 1) * sizeof(struct host_address)); memmove(&host->a[2], &host->a[1], (first_different - 1) * sizeof(struct host_address));
memcpy(&host->a[1], &ha, sizeof(struct host_address)); memcpy(&host->a[1], &ha, sizeof(struct host_address));
} }
#endif
} }
void do_real_lookup(unsigned char *name, int preference, struct lookup_result *host) void do_real_lookup(unsigned char *name, int preference, struct lookup_result *host)
@ -471,11 +450,11 @@ static void end_real_lookup(void *q_)
end: end:
set_handlers(q->h, NULL, NULL, NULL); set_handlers(q->h, NULL, NULL, NULL);
EINTRLOOP(rs, close(q->h)); EINTRLOOP(rs, close(q->h));
end_dns_lookup(q, r); end_dns_lookup(q, r, -1);
} }
#endif #endif
static int do_lookup(struct dnsquery *q, int force_async) static void do_lookup(struct dnsquery *q, int force_async)
{ {
/*debug("starting lookup for %s", q->name);*/ /*debug("starting lookup for %s", q->name);*/
#ifndef NO_ASYNC_LOOKUP #ifndef NO_ASYNC_LOOKUP
@ -485,34 +464,30 @@ static int do_lookup(struct dnsquery *q, int force_async)
sync_lookup: sync_lookup:
#endif #endif
do_real_lookup(q->name, q->addr_preference, q->addr); do_real_lookup(q->name, q->addr_preference, q->addr);
end_dns_lookup(q, !q->addr->n); end_dns_lookup(q, !q->addr->n, -1);
return 0;
#ifndef NO_ASYNC_LOOKUP #ifndef NO_ASYNC_LOOKUP
} else { } else {
q->h = start_thread(lookup_fn, q, (int)((unsigned char *)strchr(cast_const_char q->name, 0) + 1 - (unsigned char *)q), 1); q->h = start_thread(lookup_fn, q, (int)((unsigned char *)strchr(cast_const_char q->name, 0) + 1 - (unsigned char *)q), 1);
if (q->h == -1) goto sync_lookup; if (q->h == -1) goto sync_lookup;
set_handlers(q->h, end_real_lookup, NULL, q); set_handlers(q->h, end_real_lookup, NULL, q);
return 1;
} }
#endif #endif
} }
static int do_queued_lookup(struct dnsquery *q) static void do_queued_lookup(struct dnsquery *q)
{ {
#ifndef THREAD_SAFE_LOOKUP #ifndef THREAD_SAFE_LOOKUP
q->next_in_queue = NULL;
if (!dns_queue) { if (!dns_queue) {
dns_queue = q; dns_queue = q;
/*debug("direct lookup");*/ /*debug("direct lookup");*/
#endif #endif
return do_lookup(q, 0); do_lookup(q, 0);
#ifndef THREAD_SAFE_LOOKUP #ifndef THREAD_SAFE_LOOKUP
} else { } else {
/*debug("queuing lookup for %s", q->name);*/ /*debug("queuing lookup for %s", q->name);*/
if (dns_queue->next_in_queue) internal_error("DNS queue corrupted"); if (dns_queue->next_in_queue) internal_error("DNS queue corrupted");
dns_queue->next_in_queue = q; dns_queue->next_in_queue = q;
dns_queue = q; dns_queue = q;
return 1;
} }
#endif #endif
} }
@ -546,13 +521,15 @@ static void free_dns_entry(struct dnsentry *dnsentry)
mem_free(dnsentry); mem_free(dnsentry);
} }
static void end_dns_lookup(struct dnsquery *q, int a) void end_dns_lookup(struct dnsquery *q, int a, uttime timeout)
{ {
struct dnsentry *dnsentry; struct dnsentry *dnsentry;
size_t sl; size_t sl;
void (*fn)(void *, int); void (*fn)(void *, int);
void *data; void *data;
/*debug("end lookup %s", q->name);*/ /*debug("end lookup %s: %d, %lu", q->name, a, (unsigned long)timeout);*/
if (timeout > DNS_TIMEOUT)
timeout = DNS_TIMEOUT;
#ifndef THREAD_SAFE_LOOKUP #ifndef THREAD_SAFE_LOOKUP
if (q->next_in_queue) { if (q->next_in_queue) {
/*debug("processing next in queue: %s", q->next_in_queue->name);*/ /*debug("processing next in queue: %s", q->next_in_queue->name);*/
@ -580,6 +557,7 @@ static void end_dns_lookup(struct dnsquery *q, int a)
strcpy(cast_char dnsentry->name, cast_const_char q->name); strcpy(cast_char dnsentry->name, cast_const_char q->name);
memcpy(&dnsentry->addr, q->addr, sizeof(struct lookup_result)); memcpy(&dnsentry->addr, q->addr, sizeof(struct lookup_result));
dnsentry->absolute_time = get_absolute_time(); dnsentry->absolute_time = get_absolute_time();
dnsentry->timeout = timeout;
add_to_list(dns_cache, dnsentry); add_to_list(dns_cache, dnsentry);
e: e:
if (q->s) *q->s = NULL; if (q->s) *q->s = NULL;
@ -589,7 +567,7 @@ static void end_dns_lookup(struct dnsquery *q, int a)
fn(data, a); fn(data, a);
} }
int find_host_no_cache(unsigned char *name, struct lookup_result *addr, void **qp, void (*fn)(void *, int), void *data) void find_host_no_cache(unsigned char *name, int no_doh, struct lookup_result *addr, void **qp, void (*fn)(void *, int), void *data)
{ {
struct dnsquery *q; struct dnsquery *q;
retry: retry:
@ -598,30 +576,45 @@ int find_host_no_cache(unsigned char *name, struct lookup_result *addr, void **q
if (out_of_memory(0, NULL, 0)) if (out_of_memory(0, NULL, 0))
goto retry; goto retry;
fn(data, 1); fn(data, 1);
return 0;
} }
#ifndef THREAD_SAFE_LOOKUP
q->next_in_queue = NULL;
#endif
q->fn = fn; q->fn = fn;
q->data = data; q->data = data;
q->s = (struct dnsquery **)qp; q->s = qp;
q->doh = NULL;
q->addr = addr; q->addr = addr;
q->addr_preference = ipv6_options.addr_preference; q->addr_preference = ipv6_options.addr_preference;
strcpy(cast_char q->name, cast_const_char name); strcpy(cast_char q->name, cast_const_char name);
if (qp) *qp = q; if (qp) *qp = q;
return do_queued_lookup(q); if (is_noproxy_host(name))
no_doh = 1;
if (!numeric_ip_address(name, NULL))
no_doh = 1;
#ifdef SUPPORT_IPV6
if (!numeric_ipv6_address(name, NULL, NULL))
no_doh = 1;
#endif
if (!no_doh && *dns_over_https) {
do_doh_lookup(q);
} else {
do_queued_lookup(q);
}
} }
int find_host(unsigned char *name, struct lookup_result *addr, void **qp, void (*fn)(void *, int), void *data) int find_host_in_cache(unsigned char *name, struct lookup_result *addr, void **qp, void (*fn)(void *, int), void *data)
{ {
struct dnsentry *dnsentry; struct dnsentry *dnsentry;
if (qp) *qp = NULL; if (qp) *qp = NULL;
if (!find_in_dns_cache(name, &dnsentry)) { if (!find_in_dns_cache(name, &dnsentry)) {
if (get_absolute_time() - dnsentry->absolute_time > DNS_TIMEOUT) goto timeout; if (get_absolute_time() - dnsentry->absolute_time >= dnsentry->timeout) goto timeout;
memcpy(addr, &dnsentry->addr, sizeof(struct lookup_result)); memcpy(addr, &dnsentry->addr, sizeof(struct lookup_result));
fn(data, 0); fn(data, 0);
return 0; return 0;
} }
timeout: timeout:
return find_host_no_cache(name, addr, qp, fn, data); return -1;
} }
void kill_dns_request(void **qp) void kill_dns_request(void **qp)
@ -649,11 +642,11 @@ void dns_prefetch(unsigned char *name)
addr = (struct lookup_result *)malloc(sizeof(struct lookup_result)); addr = (struct lookup_result *)malloc(sizeof(struct lookup_result));
if (!addr) if (!addr)
return; return;
find_host(name, addr, NULL, dns_prefetch_end, addr); if (find_host_in_cache(name, addr, NULL, dns_prefetch_end, addr))
find_host_no_cache(name, 0, addr, NULL, dns_prefetch_end, addr);
#endif #endif
} }
#if MAX_ADDRESSES > 1
void dns_set_priority(unsigned char *name, struct host_address *address, int prefer) void dns_set_priority(unsigned char *name, struct host_address *address, int prefer)
{ {
int i; int i;
@ -672,7 +665,6 @@ void dns_set_priority(unsigned char *name, struct host_address *address, int pre
memcpy(&dnsentry->addr.a[dnsentry->addr.n - 1], address, sizeof(struct host_address)); memcpy(&dnsentry->addr.a[dnsentry->addr.n - 1], address, sizeof(struct host_address));
} }
} }
#endif
void dns_clear_host(unsigned char *name) void dns_clear_host(unsigned char *name)
{ {
@ -686,6 +678,7 @@ unsigned long dns_info(int type)
{ {
switch (type) { switch (type) {
case CI_FILES: case CI_FILES:
shrink_dns_cache(SH_CHECK_QUOTA);
return list_size(&dns_cache); return list_size(&dns_cache);
default: default:
internal_error("dns_info: bad request"); internal_error("dns_info: bad request");
@ -703,7 +696,7 @@ static int shrink_dns_cache(int u)
d = list_struct(dns_cache.prev, struct dnsentry); d = list_struct(dns_cache.prev, struct dnsentry);
goto delete_last; goto delete_last;
} }
foreach(struct dnsentry, d, ld, dns_cache) if (u == SH_FREE_ALL || now - d->absolute_time > DNS_TIMEOUT) { foreach(struct dnsentry, d, ld, dns_cache) if (u == SH_FREE_ALL || now - d->absolute_time >= d->timeout) {
delete_last: delete_last:
ld = d->list_entry.prev; ld = d->list_entry.prev;
free_dns_entry(d); free_dns_entry(d);
@ -800,6 +793,7 @@ void flood_memory(void)
while (1) { while (1) {
while ((de = mem_alloc_mayfail(s))) { while ((de = mem_alloc_mayfail(s))) {
de->absolute_time = get_absolute_time(); de->absolute_time = get_absolute_time();
de->timeout = DNS_TIMEOUT;
memset(&de->addr, 0, sizeof de->addr); memset(&de->addr, 0, sizeof de->addr);
de->name[0] = 0; de->name[0] = 0;
add_to_list(list, de); add_to_list(list, de);

235
doh.c Normal file
View File

@ -0,0 +1,235 @@
#include "links.h"
struct dnsquery_addr {
struct status stat;
unsigned char *url;
int redirect_cnt;
};
struct dnsquery_doh {
struct dnsquery *q;
struct dnsquery_addr ipv4;
struct dnsquery_addr ipv6;
int in_progress;
uttime ttl;
};
#define skip_bytes(n) do { if (len < (n)) return; len -= (n); start += (n); } while (0)
#define get_byte(b) do { if (!len--) return; (b) = *start++; } while (0)
#define get_word(w) do { unsigned char lo, hi; get_byte(hi); get_byte(lo); (w) = (hi << 8) | lo; } while (0)
#define get_dword(d) do { unsigned short lw, hw; get_word(hw); get_word(lw); (d) = ((unsigned)hw << 16) | lw; } while (0)
#define skip_name() do while (1) { \
unsigned char n; \
get_byte(n); \
if ((n & 0xc0) == 0) { \
if (n == 0) \
break; \
skip_bytes(n); \
continue; \
} else if ((n & 0xc0) == 0xc0) { \
skip_bytes(1); \
break; \
} else { \
return; \
} \
} while (0)
static void parse_dns_reply(struct dnsquery *q, unsigned char *start, size_t len)
{
unsigned short status, qdcount, ancount, i;
struct dnsquery_doh *doh = q->doh;
int preference = q->addr_preference;
#ifdef SUPPORT_IPV6
if (preference == ADDR_PREFERENCE_DEFAULT)
preference = ADDR_PREFERENCE_IPV6;
#endif
if (!support_ipv6) preference = ADDR_PREFERENCE_IPV4_ONLY;
skip_bytes(2);
get_word(status);
if (status & 0xf)
return;
get_word(qdcount);
get_word(ancount);
skip_bytes(4);
for (i = 0; i < qdcount; i++) {
skip_name();
skip_bytes(4);
}
for (i = 0; i < ancount; i++) {
unsigned short typ, cls, rdlength;
unsigned ttl;
skip_name();
get_word(typ);
get_word(cls);
get_dword(ttl);
if (ttl < doh->ttl)
doh->ttl = ttl;
get_word(rdlength);
skip_bytes(rdlength);
/*fprintf(stderr, "typ %04x, class %04x, length %04x\n", typ, cls, rdlength);*/
if (q->addr) {
if (cls == 1 && typ == 1 && rdlength == 4) {
add_address(q->addr, AF_INET, start - rdlength, 0, preference);
}
#ifdef SUPPORT_IPV6
if (cls == 1 && typ == 0x1c && rdlength == 16) {
add_address(q->addr, AF_INET6, start - rdlength, 0, preference);
}
#endif
}
}
}
static void end_doh_lookup(struct dnsquery_doh *doh)
{
uttime ttl;
struct dnsquery *q;
if (--doh->in_progress)
return;
q = doh->q;
ttl = doh->ttl;
mem_free(doh);
if (ttl * 1000 / 1000 != ttl)
ttl = -1;
else
ttl *= 1000;
end_dns_lookup(q, q->addr ? !q->addr->n : 1, ttl);
}
static void doh_end(struct status *stat, void *doh_)
{
struct dnsquery_doh *doh = (struct dnsquery_doh *)doh_;
struct dnsquery_addr *da = get_struct(stat, struct dnsquery_addr, stat);
struct cache_entry *ce;
if (stat->state >= 0)
return;
if (stat->state == S__OK && (ce = stat->ce)) {
if (ce->redirect && da->redirect_cnt++ < MAX_REDIRECTS) {
unsigned char *u;
u = join_urls(da->url, ce->redirect);
if (!strchr(cast_const_char u, POST_CHAR)) {
unsigned char *pc = cast_uchar strchr(cast_const_char da->url, POST_CHAR);
if (pc)
add_to_strn(&u, pc);
}
mem_free(da->url);
da->url = u;
load_url(u, NULL, &da->stat, PRI_DOH, NC_RELOAD, 1, 1, 0, 0);
return;
}
if (ce->http_code == 200) {
unsigned char *start;
size_t len;
get_file_by_term(NULL, ce, &start, &len, NULL);
parse_dns_reply(doh->q, start, len);
}
}
mem_free(da->url);
end_doh_lookup(doh);
}
static int add_host_name(unsigned char **r, int *l, unsigned char *name)
{
while (*name) {
size_t len = strcspn(cast_const_char name, ".");
if (!len || len > 63)
return -1;
add_chr_to_str(r, l, (unsigned char)len);
add_bytes_to_str(r, l, name, len);
name += len;
if (*name == '.')
name++;
}
add_chr_to_str(r, l, 0);
return 0;
}
void do_doh_lookup(struct dnsquery *q)
{
int p;
struct dnsquery_doh *doh;
int bad_name = 0;
q->doh = doh = mem_calloc(sizeof(struct dnsquery_doh));
doh->q = q;
doh->ttl = -1;
for (p = 0; p < 2; p++) {
struct dnsquery_addr *da = !p ? &doh->ipv4 : &doh->ipv6;
unsigned char *u;
int ul;
unsigned char *r;
int rl;
int i;
if (!p) {
#ifdef SUPPORT_IPV6
if (q->addr_preference == ADDR_PREFERENCE_IPV6_ONLY)
continue;
#endif
} else {
#ifndef SUPPORT_IPV6
continue;
#endif
if (q->addr_preference == ADDR_PREFERENCE_IPV4_ONLY)
continue;
}
doh->in_progress++;
da->stat.end = doh_end;
da->stat.data = doh;
u = init_str();
ul = 0;
memset(q->addr, 0, sizeof(struct lookup_result));
if (!casecmp(dns_over_https, cast_uchar "http://", 7) || !casecmp(dns_over_https, cast_uchar "https://", 8)) {
add_to_str(&u, &ul, dns_over_https);
} else {
int ipv6 = 0;
add_to_str(&u, &ul, cast_uchar "https://");
#ifdef SUPPORT_IPV6
if (!numeric_ipv6_address(dns_over_https, NULL, NULL))
ipv6 = 1;
#endif
if (ipv6)
add_chr_to_str(&u, &ul, '[');
add_to_str(&u, &ul, dns_over_https);
if (ipv6)
add_chr_to_str(&u, &ul, ']');
add_to_str(&u, &ul, cast_uchar "/dns-query");
}
add_chr_to_str(&u, &ul, POST_CHAR);
add_to_str(&u, &ul, cast_uchar "application/dns-message\n");
r = init_str();
rl = 0;
add_bytes_to_str(&r, &rl, cast_uchar "\0\0\1\0\0\1\0\0\0\0\0\0", 12);
if (add_host_name(&r, &rl, q->name))
bad_name = 1;
if (!p)
add_bytes_to_str(&r, &rl, cast_uchar "\0\1\0\1", 4);
else
add_bytes_to_str(&r, &rl, cast_uchar "\0\34\0\1", 4);
for (i = 0; i < rl; i++) {
unsigned char p[3];
sprintf(cast_char p, "%02x", (int)r[i]);
add_bytes_to_str(&u, &ul, p, 2);
}
mem_free(r);
da->url = u;
}
for (p = 0; p < 2; p++) {
struct dnsquery_addr *da = !p ? &doh->ipv4 : &doh->ipv6;
if (da->url) {
if (bad_name) {
mem_free(da->url);
end_doh_lookup(doh);
} else {
load_url(da->url, NULL, &da->stat, PRI_DOH, NC_RELOAD, 1, 1, 0, 0);
}
}
}
}

View File

@ -40,6 +40,10 @@ extern struct graphics_driver grx_driver;
#ifdef GRDRV_SDL #ifdef GRDRV_SDL
extern struct graphics_driver sdl_driver; extern struct graphics_driver sdl_driver;
#endif #endif
#ifdef GRDRV_SORTIX
extern struct graphics_driver sortix_driver;
#endif
/* /*
* On SPAD you must test first svgalib and then X (because X test is slow). * On SPAD you must test first svgalib and then X (because X test is slow).
@ -82,6 +86,9 @@ static struct graphics_driver *graphics_drivers[] = {
#endif #endif
#ifdef GRDRV_SDL #ifdef GRDRV_SDL
&sdl_driver, &sdl_driver,
#endif
#ifdef GRDRV_SORTIX
&sortix_driver,
#endif #endif
NULL NULL
}; };

3
file.c
View File

@ -205,7 +205,8 @@ again:
add_chr_to_str(p, l, ' '); add_chr_to_str(p, l, ' ');
} }
static unsigned char *get_filename(unsigned char *url) /* ATTR_NOINLINE is a workaround for a bogus warning on gcc 12 */
ATTR_NOINLINE static unsigned char *get_filename(unsigned char *url)
{ {
unsigned char *p, *m; unsigned char *p, *m;
int ml; int ml;

View File

@ -14,24 +14,17 @@
#include <w32api/shlobj.h> #include <w32api/shlobj.h>
static void set_font_path(void) static void set_font_path(void)
{ {
unsigned char *path = cast_uchar "/cygdrive/c/Windows/Fonts"; unsigned char *path = stracpy(cast_uchar "/cygdrive/c/Windows/Fonts");
#if defined(HAVE_CYGWIN_CONV_PATH) #if defined(HAVE_CYGWIN_CONV_PATH)
unsigned char win32_path[MAX_PATH]; unsigned char win32_path[MAX_PATH];
if (SHGetFolderPathA(NULL, CSIDL_FONTS, NULL, 0, cast_char win32_path) == S_OK) { if (SHGetFolderPathA(NULL, CSIDL_FONTS, NULL, 0, cast_char win32_path) == S_OK) {
ssize_t l; mem_free(path);
unsigned char *cyg_path; path = stracpy(win32_path);
l = cygwin_conv_path(CCP_WIN_A_TO_POSIX, win32_path, NULL, 0); translate_win32_to_unix(&path);
if (l <= 0)
goto do_default;
cyg_path = alloca(l);
l = cygwin_conv_path(CCP_WIN_A_TO_POSIX, win32_path, cyg_path, l);
if (l < 0)
goto do_default;
path = cyg_path;
} }
do_default:
#endif #endif
FcConfigAppFontAddDir(NULL, path); FcConfigAppFontAddDir(NULL, path);
mem_free(path);
} }
#else #else
#define set_font_path() do { } while (0) #define set_font_path() do { } while (0)

View File

@ -279,6 +279,10 @@ static void redraw_mouse(void);
static void fb_mouse_move(int dx, int dy) static void fb_mouse_move(int dx, int dy)
{ {
struct links_event ev; struct links_event ev;
if (!fb_have_mouse)
return;
mouse_x += dx; mouse_x += dx;
mouse_y += dy; mouse_y += dy;
ev.ev = EV_MOUSE; ev.ev = EV_MOUSE;
@ -1068,8 +1072,10 @@ static void fb_ps2_in(void *nic)
if (dw & 0x08) dw |= -0x10; if (dw & 0x08) dw |= -0x10;
} }
mouse_x += dx; if (fb_active) {
mouse_y += dy; mouse_x += dx;
mouse_y += dy;
}
if (mouse_x >= fb_xsize) mouse_x = fb_xsize - 1; if (mouse_x >= fb_xsize) mouse_x = fb_xsize - 1;
if (mouse_y >= fb_ysize) mouse_y = fb_ysize - 1; if (mouse_y >= fb_ysize) mouse_y = fb_ysize - 1;
@ -2077,7 +2083,7 @@ static int fb_block(struct graphics_device *dev)
fb_block_dev = dev; fb_block_dev = dev;
unhandle_fb_mouse(); unhandle_fb_mouse();
fb_old_vd = current_virtual_device; fb_old_vd = current_virtual_device;
current_virtual_device=NULL; current_virtual_device = NULL;
svgalib_block_itrm(fb_kbd); svgalib_block_itrm(fb_kbd);
if (have_cmap && fb_active) set_palette(&old_palette); if (have_cmap && fb_active) set_palette(&old_palette);
EINTRLOOP(rs, fsync(fb_handle)); EINTRLOOP(rs, fsync(fb_handle));

12
ftp.c
View File

@ -273,14 +273,14 @@ static struct ftp_connection_info *add_file_cmd_to_str(struct connection *c, int
} }
if (strlen(cast_const_char port_string) >= sizeof(port_string)) if (strlen(cast_const_char port_string) >= sizeof(port_string))
internal_error("buffer overflow in get_pasv_socket_ipv6: %d > %d", (int)strlen(cast_const_char port_string), (int)sizeof(port_string)); internal_error("buffer overflow in get_pasv_socket_ipv6: %d > %d", (int)strlen(cast_const_char port_string), (int)sizeof(port_string));
}
#ifdef HAVE_IPTOS #ifdef HAVE_IPTOS
if (ftp_options.set_tos) { if (ftp_options.set_tos) {
int rx; int rx;
int on = IPTOS_THROUGHPUT; int on = IPTOS_THROUGHPUT;
EINTRLOOP(rx, setsockopt(c->sock2, IPPROTO_IP, IP_TOS, (char *)&on, sizeof(int))); EINTRLOOP(rx, setsockopt(c->sock2, IPPROTO_IP, IP_TOS, (char *)&on, sizeof(int)));
} }
#endif #endif
}
dd = d; dd = d;
while (*dd == '/') dd++; while (*dd == '/') dd++;
de = cast_uchar strchr(cast_const_char dd, 0); de = cast_uchar strchr(cast_const_char dd, 0);

36
html.c
View File

@ -967,6 +967,12 @@ static void html_underline(unsigned char *a)
format_.attr |= AT_UNDERLINE; format_.attr |= AT_UNDERLINE;
} }
static void html_strike(unsigned char *a)
{
get_js_events(a);
format_.attr |= AT_STRIKE;
}
static void html_fixed(unsigned char *a) static void html_fixed(unsigned char *a)
{ {
get_js_events(a); get_js_events(a);
@ -1773,6 +1779,16 @@ static void html_button(unsigned char *a)
{ {
unsigned char *al; unsigned char *al;
struct form_control *fc; struct form_control *fc;
if ((al = get_attr_val(a, cast_uchar "class"))) { /* Wikipedia hack */
if (strstr(cast_const_char al, "vector-toc-toggle") || strstr(cast_const_char al, "vector-pinnable-header-toggle-button")) {
html_top.invisible = INVISIBLE;
mem_free(al);
return;
}
mem_free(al);
}
find_form_for_input(a); find_form_for_input(a);
fc = mem_calloc(sizeof(struct form_control)); fc = mem_calloc(sizeof(struct form_control));
if (!(al = get_attr_val(a, cast_uchar "type"))) { if (!(al = get_attr_val(a, cast_uchar "type"))) {
@ -2728,7 +2744,7 @@ static void html_link(unsigned char *a)
!casestrcmp(name, cast_uchar "prerender") || !casestrcmp(name, cast_uchar "prerender") ||
!casestrcmp(name, cast_uchar "preload")) { !casestrcmp(name, cast_uchar "preload")) {
unsigned char *pre_url = join_urls(format_.href_base, url); unsigned char *pre_url = join_urls(format_.href_base, url);
if (!dmp) load_url(pre_url, format_.href_base, NULL, PRI_PRELOAD, NC_ALWAYS_CACHE, 0, 0, 0); if (!dmp) load_url(pre_url, format_.href_base, NULL, PRI_PRELOAD, NC_ALWAYS_CACHE, 0, 0, 0, 0);
mem_free(pre_url); mem_free(pre_url);
goto skip; goto skip;
} }
@ -2777,8 +2793,10 @@ static struct element_info elements[] = {
{"EM", html_italic, 0, 0}, {"EM", html_italic, 0, 0},
{"ABBR", html_italic, 0, 0}, {"ABBR", html_italic, 0, 0},
{"U", html_underline, 0, 0}, {"U", html_underline, 0, 0},
{"S", html_underline, 0, 0}, {"INS", html_underline, 0, 0},
{"STRIKE", html_underline, 0, 0}, {"S", html_strike, 0, 0},
{"DEL", html_strike, 0, 0},
{"STRIKE", html_strike, 0, 0},
{"FIXED", html_fixed, 0, 0}, {"FIXED", html_fixed, 0, 0},
{"CODE", html_fixed, 0, 0}, {"CODE", html_fixed, 0, 0},
{"TT", html_fixed, 0, 0}, {"TT", html_fixed, 0, 0},
@ -3184,6 +3202,18 @@ do { \
format_.fontsize = list_struct(e->list_entry.next, struct html_element)->attr.fontsize; format_.fontsize = list_struct(e->list_entry.next, struct html_element)->attr.fontsize;
ln_break(lnb); ln_break(lnb);
while (e->list_entry.prev != &html_stack) kill_html_stack_item(list_struct(e->list_entry.prev, struct html_element)); while (e->list_entry.prev != &html_stack) kill_html_stack_item(list_struct(e->list_entry.prev, struct html_element));
if (e->namelen == 4 && !casecmp(e->name, cast_uchar "SPAN", 4)) { /* Wikipedia hack */
unsigned char *al;
if ((al = get_attr_val(e->options, cast_uchar "class"))) {
if (!strcmp(cast_const_char al, "vector-toc-numb"))
putsp = 1;
mem_free(al);
}
}
if (e->namelen == 2 && (!casecmp(e->name, cast_uchar "UL", 2) || !casecmp(e->name, cast_uchar "OL", 2))) { /* Wikipedia hack */
while (html < eof && WHITECHAR(*html))
html++;
}
kill_html_stack_item(e); kill_html_stack_item(e);
break; break;
} }

View File

@ -113,6 +113,7 @@ static struct style *get_style_by_ta(struct text_attrib *ta)
fflags = 0; fflags = 0;
if (ta->attr & AT_UNDERLINE) fflags |= FF_UNDERLINE; if (ta->attr & AT_UNDERLINE) fflags |= FF_UNDERLINE;
if (ta->attr & AT_STRIKE) fflags |= FF_STRIKE;
if (ta->attr & AT_BOLD) fflags |= FF_BOLD; if (ta->attr & AT_BOLD) fflags |= FF_BOLD;
if (ta->attr & AT_ITALIC) fflags |= FF_ITALIC; if (ta->attr & AT_ITALIC) fflags |= FF_ITALIC;
if (ta->attr & AT_FIXED) fflags |= FF_MONOSPACED; if (ta->attr & AT_FIXED) fflags |= FF_MONOSPACED;

View File

@ -868,6 +868,7 @@ static void put_chars(void *p_, unsigned char *c, int l)
fg = fg_color(fg, bg); fg = fg_color(fg, bg);
if (format_.attr & AT_ITALIC) fg = fg ^ 0x01; if (format_.attr & AT_ITALIC) fg = fg ^ 0x01;
if (format_.attr & AT_UNDERLINE) fg = (fg ^ 0x04) | 0x08; if (format_.attr & AT_UNDERLINE) fg = (fg ^ 0x04) | 0x08;
if (format_.attr & AT_STRIKE) fg = (fg ^ 0x06);
if (format_.attr & AT_BOLD) fg = fg | 0x08; if (format_.attr & AT_BOLD) fg = fg | 0x08;
fg = fg_color(fg, bg); fg = fg_color(fg, bg);
if (format_.attr & AT_GRAPHICS) bg = bg | 0x10; if (format_.attr & AT_GRAPHICS) bg = bg | 0x10;

View File

@ -456,6 +456,7 @@ static struct table *parse_table(unsigned char *html, unsigned char *eof, unsign
int i, j, k; int i, j, k;
struct rgb l_col; struct rgb l_col;
int c_al = AL_TR, c_val = VAL_TR, c_width = W_AUTO, c_span = 0; int c_al = AL_TR, c_val = VAL_TR, c_width = W_AUTO, c_span = 0;
int norow = 1;
memcpy(&l_col, bgcolor, sizeof(struct rgb)); memcpy(&l_col, bgcolor, sizeof(struct rgb));
*end = html; *end = html;
if (bad_html) { if (bad_html) {
@ -542,6 +543,7 @@ static struct table *parse_table(unsigned char *html, unsigned char *eof, unsign
c_span = 0; c_span = 0;
goto see; goto see;
} }
if (t_namelen == 3 && !casecmp(t_name, cast_uchar "/TR", 3)) norow = 1;
if (t_namelen == 3 && (!casecmp(t_name, cast_uchar "/TR", 3) || !casecmp(t_name, cast_uchar "/TD", 3) || !casecmp(t_name, cast_uchar "/TH", 3))) { if (t_namelen == 3 && (!casecmp(t_name, cast_uchar "/TR", 3) || !casecmp(t_name, cast_uchar "/TD", 3) || !casecmp(t_name, cast_uchar "/TH", 3))) {
if (c_span) new_columns(t, c_span, c_width, c_al, c_val, 1); if (c_span) new_columns(t, c_span, c_width, c_al, c_val, 1);
if (p) CELL(t, x, y)->end = html, p = 0; if (p) CELL(t, x, y)->end = html, p = 0;
@ -560,6 +562,7 @@ static struct table *parse_table(unsigned char *html, unsigned char *eof, unsign
get_valign(t_attr, &l_val); get_valign(t_attr, &l_val);
get_bgcolor(t_attr, &l_col); get_bgcolor(t_attr, &l_col);
y++, x = 0; y++, x = 0;
norow = 0;
goto see; goto see;
} }
if (t_namelen == 5 && ((!casecmp(t_name, cast_uchar "THEAD", 5)) || (!casecmp(t_name, cast_uchar "TBODY", 5)) || (!casecmp(t_name, cast_uchar "TFOOT", 5)))) { if (t_namelen == 5 && ((!casecmp(t_name, cast_uchar "THEAD", 5)) || (!casecmp(t_name, cast_uchar "TBODY", 5)) || (!casecmp(t_name, cast_uchar "TFOOT", 5)))) {
@ -573,6 +576,7 @@ static struct table *parse_table(unsigned char *html, unsigned char *eof, unsign
if (lbhp) (*bad_html)[*bhp-1].e = html, lbhp = NULL; if (lbhp) (*bad_html)[*bhp-1].e = html, lbhp = NULL;
if (p) CELL(t, x, y)->end = html, p = 0; if (p) CELL(t, x, y)->end = html, p = 0;
if (y == -1) y = 0, x = 0; if (y == -1) y = 0, x = 0;
if (norow && x) y++, x = 0, norow = 0;
nc: nc:
cell = new_cell(t, x, y); cell = new_cell(t, x, y);
if (cell->used) { if (cell->used) {

51
http.c
View File

@ -23,7 +23,7 @@ static void http_get_header(struct connection *c);
static void test_restart(struct connection *c); static void test_restart(struct connection *c);
static void add_user_agent(unsigned char **hdr, int *l, unsigned char *url); static void add_user_agent(unsigned char **hdr, int *l, unsigned char *url);
static void add_referer(unsigned char **hdr, int *l, unsigned char *url, unsigned char *prev_url); static void add_referer(unsigned char **hdr, int *l, unsigned char *url, unsigned char *prev_url);
static void add_accept(unsigned char **hdr, int *l); static void add_accept(unsigned char **hdr, int *l, struct connection *c);
static void add_accept_language(unsigned char **hdr, int *l, struct http_connection_info *info); static void add_accept_language(unsigned char **hdr, int *l, struct http_connection_info *info);
static void add_accept_encoding(unsigned char **hdr, int *l, unsigned char *url, struct connection *c); static void add_accept_encoding(unsigned char **hdr, int *l, unsigned char *url, struct connection *c);
static void add_accept_charset(unsigned char **hdr, int *l, struct http_connection_info *info); static void add_accept_charset(unsigned char **hdr, int *l, struct http_connection_info *info);
@ -484,20 +484,28 @@ static void http_send_header(struct connection *c)
if (proxy) add_proxy_auth_string(&hdr, &l, c->url); if (proxy) add_proxy_auth_string(&hdr, &l, c->url);
if (!info->https_forward) { if (!info->https_forward) {
test_restart(c); test_restart(c);
add_referer(&hdr, &l, host, c->prev_url); if (!c->doh) {
add_accept(&hdr, &l); add_referer(&hdr, &l, host, c->prev_url);
add_accept_language(&hdr, &l, info); }
add_accept_encoding(&hdr, &l, host, c); add_accept(&hdr, &l, c);
add_accept_charset(&hdr, &l, info); if (!c->doh) {
add_accept_language(&hdr, &l, info);
add_accept_encoding(&hdr, &l, host, c);
add_accept_charset(&hdr, &l, info);
}
add_dnt(&hdr, &l); add_dnt(&hdr, &l);
add_connection(&hdr, &l, http10, proxy, !info->send_close); add_connection(&hdr, &l, http10, proxy, !info->send_close);
add_upgrade(&hdr, &l); if (!c->doh) {
add_if_modified(&hdr, &l, c); add_upgrade(&hdr, &l);
add_range(&hdr, &l, host, c); add_if_modified(&hdr, &l, c);
add_pragma_no_cache(&hdr, &l, c->no_cache); add_range(&hdr, &l, host, c);
add_auth_string(&hdr, &l, host); add_pragma_no_cache(&hdr, &l, c->no_cache);
add_auth_string(&hdr, &l, host);
}
add_post_header(&hdr, &l, &post); add_post_header(&hdr, &l, &post);
add_cookies(&hdr, &l, host); if (!c->doh) {
add_cookies(&hdr, &l, host);
}
add_extra_options(&hdr, &l); add_extra_options(&hdr, &l);
} }
add_to_str(&hdr, &l, cast_uchar "\r\n"); add_to_str(&hdr, &l, cast_uchar "\r\n");
@ -543,7 +551,7 @@ static void add_user_agent(unsigned char **hdr, int *l, unsigned char *url)
{ {
add_to_str(hdr, l, cast_uchar "User-Agent: "); add_to_str(hdr, l, cast_uchar "User-Agent: ");
if (SCRUB_HEADERS) { if (SCRUB_HEADERS) {
add_to_str(hdr, l, cast_uchar "Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0\r\n"); add_to_str(hdr, l, cast_uchar "Mozilla/5.0 (Windows NT 10.0; rv:102.0) Gecko/20100101 Firefox/102.0\r\n");
} else if (!(*http_options.header.fake_useragent)) { } else if (!(*http_options.header.fake_useragent)) {
/* /*
@ -648,10 +656,12 @@ static void add_referer(unsigned char **hdr, int *l, unsigned char *url, unsigne
} }
} }
static void add_accept(unsigned char **hdr, int *l) static void add_accept(unsigned char **hdr, int *l, struct connection *c)
{ {
if (SCRUB_HEADERS) { if (c->doh) {
add_to_str(hdr, l, cast_uchar "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"); add_to_str(hdr, l, cast_uchar "Accept: application/dns-message\r\n");
} else if (SCRUB_HEADERS) {
add_to_str(hdr, l, cast_uchar "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\n");
} else { } else {
add_to_str(hdr, l, cast_uchar "Accept: */*\r\n"); add_to_str(hdr, l, cast_uchar "Accept: */*\r\n");
} }
@ -1149,7 +1159,7 @@ static void http_got_header(struct connection *c, struct read_buffer *rb)
return; return;
} }
#endif #endif
if (h != 401 && h != 407) { if (h != 401 && h != 407 && !c->doh) {
unsigned char *cookie; unsigned char *cookie;
unsigned char *ch = head; unsigned char *ch = head;
while ((cookie = parse_http_header(ch, cast_uchar "Set-Cookie", &ch))) { while ((cookie = parse_http_header(ch, cast_uchar "Set-Cookie", &ch))) {
@ -1212,6 +1222,8 @@ static void http_got_header(struct connection *c, struct read_buffer *rb)
e->http_code = h; e->http_code = h;
if (e->head) mem_free(e->head); if (e->head) mem_free(e->head);
e->head = head; e->head = head;
if (c->doh)
e->expire_time = 1;
if ((d = parse_http_header(head, cast_uchar "Expires", NULL))) { if ((d = parse_http_header(head, cast_uchar "Expires", NULL))) {
time_t t = parse_http_date(d); time_t t = parse_http_date(d);
if (t != (time_t)-1 && e->expire_time != 1) e->expire_time = t; if (t != (time_t)-1 && e->expire_time != 1) e->expire_time = t;
@ -1352,12 +1364,15 @@ static void http_got_header(struct connection *c, struct read_buffer *rb)
/* /*
* Truncate entry if: * Truncate entry if:
* - we are using DNS-over-HTTPS
* - it is compressed (the mix of an old and new document * - it is compressed (the mix of an old and new document
* would likely produce decompression error). * would likely produce decompression error).
* - it was http authentication (the user doesn't need to see the * - it was http authentication (the user doesn't need to see the
* authentication message). * authentication message).
*/ */
if ((d = parse_http_header(e->head, cast_uchar "Content-Encoding", NULL))) { if (c->doh) {
truncate_entry(e, c->from, 0);
} else if ((d = parse_http_header(e->head, cast_uchar "Content-Encoding", NULL))) {
mem_free(d); mem_free(d);
truncate_entry(e, c->from, 0); truncate_entry(e, c->from, 0);
} else if (previous_http_code == 401 || previous_http_code == 407) { } else if (previous_http_code == 401 || previous_http_code == 407) {

View File

@ -325,7 +325,7 @@ links_ssl *getSSL(void)
ssl_load_private_certificates(ctx); ssl_load_private_certificates(ctx);
#endif #endif
} }
#ifdef X509_V_FLAG_TRUSTED_FIRST #if defined(HAVE_X509_VERIFY_PARAM_SET_FLAGS) && defined(X509_V_FLAG_TRUSTED_FIRST)
#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x10003000 #if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x10003000
X509_VERIFY_PARAM_set_flags(SSL_CTX_get_cert_store(ctx)->param, X509_V_FLAG_TRUSTED_FIRST); X509_VERIFY_PARAM_set_flags(SSL_CTX_get_cert_store(ctx)->param, X509_V_FLAG_TRUSTED_FIRST);
#else #else

63
img.c
View File

@ -60,6 +60,16 @@ static void destroy_decoder (struct cached_image *cimg)
case IM_SVG: case IM_SVG:
svg_destroy_decoder(cimg); svg_destroy_decoder(cimg);
break; break;
#endif
#ifdef HAVE_WEBP
case IM_WEBP:
webp_destroy_decoder(cimg);
break;
#endif
#ifdef HAVE_AVIF
case IM_AVIF:
avif_destroy_decoder(cimg);
break;
#endif #endif
} }
mem_free(cimg->decoder); mem_free(cimg->decoder);
@ -773,6 +783,21 @@ static void type(struct cached_image *cimg, unsigned char *content_type, unsigne
#ifdef HAVE_SVG #ifdef HAVE_SVG
if (data[0] == '<' && data[1] == '?') if (data[0] == '<' && data[1] == '?')
goto have_svg; goto have_svg;
#endif
#ifdef HAVE_WEBP
if (data[0] == 'R' && data[1] == 'I' && data[2] == 'F' && data[3] == 'F')
goto have_webp;
#endif
#if 0
if (data[4] == 'f' && data[5] == 't' && data[6] == 'y' && data[7] == 'p' &&
(memcmp(data + 8, "avi", 3) &&
(data[11] == 'f' || data[11] == 's' || data[11] == 'o')) ||
(data[8] == 'm' &&
(data[9] == 'i' || data[9] == 's') &&
data[10] == 'f' && data[11] == '1') ||
memcmp(data + 8, "miaf", 4) ||
memcmp(data + 8, "MA1B", 4))
goto have_avif;
#endif #endif
if (data[0] == 0x89 && data[1] == 'P' && data[2] == 'N' && data[3] == 'G') if (data[0] == 0x89 && data[1] == 'P' && data[2] == 'N' && data[3] == 'G')
goto have_png; goto have_png;
@ -819,6 +844,20 @@ static void type(struct cached_image *cimg, unsigned char *content_type, unsigne
svg_start(cimg); svg_start(cimg);
} else } else
#endif /* #ifdef HAVE_SVG */ #endif /* #ifdef HAVE_SVG */
#ifdef HAVE_WEBP
if (dtest(cast_uchar "image/webp",content_type)) {
have_webp:
cimg->image_type=IM_WEBP;
webp_start(cimg);
} else
#endif /* #ifdef HAVE_WEBP */
#ifdef HAVE_AVIF
if (dtest(cast_uchar "image/avif",content_type)) {
/*have_avif:*/
cimg->image_type=IM_AVIF;
avif_start(cimg);
} else
#endif /* #ifdef HAVE_AVIF */
{ {
/* Error */ /* Error */
img_end(cimg); img_end(cimg);
@ -916,6 +955,16 @@ static int img_process_download(struct g_object_image *goi, struct f_data_c *fda
svg_restart(cimg,data,length); svg_restart(cimg,data,length);
break; break;
#endif /* #ifdef HAVE_SVG */ #endif /* #ifdef HAVE_SVG */
#ifdef HAVE_WEBP
case IM_WEBP:
webp_restart(cimg,data,length);
break;
#endif /* #ifdef HAVE_WEBP */
#ifdef HAVE_AVIF
case IM_AVIF:
avif_restart(cimg,data,length);
break;
#endif /* #ifdef HAVE_AVIF */
#ifdef DEBUG #ifdef DEBUG
default: default:
fprintf(stderr,"cimg->image_type=%d\n",cimg->state); fprintf(stderr,"cimg->image_type=%d\n",cimg->state);
@ -942,6 +991,14 @@ img_process_download.\n");
#ifdef HAVE_SVG #ifdef HAVE_SVG
if (cimg->image_type==IM_SVG) if (cimg->image_type==IM_SVG)
svg_finish(cimg); svg_finish(cimg);
#endif
#ifdef HAVE_WEBP
if (cimg->image_type==IM_WEBP)
webp_finish(cimg);
#endif
#ifdef HAVE_AVIF
if (cimg->image_type==IM_AVIF)
avif_finish(cimg);
#endif #endif
} }
cimg->eof_hit=1; cimg->eof_hit=1;
@ -1345,6 +1402,12 @@ int known_image_type(unsigned char *type)
if (!casestrcmp(type, cast_uchar "image/svg+xml")) return 1; if (!casestrcmp(type, cast_uchar "image/svg+xml")) return 1;
if (!casestrcmp(type, cast_uchar "image/svg")) return 1; if (!casestrcmp(type, cast_uchar "image/svg")) return 1;
#endif #endif
#ifdef HAVE_WEBP
if (!casestrcmp(type, cast_uchar "image/webp")) return 1;
#endif
#ifdef HAVE_AVIF
if (!casestrcmp(type, cast_uchar "image/avif")) return 1;
#endif
#endif #endif
return 0; return 0;
} }

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Angka melebihi batas",
T_BAD_STRING, "Salah string", T_BAD_STRING, "Salah string",
T_EMPTY_STRING_NOT_ALLOWED, "String kosong tidak dibolehkan", T_EMPTY_STRING_NOT_ALLOWED, "String kosong tidak dibolehkan",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Salah konfigurasi", T_CONFIG_ERROR, "Salah konfigurasi",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Tidak dapat menulis pada berkas konfigurasi", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Tidak dapat menulis pada berkas konfigurasi",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Hubungan", T_CONNECTIONS, "Hubungan",
T_MAX_CONNECTIONS, "Batas hubungan", T_MAX_CONNECTIONS, "Batas hubungan",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Batas hubungan untuk satu host", T_MAX_CONNECTIONS_TO_ONE_HOST, "Batas hubungan untuk satu host",
@ -502,20 +503,22 @@ T_MANUAL, "Panduan pengguna",
T_HOMEPAGE, "Halaman rumah", T_HOMEPAGE, "Halaman rumah",
T_CALIBRATION, "Pengukuran", T_CALIBRATION, "Pengukuran",
T_MAILTO_PROG, "Program surat (% diganti dengan alamat)", T_MAILTO_PROG, "Program surat (% diganti dengan alamat)",
T_SHELL_PROG, "Shell untuk menjalankan perintah eksternal (% diganti dengan perintah)",
T_TELNET_PROG, "Program telnet (% diganti dengan \"host\" atau \"host port\")", T_TELNET_PROG, "Program telnet (% diganti dengan \"host\" atau \"host port\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Program Tn3270 (% diganti dengan \"host\" atau \"host port\")", T_TN3270_PROG, "Program Tn3270 (% diganti dengan \"host\" atau \"host port\")",
T_MMS_PROG, "Program MMS (% diganti dengan URL)", T_MMS_PROG, "Program MMS (% diganti dengan URL)",
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, "Shell untuk menjalankan perintah eksternal (% diganti dengan perintah)",
T_MAIL_AND_TELNET_PROGRAMS, "Program Mail dan telnet", T_MAIL_AND_TELNET_PROGRAMS, "Program Mail dan telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Program surat, telnet dan shell", T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Program surat, telnet dan shell",
T_NO_PROGRAM, "Tidak ada program", T_NO_PROGRAM, "Tidak ada program",
T_NO_PROGRAM_SPECIFIED_FOR, "Tidak ada program diberikan untuk", T_NO_PROGRAM_SPECIFIED_FOR, "Tidak ada program diberikan untuk",
T_MAIL, "surat", T_MAIL, "surat",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, "mms", T_MMS, "mms",
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "URL mailto salah", T_BAD_MAILTO_URL, "URL mailto salah",
T_BAD_TELNET_URL, "URL telnet salah", T_BAD_TELNET_URL, "URL telnet salah",
T_BAD_TN3270_URL, "URL tn3270 salah", T_BAD_TN3270_URL, "URL tn3270 salah",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "
T_BAD_STRING, "îÑÐÒÁצÌØÎÙ ÒÁÄÏË", T_BAD_STRING, "îÑÐÒÁצÌØÎÙ ÒÁÄÏË",
T_EMPTY_STRING_NOT_ALLOWED, "ðÕÓÔÙÑ ÒÁÄ˦ ÎÅ ÄÁÚ×ÁÌÑÀÃÃÁ", T_EMPTY_STRING_NOT_ALLOWED, "ðÕÓÔÙÑ ÒÁÄ˦ ÎÅ ÄÁÚ×ÁÌÑÀÃÃÁ",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "ðÁÍÙÌËÁ ÎÁÓÔÒÏÊ˦", T_CONFIG_ERROR, "ðÁÍÙÌËÁ ÎÁÓÔÒÏÊ˦",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "îÅÍÁÇÞÙÍÁ ÚÁЦÓÁÃØ Õ ÆÁÊÌ ÎÁÓÔÒÏÅË", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "îÅÍÁÇÞÙÍÁ ÚÁЦÓÁÃØ Õ ÆÁÊÌ ÎÁÓÔÒÏÅË",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "úÌÕÞÜÎÎÑ®", T_CONNECTIONS, "úÌÕÞÜÎÎÑ®",
T_MAX_CONNECTIONS, "íÁËÓ. ËÏÌØËÁÓÃØ ÚÌÕÞÜÎÎÑ®", T_MAX_CONNECTIONS, "íÁËÓ. ËÏÌØËÁÓÃØ ÚÌÕÞÜÎÎÑ®",
T_MAX_CONNECTIONS_TO_ONE_HOST, "íÁËÓ. ËÏÌØËÁÓÃØ ÚÌÕÞÜÎÎÑ® ÄÁ ÁÄÎÁÇÏ ÓÅÒ×ÅÒÁ", T_MAX_CONNECTIONS_TO_ONE_HOST, "íÁËÓ. ËÏÌØËÁÓÃØ ÚÌÕÞÜÎÎÑ® ÄÁ ÁÄÎÁÇÏ ÓÅÒ×ÅÒÁ",
@ -502,20 +503,22 @@ T_MANUAL, "
T_HOMEPAGE, NULL, T_HOMEPAGE, NULL,
T_CALIBRATION, NULL, T_CALIBRATION, NULL,
T_MAILTO_PROG, "ðÒÁÇÒÁÍÁ ÁÄÐÒÁ®Ë¦ ÐÏÛÔÙ (% ÚÁÍÑÎÑÅÃÃÁ ÎÁ ÁÄÒÁÓ)", T_MAILTO_PROG, "ðÒÁÇÒÁÍÁ ÁÄÐÒÁ®Ë¦ ÐÏÛÔÙ (% ÚÁÍÑÎÑÅÃÃÁ ÎÁ ÁÄÒÁÓ)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "ðÒÁÇÒÁÍÁ telnet (% ÚÁÍÑÎÑÅÃÃÁ ÎÁ 'host' æ 'host port')", T_TELNET_PROG, "ðÒÁÇÒÁÍÁ telnet (% ÚÁÍÑÎÑÅÃÃÁ ÎÁ 'host' æ 'host port')",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "ðÒÁÇÒÁÍÁ tn3270 (% ÚÁÍÑÎÑÅÃÃÁ ÎÁ 'host' æ 'host port')", T_TN3270_PROG, "ðÒÁÇÒÁÍÁ tn3270 (% ÚÁÍÑÎÑÅÃÃÁ ÎÁ 'host' æ 'host port')",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "ðÒÁÇÒÁÍÙ ÄÌÑ ÐÏÛÔÙ ¦ telnet'Á", T_MAIL_AND_TELNET_PROGRAMS, "ðÒÁÇÒÁÍÙ ÄÌÑ ÐÏÛÔÙ ¦ telnet'Á",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "îÑÍÁ ÐÒÁÇÒÁÍÙ", T_NO_PROGRAM, "îÑÍÁ ÐÒÁÇÒÁÍÙ",
T_NO_PROGRAM_SPECIFIED_FOR, "îÅ ®ËÁÚÁÎÁ ÐÒÁÇÒÁÍÁ ÄÌÑ", T_NO_PROGRAM_SPECIFIED_FOR, "îÅ ®ËÁÚÁÎÁ ÐÒÁÇÒÁÍÁ ÄÌÑ",
T_MAIL, "ÐÏÛÔÙ", T_MAIL, "ÐÏÛÔÙ",
T_TELNET, NULL, T_TELNET, NULL,
T_MAGNET, NULL,
T_TN3270, NULL, T_TN3270, NULL,
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "îÑÐÒÁצÌØÎÙ ÁÄÒÁÓ mailto:", T_BAD_MAILTO_URL, "îÑÐÒÁצÌØÎÙ ÁÄÒÁÓ mailto:",
T_BAD_TELNET_URL, "îÑÐÒÁצÌØÎÙ ÁÄÒÁÓ telnet", T_BAD_TELNET_URL, "îÑÐÒÁצÌØÎÙ ÁÄÒÁÓ telnet",
T_BAD_TN3270_URL, "îÑÐÒÁצÌØÎÙ ÁÄÒÁÓ tn3270", T_BAD_TN3270_URL, "îÑÐÒÁצÌØÎÙ ÁÄÒÁÓ tn3270",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "N
T_BAD_STRING, "Sequência de caracteres inválida", T_BAD_STRING, "Sequência de caracteres inválida",
T_EMPTY_STRING_NOT_ALLOWED, "Não é permitido sequência de caracteres vazia", T_EMPTY_STRING_NOT_ALLOWED, "Não é permitido sequência de caracteres vazia",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Erro de configuração", T_CONFIG_ERROR, "Erro de configuração",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Não posso escrever no arquivo de configuração", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Não posso escrever no arquivo de configuração",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Conexões", T_CONNECTIONS, "Conexões",
T_MAX_CONNECTIONS, "Número máximo de conexões", T_MAX_CONNECTIONS, "Número máximo de conexões",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Número Máximo de conexões a um host", T_MAX_CONNECTIONS_TO_ONE_HOST, "Número Máximo de conexões a um host",
@ -502,20 +503,22 @@ T_MANUAL, "Manual do Usu
T_HOMEPAGE, NULL, T_HOMEPAGE, NULL,
T_CALIBRATION, NULL, T_CALIBRATION, NULL,
T_MAILTO_PROG, "Cliente de e-mail (% será substituido pelo endereço)", T_MAILTO_PROG, "Cliente de e-mail (% será substituido pelo endereço)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Cliente telnet (% será substituido por \"host\" or \"host port\")", T_TELNET_PROG, "Cliente telnet (% será substituido por \"host\" or \"host port\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Cliente tn3270 (% será substituido por \"host\" or \"host port\")", T_TN3270_PROG, "Cliente tn3270 (% será substituido por \"host\" or \"host port\")",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "Clientes de e-mail e telnet", T_MAIL_AND_TELNET_PROGRAMS, "Clientes de e-mail e telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Nenhum programa", T_NO_PROGRAM, "Nenhum programa",
T_NO_PROGRAM_SPECIFIED_FOR, "Nenhum programa foi especificado para", T_NO_PROGRAM_SPECIFIED_FOR, "Nenhum programa foi especificado para",
T_MAIL, "mail", T_MAIL, "mail",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "URL mailto incorreta", T_BAD_MAILTO_URL, "URL mailto incorreta",
T_BAD_TELNET_URL, "URL telnet incorreta", T_BAD_TELNET_URL, "URL telnet incorreta",
T_BAD_TN3270_URL, "URL tn3270 incorreta", T_BAD_TN3270_URL, "URL tn3270 incorreta",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "
T_BAD_STRING, "Íåâàëèäåí ñèìâîëåí íèç", T_BAD_STRING, "Íåâàëèäåí ñèìâîëåí íèç",
T_EMPTY_STRING_NOT_ALLOWED, "Íå å ïîçâîëåí ïðàçåí ñèìâîëåí íèç", T_EMPTY_STRING_NOT_ALLOWED, "Íå å ïîçâîëåí ïðàçåí ñèìâîëåí íèç",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Ãðåøêà â íàñòðîéêèòå", T_CONFIG_ERROR, "Ãðåøêà â íàñòðîéêèòå",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Íå ìîæå äà ñå ïèøå âúâ ôàéëà ñ íàñòðîéêèòå", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Íå ìîæå äà ñå ïèøå âúâ ôàéëà ñ íàñòðîéêèòå",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Âðúçêà(è)", T_CONNECTIONS, "Âðúçêà(è)",
T_MAX_CONNECTIONS, "Ìàêñ. áðîé âðúçêè", T_MAX_CONNECTIONS, "Ìàêñ. áðîé âðúçêè",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Ìàêñ. áðîé âðúçêè êúì åäèí ñúðâúð", T_MAX_CONNECTIONS_TO_ONE_HOST, "Ìàêñ. áðîé âðúçêè êúì åäèí ñúðâúð",
@ -502,20 +503,22 @@ T_MANUAL, "
T_HOMEPAGE, NULL, T_HOMEPAGE, NULL,
T_CALIBRATION, NULL, T_CALIBRATION, NULL,
T_MAILTO_PROG, "Ïîùåíñêà ïðîãðàìà (% çàìåíÿ àäðåñà)", T_MAILTO_PROG, "Ïîùåíñêà ïðîãðàìà (% çàìåíÿ àäðåñà)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Ïðîãðàìà çà telnet (% çàìåíÿ 'host' èëè 'host port')", T_TELNET_PROG, "Ïðîãðàìà çà telnet (% çàìåíÿ 'host' èëè 'host port')",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Ïðîãðàìà çà tn3270 (% çàìåíÿ 'host' èëè 'host port')", T_TN3270_PROG, "Ïðîãðàìà çà tn3270 (% çàìåíÿ 'host' èëè 'host port')",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "Ïðîãðàìè çà ïîùà è telnet", T_MAIL_AND_TELNET_PROGRAMS, "Ïðîãðàìè çà ïîùà è telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Íÿìà ïðîãðàìà", T_NO_PROGRAM, "Íÿìà ïðîãðàìà",
T_NO_PROGRAM_SPECIFIED_FOR, "Íå å ïîñî÷åíà ïðîãðàìà çà", T_NO_PROGRAM_SPECIFIED_FOR, "Íå å ïîñî÷åíà ïðîãðàìà çà",
T_MAIL, "ïîùà", T_MAIL, "ïîùà",
T_TELNET, NULL, T_TELNET, NULL,
T_MAGNET, NULL,
T_TN3270, NULL, T_TN3270, NULL,
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Íåâàëèäåí àäðåñ mailto:", T_BAD_MAILTO_URL, "Íåâàëèäåí àäðåñ mailto:",
T_BAD_TELNET_URL, "Íåâàëèäåí àäðåñ telnet", T_BAD_TELNET_URL, "Íåâàëèäåí àäðåñ telnet",
T_BAD_TN3270_URL, "Íåâàëèäåí àäðåñ tn3270", T_BAD_TN3270_URL, "Íåâàëèäåí àäðåñ tn3270",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Nombre fora de rang",
T_BAD_STRING, "Cadena incorrecta", T_BAD_STRING, "Cadena incorrecta",
T_EMPTY_STRING_NOT_ALLOWED, "No s'hi permeten cadenes buides", T_EMPTY_STRING_NOT_ALLOWED, "No s'hi permeten cadenes buides",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Error de configuració", T_CONFIG_ERROR, "Error de configuració",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "No ha estat possible escriure en l'arxiu de configuració", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "No ha estat possible escriure en l'arxiu de configuració",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Connexions", T_CONNECTIONS, "Connexions",
T_MAX_CONNECTIONS, "Màxim de connexions", T_MAX_CONNECTIONS, "Màxim de connexions",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Màxim de connexions a una màquina", T_MAX_CONNECTIONS_TO_ONE_HOST, "Màxim de connexions a una màquina",
@ -502,20 +503,22 @@ T_MANUAL, "Manual de l'usuari",
T_HOMEPAGE, "Pàgina inicial", T_HOMEPAGE, "Pàgina inicial",
T_CALIBRATION, "Calibratge", T_CALIBRATION, "Calibratge",
T_MAILTO_PROG, "Programa de correu (% és substituït per l'adreça)", T_MAILTO_PROG, "Programa de correu (% és substituït per l'adreça)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Programa de telnet (% és substituït per \"host\" o per \"host port\")", T_TELNET_PROG, "Programa de telnet (% és substituït per \"host\" o per \"host port\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Programa tn3270 (% és substituït per \"host\" o per \"host port\")", T_TN3270_PROG, "Programa tn3270 (% és substituït per \"host\" o per \"host port\")",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "Programes de correu i de telnet", T_MAIL_AND_TELNET_PROGRAMS, "Programes de correu i de telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Cap programa", T_NO_PROGRAM, "Cap programa",
T_NO_PROGRAM_SPECIFIED_FOR, "No hi ha cap programa especificat per a", T_NO_PROGRAM_SPECIFIED_FOR, "No hi ha cap programa especificat per a",
T_MAIL, "correu", T_MAIL, "correu",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Adreça de correu incorrecta", T_BAD_MAILTO_URL, "Adreça de correu incorrecta",
T_BAD_TELNET_URL, "Adreça de telnet incorrecta", T_BAD_TELNET_URL, "Adreça de telnet incorrecta",
T_BAD_TN3270_URL, "Adreça de tn3270 incorrecta", T_BAD_TN3270_URL, "Adreça de tn3270 incorrecta",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Broj izvan opsega",
T_BAD_STRING, "Neispravan niz znakova", T_BAD_STRING, "Neispravan niz znakova",
T_EMPTY_STRING_NOT_ALLOWED, "Prazni niz znakova nije dozvoljen", T_EMPTY_STRING_NOT_ALLOWED, "Prazni niz znakova nije dozvoljen",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Gre¹ka u konfiguraciji", T_CONFIG_ERROR, "Gre¹ka u konfiguraciji",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Ne mogu pisati u konfiguracijsku datoteku", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Ne mogu pisati u konfiguracijsku datoteku",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Veze", T_CONNECTIONS, "Veze",
T_MAX_CONNECTIONS, "Maksimanlno veza", T_MAX_CONNECTIONS, "Maksimanlno veza",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Maksimalno veza na jedno raèunalo", T_MAX_CONNECTIONS_TO_ONE_HOST, "Maksimalno veza na jedno raèunalo",
@ -502,20 +503,22 @@ T_MANUAL, "Upute za korisnika",
T_HOMEPAGE, "Polazna stranica", T_HOMEPAGE, "Polazna stranica",
T_CALIBRATION, "Kalibracija", T_CALIBRATION, "Kalibracija",
T_MAILTO_PROG, "Mail program (% æe biti zamijenjeno adresom)", T_MAILTO_PROG, "Mail program (% æe biti zamijenjeno adresom)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Telnet program (% æe se zamijeniti sa \"host\" ili \"host port\")", T_TELNET_PROG, "Telnet program (% æe se zamijeniti sa \"host\" ili \"host port\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270 program (% æe biti zamijenjeno sa \"raèunalo\" ili \"raèunalo port\")", T_TN3270_PROG, "Tn3270 program (% æe biti zamijenjeno sa \"raèunalo\" ili \"raèunalo port\")",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "Mail i telnet programi", T_MAIL_AND_TELNET_PROGRAMS, "Mail i telnet programi",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Nema programa", T_NO_PROGRAM, "Nema programa",
T_NO_PROGRAM_SPECIFIED_FOR, "Nema programa za", T_NO_PROGRAM_SPECIFIED_FOR, "Nema programa za",
T_MAIL, "email", T_MAIL, "email",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Neispravan mailto url", T_BAD_MAILTO_URL, "Neispravan mailto url",
T_BAD_TELNET_URL, "Neispravan telnet url", T_BAD_TELNET_URL, "Neispravan telnet url",
T_BAD_TN3270_URL, "Neispravan tn3270 url", T_BAD_TN3270_URL, "Neispravan tn3270 url",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "
T_BAD_STRING, "Chybný øetìzec", T_BAD_STRING, "Chybný øetìzec",
T_EMPTY_STRING_NOT_ALLOWED, "Musí¹ zadat nìjaký text!", T_EMPTY_STRING_NOT_ALLOWED, "Musí¹ zadat nìjaký text!",
T_BAD_IP_ADDRESS, "Chybná IP addresa", T_BAD_IP_ADDRESS, "Chybná IP addresa",
T_INVALID_IP_ADDRESS_SYNTAX, "Chyná syntax IP adresy",
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, "Nemohu pou¾ít lokální IP adresu", T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, "Nemohu pou¾ít lokální IP adresu",
T_CONFIG_ERROR, "Chyba v konfiguraci", T_CONFIG_ERROR, "Chyba v konfiguraci",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Nemù¾u zapisovat do konfiguraèního souboru", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Nemù¾u zapisovat do konfiguraèního souboru",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, "Soubor neexistuje",
T_THE_FILE_HAS_INVALID_FORMAT, "Soubor má ¹patný formát", T_THE_FILE_HAS_INVALID_FORMAT, "Soubor má ¹patný formát",
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, "Chyba pøi inicializaci vestavìných certifikátù", T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, "Chyba pøi inicializaci vestavìných certifikátù",
T_FAILED, "selhalo", T_FAILED, "selhalo",
T_DNS_OPTIONS, "DNS nastavení",
T_DNS_OVER_HTTPS_URL, "DNS přes HTTPS (host nebo url)",
T_CONNECTIONS, "Spojení", T_CONNECTIONS, "Spojení",
T_MAX_CONNECTIONS, "Maximálnì spojení", T_MAX_CONNECTIONS, "Maximálnì spojení",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Maximálnì spojení k jednomu stroji", T_MAX_CONNECTIONS_TO_ONE_HOST, "Maximálnì spojení k jednomu stroji",
@ -502,20 +503,22 @@ T_MANUAL, "Manu
T_HOMEPAGE, "Domácí stránka", T_HOMEPAGE, "Domácí stránka",
T_CALIBRATION, "Kalibrace", T_CALIBRATION, "Kalibrace",
T_MAILTO_PROG, "Program pro mail (% je nahrazeno adresou)", T_MAILTO_PROG, "Program pro mail (% je nahrazeno adresou)",
T_SHELL_PROG, "Shell pro spouštění externích příkazů (% je nahrazeno příkazem)",
T_TELNET_PROG, "Program pro telnet (% je nahrazeno jménem stroje a pøípadnì portem)", T_TELNET_PROG, "Program pro telnet (% je nahrazeno jménem stroje a pøípadnì portem)",
T_MAGNET_PROG, "Program pro magnet (% je nahrazeno URL)",
T_TN3270_PROG, "Program pro tn3270 (% je nahrazeno jménem stroje a pøípadnì portem)", T_TN3270_PROG, "Program pro tn3270 (% je nahrazeno jménem stroje a pøípadnì portem)",
T_MMS_PROG, "Program pro mms (% je nahrazeno URL)", T_MMS_PROG, "Program pro mms (% je nahrazeno URL)",
T_MAGNET_PROG, "Program pro magnet (% je nahrazeno URL)",
T_GOPHER_PROG, "Program pro gopher (% je nahrazeno URL)",
T_SHELL_PROG, "Shell pro spouštění externích příkazů (% je nahrazeno příkazem)",
T_MAIL_AND_TELNET_PROGRAMS, "Programy pro mail a telnet", T_MAIL_AND_TELNET_PROGRAMS, "Programy pro mail a telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Programy pro mail, telnet a shell", T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Programy pro mail, telnet a shell",
T_NO_PROGRAM, "®ádný program", T_NO_PROGRAM, "®ádný program",
T_NO_PROGRAM_SPECIFIED_FOR, "Není zadán ¾ádný program pro", T_NO_PROGRAM_SPECIFIED_FOR, "Není zadán ¾ádný program pro",
T_MAIL, "mail", T_MAIL, "mail",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, "magnet",
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, "mms", T_MMS, "mms",
T_MAGNET, "magnet",
T_GOPHER, "gopher",
T_BAD_MAILTO_URL, "©patné mailto url", T_BAD_MAILTO_URL, "©patné mailto url",
T_BAD_TELNET_URL, "©patné telnet url", T_BAD_TELNET_URL, "©patné telnet url",
T_BAD_TN3270_URL, "©patné tn3270 url", T_BAD_TN3270_URL, "©patné tn3270 url",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, "S",
T_HK_IPV6_OPTIONS, "I", T_HK_IPV6_OPTIONS, "I",
T_HK_PROXIES, "P", T_HK_PROXIES, "P",
T_HK_SSL_OPTIONS, "L", T_HK_SSL_OPTIONS, "L",
T_HK_DNS_OPTIONS, "D",
T_HK_HTTP_OPTIONS, "H", T_HK_HTTP_OPTIONS, "H",
T_HK_FTP_OPTIONS, "F", T_HK_FTP_OPTIONS, "F",
T_HK_SMB_OPTIONS, "M", T_HK_SMB_OPTIONS, "M",

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Nummer uden for omr
T_BAD_STRING, "Fejl i tekststreng", T_BAD_STRING, "Fejl i tekststreng",
T_EMPTY_STRING_NOT_ALLOWED, "Tom tekststreng ikke tilladt", T_EMPTY_STRING_NOT_ALLOWED, "Tom tekststreng ikke tilladt",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Konfigurationsfejl", T_CONFIG_ERROR, "Konfigurationsfejl",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Kan ikke skrive til konfigurationsfil", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Kan ikke skrive til konfigurationsfil",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Forbindelser", T_CONNECTIONS, "Forbindelser",
T_MAX_CONNECTIONS, "Max forbindelser", T_MAX_CONNECTIONS, "Max forbindelser",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Max forbindelser til en vært", T_MAX_CONNECTIONS_TO_ONE_HOST, "Max forbindelser til en vært",
@ -502,20 +503,22 @@ T_MANUAL, "Brugervejledning",
T_HOMEPAGE, "Hjemmeside", T_HOMEPAGE, "Hjemmeside",
T_CALIBRATION, "Kalibrering", T_CALIBRATION, "Kalibrering",
T_MAILTO_PROG, "Epostprogram (% erstattes med adresse)", T_MAILTO_PROG, "Epostprogram (% erstattes med adresse)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Program til fjernlogin (% erstattes med \"vært\" eller \"vært port\")", T_TELNET_PROG, "Program til fjernlogin (% erstattes med \"vært\" eller \"vært port\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270-program (% erstattes med \"vært\" eller \"vært port\")", T_TN3270_PROG, "Tn3270-program (% erstattes med \"vært\" eller \"vært port\")",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "Program til epost og fjernlogin", T_MAIL_AND_TELNET_PROGRAMS, "Program til epost og fjernlogin",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Intet program", T_NO_PROGRAM, "Intet program",
T_NO_PROGRAM_SPECIFIED_FOR, "Intet program angivet for", T_NO_PROGRAM_SPECIFIED_FOR, "Intet program angivet for",
T_MAIL, "epost", T_MAIL, "epost",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Fejl i mailto URL", T_BAD_MAILTO_URL, "Fejl i mailto URL",
T_BAD_TELNET_URL, "Fejl i telnet URL", T_BAD_TELNET_URL, "Fejl i telnet URL",
T_BAD_TN3270_URL, "Fejl i tn3270 URL", T_BAD_TN3270_URL, "Fejl i tn3270 URL",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Number buiten het bereik",
T_BAD_STRING, "Onjuiste string", T_BAD_STRING, "Onjuiste string",
T_EMPTY_STRING_NOT_ALLOWED, "Lege string niet toegestaan", T_EMPTY_STRING_NOT_ALLOWED, "Lege string niet toegestaan",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Configuratie fout", T_CONFIG_ERROR, "Configuratie fout",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Niet mogelijk om naar het configuratiebestand te schrijven", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Niet mogelijk om naar het configuratiebestand te schrijven",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Verbindingen", T_CONNECTIONS, "Verbindingen",
T_MAX_CONNECTIONS, "Max verbindingen", T_MAX_CONNECTIONS, "Max verbindingen",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Max verbindingen naar één host", T_MAX_CONNECTIONS_TO_ONE_HOST, "Max verbindingen naar één host",
@ -502,20 +503,22 @@ T_MANUAL, "Gebruikershandleiding",
T_HOMEPAGE, NULL, T_HOMEPAGE, NULL,
T_CALIBRATION, NULL, T_CALIBRATION, NULL,
T_MAILTO_PROG, "Mail programma (% is vervangen met adres)", T_MAILTO_PROG, "Mail programma (% is vervangen met adres)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Telnet programma (% is vervangen met \"host\" of \"host port\")", T_TELNET_PROG, "Telnet programma (% is vervangen met \"host\" of \"host port\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270 programma (% is vervangen met \"host\" of \"host port\")", T_TN3270_PROG, "Tn3270 programma (% is vervangen met \"host\" of \"host port\")",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "Mail en telnet programma's", T_MAIL_AND_TELNET_PROGRAMS, "Mail en telnet programma's",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Geen programma", T_NO_PROGRAM, "Geen programma",
T_NO_PROGRAM_SPECIFIED_FOR, "Geen programma gespecificieerd voor", T_NO_PROGRAM_SPECIFIED_FOR, "Geen programma gespecificieerd voor",
T_MAIL, "mail", T_MAIL, "mail",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Onjuiste mailto url", T_BAD_MAILTO_URL, "Onjuiste mailto url",
T_BAD_TELNET_URL, "Onjuiste telnet url", T_BAD_TELNET_URL, "Onjuiste telnet url",
T_BAD_TN3270_URL, "Onjuiste tn3270 url", T_BAD_TN3270_URL, "Onjuiste tn3270 url",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Number out of range",
T_BAD_STRING, "Bad string", T_BAD_STRING, "Bad string",
T_EMPTY_STRING_NOT_ALLOWED, "Empty string not allowed", T_EMPTY_STRING_NOT_ALLOWED, "Empty string not allowed",
T_BAD_IP_ADDRESS, "Bad IP address", T_BAD_IP_ADDRESS, "Bad IP address",
T_INVALID_IP_ADDRESS_SYNTAX, "Invalid IP address syntax",
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, "Unable to use local IP address", T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, "Unable to use local IP address",
T_CONFIG_ERROR, "Config error", T_CONFIG_ERROR, "Config error",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Unable to write to config file", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Unable to write to config file",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, "The file does not exist",
T_THE_FILE_HAS_INVALID_FORMAT, "The file has invalid format", T_THE_FILE_HAS_INVALID_FORMAT, "The file has invalid format",
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, "Error initializing built-in certificates", T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, "Error initializing built-in certificates",
T_FAILED, "failed", T_FAILED, "failed",
T_DNS_OPTIONS, "DNS options",
T_DNS_OVER_HTTPS_URL, "DNS over HTTPS (host or url)",
T_CONNECTIONS, "Connections", T_CONNECTIONS, "Connections",
T_MAX_CONNECTIONS, "Max connections", T_MAX_CONNECTIONS, "Max connections",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Max connections to one host", T_MAX_CONNECTIONS_TO_ONE_HOST, "Max connections to one host",
@ -502,20 +503,22 @@ T_MANUAL, "User's manual",
T_HOMEPAGE, "Home page", T_HOMEPAGE, "Home page",
T_CALIBRATION, "Calibration", T_CALIBRATION, "Calibration",
T_MAILTO_PROG, "Mail program (% is replaced with address)", T_MAILTO_PROG, "Mail program (% is replaced with address)",
T_SHELL_PROG, "Shell for executing external commands (% is replaced with command)",
T_TELNET_PROG, "Telnet program (% is replaced with \"host\" or \"host port\")", T_TELNET_PROG, "Telnet program (% is replaced with \"host\" or \"host port\")",
T_MAGNET_PROG, "Magnet program (% is replaced with URL)",
T_TN3270_PROG, "Tn3270 program (% is replaced with \"host\" or \"host port\")", T_TN3270_PROG, "Tn3270 program (% is replaced with \"host\" or \"host port\")",
T_MMS_PROG, "MMS program (% is replaced with URL)", T_MMS_PROG, "MMS program (% is replaced with URL)",
T_MAGNET_PROG, "Magnet program (% is replaced with URL)",
T_GOPHER_PROG, "Goher program (% is replaced with URL)",
T_SHELL_PROG, "Shell for executing external commands (% is replaced with command)",
T_MAIL_AND_TELNET_PROGRAMS, "Mail and telnet programs", T_MAIL_AND_TELNET_PROGRAMS, "Mail and telnet programs",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Mail, telnet and shell programs", T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Mail, telnet and shell programs",
T_NO_PROGRAM, "No program", T_NO_PROGRAM, "No program",
T_NO_PROGRAM_SPECIFIED_FOR, "No program specified for", T_NO_PROGRAM_SPECIFIED_FOR, "No program specified for",
T_MAIL, "mail", T_MAIL, "mail",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, "magnet",
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, "mms", T_MMS, "mms",
T_MAGNET, "magnet",
T_GOPHER, "gopher",
T_BAD_MAILTO_URL, "Bad mailto url", T_BAD_MAILTO_URL, "Bad mailto url",
T_BAD_TELNET_URL, "Bad telnet url", T_BAD_TELNET_URL, "Bad telnet url",
T_BAD_TN3270_URL, "Bad tn3270 url", T_BAD_TN3270_URL, "Bad tn3270 url",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, "C",
T_HK_IPV6_OPTIONS, "I", T_HK_IPV6_OPTIONS, "I",
T_HK_PROXIES, "P", T_HK_PROXIES, "P",
T_HK_SSL_OPTIONS, "L", T_HK_SSL_OPTIONS, "L",
T_HK_DNS_OPTIONS, "D",
T_HK_HTTP_OPTIONS, "H", T_HK_HTTP_OPTIONS, "H",
T_HK_FTP_OPTIONS, "F", T_HK_FTP_OPTIONS, "F",
T_HK_SMB_OPTIONS, "S", T_HK_SMB_OPTIONS, "S",

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Number v
T_BAD_STRING, "Ebasobiv string", T_BAD_STRING, "Ebasobiv string",
T_EMPTY_STRING_NOT_ALLOWED, "Tühi string pole lubatud", T_EMPTY_STRING_NOT_ALLOWED, "Tühi string pole lubatud",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Konfiguratsiooni viga", T_CONFIG_ERROR, "Konfiguratsiooni viga",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Ei saa kirjutada konfiguratsioonifaili", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Ei saa kirjutada konfiguratsioonifaili",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Ühendused", T_CONNECTIONS, "Ühendused",
T_MAX_CONNECTIONS, "Maksimaalselt ühendusi", T_MAX_CONNECTIONS, "Maksimaalselt ühendusi",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Maksimaalselt ühendusi ühele hostile", T_MAX_CONNECTIONS_TO_ONE_HOST, "Maksimaalselt ühendusi ühele hostile",
@ -502,20 +503,22 @@ T_MANUAL, "Kasutamisjuhend",
T_HOMEPAGE, "Kodulehekülg", T_HOMEPAGE, "Kodulehekülg",
T_CALIBRATION, "Kalibreerimine", T_CALIBRATION, "Kalibreerimine",
T_MAILTO_PROG, "Mailiprogramm (% asendatakse aadressiga)", T_MAILTO_PROG, "Mailiprogramm (% asendatakse aadressiga)",
T_SHELL_PROG, "Shell väliste programmide käivitamiseks (% asendatakse käsuga)",
T_TELNET_PROG, "Telneti programm (% asendatakse \"host\" või \"host port\")", T_TELNET_PROG, "Telneti programm (% asendatakse \"host\" või \"host port\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270 programm (% asendatakse \"host\" või \"host port\")", T_TN3270_PROG, "Tn3270 programm (% asendatakse \"host\" või \"host port\")",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, "Shell väliste programmide käivitamiseks (% asendatakse käsuga)",
T_MAIL_AND_TELNET_PROGRAMS, "Maili ja telneti programmid", T_MAIL_AND_TELNET_PROGRAMS, "Maili ja telneti programmid",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Maili, telneti ja shelli programmid", T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Maili, telneti ja shelli programmid",
T_NO_PROGRAM, "Pole programmi", T_NO_PROGRAM, "Pole programmi",
T_NO_PROGRAM_SPECIFIED_FOR, "Pole programmi märgitud", T_NO_PROGRAM_SPECIFIED_FOR, "Pole programmi märgitud",
T_MAIL, NULL, T_MAIL, NULL,
T_TELNET, NULL, T_TELNET, NULL,
T_MAGNET, NULL,
T_TN3270, NULL, T_TN3270, NULL,
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Vigane mailto url", T_BAD_MAILTO_URL, "Vigane mailto url",
T_BAD_TELNET_URL, "Vigane telnet url", T_BAD_TELNET_URL, "Vigane telnet url",
T_BAD_TN3270_URL, "Vigane tn3270 url", T_BAD_TN3270_URL, "Vigane tn3270 url",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Numero yli lukualueen",
T_BAD_STRING, "Laiton merkkijono", T_BAD_STRING, "Laiton merkkijono",
T_EMPTY_STRING_NOT_ALLOWED, "Tyhjä merkkijono ei sallittu", T_EMPTY_STRING_NOT_ALLOWED, "Tyhjä merkkijono ei sallittu",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Asetuksissa virhe", T_CONFIG_ERROR, "Asetuksissa virhe",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Asetustiedoston kirjoitus ei onnistu", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Asetustiedoston kirjoitus ei onnistu",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Yhteydet", T_CONNECTIONS, "Yhteydet",
T_MAX_CONNECTIONS, "Yhteyksien maksimilkm", T_MAX_CONNECTIONS, "Yhteyksien maksimilkm",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Yhteyksien maksimilkm yhteen kohteeseen", T_MAX_CONNECTIONS_TO_ONE_HOST, "Yhteyksien maksimilkm yhteen kohteeseen",
@ -502,20 +503,22 @@ T_MANUAL, "K
T_HOMEPAGE, "Kotisivu", T_HOMEPAGE, "Kotisivu",
T_CALIBRATION, "Kalibrointi", T_CALIBRATION, "Kalibrointi",
T_MAILTO_PROG, "Sähköpostiohjelma (% korvataan osoitteella)", T_MAILTO_PROG, "Sähköpostiohjelma (% korvataan osoitteella)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Telnet-ohjelma (% korvataan \"osoitteella\" tai \"portilla\")", T_TELNET_PROG, "Telnet-ohjelma (% korvataan \"osoitteella\" tai \"portilla\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270-ohjelma (% korvataan \"osoitteella\" tai \"portilla\")", T_TN3270_PROG, "Tn3270-ohjelma (% korvataan \"osoitteella\" tai \"portilla\")",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "Sähköposti- tai telnetohjelmat", T_MAIL_AND_TELNET_PROGRAMS, "Sähköposti- tai telnetohjelmat",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Ei ohjelmaa", T_NO_PROGRAM, "Ei ohjelmaa",
T_NO_PROGRAM_SPECIFIED_FOR, "Ei ohjelmaa osoitettu", T_NO_PROGRAM_SPECIFIED_FOR, "Ei ohjelmaa osoitettu",
T_MAIL, "sähköposti", T_MAIL, "sähköposti",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Laiton sähköposti-URL", T_BAD_MAILTO_URL, "Laiton sähköposti-URL",
T_BAD_TELNET_URL, "Laiton telnet-URL", T_BAD_TELNET_URL, "Laiton telnet-URL",
T_BAD_TN3270_URL, "Laiton tn3270-URL", T_BAD_TN3270_URL, "Laiton tn3270-URL",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Intervalle incorrect",
T_BAD_STRING, "Saisie erronnée", T_BAD_STRING, "Saisie erronnée",
T_EMPTY_STRING_NOT_ALLOWED, "Saisie obligatoire", T_EMPTY_STRING_NOT_ALLOWED, "Saisie obligatoire",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Erreur de configuration", T_CONFIG_ERROR, "Erreur de configuration",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Impossible d'écrire la configuration", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Impossible d'écrire la configuration",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Connexions", T_CONNECTIONS, "Connexions",
T_MAX_CONNECTIONS, "Nombre maximum de connexions", T_MAX_CONNECTIONS, "Nombre maximum de connexions",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Nombre maximum de connexions à un serveur", T_MAX_CONNECTIONS_TO_ONE_HOST, "Nombre maximum de connexions à un serveur",
@ -502,20 +503,22 @@ T_MANUAL, "Manuel",
T_HOMEPAGE, "Page d'accueil", T_HOMEPAGE, "Page d'accueil",
T_CALIBRATION, "Calibration", T_CALIBRATION, "Calibration",
T_MAILTO_PROG, "Programme E-Mail (% = adresse)", T_MAILTO_PROG, "Programme E-Mail (% = adresse)",
T_SHELL_PROG, "Programme Shell (% = commande)",
T_TELNET_PROG, "Programme Telnet (% = port hôte)", T_TELNET_PROG, "Programme Telnet (% = port hôte)",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Programme TN3270 (% = port hôte)", T_TN3270_PROG, "Programme TN3270 (% = port hôte)",
T_MMS_PROG, "Programme MMS (% = URL)", T_MMS_PROG, "Programme MMS (% = URL)",
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, "Programme Shell (% = commande)",
T_MAIL_AND_TELNET_PROGRAMS, "Clients e-mail/telnet", T_MAIL_AND_TELNET_PROGRAMS, "Clients e-mail/telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Clients e-mail/telnet/shell", T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Clients e-mail/telnet/shell",
T_NO_PROGRAM, "Pas de programme", T_NO_PROGRAM, "Pas de programme",
T_NO_PROGRAM_SPECIFIED_FOR, "Aucun programme n'est défini pour ", T_NO_PROGRAM_SPECIFIED_FOR, "Aucun programme n'est défini pour ",
T_MAIL, "e-mail", T_MAIL, "e-mail",
T_TELNET, "Telnet", T_TELNET, "Telnet",
T_MAGNET, NULL,
T_TN3270, "TN3270", T_TN3270, "TN3270",
T_MMS, "mms", T_MMS, "mms",
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Adresse e-mail incorrecte", T_BAD_MAILTO_URL, "Adresse e-mail incorrecte",
T_BAD_TELNET_URL, "Adresse Telnet incorrecte", T_BAD_TELNET_URL, "Adresse Telnet incorrecte",
T_BAD_TN3270_URL, "Adresse TN3270 incorrecte", T_BAD_TN3270_URL, "Adresse TN3270 incorrecte",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "N
T_BAD_STRING, "Cadea non válida", T_BAD_STRING, "Cadea non válida",
T_EMPTY_STRING_NOT_ALLOWED, "Non se permite unha cadea baleira", T_EMPTY_STRING_NOT_ALLOWED, "Non se permite unha cadea baleira",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Erro de configuración", T_CONFIG_ERROR, "Erro de configuración",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Non se puido escribir no ficheiro de configuración", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Non se puido escribir no ficheiro de configuración",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Conexións", T_CONNECTIONS, "Conexións",
T_MAX_CONNECTIONS, "Máximo de conexións", T_MAX_CONNECTIONS, "Máximo de conexións",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Máximo de conexións a unha máquina", T_MAX_CONNECTIONS_TO_ONE_HOST, "Máximo de conexións a unha máquina",
@ -502,20 +503,22 @@ T_MANUAL, "Manual de usuario",
T_HOMEPAGE, "Páxina de inicio", T_HOMEPAGE, "Páxina de inicio",
T_CALIBRATION, "Calibrar", T_CALIBRATION, "Calibrar",
T_MAILTO_PROG, "Programa de correo (% é remprazado pola dirección)", T_MAILTO_PROG, "Programa de correo (% é remprazado pola dirección)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Programa de telnet (% é remprazado por \"máquina\" ou \"máquina porto\")", T_TELNET_PROG, "Programa de telnet (% é remprazado por \"máquina\" ou \"máquina porto\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Programa de Tn3270 (% é remprazado por \"máquina\" ou \"máquina porto\")", T_TN3270_PROG, "Programa de Tn3270 (% é remprazado por \"máquina\" ou \"máquina porto\")",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "Programas de correo e telnet", T_MAIL_AND_TELNET_PROGRAMS, "Programas de correo e telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Sen programa", T_NO_PROGRAM, "Sen programa",
T_NO_PROGRAM_SPECIFIED_FOR, "Sen programa especificado para", T_NO_PROGRAM_SPECIFIED_FOR, "Sen programa especificado para",
T_MAIL, "correo", T_MAIL, "correo",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "URL mailto errónea", T_BAD_MAILTO_URL, "URL mailto errónea",
T_BAD_TELNET_URL, "URL telnet errónea", T_BAD_TELNET_URL, "URL telnet errónea",
T_BAD_TN3270_URL, "URL tn3270 errónea", T_BAD_TN3270_URL, "URL tn3270 errónea",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Ung
T_BAD_STRING, "Falsche Eingabe", T_BAD_STRING, "Falsche Eingabe",
T_EMPTY_STRING_NOT_ALLOWED, "Werteingabe erforderlich", T_EMPTY_STRING_NOT_ALLOWED, "Werteingabe erforderlich",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Konfigurationsfehler", T_CONFIG_ERROR, "Konfigurationsfehler",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Kann Konfigurationsdatei nicht schreiben", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Kann Konfigurationsdatei nicht schreiben",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Verbindungen", T_CONNECTIONS, "Verbindungen",
T_MAX_CONNECTIONS, "Max. Verbindungen", T_MAX_CONNECTIONS, "Max. Verbindungen",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Max. Verbindungen zu einem Server", T_MAX_CONNECTIONS_TO_ONE_HOST, "Max. Verbindungen zu einem Server",
@ -219,7 +220,7 @@ T_FRAME_AT_FULL_SCREEN, "Rahmen im Vollbildschirm",
T_SAVE_CLIPBOARD_TO_A_FILE, NULL, T_SAVE_CLIPBOARD_TO_A_FILE, NULL,
T_LOAD_CLIPBOARD_FROM_A_FILE, NULL, T_LOAD_CLIPBOARD_FROM_A_FILE, NULL,
T_THE_CLIPBOARD_IS_EMPTY, NULL, T_THE_CLIPBOARD_IS_EMPTY, NULL,
T_SAVE_HTML_OPTIONS, "HTML Sicherheit", T_SAVE_HTML_OPTIONS, "Speichere HTML Optionen",
T_CHARACTER_SET, "Zeichensatz", T_CHARACTER_SET, "Zeichensatz",
T_DEFAULT_CHARSET, NULL, T_DEFAULT_CHARSET, NULL,
T_CACHE, "Cache", T_CACHE, "Cache",
@ -502,20 +503,22 @@ T_MANUAL, "Manual",
T_HOMEPAGE, "Homepage", T_HOMEPAGE, "Homepage",
T_CALIBRATION, "Kalibration", T_CALIBRATION, "Kalibration",
T_MAILTO_PROG, "Mail-Programm (% wird mit Email-Addresse ersetzt)", T_MAILTO_PROG, "Mail-Programm (% wird mit Email-Addresse ersetzt)",
T_SHELL_PROG, "Shell-Programm für externe Aufrufe (% wird mit Kommando ersetzt)",
T_TELNET_PROG, "Telnet-Programm (% wird mit \"host\" oder \"host port\" ersetzt)", T_TELNET_PROG, "Telnet-Programm (% wird mit \"host\" oder \"host port\" ersetzt)",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "TN3270-Programm (% wird mit \"host\" oder \"host port\" ersetzt)", T_TN3270_PROG, "TN3270-Programm (% wird mit \"host\" oder \"host port\" ersetzt)",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, "Shell-Programm für externe Aufrufe (% wird mit Kommando ersetzt)",
T_MAIL_AND_TELNET_PROGRAMS, "Mail-/Telnet-Programme", T_MAIL_AND_TELNET_PROGRAMS, "Mail-/Telnet-Programme",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Mail-/Telnet-/Shell-Programme", T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Mail-/Telnet-/Shell-Programme",
T_NO_PROGRAM, "Kein Programm", T_NO_PROGRAM, "Kein Programm",
T_NO_PROGRAM_SPECIFIED_FOR, "Programm nicht definiert für ", T_NO_PROGRAM_SPECIFIED_FOR, "Programm nicht definiert für ",
T_MAIL, "Mail", T_MAIL, "Mail",
T_TELNET, "Telnet", T_TELNET, "Telnet",
T_MAGNET, NULL,
T_TN3270, "TN3270", T_TN3270, "TN3270",
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "fehlerhafte Mailadresse", T_BAD_MAILTO_URL, "fehlerhafte Mailadresse",
T_BAD_TELNET_URL, "fehlerhafte Telnetadresse", T_BAD_TELNET_URL, "fehlerhafte Telnetadresse",
T_BAD_TN3270_URL, "fehlerhafte TN3270-Adresse", T_BAD_TN3270_URL, "fehlerhafte TN3270-Adresse",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "
T_BAD_STRING, "Ìç Ýãêõñï áëöáñéèìçôéêü", T_BAD_STRING, "Ìç Ýãêõñï áëöáñéèìçôéêü",
T_EMPTY_STRING_NOT_ALLOWED, "Äåí åðéôñÝðåôáé êåíü áëöáñéèìçôéêü", T_EMPTY_STRING_NOT_ALLOWED, "Äåí åðéôñÝðåôáé êåíü áëöáñéèìçôéêü",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "ÓöÜëìá ñõèìßóåùí", T_CONFIG_ERROR, "ÓöÜëìá ñõèìßóåùí",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Áäýíáôç ç åããñáöÞ óôï áñ÷åßï ñõèìßóåùí", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Áäýíáôç ç åããñáöÞ óôï áñ÷åßï ñõèìßóåùí",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "ÓõíäÝóåéò", T_CONNECTIONS, "ÓõíäÝóåéò",
T_MAX_CONNECTIONS, "ÌÝãéóôïò áñéèìüò óõíäÝóåùí", T_MAX_CONNECTIONS, "ÌÝãéóôïò áñéèìüò óõíäÝóåùí",
T_MAX_CONNECTIONS_TO_ONE_HOST, "ÌÝãéóôïò áñéèìüò óõíäÝóåùí óå Ýíá åîõðçñåôçôÞ", T_MAX_CONNECTIONS_TO_ONE_HOST, "ÌÝãéóôïò áñéèìüò óõíäÝóåùí óå Ýíá åîõðçñåôçôÞ",
@ -502,20 +503,22 @@ T_MANUAL, "
T_HOMEPAGE, NULL, T_HOMEPAGE, NULL,
T_CALIBRATION, NULL, T_CALIBRATION, NULL,
T_MAILTO_PROG, "Ðñüãñáììá áëëçëïãñáößáò (ôï % áíôéêáèßóôáôáé ìå ôç äéåýèõíóç)", T_MAILTO_PROG, "Ðñüãñáììá áëëçëïãñáößáò (ôï % áíôéêáèßóôáôáé ìå ôç äéåýèõíóç)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Ðñüãñáììá telnet (ôï % áíôéêáèßóôáôáé ìå \"åîõðçñåôçôÞò\" Þ \"åîõðçñåôçôÞò èýñá\")", T_TELNET_PROG, "Ðñüãñáììá telnet (ôï % áíôéêáèßóôáôáé ìå \"åîõðçñåôçôÞò\" Þ \"åîõðçñåôçôÞò èýñá\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Ðñüãñáììá Tn3270 (ôï % áíôéêáèßóôáôáé ìå \"åîõðçñåôçôÞò\" Þ \"åîõðçñåôçôÞò èýñá\")", T_TN3270_PROG, "Ðñüãñáììá Tn3270 (ôï % áíôéêáèßóôáôáé ìå \"åîõðçñåôçôÞò\" Þ \"åîõðçñåôçôÞò èýñá\")",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "ÐñïãñÜììáôá áëëçëïãñáößáò êáé telnet", T_MAIL_AND_TELNET_PROGRAMS, "ÐñïãñÜììáôá áëëçëïãñáößáò êáé telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Äåí õðÜñ÷åé ðñüãñáììá", T_NO_PROGRAM, "Äåí õðÜñ÷åé ðñüãñáììá",
T_NO_PROGRAM_SPECIFIED_FOR, "Äåí êáèïñßóôçêå ðñüãñáììá ãéá", T_NO_PROGRAM_SPECIFIED_FOR, "Äåí êáèïñßóôçêå ðñüãñáììá ãéá",
T_MAIL, "áëëçëïãñáößá", T_MAIL, "áëëçëïãñáößá",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "ÅóöáëìÝíï URL mailto", T_BAD_MAILTO_URL, "ÅóöáëìÝíï URL mailto",
T_BAD_TELNET_URL, "ÅóöáëìÝíï URL telnet", T_BAD_TELNET_URL, "ÅóöáëìÝíï URL telnet",
T_BAD_TN3270_URL, "ÅóöáëìÝíï URL tn3270", T_BAD_TN3270_URL, "ÅóöáëìÝíï URL tn3270",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Sz
T_BAD_STRING, "Hibás szöveg", T_BAD_STRING, "Hibás szöveg",
T_EMPTY_STRING_NOT_ALLOWED, "Üres szöveg nem engedélyezett", T_EMPTY_STRING_NOT_ALLOWED, "Üres szöveg nem engedélyezett",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Beállítási hiba", T_CONFIG_ERROR, "Beállítási hiba",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Nem írható a konfigurációs fájl", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Nem írható a konfigurációs fájl",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Kapcsolatok", T_CONNECTIONS, "Kapcsolatok",
T_MAX_CONNECTIONS, "Maximális kapcsolatok", T_MAX_CONNECTIONS, "Maximális kapcsolatok",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Maximális kapcsolatok egy kiszolgálóhoz", T_MAX_CONNECTIONS_TO_ONE_HOST, "Maximális kapcsolatok egy kiszolgálóhoz",
@ -502,20 +503,22 @@ T_MANUAL, "K
T_HOMEPAGE, "Honlap", T_HOMEPAGE, "Honlap",
T_CALIBRATION, "Kalibráció", T_CALIBRATION, "Kalibráció",
T_MAILTO_PROG, "Levelezõ program (% helyére írd be a címed)", T_MAILTO_PROG, "Levelezõ program (% helyére írd be a címed)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Telnet program (% helyére írd be \'kiszolgáló\' vagy \'kiszolgáló port\')", T_TELNET_PROG, "Telnet program (% helyére írd be \'kiszolgáló\' vagy \'kiszolgáló port\')",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270 program (% helyére írd be \'kiszolgáló\' vagy \'kiszolgáló port\')", T_TN3270_PROG, "Tn3270 program (% helyére írd be \'kiszolgáló\' vagy \'kiszolgáló port\')",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "Levelezõ és Telnet programok", T_MAIL_AND_TELNET_PROGRAMS, "Levelezõ és Telnet programok",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Nincs program", T_NO_PROGRAM, "Nincs program",
T_NO_PROGRAM_SPECIFIED_FOR, "Nincs program beállítva", T_NO_PROGRAM_SPECIFIED_FOR, "Nincs program beállítva",
T_MAIL, "levelezés", T_MAIL, "levelezés",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Hibás levélküldési URL", T_BAD_MAILTO_URL, "Hibás levélküldési URL",
T_BAD_TELNET_URL, "Hibás telnet URL", T_BAD_TELNET_URL, "Hibás telnet URL",
T_BAD_TN3270_URL, "Hibás tn3270 URL", T_BAD_TN3270_URL, "Hibás tn3270 URL",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Tala ekki
T_BAD_STRING, "Ógildur strengur", T_BAD_STRING, "Ógildur strengur",
T_EMPTY_STRING_NOT_ALLOWED, "Tómur strengur óheimill", T_EMPTY_STRING_NOT_ALLOWED, "Tómur strengur óheimill",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Uppsetningarvilla", T_CONFIG_ERROR, "Uppsetningarvilla",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Villa við ritun uppsetningarskrár", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Villa við ritun uppsetningarskrár",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Tengingar", T_CONNECTIONS, "Tengingar",
T_MAX_CONNECTIONS, "Hámark tenginga", T_MAX_CONNECTIONS, "Hámark tenginga",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Hámark tenginga við hvern miðlara", T_MAX_CONNECTIONS_TO_ONE_HOST, "Hámark tenginga við hvern miðlara",
@ -502,20 +503,22 @@ T_MANUAL, "Handb
T_HOMEPAGE, NULL, T_HOMEPAGE, NULL,
T_CALIBRATION, NULL, T_CALIBRATION, NULL,
T_MAILTO_PROG, "Póstforrit (% er skipt út fyrir netfang)", T_MAILTO_PROG, "Póstforrit (% er skipt út fyrir netfang)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Telnet forrit (% er skipt út fyrir \"miðlari\" eða \"miðlari gátt\")", T_TELNET_PROG, "Telnet forrit (% er skipt út fyrir \"miðlari\" eða \"miðlari gátt\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270 forrit (% er skipt út fyrir \"miðlari\" eða \"miðlari gátt\")", T_TN3270_PROG, "Tn3270 forrit (% er skipt út fyrir \"miðlari\" eða \"miðlari gátt\")",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "Póst- og telnet forrit", T_MAIL_AND_TELNET_PROGRAMS, "Póst- og telnet forrit",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Ekkert forrit", T_NO_PROGRAM, "Ekkert forrit",
T_NO_PROGRAM_SPECIFIED_FOR, "Ekkert forrit skilgreint fyrir", T_NO_PROGRAM_SPECIFIED_FOR, "Ekkert forrit skilgreint fyrir",
T_MAIL, "póstur", T_MAIL, "póstur",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Rangt póstfang", T_BAD_MAILTO_URL, "Rangt póstfang",
T_BAD_TELNET_URL, "Rangt netfang", T_BAD_TELNET_URL, "Rangt netfang",
T_BAD_TN3270_URL, "Rangt netfang", T_BAD_TN3270_URL, "Rangt netfang",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -1,7 +1,7 @@
When you add or delete any text, add or delete it in english.lng and run When you add or delete any text, add or delete it in english.lng and run
script ./synclang. It adds NULL entries to other languages. Then run ./gen-intl. script ./synclang. It adds NULL entries to other languages. Then run ./gen-intl.
When you change any text, run ./get-intl. When you change any text, run ./gen-intl.
Menu hotkeys are also translated via this interface. You can specify more Menu hotkeys are also translated via this interface. You can specify more
hotkeys. When using normal letters as hotkeys, always use upper case. When using hotkeys. When using normal letters as hotkeys, always use upper case. When using

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Numero fuori intervallo",
T_BAD_STRING, "Stringa sbagliata", T_BAD_STRING, "Stringa sbagliata",
T_EMPTY_STRING_NOT_ALLOWED, "Stringa vuota non consentita", T_EMPTY_STRING_NOT_ALLOWED, "Stringa vuota non consentita",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Errore configurazione", T_CONFIG_ERROR, "Errore configurazione",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Non posso scrivere il file di configurazione", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Non posso scrivere il file di configurazione",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Connessioni", T_CONNECTIONS, "Connessioni",
T_MAX_CONNECTIONS, "Connessioni massime", T_MAX_CONNECTIONS, "Connessioni massime",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Connessioni massime ad un host", T_MAX_CONNECTIONS_TO_ONE_HOST, "Connessioni massime ad un host",
@ -502,20 +503,22 @@ T_MANUAL, "Manuale utente",
T_HOMEPAGE, NULL, T_HOMEPAGE, NULL,
T_CALIBRATION, NULL, T_CALIBRATION, NULL,
T_MAILTO_PROG, "Programma mail (% e' sostituito con l'indirizzo)", T_MAILTO_PROG, "Programma mail (% e' sostituito con l'indirizzo)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Programma telnet (% e' sostituito con \"host\" o \"host port\")", T_TELNET_PROG, "Programma telnet (% e' sostituito con \"host\" o \"host port\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Programma Tn3270 (% e' sostituito con \"host\" o \"host port\")", T_TN3270_PROG, "Programma Tn3270 (% e' sostituito con \"host\" o \"host port\")",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "Programmi mail e telnet", T_MAIL_AND_TELNET_PROGRAMS, "Programmi mail e telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Nessun programma", T_NO_PROGRAM, "Nessun programma",
T_NO_PROGRAM_SPECIFIED_FOR, "Nessun programma definito per", T_NO_PROGRAM_SPECIFIED_FOR, "Nessun programma definito per",
T_MAIL, "mail", T_MAIL, "mail",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Errato mailto url", T_BAD_MAILTO_URL, "Errato mailto url",
T_BAD_TELNET_URL, "Errato telnet url", T_BAD_TELNET_URL, "Errato telnet url",
T_BAD_TN3270_URL, "Errato tn3270 url", T_BAD_TN3270_URL, "Errato tn3270 url",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Skai
T_BAD_STRING, "Neteisinga eilutë", T_BAD_STRING, "Neteisinga eilutë",
T_EMPTY_STRING_NOT_ALLOWED, "Eilutë negali bûti tuðèia", T_EMPTY_STRING_NOT_ALLOWED, "Eilutë negali bûti tuðèia",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Configûravimo klaida", T_CONFIG_ERROR, "Configûravimo klaida",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Neámanoma áraðyti á konfigûracijos failà", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Neámanoma áraðyti á konfigûracijos failà",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Prisijungimai", T_CONNECTIONS, "Prisijungimai",
T_MAX_CONNECTIONS, "Daugiausia prisijungimø", T_MAX_CONNECTIONS, "Daugiausia prisijungimø",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Daugiausia prisijungimø á tà patá hostà", T_MAX_CONNECTIONS_TO_ONE_HOST, "Daugiausia prisijungimø á tà patá hostà",
@ -502,20 +503,22 @@ T_MANUAL, "Vartotojo gidas",
T_HOMEPAGE, NULL, T_HOMEPAGE, NULL,
T_CALIBRATION, NULL, T_CALIBRATION, NULL,
T_MAILTO_PROG, "Paðto programa (% pakeièiamas adresu)", T_MAILTO_PROG, "Paðto programa (% pakeièiamas adresu)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Telnet'o programa (% pakeièiamas \"hostu\" arba \"hostu prievadu\")", T_TELNET_PROG, "Telnet'o programa (% pakeièiamas \"hostu\" arba \"hostu prievadu\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270 programa (% pakeièiamas \"hostu\" arba \"hostu prievadu\")", T_TN3270_PROG, "Tn3270 programa (% pakeièiamas \"hostu\" arba \"hostu prievadu\")",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "Paðto ir telnet'o programos", T_MAIL_AND_TELNET_PROGRAMS, "Paðto ir telnet'o programos",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Nër programos", T_NO_PROGRAM, "Nër programos",
T_NO_PROGRAM_SPECIFIED_FOR, "Nër programos", T_NO_PROGRAM_SPECIFIED_FOR, "Nër programos",
T_MAIL, "paðtui", T_MAIL, "paðtui",
T_TELNET, "telnet'ui", T_TELNET, "telnet'ui",
T_MAGNET, NULL,
T_TN3270, "tn3270'ui", T_TN3270, "tn3270'ui",
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Blogas paðto adresas", T_BAD_MAILTO_URL, "Blogas paðto adresas",
T_BAD_TELNET_URL, "Blogas telnet'o adresas", T_BAD_TELNET_URL, "Blogas telnet'o adresas",
T_BAD_TN3270_URL, "Blogas tn3270 adresas", T_BAD_TN3270_URL, "Blogas tn3270 adresas",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Nummeret er utenfor omr
T_BAD_STRING, "Feil i tekststreng", T_BAD_STRING, "Feil i tekststreng",
T_EMPTY_STRING_NOT_ALLOWED, "Tom tekststreng er ikke tillatt", T_EMPTY_STRING_NOT_ALLOWED, "Tom tekststreng er ikke tillatt",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Konfigurasjonsfeil", T_CONFIG_ERROR, "Konfigurasjonsfeil",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Kan ikke skrive til konfigurasjonsfil", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Kan ikke skrive til konfigurasjonsfil",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Tilkoblinger", T_CONNECTIONS, "Tilkoblinger",
T_MAX_CONNECTIONS, "Maks antall tilkoblinger", T_MAX_CONNECTIONS, "Maks antall tilkoblinger",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Maks antall tilkoblinger per vert", T_MAX_CONNECTIONS_TO_ONE_HOST, "Maks antall tilkoblinger per vert",
@ -502,20 +503,22 @@ T_MANUAL, "Brukerveiledning",
T_HOMEPAGE, "Hjemmeside", T_HOMEPAGE, "Hjemmeside",
T_CALIBRATION, "Kalibrering", T_CALIBRATION, "Kalibrering",
T_MAILTO_PROG, "E-brevklient (% erstattes med adresse)", T_MAILTO_PROG, "E-brevklient (% erstattes med adresse)",
T_SHELL_PROG, "Skall",
T_TELNET_PROG, "Telnetklient (% erstattes med \"vert\" eller \"vert port\")", T_TELNET_PROG, "Telnetklient (% erstattes med \"vert\" eller \"vert port\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270-program (% erstattes med \"vert\" eller \"vert port\")", T_TN3270_PROG, "Tn3270-program (% erstattes med \"vert\" eller \"vert port\")",
T_MMS_PROG, "MMS-program (% erstattes med nettadresse)", T_MMS_PROG, "MMS-program (% erstattes med nettadresse)",
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, "Skall",
T_MAIL_AND_TELNET_PROGRAMS, "Program for e-brev og fjerninnlogging", T_MAIL_AND_TELNET_PROGRAMS, "Program for e-brev og fjerninnlogging",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Program for e-brev, fjerninnlogging og skall", T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Program for e-brev, fjerninnlogging og skall",
T_NO_PROGRAM, "Ingen program", T_NO_PROGRAM, "Ingen program",
T_NO_PROGRAM_SPECIFIED_FOR, "Ingen program er spesifisert", T_NO_PROGRAM_SPECIFIED_FOR, "Ingen program er spesifisert",
T_MAIL, "e-brev", T_MAIL, "e-brev",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, "mms", T_MMS, "mms",
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Feil i \"mailto\"-adresse", T_BAD_MAILTO_URL, "Feil i \"mailto\"-adresse",
T_BAD_TELNET_URL, "Feil i \"telnet\"-adresse", T_BAD_TELNET_URL, "Feil i \"telnet\"-adresse",
T_BAD_TN3270_URL, "Feil i \"tn3270\"-adresse", T_BAD_TN3270_URL, "Feil i \"tn3270\"-adresse",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,11 +11,10 @@ T_NUMBER_OUT_OF_RANGE, "Liczba poza dozwolonym zakresem",
T_BAD_STRING, "Nieprawidłowe wyrażenie", T_BAD_STRING, "Nieprawidłowe wyrażenie",
T_EMPTY_STRING_NOT_ALLOWED, "Musisz wpisać jakieś wyrażenie", T_EMPTY_STRING_NOT_ALLOWED, "Musisz wpisać jakieś wyrażenie",
T_BAD_IP_ADDRESS, "Błędny adres IP", T_BAD_IP_ADDRESS, "Błędny adres IP",
T_INVALID_IP_ADDRESS_SYNTAX, "B³êdna sk³adnia adresu IP",
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, "Nie można użyć lokalnego adresu IP", T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, "Nie można użyć lokalnego adresu IP",
T_CONFIG_ERROR, "Błąd konfiguracji", T_CONFIG_ERROR, "Błąd konfiguracji",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Nie można zapisać do pliku konfiguracyjnego", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Nie można zapisać do pliku konfiguracyjnego",
T_HOME_DIRECTORY_INACCESSIBLE, NULL, T_HOME_DIRECTORY_INACCESSIBLE, "Katalog domowy niedostępny",
T_BOOKMARK_ERROR, "Błąd zakładki", T_BOOKMARK_ERROR, "Błąd zakładki",
T_UNABLE_TO_WRITE_TO_BOOKMARK_FILE, "Nie można zapisać pliku zakładek", T_UNABLE_TO_WRITE_TO_BOOKMARK_FILE, "Nie można zapisać pliku zakładek",
T_ABOUT, "O programie", T_ABOUT, "O programie",
@ -44,16 +43,16 @@ T_GPM_MOUSE_DRIVER, "Sterownik myszy GPM",
T_XTERM_FOR_OS2, "Xterm dla OS/2", T_XTERM_FOR_OS2, "Xterm dla OS/2",
T_GRAPHICS_MODE, "Tryb graficzny", T_GRAPHICS_MODE, "Tryb graficzny",
T_IMAGE_LIBRARIES, "Biblioteki obrazów", T_IMAGE_LIBRARIES, "Biblioteki obrazów",
T_FONT_RENDERING, NULL, T_FONT_RENDERING, "Renderowanie fontów",
T_INTERNAL, NULL, T_INTERNAL, "Wewnętrzne",
T_OPENMP, "OpenMP", T_OPENMP, "OpenMP",
T_NOT_USED_IN_TEXT_MODE, NULL, T_NOT_USED_IN_TEXT_MODE, "Nie używane w trybie tekstowym",
T_DISABLED, "Wyłączone", T_DISABLED, "Wyłączone",
T_THREAD, "wątek", T_THREAD, "wątek",
T_THREADS, "wątki", T_THREADS, "wątki",
T_THREADS5, "wątków", T_THREADS5, "wątków",
T_CONFIGURATION_DIRECTORY, NULL, T_CONFIGURATION_DIRECTORY, "Katalog konfiguracyjny",
T_NONE, NULL, T_NONE, "Brak",
T_KEYS, "Klawiszologia", T_KEYS, "Klawiszologia",
T_KEYS_DESC, "ESC pokaż menu\n^C, q wyjście\np, l przewiń góra,dół\n[, ] przewiń lewo,prawo\ngóra, dół zaznacz link\n-> wybierz link\n<- powrót\ng przejdź do URL-a\nG przejdź do URL-a bazującego na aktualnym\n/ szukaj\nn znajdź następny\nd pobierz\n* przełącz wyświetlanie obrazków\n^W dopełnij URL lub szukany łańcuch\n^B, ^X, ^V skopiuj, wytnij, wklej do/ze schowka\nAlt-1 .. Alt-9 przełącz ekran wirtualny (svgalib lub framebuffer)", T_KEYS_DESC, "ESC pokaż menu\n^C, q wyjście\np, l przewiń góra,dół\n[, ] przewiń lewo,prawo\ngóra, dół zaznacz link\n-> wybierz link\n<- powrót\ng przejdź do URL-a\nG przejdź do URL-a bazującego na aktualnym\n/ szukaj\nn znajdź następny\nd pobierz\n* przełącz wyświetlanie obrazków\n^W dopełnij URL lub szukany łańcuch\n^B, ^X, ^V skopiuj, wytnij, wklej do/ze schowka\nAlt-1 .. Alt-9 przełącz ekran wirtualny (svgalib lub framebuffer)",
T_KEYS_BRAILLE_DESC, "a, t kursor do linii stanu lub tytułu\n{, } kursor do początku/końca linii\n^T, ^Y następny lub poprzedni odnośnik", T_KEYS_BRAILLE_DESC, "a, t kursor do linii stanu lub tytułu\n{, } kursor do początku/końca linii\n^T, ^Y następny lub poprzedni odnośnik",
@ -66,7 +65,7 @@ T_FONT_CACHE, "Pami
T_IMAGE_CACHE, "Pamięć podręczna obrazów", T_IMAGE_CACHE, "Pamięć podręczna obrazów",
T_FORMATTED_DOCUMENT_CACHE, "Sformatowane dokumenty w pamięci podręcznej", T_FORMATTED_DOCUMENT_CACHE, "Sformatowane dokumenty w pamięci podręcznej",
T_DNS_CACHE, "Pamięć podręczna DNS", T_DNS_CACHE, "Pamięć podręczna DNS",
T_TLS_SESSION_CACHE, NULL, T_TLS_SESSION_CACHE, "Pamięć podręczna sesji TLS",
T_HANDLES, "uchwyt(ów)", T_HANDLES, "uchwyt(ów)",
T_TIMERS, "zegar(ów)", T_TIMERS, "zegar(ów)",
T_WAITING, "oczekujących", T_WAITING, "oczekujących",
@ -83,14 +82,14 @@ T_DOCUMENTS, "dokument
T_SERVERS, "serwerów", T_SERVERS, "serwerów",
T_MEMORY_ALLOCATED, "przydzielonej pamięci", T_MEMORY_ALLOCATED, "przydzielonej pamięci",
T_BLOCKS_ALLOCATED, "bloków", T_BLOCKS_ALLOCATED, "bloków",
T_MEMORY_LARGE_BLOCKS, NULL, T_MEMORY_LARGE_BLOCKS, "przydzielonych w dużych blokach",
T_BLOCKS_LARGE_BLOCKS, NULL, T_BLOCKS_LARGE_BLOCKS, "dużych bloków",
T_MEMORY_REQUESTED, "żądanej z systemu pamięci", T_MEMORY_REQUESTED, "żądanej z systemu pamięci",
T_BLOCKS_REQUESTED, "bloków", T_BLOCKS_REQUESTED, "bloków",
T_JS_MEMORY_ALLOCATED, "przydzielonej pamięci dla javascriptu", T_JS_MEMORY_ALLOCATED, "przydzielonej pamięci dla javascriptu",
T_MEMORY_INFO, "Informacje o pamięci", T_MEMORY_INFO, "Informacje o pamięci",
T_MOST_ALLOCATED, NULL, T_MOST_ALLOCATED, "Najwięcej przydzielone",
T_LARGEST_BLOCKS, NULL, T_LARGEST_BLOCKS, "Największe bloki",
T_NO_HISTORY, "Brak historii", T_NO_HISTORY, "Brak historii",
T_NO_DOWNLOADS, "Brak pobrań", T_NO_DOWNLOADS, "Brak pobrań",
T_NO_FRAMES, "Brak ramek", T_NO_FRAMES, "Brak ramek",
@ -98,7 +97,7 @@ T_VT_100_FRAMES, "Ramki VT100",
T_LINUX_OR_OS2_FRAMES, "Ramki typu Linux lub OS/2", T_LINUX_OR_OS2_FRAMES, "Ramki typu Linux lub OS/2",
T_KOI8R_FRAMES, "Ramki KOI8-R", T_KOI8R_FRAMES, "Ramki KOI8-R",
T_FREEBSD_FRAMES, "Ramki FreeBSD", T_FREEBSD_FRAMES, "Ramki FreeBSD",
T_UTF8_FRAMES, NULL, T_UTF8_FRAMES, "Ramki UTF-8",
T_USE_11M, "Użyj ^[[11m", T_USE_11M, "Użyj ^[[11m",
T_RESTRICT_FRAMES_IN_CP850_852, "Ogranicz ramki w cp850/852", T_RESTRICT_FRAMES_IN_CP850_852, "Ogranicz ramki w cp850/852",
T_BLOCK_CURSOR, "Kursor blokowy", T_BLOCK_CURSOR, "Kursor blokowy",
@ -127,28 +126,30 @@ T_SOCKS_4A_PROXY__USER_HOST_PORT, "Proxy Socks4a (user@host:port)",
T_APPEND_TEXT_TO_SOCKS_LOOKUPS, "Dołączanie tekstu do nazwy hosta (wybór węzła tora)", T_APPEND_TEXT_TO_SOCKS_LOOKUPS, "Dołączanie tekstu do nazwy hosta (wybór węzła tora)",
T_NOPROXY_LIST, "Lista domen dostępnych bez proxy", T_NOPROXY_LIST, "Lista domen dostępnych bez proxy",
T_ONLY_PROXIES, "Łączenie się tylko przez proxy lub Socks (przydatne z torem)", T_ONLY_PROXIES, "Łączenie się tylko przez proxy lub Socks (przydatne z torem)",
T_TOR_MODE_ENABLED, NULL, T_TOR_MODE_ENABLED, "Tryb TOR włączony, ponieważ port socks to 9050.",
T_SSL_OPTIONS, "Opcje SSL", T_SSL_OPTIONS, "Opcje SSL",
T_ACCEPT_INVALID_CERTIFICATES, "Akceptowanie błędnych certyfikatów i słabych szyfrów", T_ACCEPT_INVALID_CERTIFICATES, "Akceptowanie błędnych certyfikatów i słabych szyfrów",
T_WARN_ON_INVALID_CERTIFICATES, "Ostrzeganie o błędnych certyfikatach i słabych szyfrach", T_WARN_ON_INVALID_CERTIFICATES, "Ostrzeganie o błędnych certyfikatach i słabych szyfrach",
T_REJECT_INVALID_CERTIFICATES, "Odrzucanie błędnych certyfikatów i słabych szyfrów", T_REJECT_INVALID_CERTIFICATES, "Odrzucanie błędnych certyfikatów i słabych szyfrów",
T_USE_BUILT_IN_CERTIFICATES, NULL, T_USE_BUILT_IN_CERTIFICATES, "Użycie wbudowanych certyfikatów",
T_CLIENT_CERTIFICATE_KEY_FILE, "Plik klucza certyfikatu klienta", T_CLIENT_CERTIFICATE_KEY_FILE, "Plik klucza certyfikatu klienta",
T_CLIENT_CERTIFICATE_FILE, "Plik certyfikatu klienta", T_CLIENT_CERTIFICATE_FILE, "Plik certyfikatu klienta",
T_CLIENT_CERTIFICATE_KEY_PASSWORD, "Hasło certyfikatu klienta (nie będzie zapisane w pliku konfiguracyjnym)", T_CLIENT_CERTIFICATE_KEY_PASSWORD, "Hasło certyfikatu klienta (nie będzie zapisane w pliku konfiguracyjnym)",
T_BAD_FILE, "Błędny plik", T_BAD_FILE, "Błędny plik",
T_THE_FILE_DOES_NOT_EXIST, "Plik nie istnieje", T_THE_FILE_DOES_NOT_EXIST, "Plik nie istnieje",
T_THE_FILE_HAS_INVALID_FORMAT, "Plik ma błędny format", T_THE_FILE_HAS_INVALID_FORMAT, "Plik ma błędny format",
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, "Błąd inicjowania wbudowanych certyfikatów",
T_FAILED, NULL, T_FAILED, "nie powiodło się",
T_DNS_OPTIONS, "Opcje DNS",
T_DNS_OVER_HTTPS_URL, "DNS po HTTPS (host lub URL)",
T_CONNECTIONS, "Połączenia", T_CONNECTIONS, "Połączenia",
T_MAX_CONNECTIONS, "Maksymalna liczba połączeń", T_MAX_CONNECTIONS, "Maksymalna liczba połączeń",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Maksymalna liczba połączeń z jednym serwerem", T_MAX_CONNECTIONS_TO_ONE_HOST, "Maksymalna liczba połączeń z jednym serwerem",
T_RETRIES, "Próby (0 - bez ograniczeń)", T_RETRIES, "Próby (0 - bez ograniczeń)",
T_RECEIVE_TIMEOUT_SEC, "Maksymalny czas oczekiwania na połączenie (sek)", T_RECEIVE_TIMEOUT_SEC, "Maksymalny czas oczekiwania na połączenie (sek)",
T_TIMEOUT_WHEN_UNRESTARTABLE, "Maks. czas oczekiwania na połączenie niewznawialne", T_TIMEOUT_WHEN_UNRESTARTABLE, "Maks. czas oczekiwania na połączenie niewznawialne",
T_TIMEOUT_WHEN_TRYING_MULTIPLE_ADDRESSES, NULL, T_TIMEOUT_WHEN_TRYING_MULTIPLE_ADDRESSES, "Maks. czas oczekiwania przy wielu adresach",
T_TIMEOUT_WHEN_TRYING_KEEPALIVE_CONNECTION, NULL, T_TIMEOUT_WHEN_TRYING_KEEPALIVE_CONNECTION, "Maks. czas oczekiwania przy połączeniach podtrzymywanych",
T_BIND_TO_LOCAL_IP_ADDRESS, "Przypisanie do lokalnego adresu IP", T_BIND_TO_LOCAL_IP_ADDRESS, "Przypisanie do lokalnego adresu IP",
T_BIND_TO_LOCAL_IPV6_ADDRESS, "... adresu IPv6", T_BIND_TO_LOCAL_IPV6_ADDRESS, "... adresu IPv6",
T_ASYNC_DNS_LOOKUP, "Asynchroniczne szukanie nazw", T_ASYNC_DNS_LOOKUP, "Asynchroniczne szukanie nazw",
@ -216,9 +217,9 @@ T_FIND_PREVIOUS, "Znajd
T_TOGGLE_HTML_PLAIN, "Przełącz html/plain", T_TOGGLE_HTML_PLAIN, "Przełącz html/plain",
T_DOCUMENT_INFO, "Informacje o dokumencie", T_DOCUMENT_INFO, "Informacje o dokumencie",
T_FRAME_AT_FULL_SCREEN, "Ramka na całym ekranie", T_FRAME_AT_FULL_SCREEN, "Ramka na całym ekranie",
T_SAVE_CLIPBOARD_TO_A_FILE, NULL, T_SAVE_CLIPBOARD_TO_A_FILE, "Zapis schowka do pliku",
T_LOAD_CLIPBOARD_FROM_A_FILE, NULL, T_LOAD_CLIPBOARD_FROM_A_FILE, "Odczyt schowka z pliku",
T_THE_CLIPBOARD_IS_EMPTY, NULL, T_THE_CLIPBOARD_IS_EMPTY, "Schowek jest pusty",
T_SAVE_HTML_OPTIONS, "Zapisz ustawienia HTML", T_SAVE_HTML_OPTIONS, "Zapisz ustawienia HTML",
T_CHARACTER_SET, "Zestaw znaków", T_CHARACTER_SET, "Zestaw znaków",
T_DEFAULT_CHARSET, "Domyślny", T_DEFAULT_CHARSET, "Domyślny",
@ -232,7 +233,7 @@ T_FILE, "Plik",
T_VIEW, "Widok", T_VIEW, "Widok",
T_LINK, "Link", T_LINK, "Link",
T_DOWNLOADS, "Pobieranie", T_DOWNLOADS, "Pobieranie",
T_WINDOWS, NULL, T_WINDOWS, "Okna",
T_SETUP, "Ustawienia", T_SETUP, "Ustawienia",
T_HELP, "Pomoc", T_HELP, "Pomoc",
T_ENTER_URL, "Wprowadź URL", T_ENTER_URL, "Wprowadź URL",
@ -243,8 +244,8 @@ T_SEARCH_FOR_TEXT, "Znajd
T_PAGE_P, "(s. ", T_PAGE_P, "(s. ",
T_PAGE_OF, " z ", T_PAGE_OF, " z ",
T_PAGE_CL, ")", T_PAGE_CL, ")",
T_FORMATTING_DOCUMENT, NULL, T_FORMATTING_DOCUMENT, "Formatowanie dokumentu",
T_SEARCHING, NULL, T_SEARCHING, "Wyszukiwanie",
T_WAITING_IN_QUEUE, "Oczekujące w kolejce", T_WAITING_IN_QUEUE, "Oczekujące w kolejce",
T_LOOKING_UP_HOST, "Szukam serwera", T_LOOKING_UP_HOST, "Szukam serwera",
T_MAKING_CONNECTION, "Nawiązywanie połączenia", T_MAKING_CONNECTION, "Nawiązywanie połączenia",
@ -260,7 +261,7 @@ T_INTERRUPTED, "Przerwano",
T_INTERNAL_ERROR, "Błąd wewnętrzny", T_INTERNAL_ERROR, "Błąd wewnętrzny",
T_OUT_OF_MEMORY, "Brak pamięci", T_OUT_OF_MEMORY, "Brak pamięci",
T_HOST_NOT_FOUND, "Nie znaleziono serwera", T_HOST_NOT_FOUND, "Nie znaleziono serwera",
T_PROXY_NOT_FOUND, NULL, T_PROXY_NOT_FOUND, "Nie znaleziono proxy",
T_ERROR_WRITING_TO_SOCKET, "Błąd przy zapisywaniu do gniazda", T_ERROR_WRITING_TO_SOCKET, "Błąd przy zapisywaniu do gniazda",
T_ERROR_READING_FROM_SOCKET, "Błąd przy czytaniu z gniazda", T_ERROR_READING_FROM_SOCKET, "Błąd przy czytaniu z gniazda",
T_DATA_MODIFIED, "Dane zostały zmodyfikowane", T_DATA_MODIFIED, "Dane zostały zmodyfikowane",
@ -272,7 +273,7 @@ T_CANT_GET_SOCKET_STATE, "Nie mo
T_CYCLIC_REDIRECT, "Cykliczne przekierowanie", T_CYCLIC_REDIRECT, "Cykliczne przekierowanie",
T_TOO_LARGE_FILE, "Plik zbyt duży", T_TOO_LARGE_FILE, "Plik zbyt duży",
T_BAD_HTTP_RESPONSE, "Nieprawidłowa odpowiedź HTTP", T_BAD_HTTP_RESPONSE, "Nieprawidłowa odpowiedź HTTP",
T_HTTP_100, NULL, T_HTTP_100, "HTTP 100 (\?\?\?)",
T_NO_CONTENT, "Plik pusty", T_NO_CONTENT, "Plik pusty",
T_HTTPS_FWD_ERROR, "Przekierowanie HTTPS nie powiodło się", T_HTTPS_FWD_ERROR, "Przekierowanie HTTPS nie powiodło się",
T_INVALID_CERTIFICATE, "Błędny certyfikat", T_INVALID_CERTIFICATE, "Błędny certyfikat",
@ -313,7 +314,7 @@ T_ABORT, "Przerwij",
T_ABORT_AND_DELETE_FILE, "Przerwij i usuń plik", T_ABORT_AND_DELETE_FILE, "Przerwij i usuń plik",
T_YES, "Tak", T_YES, "Tak",
T_NO, "Nie", T_NO, "Nie",
T_NEVER, NULL, T_NEVER, "Nigdy",
T_DIRECTORY, "Katalog", T_DIRECTORY, "Katalog",
T_FILE_ALREADY_EXISTS, "Plik już istnieje", T_FILE_ALREADY_EXISTS, "Plik już istnieje",
T_ALREADY_EXISTS_AS_DOWNLOAD, "już istnieje jako aktywne ściąganie.", T_ALREADY_EXISTS_AS_DOWNLOAD, "już istnieje jako aktywne ściąganie.",
@ -374,7 +375,7 @@ T_NO_PREVIOUS_SEARCH, "Niczego wcze
T_SEARCH_STRING_NOT_FOUND, "Nie znaleziono wyrażenia", T_SEARCH_STRING_NOT_FOUND, "Nie znaleziono wyrażenia",
T_SAVE_ERROR, "Błąd zapisu", T_SAVE_ERROR, "Błąd zapisu",
T_ERROR_WRITING_TO_FILE, "Błąd zapisu do pliku", T_ERROR_WRITING_TO_FILE, "Błąd zapisu do pliku",
T_ERROR_READING_THE_FILE, NULL, T_ERROR_READING_THE_FILE, "Błąd odczytu z pliku",
T_DISPLAY_USEMAP, "Pokaż mapę obrazków", T_DISPLAY_USEMAP, "Pokaż mapę obrazków",
T_FOLLOW_LINK, "Wybierz link", T_FOLLOW_LINK, "Wybierz link",
T_OPEN_IN_NEW_WINDOW, "Otwórz w nowym oknie", T_OPEN_IN_NEW_WINDOW, "Otwórz w nowym oknie",
@ -417,8 +418,8 @@ T_HEADER_INFO, "Informacje nag
T_YOU_ARE_NOWHERE, "Tak naprawdę to jesteś nigdzie!", T_YOU_ARE_NOWHERE, "Tak naprawdę to jesteś nigdzie!",
T_NO_HEADER, "Dokument nie ma nagłówka", T_NO_HEADER, "Dokument nie ma nagłówka",
T_URL, "URL", T_URL, "URL",
T_IP_ADDRESS, NULL, T_IP_ADDRESS, "Adres IP",
T_IP_ADDRESSES, NULL, T_IP_ADDRESSES, "Adresy IP",
T_SIZE, "Rozmiar", T_SIZE, "Rozmiar",
T_COMPRESSED_WITH, "skompresowany", T_COMPRESSED_WITH, "skompresowany",
T_INCOMPLETE, "niekompletne", T_INCOMPLETE, "niekompletne",
@ -429,8 +430,8 @@ T_SERVER, "Serwer",
T_DATE, "Data", T_DATE, "Data",
T_LAST_MODIFIED, "Ostatnia zmiana", T_LAST_MODIFIED, "Ostatnia zmiana",
T_SSL_CIPHER, "Szyfr SSL", T_SSL_CIPHER, "Szyfr SSL",
T_CERTIFICATE_AUTHORITY, NULL, T_CERTIFICATE_AUTHORITY, "Instytucja certyfikacji",
T_CERTIFICATE_AUTHORITIES, NULL, T_CERTIFICATE_AUTHORITIES, "Instytucje certyfikacji",
T_LANGUAGE, "Język", T_LANGUAGE, "Język",
T_DEFAULT_LANG, "Domyślny", T_DEFAULT_LANG, "Domyślny",
T_GO_TO_LINK, "Przejdź do odnośnika", T_GO_TO_LINK, "Przejdź do odnośnika",
@ -445,7 +446,7 @@ T_fOLDER, "folder",
T_ADD, "Dodaj", T_ADD, "Dodaj",
T_DELETE, "Usuń", T_DELETE, "Usuń",
T_EDIT, "Edytuj", T_EDIT, "Edytuj",
T_SELECT, NULL, T_SELECT, "Zaznacz",
T_MOVE, "Przenieś", T_MOVE, "Przenieś",
T_NO_ITEMS_SELECTED, "Nie zaznaczyłeś niczego", T_NO_ITEMS_SELECTED, "Nie zaznaczyłeś niczego",
T_UNSELECT_ALL, "Odznacz wszystkie", T_UNSELECT_ALL, "Odznacz wszystkie",
@ -502,20 +503,22 @@ T_MANUAL, "Podr
T_HOMEPAGE, "Strona domowa", T_HOMEPAGE, "Strona domowa",
T_CALIBRATION, "Kalibracja", T_CALIBRATION, "Kalibracja",
T_MAILTO_PROG, "Program pocztowy (% jest zastępowany przez adres e-mail)", T_MAILTO_PROG, "Program pocztowy (% jest zastępowany przez adres e-mail)",
T_SHELL_PROG, "Program pow³oki",
T_TELNET_PROG, "Program usługi Telnet (% jest zastępowany przez \"host\" lub przez \"host port\")", T_TELNET_PROG, "Program usługi Telnet (% jest zastępowany przez \"host\" lub przez \"host port\")",
T_MAGNET_PROG, "Program Magnet (% jest zastêpowany przez URL)",
T_TN3270_PROG, "Program Tn3270 (% jest zastępowany przez \"host\" lub przez \"host port\")", T_TN3270_PROG, "Program Tn3270 (% jest zastępowany przez \"host\" lub przez \"host port\")",
T_MMS_PROG, "Program MMS (% jest zastępowany przez URL)", T_MMS_PROG, "Program MMS (% jest zastępowany przez URL)",
T_MAGNET_PROG, "Program Magnet (% jest zastępowany przez URL)",
T_GOPHER_PROG, "Program Gopher (% jest zastępowany przez URL)",
T_SHELL_PROG, "Powłoka do wykonywania poleceń zewnętrznych (% jest zastępowany poleceniem)",
T_MAIL_AND_TELNET_PROGRAMS, "Obsługa poczty i usługi Telnet", T_MAIL_AND_TELNET_PROGRAMS, "Obsługa poczty i usługi Telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Obsługa poczty, usługi Telnet i powłoki", T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Obsługa poczty, usługi Telnet i powłoki",
T_NO_PROGRAM, "Nie określono programu", T_NO_PROGRAM, "Nie określono programu",
T_NO_PROGRAM_SPECIFIED_FOR, "Nie określono programu do obsługi", T_NO_PROGRAM_SPECIFIED_FOR, "Nie określono programu do obsługi",
T_MAIL, "poczty", T_MAIL, "poczty",
T_TELNET, "telneta", T_TELNET, "telneta",
T_MAGNET, "magneta",
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, "mms", T_MMS, "mms",
T_MAGNET, "magneta",
T_GOPHER, "gopher",
T_BAD_MAILTO_URL, "Błędny adres e-mail", T_BAD_MAILTO_URL, "Błędny adres e-mail",
T_BAD_TELNET_URL, "Niewłaściwy adres serwera dla programu Telnet", T_BAD_TELNET_URL, "Niewłaściwy adres serwera dla programu Telnet",
T_BAD_TN3270_URL, "Niewłaściwy adres serwera dla programu Tn3270", T_BAD_TN3270_URL, "Niewłaściwy adres serwera dla programu Tn3270",
@ -552,9 +555,9 @@ T_DITHER_IMAGES, "Dithering obraz
T_8_BIT_GAMMA_CORRECTION, "8-bitowa korekcja gamma", T_8_BIT_GAMMA_CORRECTION, "8-bitowa korekcja gamma",
T_16_BIT_GAMMA_CORRECTION, "16-bitowa korekcja gamma", T_16_BIT_GAMMA_CORRECTION, "16-bitowa korekcja gamma",
T_AUTO_GAMMA_CORRECTION, "Automatyczna korekcja gamma", T_AUTO_GAMMA_CORRECTION, "Automatyczna korekcja gamma",
T_RGB_PALETTE_8x8x4, NULL, T_RGB_PALETTE_8x8x4, "Paleta RGB 8x8x4",
T_RGB_PALETTE_6x6x6, NULL, T_RGB_PALETTE_6x6x6, "Paleta RGB 6x6x6",
T_SWITCH_PALETTE, NULL, T_SWITCH_PALETTE, "Zmień paletę",
T_OVERWRITE_SCREEN_INSTEAD_OF_SCROLLING_IT, "Przykrycie ekranu zamiast przewijania", T_OVERWRITE_SCREEN_INSTEAD_OF_SCROLLING_IT, "Przykrycie ekranu zamiast przewijania",
T_ALERT, "Uwaga", T_ALERT, "Uwaga",
T_QUESTION, "Pytanie", T_QUESTION, "Pytanie",
@ -568,16 +571,16 @@ T_ENABLE_JAVASCRIPT, "W
T_VERBOSE_JS_ERRORS, "Śledzenie błędów Javascriptu", T_VERBOSE_JS_ERRORS, "Śledzenie błędów Javascriptu",
T_VERBOSE_JS_WARNINGS, "Śledzenie ostrzeżeń Javascriptu", T_VERBOSE_JS_WARNINGS, "Śledzenie ostrzeżeń Javascriptu",
T_MISCELANEOUS_OPTIONS, "Opcje różne", T_MISCELANEOUS_OPTIONS, "Opcje różne",
T_FONTS, NULL, T_FONTS, "Fonty",
T_REGULAR_FONT, NULL, T_REGULAR_FONT, "Font zwykły",
T_BOLD_FONT, NULL, T_BOLD_FONT, "Font pogrubiony",
T_MONOSPACED_FONT, NULL, T_MONOSPACED_FONT, "Font o stałej szerokości",
T_MONOSPACED_BOLD_FONT, NULL, T_MONOSPACED_BOLD_FONT, "Font pogrubiony o stałej szerokości",
T_ITALIC_FONT, NULL, T_ITALIC_FONT, "Font pochyły",
T_ITALIC_BOLD_FONT, NULL, T_ITALIC_BOLD_FONT, "Font pochyły pogrubiony",
T_MONOSPACED_ITALIC_FONT, NULL, T_MONOSPACED_ITALIC_FONT, "Font pochyły o stałej szerokości",
T_MONOSPACED_ITALIC_BOLD_FONT, NULL, T_MONOSPACED_ITALIC_BOLD_FONT, "Font pochyły, pogrubiony o stałej szerokości",
T_BUILT_IN_FONT, NULL, T_BUILT_IN_FONT, "Font wbudowany",
T_JAVASCRIPT_ERROR, "Błąd Javascriptu", T_JAVASCRIPT_ERROR, "Błąd Javascriptu",
T_JAVASCRIPT_WARNING, "Ostrzeżenie Javascriptu", T_JAVASCRIPT_WARNING, "Ostrzeżenie Javascriptu",
T_DISMISS, "Pomiń", T_DISMISS, "Pomiń",
@ -603,12 +606,12 @@ T_SCROLL_BAR_AREA_COLOR, "Kolor obszaru paska przewijania",
T_SCROLL_BAR_FRAME_COLOR, "Kolor ramki paska przewijania", T_SCROLL_BAR_FRAME_COLOR, "Kolor ramki paska przewijania",
T_BOOKMARKS_FILE, "Plik zakładek", T_BOOKMARKS_FILE, "Plik zakładek",
T_SAVE_URL_HISTORY_ON_EXIT, "Zapis historii URL-i przy wyłączaniu", T_SAVE_URL_HISTORY_ON_EXIT, "Zapis historii URL-i przy wyłączaniu",
T_COOKIES, NULL, T_COOKIES, "Ciasteczka",
T_ENABLE_COOKIES, NULL, T_ENABLE_COOKIES, "Włączenie ciasteczek",
T_SAVE_COOKIES, NULL, T_SAVE_COOKIES, "Zapis ciasteczek",
T_MAX_COOKIE_AGE, NULL, T_MAX_COOKIE_AGE, "Maksymalny wiek ciasteczek w dniach (0 - nieskończony)",
T_CLEAR_COOKIES, NULL, T_CLEAR_COOKIES, "Wyczyść ciasteczka",
T_COOKIES_WERE_CLEARED, NULL, T_COOKIES_WERE_CLEARED, "ciasteczka zostały wyczyszczone",
T_ENTER_COLORS_AS_RGB_TRIPLETS, "Wpisz kolory jako trójki RGB", T_ENTER_COLORS_AS_RGB_TRIPLETS, "Wpisz kolory jako trójki RGB",
T_JS_MEMORY_LIMIT_KB, "Pamięć dla Javascriptu", T_JS_MEMORY_LIMIT_KB, "Pamięć dla Javascriptu",
T_SCALE_ALL_IMAGES_BY, "Skalowanie wszystkich obrazów", T_SCALE_ALL_IMAGES_BY, "Skalowanie wszystkich obrazów",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, "C",
T_HK_IPV6_OPTIONS, "I", T_HK_IPV6_OPTIONS, "I",
T_HK_PROXIES, "P", T_HK_PROXIES, "P",
T_HK_SSL_OPTIONS, "L", T_HK_SSL_OPTIONS, "L",
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, "H", T_HK_HTTP_OPTIONS, "H",
T_HK_FTP_OPTIONS, "F", T_HK_FTP_OPTIONS, "F",
T_HK_SMB_OPTIONS, "S", T_HK_SMB_OPTIONS, "S",
@ -679,7 +683,7 @@ T_HK_CACHE, "P",
T_HK_MAIL_AND_TELNEL, "C", T_HK_MAIL_AND_TELNEL, "C",
T_HK_ASSOCIATIONS, "S", T_HK_ASSOCIATIONS, "S",
T_HK_FILE_EXTENSIONS, "R", T_HK_FILE_EXTENSIONS, "R",
T_HK_BLOCK_LIST, NULL, T_HK_BLOCK_LIST, "B",
T_HK_SAVE_OPTIONS, "O", T_HK_SAVE_OPTIONS, "O",
T_HK_ABOUT, "O", T_HK_ABOUT, "O",
T_HK_KEYS, "K", T_HK_KEYS, "K",

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "N
T_BAD_STRING, "Sequência de caracteres inválida", T_BAD_STRING, "Sequência de caracteres inválida",
T_EMPTY_STRING_NOT_ALLOWED, "Não é permitida uma sequência de caracteres vazia", T_EMPTY_STRING_NOT_ALLOWED, "Não é permitida uma sequência de caracteres vazia",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Erro de configuração", T_CONFIG_ERROR, "Erro de configuração",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Não posso escrever no arquivo de configuração", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Não posso escrever no arquivo de configuração",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Conexões", T_CONNECTIONS, "Conexões",
T_MAX_CONNECTIONS, NULL, T_MAX_CONNECTIONS, NULL,
T_MAX_CONNECTIONS_TO_ONE_HOST, NULL, T_MAX_CONNECTIONS_TO_ONE_HOST, NULL,
@ -502,20 +503,22 @@ T_MANUAL, "Manual do Utilizador",
T_HOMEPAGE, NULL, T_HOMEPAGE, NULL,
T_CALIBRATION, NULL, T_CALIBRATION, NULL,
T_MAILTO_PROG, NULL, T_MAILTO_PROG, NULL,
T_SHELL_PROG, NULL,
T_TELNET_PROG, NULL, T_TELNET_PROG, NULL,
T_MAGNET_PROG, NULL,
T_TN3270_PROG, NULL, T_TN3270_PROG, NULL,
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, NULL, T_MAIL_AND_TELNET_PROGRAMS, NULL,
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Nenhum programa", T_NO_PROGRAM, "Nenhum programa",
T_NO_PROGRAM_SPECIFIED_FOR, "Nenhum programa foi especificado para", T_NO_PROGRAM_SPECIFIED_FOR, "Nenhum programa foi especificado para",
T_MAIL, NULL, T_MAIL, NULL,
T_TELNET, NULL, T_TELNET, NULL,
T_MAGNET, NULL,
T_TN3270, NULL, T_TN3270, NULL,
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, NULL, T_BAD_MAILTO_URL, NULL,
T_BAD_TELNET_URL, NULL, T_BAD_TELNET_URL, NULL,
T_BAD_TN3270_URL, NULL, T_BAD_TN3270_URL, NULL,
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Num
T_BAD_STRING, "ªir greºit", T_BAD_STRING, "ªir greºit",
T_EMPTY_STRING_NOT_ALLOWED, "ªir vid neacceptabil", T_EMPTY_STRING_NOT_ALLOWED, "ªir vid neacceptabil",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Eroare de configurare", T_CONFIG_ERROR, "Eroare de configurare",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Nu pot sã scriu fiºierul de configurere", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Nu pot sã scriu fiºierul de configurere",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Conexiuni", T_CONNECTIONS, "Conexiuni",
T_MAX_CONNECTIONS, "Conexiuni maxime", T_MAX_CONNECTIONS, "Conexiuni maxime",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Conexiuni maxime la un host", T_MAX_CONNECTIONS_TO_ONE_HOST, "Conexiuni maxime la un host",
@ -502,20 +503,22 @@ T_MANUAL, "Manualul utilizatorului",
T_HOMEPAGE, NULL, T_HOMEPAGE, NULL,
T_CALIBRATION, NULL, T_CALIBRATION, NULL,
T_MAILTO_PROG, "Program de e-mail (% este înlocuit cu adresa)", T_MAILTO_PROG, "Program de e-mail (% este înlocuit cu adresa)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Program de telnet (% este înlocuit cu \"Host\" ori \"Host port\")", T_TELNET_PROG, "Program de telnet (% este înlocuit cu \"Host\" ori \"Host port\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Program de Tn3270 (% este înlocuit cu \"Host\" ori \"Host port\")", T_TN3270_PROG, "Program de Tn3270 (% este înlocuit cu \"Host\" ori \"Host port\")",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "Programe de e-mail si telnet", T_MAIL_AND_TELNET_PROGRAMS, "Programe de e-mail si telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Nici un program", T_NO_PROGRAM, "Nici un program",
T_NO_PROGRAM_SPECIFIED_FOR, "Program nespecificat pentru", T_NO_PROGRAM_SPECIFIED_FOR, "Program nespecificat pentru",
T_MAIL, "E-mail", T_MAIL, "E-mail",
T_TELNET, "Telnet", T_TELNET, "Telnet",
T_MAGNET, NULL,
T_TN3270, "Tn3270", T_TN3270, "Tn3270",
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "URL greºit pentru e-mail", T_BAD_MAILTO_URL, "URL greºit pentru e-mail",
T_BAD_TELNET_URL, "URL greºit pentru telnet", T_BAD_TELNET_URL, "URL greºit pentru telnet",
T_BAD_TN3270_URL, "URL greºit pentru tn3270", T_BAD_TN3270_URL, "URL greºit pentru tn3270",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "
T_BAD_STRING, "îÅ×ÅÒÎÁÑ ÓÔÒÏËÁ", T_BAD_STRING, "îÅ×ÅÒÎÁÑ ÓÔÒÏËÁ",
T_EMPTY_STRING_NOT_ALLOWED, "ðÕÓÔÙÅ ÓÔÒÏËÉ ÎÅ ÄÏÐÕÓËÁÀÔÓÑ", T_EMPTY_STRING_NOT_ALLOWED, "ðÕÓÔÙÅ ÓÔÒÏËÉ ÎÅ ÄÏÐÕÓËÁÀÔÓÑ",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "ïÛÉÂËÁ ÎÁÓÔÒÏÊËÉ", T_CONFIG_ERROR, "ïÛÉÂËÁ ÎÁÓÔÒÏÊËÉ",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "îÅ×ÏÚÍÏÖÎÏ ÚÁÐÉÓÁÔØ × ÆÁÊÌ ÎÁÓÔÒÏÅË", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "îÅ×ÏÚÍÏÖÎÏ ÚÁÐÉÓÁÔØ × ÆÁÊÌ ÎÁÓÔÒÏÅË",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "óÏÅÄÉÎÅÎÉÑ(ÉÊ)", T_CONNECTIONS, "óÏÅÄÉÎÅÎÉÑ(ÉÊ)",
T_MAX_CONNECTIONS, "íÁËÓ. ÞÉÓÌÏ ÓÏÅÄÉÎÅÎÉÊ", T_MAX_CONNECTIONS, "íÁËÓ. ÞÉÓÌÏ ÓÏÅÄÉÎÅÎÉÊ",
T_MAX_CONNECTIONS_TO_ONE_HOST, "íÁËÓ. ÞÉÓÌÏ ÓÏÅÄÉÎÅÎÉÊ Ë ÏÄÎÏÍÕ ÓÅÒ×ÅÒÕ", T_MAX_CONNECTIONS_TO_ONE_HOST, "íÁËÓ. ÞÉÓÌÏ ÓÏÅÄÉÎÅÎÉÊ Ë ÏÄÎÏÍÕ ÓÅÒ×ÅÒÕ",
@ -502,20 +503,22 @@ T_MANUAL, "
T_HOMEPAGE, "äÏÍÁÛÎÑÑ ÓÔÒÁÎÉÞËÁ", T_HOMEPAGE, "äÏÍÁÛÎÑÑ ÓÔÒÁÎÉÞËÁ",
T_CALIBRATION, "ëÁÌÉÂÒÁÃÉÑ", T_CALIBRATION, "ëÁÌÉÂÒÁÃÉÑ",
T_MAILTO_PROG, "ðÒÏÇÒÁÍÍÁ ÏÔÐÒÁ×ËÉ ÐÏÞÔÙ (% ÚÁÍÅÎÑÅÔÓÑ ÎÁ ÁÄÒÅÓ)", T_MAILTO_PROG, "ðÒÏÇÒÁÍÍÁ ÏÔÐÒÁ×ËÉ ÐÏÞÔÙ (% ÚÁÍÅÎÑÅÔÓÑ ÎÁ ÁÄÒÅÓ)",
T_SHELL_PROG, "ïÂÏÌÏÞËÁ (shell) ÄÌÑ ×ÎÅÛÎÉÈ ËÏÍÁÎÄ (% ÚÁÍÅÎÑÅÔÓÑ ËÏÍÁÎÄÏÊ)",
T_TELNET_PROG, "ðÒÏÇÒÁÍÍÁ telnet (% ÚÁÍÅÎÑÅÔÓÑ ÎÁ 'host' ÉÌÉ 'host port')", T_TELNET_PROG, "ðÒÏÇÒÁÍÍÁ telnet (% ÚÁÍÅÎÑÅÔÓÑ ÎÁ 'host' ÉÌÉ 'host port')",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "ðÒÏÇÒÁÍÍÁ tn3270 (% ÚÁÍÅÎÑÅÔÓÑ ÎÁ 'host' ÉÌÉ 'host port')", T_TN3270_PROG, "ðÒÏÇÒÁÍÍÁ tn3270 (% ÚÁÍÅÎÑÅÔÓÑ ÎÁ 'host' ÉÌÉ 'host port')",
T_MMS_PROG, "ðÒÏÇÒÁÍÍÁ ÄÌÑ MMS-ÐÒÏÔÏËÏÌÁ (% ÚÁÍÅÎÑÅÔÓÑ ÎÁ URL)", T_MMS_PROG, "ðÒÏÇÒÁÍÍÁ ÄÌÑ MMS-ÐÒÏÔÏËÏÌÁ (% ÚÁÍÅÎÑÅÔÓÑ ÎÁ URL)",
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, "ïÂÏÌÏÞËÁ (shell) ÄÌÑ ×ÎÅÛÎÉÈ ËÏÍÁÎÄ (% ÚÁÍÅÎÑÅÔÓÑ ËÏÍÁÎÄÏÊ)",
T_MAIL_AND_TELNET_PROGRAMS, "ðÒÏÇÒÁÍÍÙ ÄÌÑ ÐÏÞÔÙ É telnet'Á", T_MAIL_AND_TELNET_PROGRAMS, "ðÒÏÇÒÁÍÍÙ ÄÌÑ ÐÏÞÔÙ É telnet'Á",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, "ðÒÏÇÒÁÍÍÙ ÐÏÞÔÙ, telnet É ÏÂÏÌÏÞËÉ", T_MAIL_TELNET_AND_SHELL_PROGRAMS, "ðÒÏÇÒÁÍÍÙ ÐÏÞÔÙ, telnet É ÏÂÏÌÏÞËÉ",
T_NO_PROGRAM, "îÅÔ ÐÒÏÇÒÁÍÍÙ", T_NO_PROGRAM, "îÅÔ ÐÒÏÇÒÁÍÍÙ",
T_NO_PROGRAM_SPECIFIED_FOR, "îÅ ÕËÁÚÁÎÁ ÐÒÏÇÒÁÍÍÁ ÄÌÑ", T_NO_PROGRAM_SPECIFIED_FOR, "îÅ ÕËÁÚÁÎÁ ÐÒÏÇÒÁÍÍÁ ÄÌÑ",
T_MAIL, "ÐÏÞÔÙ", T_MAIL, "ÐÏÞÔÙ",
T_TELNET, NULL, T_TELNET, NULL,
T_MAGNET, NULL,
T_TN3270, NULL, T_TN3270, NULL,
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "îÅ×ÅÒÎÙÊ ÁÄÒÅÓ mailto:", T_BAD_MAILTO_URL, "îÅ×ÅÒÎÙÊ ÁÄÒÅÓ mailto:",
T_BAD_TELNET_URL, "îÅ×ÅÒÎÙÊ ÁÄÒÅÓ telnet", T_BAD_TELNET_URL, "îÅ×ÅÒÎÙÊ ÁÄÒÅÓ telnet",
T_BAD_TN3270_URL, "îÅ×ÅÒÎÙÊ ÁÄÒÅÓ tn3270", T_BAD_TN3270_URL, "îÅ×ÅÒÎÙÊ ÁÄÒÅÓ tn3270",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "
T_BAD_STRING, "»ÞèÐ ÝØáÚÐ", T_BAD_STRING, "»ÞèÐ ÝØáÚÐ",
T_EMPTY_STRING_NOT_ALLOWED, "¿àÐ×ÝÐ ÝØáÚÐ ÝØøÕ ÔÞ×ÒÞùÕÝÐ", T_EMPTY_STRING_NOT_ALLOWED, "¿àÐ×ÝÐ ÝØáÚÐ ÝØøÕ ÔÞ×ÒÞùÕÝÐ",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "³àÕèÚÐ ã ßÞÔÕèÐÒÐúØÜÐ", T_CONFIG_ERROR, "³àÕèÚÐ ã ßÞÔÕèÐÒÐúØÜÐ",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "½Õ ÜÞÓã ÔÐ ãßØèÕÜ ÔÐâÞâÕÚã áÐ ßÞÔÕèÐÒÐúØÜÐ", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "½Õ ÜÞÓã ÔÐ ãßØèÕÜ ÔÐâÞâÕÚã áÐ ßÞÔÕèÐÒÐúØÜÐ",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "¿ÞÒÕ×ØÒÐúÐ", T_CONNECTIONS, "¿ÞÒÕ×ØÒÐúÐ",
T_MAX_CONNECTIONS, "½ÐøÒØèÕ ßÞÒÕ×ØÒÐúÐ", T_MAX_CONNECTIONS, "½ÐøÒØèÕ ßÞÒÕ×ØÒÐúÐ",
T_MAX_CONNECTIONS_TO_ONE_HOST, "½ÐøÒØèÕ ßÞÒÕ×ØÒÐúÐ áÐ øÕÔÝØÜ ÔÞÜÐûØÝÞÜ", T_MAX_CONNECTIONS_TO_ONE_HOST, "½ÐøÒØèÕ ßÞÒÕ×ØÒÐúÐ áÐ øÕÔÝØÜ ÔÞÜÐûØÝÞÜ",
@ -502,20 +503,22 @@ T_MANUAL, "
T_HOMEPAGE, "´ÞÜÐûÐ áâàÐÝØæÐ", T_HOMEPAGE, "´ÞÜÐûÐ áâàÐÝØæÐ",
T_CALIBRATION, "ºÐÛØÑàØáÐúÕ", T_CALIBRATION, "ºÐÛØÑàØáÐúÕ",
T_MAILTO_PROG, "¿àÞÓàÐÜ ×Ð ßÞèâã (% áÕ ×ÐÜÕúãøÕ ÐÔàÕáÞÜ)", T_MAILTO_PROG, "¿àÞÓàÐÜ ×Ð ßÞèâã (% áÕ ×ÐÜÕúãøÕ ÐÔàÕáÞÜ)",
T_SHELL_PROG, "©ãáÚÐ ×Ð Ø×ÒàèÐÒÐúÕ áßÞùÐèúØå ÝÐàÕÔÑØ (×ÝÐÚ % ûÕ ÑØâØ ×ÐÜÕúÕÝ ÝÐàÕÔÑÞÜ)",
T_TELNET_PROG, "¿àÞÓàÐÜ ×Ð âÕÛÝÕâ (% áÕ ×ÐÜÕúãøÕ ÝØáÚÞÜ \"ÔÞÜÐûØÝ\" ØÛØ \"ÔÞÜÐûØÝ ßÞàâ\")", T_TELNET_PROG, "¿àÞÓàÐÜ ×Ð âÕÛÝÕâ (% áÕ ×ÐÜÕúãøÕ ÝØáÚÞÜ \"ÔÞÜÐûØÝ\" ØÛØ \"ÔÞÜÐûØÝ ßÞàâ\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "¿àÞÓàÐÜ ×Ð tn3270 (% áÕ ×ÐÜÕúãøÕ ÝØáÚÞÜ \"ÔÞÜÐûØÝ\" ØÛØ \"ÔÞÜÐûØÝ ßÞàâ\")", T_TN3270_PROG, "¿àÞÓàÐÜ ×Ð tn3270 (% áÕ ×ÐÜÕúãøÕ ÝØáÚÞÜ \"ÔÞÜÐûØÝ\" ØÛØ \"ÔÞÜÐûØÝ ßÞàâ\")",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, "©ãáÚÐ ×Ð Ø×ÒàèÐÒÐúÕ áßÞùÐèúØå ÝÐàÕÔÑØ (×ÝÐÚ % ûÕ ÑØâØ ×ÐÜÕúÕÝ ÝÐàÕÔÑÞÜ)",
T_MAIL_AND_TELNET_PROGRAMS, "¿àÞÓàÐÜØ ×Ð ßÞèâã Ø âÕÛÝÕâ", T_MAIL_AND_TELNET_PROGRAMS, "¿àÞÓàÐÜØ ×Ð ßÞèâã Ø âÕÛÝÕâ",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, "¿àÞÓàÐÜØ ×Ð ßÞèâã, âÕÛÝÕâ Ø ùãáÚã", T_MAIL_TELNET_AND_SHELL_PROGRAMS, "¿àÞÓàÐÜØ ×Ð ßÞèâã, âÕÛÝÕâ Ø ùãáÚã",
T_NO_PROGRAM, "½ÕÜÐ ßàÞÓàÐÜÐ", T_NO_PROGRAM, "½ÕÜÐ ßàÞÓàÐÜÐ",
T_NO_PROGRAM_SPECIFIED_FOR, "½ØøÕ ×ÐÔÐâ ßàÞÓàÐÜ ×Ð", T_NO_PROGRAM_SPECIFIED_FOR, "½ØøÕ ×ÐÔÐâ ßàÞÓàÐÜ ×Ð",
T_MAIL, "ßÞèâã", T_MAIL, "ßÞèâã",
T_TELNET, "âÕÛÝÕâ", T_TELNET, "âÕÛÝÕâ",
T_MAGNET, NULL,
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "»Þè mailto ÃÀ»", T_BAD_MAILTO_URL, "»Þè mailto ÃÀ»",
T_BAD_TELNET_URL, "»Þè telnet ÃÀ»", T_BAD_TELNET_URL, "»Þè telnet ÃÀ»",
T_BAD_TN3270_URL, "»Þè tn3270 ÃÀ»", T_BAD_TN3270_URL, "»Þè tn3270 ÃÀ»",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "
T_BAD_STRING, "Chybný re»azec", T_BAD_STRING, "Chybný re»azec",
T_EMPTY_STRING_NOT_ALLOWED, "Prázdny re»azec nie je dovolený!", T_EMPTY_STRING_NOT_ALLOWED, "Prázdny re»azec nie je dovolený!",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Chyba v konfigurácii", T_CONFIG_ERROR, "Chyba v konfigurácii",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Nemô¾em zapisova» do konfig. súboru", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Nemô¾em zapisova» do konfig. súboru",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Spojenie", T_CONNECTIONS, "Spojenie",
T_MAX_CONNECTIONS, "Maximálny poèet spojení", T_MAX_CONNECTIONS, "Maximálny poèet spojení",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Maximálny poèet spojení na jeden poèítaè", T_MAX_CONNECTIONS_TO_ONE_HOST, "Maximálny poèet spojení na jeden poèítaè",
@ -502,20 +503,22 @@ T_MANUAL, "Manu
T_HOMEPAGE, "Domovská stránka", T_HOMEPAGE, "Domovská stránka",
T_CALIBRATION, "Kalibrácia", T_CALIBRATION, "Kalibrácia",
T_MAILTO_PROG, "Program pre mail (% je nahradene adresou)", T_MAILTO_PROG, "Program pre mail (% je nahradene adresou)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Program pre telnet (% je nahradene menom stroje a prípadne portom)", T_TELNET_PROG, "Program pre telnet (% je nahradene menom stroje a prípadne portom)",
T_MAGNET_PROG, "Program pre magnet (% je nahradene URL)",
T_TN3270_PROG, "Program pre tn3270 (% je je nahradene menom stroje a prípadne portom)", T_TN3270_PROG, "Program pre tn3270 (% je je nahradene menom stroje a prípadne portom)",
T_MMS_PROG, "Program pre mms (% je nahradene URL)",, T_MMS_PROG, "Program pre mms (% je nahradene URL)",,
T_MAGNET_PROG, "Program pre magnet (% je nahradene URL)",
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "Programy pre mail a telnet", T_MAIL_AND_TELNET_PROGRAMS, "Programy pre mail a telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Programy pre mail a telnet a shell", T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Programy pre mail a telnet a shell",
T_NO_PROGRAM, "®iadny program", T_NO_PROGRAM, "®iadny program",
T_NO_PROGRAM_SPECIFIED_FOR, "Nie je nastavený ¾iadny program pre", T_NO_PROGRAM_SPECIFIED_FOR, "Nie je nastavený ¾iadny program pre",
T_MAIL, "mail", T_MAIL, "mail",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, "magnet",
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, "mms", T_MMS, "mms",
T_MAGNET, "magnet",
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Chybné mailové URL", T_BAD_MAILTO_URL, "Chybné mailové URL",
T_BAD_TELNET_URL, " Chybné terminálove URL (telnet)", T_BAD_TELNET_URL, " Chybné terminálove URL (telnet)",
T_BAD_TN3270_URL, " Chybné terminálove URL (tn3270)", T_BAD_TN3270_URL, " Chybné terminálove URL (tn3270)",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "N
T_BAD_STRING, "Cadena incorrecta", T_BAD_STRING, "Cadena incorrecta",
T_EMPTY_STRING_NOT_ALLOWED, "No se permite cadena vacía", T_EMPTY_STRING_NOT_ALLOWED, "No se permite cadena vacía",
T_BAD_IP_ADDRESS, "Dirección IP incorrecta", T_BAD_IP_ADDRESS, "Dirección IP incorrecta",
T_INVALID_IP_ADDRESS_SYNTAX, "Sintáxis de dirección IP no válida",
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, "Imposible usar dirección IP local", T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, "Imposible usar dirección IP local",
T_CONFIG_ERROR, "Error de configuración", T_CONFIG_ERROR, "Error de configuración",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Imposible escribir en archivo de configuración", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Imposible escribir en archivo de configuración",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, "Archivo no encontrado",
T_THE_FILE_HAS_INVALID_FORMAT, "Archivo con formato no válido", T_THE_FILE_HAS_INVALID_FORMAT, "Archivo con formato no válido",
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, "Error al inicializar los certificados incorporados", T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, "Error al inicializar los certificados incorporados",
T_FAILED, "Ha fallado", T_FAILED, "Ha fallado",
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Conexiones", T_CONNECTIONS, "Conexiones",
T_MAX_CONNECTIONS, "Máximo de conexiones", T_MAX_CONNECTIONS, "Máximo de conexiones",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Máximo de conexiones a una máquina", T_MAX_CONNECTIONS_TO_ONE_HOST, "Máximo de conexiones a una máquina",
@ -502,20 +503,22 @@ T_MANUAL, "Manual de usuario",
T_HOMEPAGE, "Página de inicio", T_HOMEPAGE, "Página de inicio",
T_CALIBRATION, "Calibración", T_CALIBRATION, "Calibración",
T_MAILTO_PROG, "Programa de correo (% se reemplaza por la dirección)", T_MAILTO_PROG, "Programa de correo (% se reemplaza por la dirección)",
T_SHELL_PROG, "Programa shell para ejecutar comandos externos (% se reemplaza por el comando)",
T_TELNET_PROG, "Programa de telnet (% se reemplaza por \"máquina\" o \"máquina puerto\")", T_TELNET_PROG, "Programa de telnet (% se reemplaza por \"máquina\" o \"máquina puerto\")",
T_MAGNET_PROG, "Programa magnet (% se reemplaza con URL)",
T_TN3270_PROG, "Programa Tn3270 (% se reemplaza con \"máquina\" o \"máquina puerto\")", T_TN3270_PROG, "Programa Tn3270 (% se reemplaza con \"máquina\" o \"máquina puerto\")",
T_MMS_PROG, "Programa MMS (% se reemplaza con URL)", T_MMS_PROG, "Programa MMS (% se reemplaza con URL)",
T_MAGNET_PROG, "Programa magnet (% se reemplaza con URL)",
T_GOPHER_PROG, NULL,
T_SHELL_PROG, "Programa shell para ejecutar comandos externos (% se reemplaza por el comando)",
T_MAIL_AND_TELNET_PROGRAMS, "Programas de correo y telnet", T_MAIL_AND_TELNET_PROGRAMS, "Programas de correo y telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Programas de correo, telnet y shell", T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Programas de correo, telnet y shell",
T_NO_PROGRAM, "Sin programa", T_NO_PROGRAM, "Sin programa",
T_NO_PROGRAM_SPECIFIED_FOR, "Sin programa especificado para", T_NO_PROGRAM_SPECIFIED_FOR, "Sin programa especificado para",
T_MAIL, "correo", T_MAIL, "correo",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, "magnet",
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, "mms", T_MMS, "mms",
T_MAGNET, "magnet",
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Dirección de correo incorrecta", T_BAD_MAILTO_URL, "Dirección de correo incorrecta",
T_BAD_TELNET_URL, "URL de telnet incorrecta", T_BAD_TELNET_URL, "URL de telnet incorrecta",
T_BAD_TN3270_URL, "URL de TN3270 incorrecta", T_BAD_TN3270_URL, "URL de TN3270 incorrecta",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Nummer i felaktigt intervall",
T_BAD_STRING, "Felaktig sträng", T_BAD_STRING, "Felaktig sträng",
T_EMPTY_STRING_NOT_ALLOWED, "Tom sträng ej tillåten", T_EMPTY_STRING_NOT_ALLOWED, "Tom sträng ej tillåten",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Konfigurationsfel", T_CONFIG_ERROR, "Konfigurationsfel",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Kan inte skriva till konfigurationsfilen", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Kan inte skriva till konfigurationsfilen",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "uppkopplingar", T_CONNECTIONS, "uppkopplingar",
T_MAX_CONNECTIONS, "Max anslutningar", T_MAX_CONNECTIONS, "Max anslutningar",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Max anslutningar till värd", T_MAX_CONNECTIONS_TO_ONE_HOST, "Max anslutningar till värd",
@ -502,20 +503,22 @@ T_MANUAL, "Bruksanvisning",
T_HOMEPAGE, NULL, T_HOMEPAGE, NULL,
T_CALIBRATION, NULL, T_CALIBRATION, NULL,
T_MAILTO_PROG, "Epostprogram (% ersätts med adress)", T_MAILTO_PROG, "Epostprogram (% ersätts med adress)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Telnetprogram (% ersätts med \"värd\" eller \"värd port\")", T_TELNET_PROG, "Telnetprogram (% ersätts med \"värd\" eller \"värd port\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270-program (% ersätts med \"värd\" eller \"värd port\")", T_TN3270_PROG, "Tn3270-program (% ersätts med \"värd\" eller \"värd port\")",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "Epost- och telnetprogram", T_MAIL_AND_TELNET_PROGRAMS, "Epost- och telnetprogram",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Inget program", T_NO_PROGRAM, "Inget program",
T_NO_PROGRAM_SPECIFIED_FOR, "Inget program angett för", T_NO_PROGRAM_SPECIFIED_FOR, "Inget program angett för",
T_MAIL, "epost", T_MAIL, "epost",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Felaktig mailto-URL", T_BAD_MAILTO_URL, "Felaktig mailto-URL",
T_BAD_TELNET_URL, "Felaktig telnet-URL", T_BAD_TELNET_URL, "Felaktig telnet-URL",
T_BAD_TN3270_URL, "Felaktig tn3270-URL", T_BAD_TN3270_URL, "Felaktig tn3270-URL",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Ung
T_BAD_STRING, "Falschi Igabe", T_BAD_STRING, "Falschi Igabe",
T_EMPTY_STRING_NOT_ALLOWED, "Werte Igabe erforderlich", T_EMPTY_STRING_NOT_ALLOWED, "Werte Igabe erforderlich",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Konfigurationsfehler", T_CONFIG_ERROR, "Konfigurationsfehler",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Cha Konfigurationsdatei nöd schriebe", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Cha Konfigurationsdatei nöd schriebe",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Verbindige", T_CONNECTIONS, "Verbindige",
T_MAX_CONNECTIONS, "Max. Verbindige", T_MAX_CONNECTIONS, "Max. Verbindige",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Max. Verbindige zumene Server", T_MAX_CONNECTIONS_TO_ONE_HOST, "Max. Verbindige zumene Server",
@ -219,7 +220,7 @@ T_FRAME_AT_FULL_SCREEN, "Rahme im Vollbildschirm",
T_SAVE_CLIPBOARD_TO_A_FILE, NULL, T_SAVE_CLIPBOARD_TO_A_FILE, NULL,
T_LOAD_CLIPBOARD_FROM_A_FILE, NULL, T_LOAD_CLIPBOARD_FROM_A_FILE, NULL,
T_THE_CLIPBOARD_IS_EMPTY, NULL, T_THE_CLIPBOARD_IS_EMPTY, NULL,
T_SAVE_HTML_OPTIONS, "HTML Sicherheit", T_SAVE_HTML_OPTIONS, "Speichere HTML Optionen",
T_CHARACTER_SET, "Zeichesatz", T_CHARACTER_SET, "Zeichesatz",
T_DEFAULT_CHARSET, NULL, T_DEFAULT_CHARSET, NULL,
T_CACHE, "Cache", T_CACHE, "Cache",
@ -502,20 +503,22 @@ T_MANUAL, "Manual",
T_HOMEPAGE, "Homepage", T_HOMEPAGE, "Homepage",
T_CALIBRATION, "Kalibration", T_CALIBRATION, "Kalibration",
T_MAILTO_PROG, "Mail-Programm (% wird mit Email-Addresse ersetzt)", T_MAILTO_PROG, "Mail-Programm (% wird mit Email-Addresse ersetzt)",
T_SHELL_PROG, "Shell-Programm für externi Ufrüef (% wird mit Kommando ersetzt)",
T_TELNET_PROG, "Telnet-Programm (% wird mit \"host\" oder \"host port\" ersetzt)", T_TELNET_PROG, "Telnet-Programm (% wird mit \"host\" oder \"host port\" ersetzt)",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "TN3270-Programm (% wird mit \"host\" oder \"host port\" ersetzt)", T_TN3270_PROG, "TN3270-Programm (% wird mit \"host\" oder \"host port\" ersetzt)",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, "Shell-Programm für externi Ufrüef (% wird mit Kommando ersetzt)",
T_MAIL_AND_TELNET_PROGRAMS, "Mail-/Telnet-Programme", T_MAIL_AND_TELNET_PROGRAMS, "Mail-/Telnet-Programme",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Mail-/Telnet-/Shell-Programme", T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Mail-/Telnet-/Shell-Programme",
T_NO_PROGRAM, "Keis Programm", T_NO_PROGRAM, "Keis Programm",
T_NO_PROGRAM_SPECIFIED_FOR, "Programm nöd definiert für ", T_NO_PROGRAM_SPECIFIED_FOR, "Programm nöd definiert für ",
T_MAIL, "Mail", T_MAIL, "Mail",
T_TELNET, "Telnet", T_TELNET, "Telnet",
T_MAGNET, NULL,
T_TN3270, "TN3270", T_TN3270, "TN3270",
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "fehlerhafti Mailadresse", T_BAD_MAILTO_URL, "fehlerhafti Mailadresse",
T_BAD_TELNET_URL, "fehlerhafti Telnetadresse", T_BAD_TELNET_URL, "fehlerhafti Telnetadresse",
T_BAD_TN3270_URL, "fehlerhafti TN3270-Adresse", T_BAD_TN3270_URL, "fehlerhafti TN3270-Adresse",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -1,7 +1,7 @@
T__CHAR_SET, "8859-9", T__CHAR_SET, "8859-9",
T__LANGUAGE, "Turkish", T__LANGUAGE, "Turkish",
T__ACCEPT_LANGUAGE, "tr", T__ACCEPT_LANGUAGE, "tr",
T__LOCALE_CODE, "tr_TR", T__LOCALE_CODE, "tr_TR,tr_CY",
T__DEFAULT_CHAR_SET, "ISO-8859-9", T__DEFAULT_CHAR_SET, "ISO-8859-9",
T_OK, "Tamam", T_OK, "Tamam",
T_CANCEL, "Ýptal", T_CANCEL, "Ýptal",
@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Say
T_BAD_STRING, "Hatalý dizi", T_BAD_STRING, "Hatalý dizi",
T_EMPTY_STRING_NOT_ALLOWED, "Boþ diziye izin verilmiyor", T_EMPTY_STRING_NOT_ALLOWED, "Boþ diziye izin verilmiyor",
T_BAD_IP_ADDRESS, "Hatalý IP adresi", T_BAD_IP_ADDRESS, "Hatalý IP adresi",
T_INVALID_IP_ADDRESS_SYNTAX, "Geçersiz IP adresi sözdizimi",
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, "Yerel IP adresi kullanýlamýyor", T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, "Yerel IP adresi kullanýlamýyor",
T_CONFIG_ERROR, "Yapýlandýrma hatasý", T_CONFIG_ERROR, "Yapýlandýrma hatasý",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Yapýlandýrma dosyasýna yazýlamýyor", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Yapýlandýrma dosyasýna yazýlamýyor",
@ -55,10 +54,10 @@ T_THREADS5, "i
T_CONFIGURATION_DIRECTORY, "Yapýlandýrma dizini", T_CONFIGURATION_DIRECTORY, "Yapýlandýrma dizini",
T_NONE, "Yok", T_NONE, "Yok",
T_KEYS, "Düðmeler", T_KEYS, "Düðmeler",
T_KEYS_DESC, "ESC menüyü göster\n^C, q çık\np, l yukarı kaydır, aşağı kaydır\n[, ] sağa kaydır, sola kaydır\nyukarı, aşağı bağlantıyı seç\n-> bağlantıyı izle\n<- geri git\ng adrese git\nG şimdiki adresten yola çıkarak yeni bir adrese git\n/ ara\n? geriye doğru ara\nn tekrar ara\nN geriye doğru tekrar ara\n= belge bilgisi\n\\ kaynağını göster\nd indir", T_KEYS_DESC, "ESC menüyü göster\n^C, q çık\np, l yukarı kaydır, aşağı kaydır\n[, ] sağa kaydır, sola kaydır\nyukarı, aşağı bağlantıyı seç\n-> bağlantıyı izle\n<- geri git\ng adrese git\nG şimdiki adresten yola çıkarak yeni bir adrese git\n/ ara\n? geriye doğru ara\nn yeniden ara\nN geriye doğru yeniden ara\n= belge bilgisi\n\\ kaynağını göster\nd indir",
T_KEYS_BRAILLE_DESC, "a, w imleç durum satýrýna veya baþlýðýna\n{, } imleç satýrýn baþlangýcýna/sonuna\n^Y,^T,y,t,^O git: önceki/sonraki baðlantý/sözcük/form girdisi", T_KEYS_BRAILLE_DESC, "a, w imleç durum satýrýna veya baþlýðýna\n{, } imleç satýrýn baþlangýcýna/sonuna\n^Y,^T,y,t,^O git: önceki/sonraki baðlantý/sözcük/form girdisi",
T_COPYING, "Telif hakký", T_COPYING, "Telif hakký",
T_COPYING_DESC, "Bağlantılar " VERSION_STRING "\n\n" LINKS_COPYRIGHT "\n\n Bu özgür bir yazılımdır; GNU Genel Kamu Lisansı altında dağıtılabilir ve/veya geliştirilebilir.", T_COPYING_DESC, "Bağlantılar " VERSION_STRING "\n\n" LINKS_COPYRIGHT "\n\n Links, özgür bir yazılımdır; GNU Genel Kamu Lisansı altında dağıtılabilir ve/veya geliştirilebilir.",
T_RESOURCES, "Kaynaklar", T_RESOURCES, "Kaynaklar",
T_MEMORY_CACHE, "Önbellek dosyasý", T_MEMORY_CACHE, "Önbellek dosyasý",
T_DECOMPRESSED_CACHE, "Çýkartýlmýþ önbellek", T_DECOMPRESSED_CACHE, "Çýkartýlmýþ önbellek",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, "Dosya mevcut de
T_THE_FILE_HAS_INVALID_FORMAT, "Dosya biçimi geçersiz", T_THE_FILE_HAS_INVALID_FORMAT, "Dosya biçimi geçersiz",
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, "Gömülü sertifikalar kullanýlýrken hata", T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, "Gömülü sertifikalar kullanýlýrken hata",
T_FAILED, "baþarýsýz oldu", T_FAILED, "baþarýsýz oldu",
T_DNS_OPTIONS, "DNS seçenekleri",
T_DNS_OVER_HTTPS_URL, "HTTPS üzerinden DNS (makine veya url)",
T_CONNECTIONS, "Baðlantýlar", T_CONNECTIONS, "Baðlantýlar",
T_MAX_CONNECTIONS, "En çok baðlantý", T_MAX_CONNECTIONS, "En çok baðlantý",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Bir makineye en çok baðlantý", T_MAX_CONNECTIONS_TO_ONE_HOST, "Bir makineye en çok baðlantý",
@ -162,7 +163,7 @@ T_AGGRESSIVE_CACHE, "Agresif
T_HTML_OPTIONS, "HTML seçenekleri", T_HTML_OPTIONS, "HTML seçenekleri",
T_DISPLAY_TABLES, "Tablolarý göster", T_DISPLAY_TABLES, "Tablolarý göster",
T_DISPLAY_FRAMES, "Çerçeveleri göster", T_DISPLAY_FRAMES, "Çerçeveleri göster",
T_BREAK_LONG_LINES, "Uzun satırları kır", T_BREAK_LONG_LINES, "Uzun satırları kes",
T_DISPLAY_IMAGES, "Görselleri göster", T_DISPLAY_IMAGES, "Görselleri göster",
T_DISPLAY_IMAGE_FILENAMES, "Görsel dosya adlarýný göster", T_DISPLAY_IMAGE_FILENAMES, "Görsel dosya adlarýný göster",
T_DISPLAY_LINKS_TO_IMAGES, "Görsellere olan baðlantýlarý göster", T_DISPLAY_LINKS_TO_IMAGES, "Görsellere olan baðlantýlarý göster",
@ -171,8 +172,8 @@ T_NUMBERED_LINKS, "Ba
T_AUTO_REFRESH, "Kendiliðinden yenile", T_AUTO_REFRESH, "Kendiliðinden yenile",
T_TARGET_IN_NEW_WINDOW, "Baðlantýlarýn yeni pencerede açýlmasýna izin ver", T_TARGET_IN_NEW_WINDOW, "Baðlantýlarýn yeni pencerede açýlmasýna izin ver",
T_TEXT_MARGIN, "Metin boþluðu", T_TEXT_MARGIN, "Metin boþluðu",
T_DEFAULT_CODEPAGE, "Öntanımlı karakter seti", T_DEFAULT_CODEPAGE, "Öntanımlı karakter kümesi",
T_IGNORE_CHARSET_INFO_SENT_BY_SERVER, "Sunucu tarafından belirlenmiş karakter setini önemseme", T_IGNORE_CHARSET_INFO_SENT_BY_SERVER, "Sunucu tarafından belirlenmiş karakter kümesini önemseme",
T_TEXT_COLOR, "Metin", T_TEXT_COLOR, "Metin",
T_LINK_COLOR, "Baðlantý", T_LINK_COLOR, "Baðlantý",
T_BACKGROUND_COLOR, "Arka plan", T_BACKGROUND_COLOR, "Arka plan",
@ -213,7 +214,7 @@ T_SEARCH, "Ara",
T_SEARCH_BACK, "Geriye doðru ara", T_SEARCH_BACK, "Geriye doðru ara",
T_FIND_NEXT, "Sonrakini bul", T_FIND_NEXT, "Sonrakini bul",
T_FIND_PREVIOUS, "Öncekini bul", T_FIND_PREVIOUS, "Öncekini bul",
T_TOGGLE_HTML_PLAIN, "HTML/düz metin aç/kapa", T_TOGGLE_HTML_PLAIN, "HTML/düz metin aç/kapat",
T_DOCUMENT_INFO, "Belge bilgisi", T_DOCUMENT_INFO, "Belge bilgisi",
T_FRAME_AT_FULL_SCREEN, "Çerçeve tam ekran", T_FRAME_AT_FULL_SCREEN, "Çerçeve tam ekran",
T_SAVE_CLIPBOARD_TO_A_FILE, "Panoyu bir dosyaya kaydet", T_SAVE_CLIPBOARD_TO_A_FILE, "Panoyu bir dosyaya kaydet",
@ -267,7 +268,7 @@ T_DATA_MODIFIED, "Veri d
T_BAD_URL_SYNTAX, "Hatalý adres yazýmý", T_BAD_URL_SYNTAX, "Hatalý adres yazýmý",
T_BAD_PROXY_SYNTAX, "Hatalý vekil sunucu yazýmý", T_BAD_PROXY_SYNTAX, "Hatalý vekil sunucu yazýmý",
T_RECEIVE_TIMEOUT, "Zaman aþýmý", T_RECEIVE_TIMEOUT, "Zaman aþýmý",
T_REQUEST_MUST_BE_RESTARTED, "İstek tekrar yapılmalı", T_REQUEST_MUST_BE_RESTARTED, "İstek yeniden yapılmalı",
T_CANT_GET_SOCKET_STATE, "Uç durumu alýnamýyor", T_CANT_GET_SOCKET_STATE, "Uç durumu alýnamýyor",
T_CYCLIC_REDIRECT, "Çevrimli yeniden yönlendirme", T_CYCLIC_REDIRECT, "Çevrimli yeniden yönlendirme",
T_TOO_LARGE_FILE, "Dosya çok büyük", T_TOO_LARGE_FILE, "Dosya çok büyük",
@ -345,12 +346,12 @@ T_OPEN, "A
T_OPEN_WITH, "Birlikte aç", T_OPEN_WITH, "Birlikte aç",
T_DO_YOU_WANT_TO_FOLLOW_REDIRECT_AND_POST_FORM_DATA_TO_URL, "Yönlendirmeyi izlemek ve form bilgisini adrese göndermek istiyor musunuz", T_DO_YOU_WANT_TO_FOLLOW_REDIRECT_AND_POST_FORM_DATA_TO_URL, "Yönlendirmeyi izlemek ve form bilgisini adrese göndermek istiyor musunuz",
T_DO_YOU_WANT_TO_POST_FORM_DATA_TO_URL, "Form bilgisini adrese göndermek istiyor musunuz", T_DO_YOU_WANT_TO_POST_FORM_DATA_TO_URL, "Form bilgisini adrese göndermek istiyor musunuz",
T_DO_YOU_WANT_TO_REPOST_FORM_DATA_TO_URL, "Form bilgisini adrese tekrar göndermek istiyor musunuz", T_DO_YOU_WANT_TO_REPOST_FORM_DATA_TO_URL, "Form bilgisini adrese yeniden göndermek istiyor musunuz",
T_WARNING, "Uyarý", T_WARNING, "Uyarý",
T_ERROR, "Hata", T_ERROR, "Hata",
T_WELCOME, "Hoþ geldiniz", T_WELCOME, "Hoþ geldiniz",
T_WELCOME_TO_LINKS, "Links'e hoþ geldiniz!", T_WELCOME_TO_LINKS, "Links'e hoþ geldiniz!",
T_BASIC_HELP, "Menü için ESC ye basın. Kullanıcı kılavuzu için Yardım -> Kılavuz'u seçin.", T_BASIC_HELP, "Menü için ESC'ye basın. Kullanıcı kılavuzu için Yardım -> Kılavuz'u seçin.",
T_LABEL, "Etiketler", T_LABEL, "Etiketler",
T_CONTENT_TYPES, "Content-Type(s)", T_CONTENT_TYPES, "Content-Type(s)",
T_PROGRAM__IS_REPLACED_WITH_FILE_NAME, "Program ('%' dosya adý ile deðiþtirildi)", T_PROGRAM__IS_REPLACED_WITH_FILE_NAME, "Program ('%' dosya adý ile deðiþtirildi)",
@ -371,7 +372,7 @@ T_ERROR_WHILE_POSTING_FORM, "Formu g
T_COULD_NOT_GET_FILE, "Dosya alýnamýyor", T_COULD_NOT_GET_FILE, "Dosya alýnamýyor",
T_READING_FILES_IS_NOT_ALLOWED, "Dosya okumaya izin verilmiyor", T_READING_FILES_IS_NOT_ALLOWED, "Dosya okumaya izin verilmiyor",
T_NO_PREVIOUS_SEARCH, "Geri arama yok", T_NO_PREVIOUS_SEARCH, "Geri arama yok",
T_SEARCH_STRING_NOT_FOUND, "Aranan söz dizimi bulunamadı", T_SEARCH_STRING_NOT_FOUND, "Aranan sözdizim bulunamadı",
T_SAVE_ERROR, "Kaydetme hatasý", T_SAVE_ERROR, "Kaydetme hatasý",
T_ERROR_WRITING_TO_FILE, "Dosyaya yazarken hata", T_ERROR_WRITING_TO_FILE, "Dosyaya yazarken hata",
T_ERROR_READING_THE_FILE, "Dosya okunurken hata", T_ERROR_READING_THE_FILE, "Dosya okunurken hata",
@ -453,25 +454,25 @@ T_BOOKMARKS, "Yer imleri",
T_BOOKMARK, "yer imi", T_BOOKMARK, "yer imi",
T_ADD_BOOKMARK, "Yer imi ekle", T_ADD_BOOKMARK, "Yer imi ekle",
T_ADD_ASSOCIATION, "Ýliþkilendirme ekle", T_ADD_ASSOCIATION, "Ýliþkilendirme ekle",
T_ADD_EXTENSION, "Genişletme ekle", T_ADD_EXTENSION, "Uzantı ekle",
T_ADD_FOLDER, "Klasör ekle", T_ADD_FOLDER, "Klasör ekle",
T_BOOKMARK_TITLE, "Yer imi baþlýðý", T_BOOKMARK_TITLE, "Yer imi baþlýðý",
T_EDIT_BOOKMARK, "Yer imini düzenle", T_EDIT_BOOKMARK, "Yer imini düzenle",
T_EDIT_ASSOCIATION, "Ýliþkilendirmeyi düzenle", T_EDIT_ASSOCIATION, "Ýliþkilendirmeyi düzenle",
T_EDIT_EXTENSION, "Genişletmeyi düzenle", T_EDIT_EXTENSION, "Uzantıyı düzenle",
T_DELETE_BOOKMARK, "Yer imini sil", T_DELETE_BOOKMARK, "Yer imini sil",
T_EDIT_FOLDER, "Klasörü düzenle", T_EDIT_FOLDER, "Klasörü düzenle",
T_DELETE_FOLDER, "Klasörü sil", T_DELETE_FOLDER, "Klasörü sil",
T_NOT_EMPTY_SURE_DELETE, " boş değil. Silmek istediğinizden emin misiniz?", T_NOT_EMPTY_SURE_DELETE, " boş değil. Silmek istediğinize emin misiniz?",
T_BOOKMARK_MANAGER, "Yer imi Yöneticisi", T_BOOKMARK_MANAGER, "Yer imi Yöneticisi",
T_ASSOCIATIONS_MANAGER, "Ýliþkilendirmeler Yöneticisi", T_ASSOCIATIONS_MANAGER, "Ýliþkilendirmeler Yöneticisi",
T_EXTENSIONS_MANAGER, "Genişletmeler Yöneticisi", T_EXTENSIONS_MANAGER, "Uzantılar Yöneticisi",
T_url, "adres", T_url, "adres",
T_NNAME, "Ad", T_NNAME, "Ad",
T_EXIT_LINKS, "Links'ten çýk", T_EXIT_LINKS, "Links'ten çýk",
T_DO_YOU_REALLY_WANT_TO_CLOSE_WINDOW, "Pencereyi kapatmak istediğinizden emin misiniz?", T_DO_YOU_REALLY_WANT_TO_CLOSE_WINDOW, "Pencereyi kapatmak istediğinize emin misiniz?",
T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS, "Links'ten çýkmak istediðinize emin misiniz?", T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS, "Links'ten çýkmak istediðinize emin misiniz?",
T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS_AND_TERMINATE_ALL_DOWNLOADS, "Links'ten çıkmak (ve indirmeleri durdurmak) istediğinizden emin misiniz?", T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS_AND_TERMINATE_ALL_DOWNLOADS, "Links'ten çıkmak (ve indirmeleri durdurmak) istediğinize emin misiniz?",
T_HTTP_OPTIONS, "HTTP seçenekleri", T_HTTP_OPTIONS, "HTTP seçenekleri",
T_FTP_OPTIONS, "FTP seçenekleri", T_FTP_OPTIONS, "FTP seçenekleri",
T_SMB_OPTIONS, "SMB seçenekleri", T_SMB_OPTIONS, "SMB seçenekleri",
@ -484,13 +485,13 @@ T_RETRY_ON_INTERNAL_ERRORS, "
T_HEADER_OPTIONS, "Baþlýk seçenekleri", T_HEADER_OPTIONS, "Baþlýk seçenekleri",
T_HTTP_HEADER_OPTIONS, "HTTP baþlýk seçenekleri", T_HTTP_HEADER_OPTIONS, "HTTP baþlýk seçenekleri",
T_FAKE_FIREFOX, "Kendini Firefox olarak göster (gizliliði iyileþtirir)", T_FAKE_FIREFOX, "Kendini Firefox olarak göster (gizliliði iyileþtirir)",
T_DO_NOT_TRACK, "\"Beni Takip Etme\" isteği gönder", T_DO_NOT_TRACK, "\"Beni İzleme\" isteği gönder",
T_REFERER_NONE, "Referansçı yok", T_REFERER_NONE, "Başvurucu yok",
T_REFERER_SAME_URL, "İstenen URL'yi referansçı olarak gönder", T_REFERER_SAME_URL, "İstenen URL'yi başvurucu olarak gönder",
T_REFERER_FAKE, "Sabit referansçı", T_REFERER_FAKE, "Sabit başvurucu",
T_REFERER_REAL_SAME_SERVER, "Gerçek referansçıyı yalnızca aynı sunucuya gönder", T_REFERER_REAL_SAME_SERVER, "Gerçek başvurucuyu yalnızca aynı sunucuya gönder",
T_REFERER_REAL, "Gerçek referansçıyı gönder (güvensiz işlem!)", T_REFERER_REAL, "Gerçek başvurucuyu gönder (güvensiz işlem!)",
T_FAKE_REFERER, "Sabit HTTP referansçısı", T_FAKE_REFERER, "Sabit HTTP başvurucusu",
T_FAKE_USERAGENT, "Kullanýcý kimliðini baþka göster", T_FAKE_USERAGENT, "Kullanýcý kimliðini baþka göster",
T_EXTRA_HEADER, "Ek baþlýk dizisi (\\ yeni satýr demektir)", T_EXTRA_HEADER, "Ek baþlýk dizisi (\\ yeni satýr demektir)",
T_PASSWORD_FOR_ANONYMOUS_LOGIN, "Adsýz kullanýcý için þifre", T_PASSWORD_FOR_ANONYMOUS_LOGIN, "Adsýz kullanýcý için þifre",
@ -502,27 +503,29 @@ T_MANUAL, "Kullan
T_HOMEPAGE, "Ana sayfa", T_HOMEPAGE, "Ana sayfa",
T_CALIBRATION, "Kalibrasyon", T_CALIBRATION, "Kalibrasyon",
T_MAILTO_PROG, "Posta programý (% adres ile deðiþtirilir)", T_MAILTO_PROG, "Posta programý (% adres ile deðiþtirilir)",
T_SHELL_PROG, "Dış komutları çalıştırmak için kabuk (% kabuk ile değiştirilir)",
T_TELNET_PROG, "Telnet programý (% \"makine\" veya \"makine kapýsý\" ile deðiþtirilir)", T_TELNET_PROG, "Telnet programý (% \"makine\" veya \"makine kapýsý\" ile deðiþtirilir)",
T_MAGNET_PROG, "Mıknatıs programı (% URL ile değiştirilir)",
T_TN3270_PROG, "Tn3270 programý (% \"makine\" veya \"makine kapýsý\" ile deðiþtirilir)", T_TN3270_PROG, "Tn3270 programý (% \"makine\" veya \"makine kapýsý\" ile deðiþtirilir)",
T_MMS_PROG, "MMS programý (% URL ile deðiþtirilir)", T_MMS_PROG, "MMS programý (% URL ile deðiþtirilir)",
T_MAGNET_PROG, "Mıknatıs programı (% URL ile değiştirilir)",
T_GOPHER_PROG, "Gopher programı (% URL ile değiştirilir)",
T_SHELL_PROG, "Dış komutları çalıştırmak için kabuk (% kabuk ile değiştirilir)",
T_MAIL_AND_TELNET_PROGRAMS, "Posta ve Telnet Programlarý", T_MAIL_AND_TELNET_PROGRAMS, "Posta ve Telnet Programlarý",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Posta, Telnet ve kabuk Programlarý", T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Posta, Telnet ve kabuk Programlarý",
T_NO_PROGRAM, "Program yok", T_NO_PROGRAM, "Program yok",
T_NO_PROGRAM_SPECIFIED_FOR, "Program belirlenmemiþ:", T_NO_PROGRAM_SPECIFIED_FOR, "Program belirlenmemiþ:",
T_MAIL, "posta", T_MAIL, "posta",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, "mıknatıs",
T_TN3270, "tn3270", T_TN3270, "tn3270",
T_MMS, "mms", T_MMS, "mms",
T_MAGNET, "mıknatıs",
T_GOPHER, "gopher",
T_BAD_MAILTO_URL, "Adrese posta gönder", T_BAD_MAILTO_URL, "Adrese posta gönder",
T_BAD_TELNET_URL, "Hatalý Telnet adresi", T_BAD_TELNET_URL, "Hatalý Telnet adresi",
T_BAD_TN3270_URL, "Hatalý tn3270 adresi", T_BAD_TN3270_URL, "Hatalý tn3270 adresi",
T_MMS_URL_CONTAINS_INACCEPTABLE_CHARACTERS, "MMS URL'si izin verilmeyen karakterler içeriyor", T_MMS_URL_CONTAINS_INACCEPTABLE_CHARACTERS, "MMS URL'si izin verilmeyen karakterler içeriyor",
T_AUTHORIZATION_REQUIRED, "Kimlik doðrulama gerekli", T_AUTHORIZATION_REQUIRED, "Kimlik doðrulama gerekli",
T_PROXY_AUTHORIZATION_REQUIRED, "Vekil kimlik doðrulamasý gerekli", T_PROXY_AUTHORIZATION_REQUIRED, "Vekil kimlik doðrulamasý gerekli",
T_USERID, "Kullanıcı ID'si", T_USERID, "Kullanıcı kimliği",
T_PASSWORD, "Parola", T_PASSWORD, "Parola",
T_ENTER_USERNAME, "Kullanýcý adýný gir: ", T_ENTER_USERNAME, "Kullanýcý adýný gir: ",
T_AT, "/", T_AT, "/",
@ -531,12 +534,12 @@ T_DOESNT_HAVE_A_VALID_CERTIFICATE, " ge
T_USES_DOWNGRADED_METHOD, " eskimiþ SSL/TLS yöntemleri kullanýyor. Yine de baðlanmak istiyor musunuz?", T_USES_DOWNGRADED_METHOD, " eskimiþ SSL/TLS yöntemleri kullanýyor. Yine de baðlanmak istiyor musunuz?",
T_USES_INSECURE_CIPHER, " güvensiz þifreleme kullanýyor. Yine de baðlanmak istiyor musunuz?", T_USES_INSECURE_CIPHER, " güvensiz þifreleme kullanýyor. Yine de baðlanmak istiyor musunuz?",
T_WAITING_FOR_REDIRECT_CONFIRMATION, "Yönlendirme onayý için bekleniyor", T_WAITING_FOR_REDIRECT_CONFIRMATION, "Yönlendirme onayý için bekleniyor",
T_DECOMPRESSION_ERROR, "Sıkıştırma açım hatası", T_DECOMPRESSION_ERROR, "Sıkıştırma açma hatası",
T_ERROR_DECOMPRESSING_, "Þu sýkýþtýrma açýlýrken: ", T_ERROR_DECOMPRESSING_, "Þu sýkýþtýrma açýlýrken: ",
T__wITH_, " ile ", T__wITH_, " ile ",
T_COMPRESSED_ERROR, "Sýkýþtýrýlmýþ veride hata", T_COMPRESSED_ERROR, "Sýkýþtýrýlmýþ veride hata",
T_UNKNOWN_COMPRESSION_METHOD, "Bilinmeyen sýkýþtýrma yöntemi", T_UNKNOWN_COMPRESSION_METHOD, "Bilinmeyen sýkýþtýrma yöntemi",
T_SURE_DELETE, "Silmek istediğinizden emin misiniz?", T_SURE_DELETE, "Silmek istediğinize emin misiniz?",
T_BOOKMARKS_ALREADY_IN_USE, "Yer imleri halihazýrda kullanýmda!", T_BOOKMARKS_ALREADY_IN_USE, "Yer imleri halihazýrda kullanýmda!",
T_ASSOCIATIONS_ALREADY_IN_USE, "Ýliþkilendirmeler halihazýrda kullanýmda!", T_ASSOCIATIONS_ALREADY_IN_USE, "Ýliþkilendirmeler halihazýrda kullanýmda!",
T_EXTENSIONS_ALREADY_IN_USE, "Geniþletmeler halihazýrda kullanýmda!", T_EXTENSIONS_ALREADY_IN_USE, "Geniþletmeler halihazýrda kullanýmda!",
@ -622,7 +625,7 @@ T_BLOCK_URL, "G
T_BLOCK_LIST, "Engellenmiþ görseller", T_BLOCK_LIST, "Engellenmiþ görseller",
T_BLOCKED_IMAGE, "Engellenmiþ görseller", T_BLOCKED_IMAGE, "Engellenmiþ görseller",
T_BLOCK_LIST_IN_USE, "Engellenmiþ görseller halihazýrda açýk", T_BLOCK_LIST_IN_USE, "Engellenmiþ görseller halihazýrda açýk",
T_BLOCK_LIST_MANAGER, "Görsel engelleme yöneticisi", T_BLOCK_LIST_MANAGER, "Görsel Engelleme Yöneticisi",
T_BLOCK_ADD, "Engellemek için görsel URL'si girin", T_BLOCK_ADD, "Engellemek için görsel URL'si girin",
T_BLOCK_EDIT, "Görsel URL'sini düzenle", T_BLOCK_EDIT, "Görsel URL'sini düzenle",
T_BLOCK_DELETE, "Kaldýr", T_BLOCK_DELETE, "Kaldýr",
@ -668,9 +671,10 @@ T_HK_CONNECTIONS, "R",
T_HK_IPV6_OPTIONS, "6", T_HK_IPV6_OPTIONS, "6",
T_HK_PROXIES, "V", T_HK_PROXIES, "V",
T_HK_SSL_OPTIONS, "S", T_HK_SSL_OPTIONS, "S",
T_HK_DNS_OPTIONS, "D",
T_HK_HTTP_OPTIONS, "H", T_HK_HTTP_OPTIONS, "H",
T_HK_FTP_OPTIONS, "F", T_HK_FTP_OPTIONS, "F",
T_HK_SMB_OPTIONS, "S", T_HK_SMB_OPTIONS, "M",
T_HK_JAVASCRIPT_OPTIONS, "J", T_HK_JAVASCRIPT_OPTIONS, "J",
T_HK_MISCELANEOUS_OPTIONS, "S", T_HK_MISCELANEOUS_OPTIONS, "S",
T_HK_COOKIES, "Z", T_HK_COOKIES, "Z",
@ -678,7 +682,7 @@ T_HK_FONTS, "Y",
T_HK_CACHE, "N", T_HK_CACHE, "N",
T_HK_MAIL_AND_TELNEL, "P", T_HK_MAIL_AND_TELNEL, "P",
T_HK_ASSOCIATIONS, "L", T_HK_ASSOCIATIONS, "L",
T_HK_FILE_EXTENSIONS, "Z", T_HK_FILE_EXTENSIONS, "D",
T_HK_BLOCK_LIST, "G", T_HK_BLOCK_LIST, "G",
T_HK_SAVE_OPTIONS, "T", T_HK_SAVE_OPTIONS, "T",
T_HK_ABOUT, "H", T_HK_ABOUT, "H",

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "
T_BAD_STRING, "îÅÐÒÁ×ÉÌØÎÉÊ ÒÑÄÏË", T_BAD_STRING, "îÅÐÒÁ×ÉÌØÎÉÊ ÒÑÄÏË",
T_EMPTY_STRING_NOT_ALLOWED, "ðÏÒÏÖΦ ÒÑÄËÉ ÎÅÄÏÐÕÓÔÉͦ", T_EMPTY_STRING_NOT_ALLOWED, "ðÏÒÏÖΦ ÒÑÄËÉ ÎÅÄÏÐÕÓÔÉͦ",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "ðÏÍÉÌËÁ ËÏÎƦÇÕÒÁæ§", T_CONFIG_ERROR, "ðÏÍÉÌËÁ ËÏÎƦÇÕÒÁæ§",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "îÅ ÍÏÖÕ ÚÁÐÉÓÁÔÉ ÆÁÊÌ ËÏÎƦÇÕÒÁæ§", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "îÅ ÍÏÖÕ ÚÁÐÉÓÁÔÉ ÆÁÊÌ ËÏÎƦÇÕÒÁæ§",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "ú'¤ÄÎÁÎÎÑ", T_CONNECTIONS, "ú'¤ÄÎÁÎÎÑ",
T_MAX_CONNECTIONS, "íÁËÓ. ÞÉÓÌÏ Ú'¤ÄÎÁÎØ", T_MAX_CONNECTIONS, "íÁËÓ. ÞÉÓÌÏ Ú'¤ÄÎÁÎØ",
T_MAX_CONNECTIONS_TO_ONE_HOST, "íÁËÓ. ÞÉÓÌÏ Ú'¤ÄÎÁÎØ Ú ÏÄÎÉÍ ÓÅÒ×ÅÒÏÍ", T_MAX_CONNECTIONS_TO_ONE_HOST, "íÁËÓ. ÞÉÓÌÏ Ú'¤ÄÎÁÎØ Ú ÏÄÎÉÍ ÓÅÒ×ÅÒÏÍ",
@ -502,20 +503,22 @@ T_MANUAL, "
T_HOMEPAGE, NULL, T_HOMEPAGE, NULL,
T_CALIBRATION, NULL, T_CALIBRATION, NULL,
T_MAILTO_PROG, "ðÏÛÔÏ×Á ÐÒÏÇÒÁÍÁ (% ÚÁͦÎÀ¤ÔØÓÑ ÁÄÒÅÓÏÀ)", T_MAILTO_PROG, "ðÏÛÔÏ×Á ÐÒÏÇÒÁÍÁ (% ÚÁͦÎÀ¤ÔØÓÑ ÁÄÒÅÓÏÀ)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "ðÒÏÇÒÁÍÁ telnet (% ÚÁͦÎÀ¤ÔØÓÑ ÎÁ 'host' ÁÂÏ 'host port')", T_TELNET_PROG, "ðÒÏÇÒÁÍÁ telnet (% ÚÁͦÎÀ¤ÔØÓÑ ÎÁ 'host' ÁÂÏ 'host port')",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "ðÒÏÇÒÁÍÁ tn3270 (% ÚÁͦÎÀ¤ÔØÓÑ ÎÁ 'host' ÁÂÏ 'host port')", T_TN3270_PROG, "ðÒÏÇÒÁÍÁ tn3270 (% ÚÁͦÎÀ¤ÔØÓÑ ÎÁ 'host' ÁÂÏ 'host port')",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "ðÒÏÇÒÁÍÉ ÄÌÑ ÐÏÛÔÉ ÔÁ telnet", T_MAIL_AND_TELNET_PROGRAMS, "ðÒÏÇÒÁÍÉ ÄÌÑ ÐÏÛÔÉ ÔÁ telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL, T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "îÅÍÁ¤ ÐÒÏÇÒÁÍÉ", T_NO_PROGRAM, "îÅÍÁ¤ ÐÒÏÇÒÁÍÉ",
T_NO_PROGRAM_SPECIFIED_FOR, "îÅ ×ËÁÚÁÎÏ ÐÒÏÇÒÁÍÕ ÄÌÑ", T_NO_PROGRAM_SPECIFIED_FOR, "îÅ ×ËÁÚÁÎÏ ÐÒÏÇÒÁÍÕ ÄÌÑ",
T_MAIL, "ÐÏÛÔÉ", T_MAIL, "ÐÏÛÔÉ",
T_TELNET, NULL, T_TELNET, NULL,
T_MAGNET, NULL,
T_TN3270, NULL, T_TN3270, NULL,
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "îÅÐÒÁ×ÉÌØÎÁ ÁÄÒÅÓÁ mailto:", T_BAD_MAILTO_URL, "îÅÐÒÁ×ÉÌØÎÁ ÁÄÒÅÓÁ mailto:",
T_BAD_TELNET_URL, "îÅÐÒÁ×ÉÌØÎÁ ÁÄÒÅÓÁ telnet", T_BAD_TELNET_URL, "îÅÐÒÁ×ÉÌØÎÁ ÁÄÒÅÓÁ telnet",
T_BAD_TN3270_URL, "îÅÐÒÁ×ÉÌØÎÁ ÁÄÒÅÓÁ tn3270", T_BAD_TN3270_URL, "îÅÐÒÁ×ÉÌØÎÁ ÁÄÒÅÓÁ tn3270",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Li
T_BAD_STRING, "Njekorektny wuraz", T_BAD_STRING, "Njekorektny wuraz",
T_EMPTY_STRING_NOT_ALLOWED, "Nulowy wuraz njedowoleny", T_EMPTY_STRING_NOT_ALLOWED, "Nulowy wuraz njedowoleny",
T_BAD_IP_ADDRESS, NULL, T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL, T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Zmylk konfiguracije", T_CONFIG_ERROR, "Zmylk konfiguracije",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Njemó¾u do konfiguraciskeje dataje pisaæ", T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Njemó¾u do konfiguraciskeje dataje pisaæ",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, NULL,
T_THE_FILE_HAS_INVALID_FORMAT, NULL, T_THE_FILE_HAS_INVALID_FORMAT, NULL,
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL, T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL, T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "zwiskow", T_CONNECTIONS, "zwiskow",
T_MAX_CONNECTIONS, "Maksimalna lièba zwiskow", T_MAX_CONNECTIONS, "Maksimalna lièba zwiskow",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Maksimalna lièba zwiskow z jednym serwerom", T_MAX_CONNECTIONS_TO_ONE_HOST, "Maksimalna lièba zwiskow z jednym serwerom",
@ -502,20 +503,22 @@ T_MANUAL, "P
T_HOMEPAGE, "Domjaca strona", T_HOMEPAGE, "Domjaca strona",
T_CALIBRATION, "Kalibracija", T_CALIBRATION, "Kalibracija",
T_MAILTO_PROG, "Emailowy program (% so z emailowej adresu naruna)", T_MAILTO_PROG, "Emailowy program (% so z emailowej adresu naruna)",
T_SHELL_PROG, "Programowy interpreter (% so naruna z pøikazom)",
T_TELNET_PROG, "Program za telnet (% naruna so z \"host\" abo \"host port\")", T_TELNET_PROG, "Program za telnet (% naruna so z \"host\" abo \"host port\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Program za Tn3270 (% naruna so z \"host\" abo \"host port\")", T_TN3270_PROG, "Program za Tn3270 (% naruna so z \"host\" abo \"host port\")",
T_MMS_PROG, NULL, T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, "Programowy interpreter (% so naruna z pøikazom)",
T_MAIL_AND_TELNET_PROGRAMS, "Elektroniska pó¹ta a telnet", T_MAIL_AND_TELNET_PROGRAMS, "Elektroniska pó¹ta a telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Programy za elektronisku pó¹tu, telnet a komanda", T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Programy za elektronisku pó¹tu, telnet a komanda",
T_NO_PROGRAM, "®adyn program", T_NO_PROGRAM, "®adyn program",
T_NO_PROGRAM_SPECIFIED_FOR, "®adyn program podaty za", T_NO_PROGRAM_SPECIFIED_FOR, "®adyn program podaty za",
T_MAIL, "email", T_MAIL, "email",
T_TELNET, "telnet", T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, NULL, T_TN3270, NULL,
T_MMS, NULL, T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Hubjena emailowa adresa", T_BAD_MAILTO_URL, "Hubjena emailowa adresa",
T_BAD_TELNET_URL, "Hubjena adresa serwera za telnet", T_BAD_TELNET_URL, "Hubjena adresa serwera za telnet",
T_BAD_TN3270_URL, "Hubjena adresa serwera za Tn3270", T_BAD_TN3270_URL, "Hubjena adresa serwera za Tn3270",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL, T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL, T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL, T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL, T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL, T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL, T_HK_SMB_OPTIONS, NULL,

View File

@ -2,6 +2,7 @@
* (c) 2002 Mikulas Patocka * (c) 2002 Mikulas Patocka
* This file is a part of the Links program, released under GPL. * This file is a part of the Links program, released under GPL.
*/ */
#include <langinfo.h>
#include "links.h" #include "links.h"
@ -130,6 +131,8 @@ int get_default_charset(void)
lang = cast_uchar getenv("LC_CTYPE"); lang = cast_uchar getenv("LC_CTYPE");
if (!lang) if (!lang)
lang = cast_uchar getenv("LANG"); lang = cast_uchar getenv("LANG");
if (!lang)
lang = cast_uchar nl_langinfo(CODESET);
if (!lang) { if (!lang) {
i = 0; i = 0;
goto ret_i; goto ret_i;

1414
language.h

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

16
links.1
View File

@ -141,11 +141,11 @@ Timeout for connection when trying multiple addresses or when resuming a keepali
(default: 3) (default: 3)
.TP .TP
\f3-bind-address \f2<ip address>\f1 \f3-bind-address \f2<ip address or interface name>\f1
Use a specific local IP address. Use a specific local IP address.
.TP .TP
\f3-bind-address-ipv6 \f2<ipv6 address>\f1 \f3-bind-address-ipv6 \f2<ipv6 address or interface name>\f1
Use a specific local IPv6 address. Use a specific local IPv6 address.
.TP .TP
@ -156,10 +156,6 @@ Don't use libevent library.
\f3-no-openmp\f1 \f3-no-openmp\f1
Don't use OpenMP. Don't use OpenMP.
.TP
\f3-async-dns \f2<0>/<1>\f1
Asynchronous DNS resolver on(1)/off(0).
.TP .TP
\f3-download-utime \f2<0>/<1>\f1 \f3-download-utime \f2<0>/<1>\f1
Set time of downloaded files to last modification time reported by server. Set time of downloaded files to last modification time reported by server.
@ -258,6 +254,14 @@ Name of the PEM encoded file with the user certificate for client certificate au
\f3-ssl.client-cert-password \f2<text>\f1 \f3-ssl.client-cert-password \f2<text>\f1
Password for the user private key. Password for the user private key.
.TP
\f3-async-dns \f2<0>/<1>\f1
Asynchronous DNS resolver on(1)/off(0).
.TP
\f3-dns-over-https \f2<url>\f1
DNS over HTTPS url.
.TP .TP
\f3-http-bugs.http10 \f2<0>/<1>\f1 \f3-http-bugs.http10 \f2<0>/<1>\f1
(default 0) "1" forces using only HTTP/1.0 protocol. (useful for buggy servers (default 0) "1" forces using only HTTP/1.0 protocol. (useful for buggy servers

101
links.h
View File

@ -1042,11 +1042,14 @@ void init_os(void);
void init_os_terminal(void); void init_os_terminal(void);
void get_path_to_exe(void); void get_path_to_exe(void);
int os_get_system_name(unsigned char *buffer); int os_get_system_name(unsigned char *buffer);
#ifdef WIN
void translate_win32_to_unix(unsigned char **str);
#endif
unsigned char *os_conv_to_external_path(unsigned char *, unsigned char *); unsigned char *os_conv_to_external_path(unsigned char *, unsigned char *);
unsigned char *os_fixup_external_program(unsigned char *); unsigned char *os_fixup_external_program(unsigned char *);
int exe(unsigned char *, int); int exe(unsigned char *, int);
#ifdef WIN #ifdef WIN
int exe_on_background(unsigned char *, unsigned char *); int exe_on_background(unsigned char *, unsigned char *, int);
int windows_charset(void); int windows_charset(void);
#define HAVE_EXE_ON_BACKGROUND #define HAVE_EXE_ON_BACKGROUND
#endif #endif
@ -1134,9 +1137,9 @@ void debug_test_free(unsigned char *file, int line);
#define FD_ZERO(p) memset((void *)(p), 0, sizeof(*(p))) #define FD_ZERO(p) memset((void *)(p), 0, sizeof(*(p)))
#endif #endif
extern int terminate_loop; extern int terminate_loop;
void portable_sleep(unsigned msec);
int can_write(int fd); int can_write(int fd);
int can_read(int fd); int can_read(int fd);
int can_read_timeout(int fd, int sec); int can_read_timeout(int fd, int sec);
@ -1153,11 +1156,9 @@ void add_event_string(unsigned char **, int *, struct terminal *);
struct timer; struct timer;
struct timer *install_timer(uttime, void (*)(void *), void *); struct timer *install_timer(uttime, void (*)(void *), void *);
void kill_timer(struct timer *); void kill_timer(struct timer *);
void portable_sleep(unsigned msec); int verify_handle(int);
#define H_READ 0 #define H_READ 0
#define H_WRITE 1 #define H_WRITE 1
void (*get_handler(int, int))(void *); void (*get_handler(int, int))(void *);
void *get_handler_data(int); void *get_handler_data(int);
extern unsigned char *sh_file; extern unsigned char *sh_file;
@ -1181,11 +1182,7 @@ void omp_end(void);
/* dns.c */ /* dns.c */
#ifdef USE_GETADDRINFO
#define MAX_ADDRESSES 64 #define MAX_ADDRESSES 64
#else
#define MAX_ADDRESSES 1
#endif
struct host_address { struct host_address {
int af; int af;
@ -1206,6 +1203,22 @@ struct lookup_state {
int target_port; int target_port;
}; };
struct dnsquery_doh;
struct dnsquery {
#ifndef THREAD_SAFE_LOOKUP
struct dnsquery *next_in_queue;
#endif
void (*fn)(void *, int);
void *data;
int h;
void **s;
struct dnsquery_doh *doh;
struct lookup_result *addr;
int addr_preference;
unsigned char name[1];
};
#ifdef SUPPORT_IPV6 #ifdef SUPPORT_IPV6
extern int support_ipv6; extern int support_ipv6;
#else #else
@ -1216,21 +1229,25 @@ int numeric_ip_address(unsigned char *name, unsigned char address[4]);
#ifdef SUPPORT_IPV6 #ifdef SUPPORT_IPV6
int numeric_ipv6_address(unsigned char *name, unsigned char address[16], unsigned *scope_id); int numeric_ipv6_address(unsigned char *name, unsigned char address[16], unsigned *scope_id);
#endif #endif
void add_address(struct lookup_result *host, int af, unsigned char *address, unsigned scope_id, int preference);
void rotate_addresses(struct lookup_result *); void rotate_addresses(struct lookup_result *);
void do_real_lookup(unsigned char *, int, struct lookup_result *); void do_real_lookup(unsigned char *, int, struct lookup_result *);
int find_host(unsigned char *, struct lookup_result *, void **, void (*)(void *, int), void *); void end_dns_lookup(struct dnsquery *, int, uttime);
int find_host_no_cache(unsigned char *, struct lookup_result *, void **, void (*)(void *, int), void *); void find_host_no_cache(unsigned char *, int, struct lookup_result *, void **, void (*)(void *, int), void *);
int find_host_in_cache(unsigned char *, struct lookup_result *, void **, void (*)(void *, int), void *);
void kill_dns_request(void **); void kill_dns_request(void **);
void dns_prefetch(unsigned char *); void dns_prefetch(unsigned char *);
#if MAX_ADDRESSES > 1
void dns_set_priority(unsigned char *, struct host_address *, int); void dns_set_priority(unsigned char *, struct host_address *, int);
#endif
void dns_clear_host(unsigned char *); void dns_clear_host(unsigned char *);
unsigned long dns_info(int type); unsigned long dns_info(int type);
unsigned char *print_address(struct host_address *); unsigned char *print_address(struct host_address *);
int ipv6_full_access(void); int ipv6_full_access(void);
void init_dns(void); void init_dns(void);
/* doh.c */
void do_doh_lookup(struct dnsquery *);
/* cache.c */ /* cache.c */
struct cache_entry { struct cache_entry {
@ -1283,8 +1300,9 @@ int defrag_entry(struct cache_entry *);
void truncate_entry(struct cache_entry *, off_t, int); void truncate_entry(struct cache_entry *, off_t, int);
void free_entry_to(struct cache_entry *, off_t); void free_entry_to(struct cache_entry *, off_t);
void delete_entry_content(struct cache_entry *); void delete_entry_content(struct cache_entry *);
void delete_cache_entry(struct cache_entry *e);
void trim_cache_entry(struct cache_entry *e); void trim_cache_entry(struct cache_entry *e);
void delete_cache_entry(struct cache_entry *e);
void finish_cache_entry(struct cache_entry *e);
/* sched.c */ /* sched.c */
@ -1300,6 +1318,7 @@ typedef struct {
} links_ssl; } links_ssl;
#endif #endif
#define PRI_DOH 0
#define PRI_MAIN 0 #define PRI_MAIN 0
#define PRI_DOWNLOAD 0 #define PRI_DOWNLOAD 0
#define PRI_FRAME 1 #define PRI_FRAME 1
@ -1350,6 +1369,7 @@ struct connection {
off_t est_length; off_t est_length;
int unrestartable; int unrestartable;
int no_compress; int no_compress;
int doh;
struct remaining_info prg; struct remaining_info prg;
struct timer *timer; struct timer *timer;
int detached; int detached;
@ -1474,6 +1494,7 @@ struct status {
list_entry_last list_entry_last
}; };
int is_noproxy_host(unsigned char *host);
int is_noproxy_url(unsigned char *url); int is_noproxy_url(unsigned char *url);
unsigned char *get_proxy_string(unsigned char *url); unsigned char *get_proxy_string(unsigned char *url);
unsigned char *get_proxy(unsigned char *url); unsigned char *get_proxy(unsigned char *url);
@ -1493,7 +1514,7 @@ void abort_connection(struct connection *c);
#define ALLOW_SMB 1 #define ALLOW_SMB 1
#define ALLOW_FILE 2 #define ALLOW_FILE 2
#define ALLOW_ALL (ALLOW_SMB | ALLOW_FILE) #define ALLOW_ALL (ALLOW_SMB | ALLOW_FILE)
void load_url(unsigned char *, unsigned char *, struct status *, int, int, int, int, off_t); void load_url(unsigned char *, unsigned char *, struct status *, int, int, int, int, int, off_t);
void change_connection(struct status *, struct status *, int); void change_connection(struct status *, struct status *, int);
void detach_connection(struct status *, off_t, int, int); void detach_connection(struct status *, off_t, int, int);
void abort_all_connections(void); void abort_all_connections(void);
@ -1698,11 +1719,12 @@ void smb_func(struct connection *);
/* mailto.c */ /* mailto.c */
void magnet_func(struct session *, unsigned char *);
void mailto_func(struct session *, unsigned char *); void mailto_func(struct session *, unsigned char *);
void telnet_func(struct session *, unsigned char *); void telnet_func(struct session *, unsigned char *);
void tn3270_func(struct session *, unsigned char *); void tn3270_func(struct session *, unsigned char *);
void mms_func(struct session *, unsigned char *); void mms_func(struct session *, unsigned char *);
void magnet_func(struct session *, unsigned char *);
void gopher_func(struct session *, unsigned char *);
/* kbd.c */ /* kbd.c */
@ -2153,9 +2175,11 @@ struct style {
/* ?0 are background, ?1 foreground. /* ?0 are background, ?1 foreground.
* These are unrounded 8-bit sRGB space * These are unrounded 8-bit sRGB space
*/ */
unsigned char flags; /* non-zero means underline */ unsigned char flags; /* FF_ flags */
int height; int height;
long underline_color; /* Valid only if flags are nonzero */ long line_color; /* Valid only if flags includes FF_UNDERLINE or
* FF_STRIKE
*/
int mono_space; /* -1 if the font is not monospaced int mono_space; /* -1 if the font is not monospaced
* width of the space otherwise * width of the space otherwise
*/ */
@ -2245,6 +2269,7 @@ int hack_rgb(int rgb);
#define FF_MONOSPACED 2 #define FF_MONOSPACED 2
#define FF_ITALIC 4 #define FF_ITALIC 4
#define FF_UNDERLINE 8 #define FF_UNDERLINE 8
#define FF_STRIKE 16
#ifndef USE_ITALIC #ifndef USE_ITALIC
#define FF_SHAPES 4 #define FF_SHAPES 4
@ -3143,6 +3168,14 @@ struct g_object_tag {
#define IM_SVG 5 #define IM_SVG 5
#endif /* #ifdef HAVE_SVG */ #endif /* #ifdef HAVE_SVG */
#ifdef HAVE_WEBP
#define IM_WEBP 6
#endif /* #ifdef HAVE_WEBP */
#ifdef HAVE_AVIF
#define IM_AVIF 7
#endif /* #ifdef HAVE_AVIF */
#define MEANING_DIMS 0 #define MEANING_DIMS 0
#define MEANING_AUTOSCALE 1 #define MEANING_AUTOSCALE 1
struct cached_image { struct cached_image {
@ -4342,6 +4375,32 @@ void add_svg_version(unsigned char **s, int *l);
#endif #endif
/* webp.c */
#if defined(G) && defined(HAVE_WEBP)
void webp_start(struct cached_image *cimg);
void webp_restart(struct cached_image *cimg, unsigned char *data, int length);
void webp_finish(struct cached_image *cimg);
void webp_destroy_decoder(struct cached_image *cimg);
void add_webp_version(unsigned char **s, int *l);
#endif
/* avif.c */
#if defined(G) && defined(HAVE_AVIF)
void avif_start(struct cached_image *cimg);
void avif_restart(struct cached_image *cimg, unsigned char *data, int length);
void avif_finish(struct cached_image *cimg);
void avif_destroy_decoder(struct cached_image *cimg);
void add_avif_version(unsigned char **s, int *l);
#endif
/* img.c */ /* img.c */
#ifdef G #ifdef G
@ -4501,6 +4560,7 @@ void init_grview(void);
#define AT_FIXED 8 #define AT_FIXED 8
#define AT_GRAPHICS 16 #define AT_GRAPHICS 16
#define AT_INVERT 32 #define AT_INVERT 32
#define AT_STRIKE 64
#define AL_LEFT 0 #define AL_LEFT 0
#define AL_CENTER 1 #define AL_CENTER 1
@ -4890,7 +4950,6 @@ extern int unrestartable_receive_timeout;
extern int timeout_multiple_addresses; extern int timeout_multiple_addresses;
extern unsigned char bind_ip_address[16]; extern unsigned char bind_ip_address[16];
extern unsigned char bind_ipv6_address[INET6_ADDRSTRLEN]; extern unsigned char bind_ipv6_address[INET6_ADDRSTRLEN];
extern int async_lookup;
extern int download_utime; extern int download_utime;
extern int max_format_cache_entries; extern int max_format_cache_entries;
@ -4943,6 +5002,9 @@ struct ssl_options {
extern struct ssl_options ssl_options; extern struct ssl_options ssl_options;
extern int async_lookup;
extern unsigned char dns_over_https[MAX_STR_LEN];
struct http_header_options { struct http_header_options {
int fake_firefox; int fake_firefox;
int do_not_track; int do_not_track;
@ -5153,6 +5215,7 @@ extern struct list_head telnet_prog;
extern struct list_head tn3270_prog; extern struct list_head tn3270_prog;
extern struct list_head mms_prog; extern struct list_head mms_prog;
extern struct list_head magnet_prog; extern struct list_head magnet_prog;
extern struct list_head gopher_prog;
unsigned char *get_compress_by_extension(unsigned char *ext, unsigned char *ext_end); unsigned char *get_compress_by_extension(unsigned char *ext, unsigned char *ext_end);
unsigned char *get_content_type_by_extension(unsigned char *url); unsigned char *get_content_type_by_extension(unsigned char *url);

View File

@ -88,6 +88,7 @@ File c:\cygwin\bin\cygcroco-0.6-3.dll
File c:\cygwin\bin\cygcrypto-1.1.dll File c:\cygwin\bin\cygcrypto-1.1.dll
File c:\cygwin\bin\cygdatrie-1.dll File c:\cygwin\bin\cygdatrie-1.dll
File c:\cygwin\bin\cygdeflate-0.dll File c:\cygwin\bin\cygdeflate-0.dll
File c:\cygwin\bin\cygevent-2-0-5.dll
File c:\cygwin\bin\cygexpat-1.dll File c:\cygwin\bin\cygexpat-1.dll
File c:\cygwin\bin\cygffi-6.dll File c:\cygwin\bin\cygffi-6.dll
File c:\cygwin\bin\cygfontconfig-1.dll File c:\cygwin\bin\cygfontconfig-1.dll
@ -181,6 +182,7 @@ Delete "$INSTDIR\cygcroco-0.6-3.dll"
Delete "$INSTDIR\cygcrypto-1.1.dll" Delete "$INSTDIR\cygcrypto-1.1.dll"
Delete "$INSTDIR\cygdatrie-1.dll" Delete "$INSTDIR\cygdatrie-1.dll"
Delete "$INSTDIR\cygdeflate-0.dll" Delete "$INSTDIR\cygdeflate-0.dll"
Delete "$INSTDIR\cygevent-2-0-5.dll"
Delete "$INSTDIR\cygexpat-1.dll" Delete "$INSTDIR\cygexpat-1.dll"
Delete "$INSTDIR\cygffi-6.dll" Delete "$INSTDIR\cygffi-6.dll"
Delete "$INSTDIR\cygfontconfig-1.dll" Delete "$INSTDIR\cygfontconfig-1.dll"

View File

@ -1,7 +1,7 @@
<WARPIN> <WARPIN>
<HEAD> <HEAD>
<PCK INDEX="1" <PCK INDEX="1"
PACKAGEID="Mikulas Patocka\Links\Base package\2\25" PACKAGEID="Mikulas Patocka\Links\Base package\2\29"
TARGET="?:\Links" TARGET="?:\Links"
SELECT SELECT
TITLE="Links" TITLE="Links"

View File

@ -89,6 +89,7 @@ File c:\cygwin64\bin\cygcrypto-1.1.dll
File c:\cygwin64\bin\cygdatrie-1.dll File c:\cygwin64\bin\cygdatrie-1.dll
File c:\cygwin64\bin\cygdeflate-0.dll File c:\cygwin64\bin\cygdeflate-0.dll
File c:\cygwin64\bin\cygexpat-1.dll File c:\cygwin64\bin\cygexpat-1.dll
File c:\cygwin64\bin\cygevent-2-1-7.dll
File c:\cygwin64\bin\cygffi-6.dll File c:\cygwin64\bin\cygffi-6.dll
File c:\cygwin64\bin\cygfontconfig-1.dll File c:\cygwin64\bin\cygfontconfig-1.dll
File c:\cygwin64\bin\cygfreetype-6.dll File c:\cygwin64\bin\cygfreetype-6.dll
@ -113,10 +114,11 @@ File c:\cygwin64\bin\cygpcre-1.dll
File c:\cygwin64\bin\cygpixman-1-0.dll File c:\cygwin64\bin\cygpixman-1-0.dll
File c:\cygwin64\bin\cygpng16-16.dll File c:\cygwin64\bin\cygpng16-16.dll
File c:\cygwin64\bin\cygrsvg-2-2.dll File c:\cygwin64\bin\cygrsvg-2-2.dll
File c:\cygwin64\bin\cygsharpyuv-0.dll
File c:\cygwin64\bin\cygssl-1.1.dll File c:\cygwin64\bin\cygssl-1.1.dll
File c:\cygwin64\bin\cygstdc++-6.dll File c:\cygwin64\bin\cygstdc++-6.dll
File c:\cygwin64\bin\cygthai-0.dll File c:\cygwin64\bin\cygthai-0.dll
File c:\cygwin64\bin\cygtiff-6.dll File c:\cygwin64\bin\cygtiff-7.dll
File c:\cygwin64\bin\cyguuid-1.dll File c:\cygwin64\bin\cyguuid-1.dll
File c:\cygwin64\bin\cygwebp-7.dll File c:\cygwin64\bin\cygwebp-7.dll
File c:\cygwin64\bin\cygxcb-1.dll File c:\cygwin64\bin\cygxcb-1.dll
@ -181,6 +183,7 @@ Delete "$INSTDIR\cygcroco-0.6-3.dll"
Delete "$INSTDIR\cygcrypto-1.1.dll" Delete "$INSTDIR\cygcrypto-1.1.dll"
Delete "$INSTDIR\cygdatrie-1.dll" Delete "$INSTDIR\cygdatrie-1.dll"
Delete "$INSTDIR\cygdeflate-0.dll" Delete "$INSTDIR\cygdeflate-0.dll"
Delete "$INSTDIR\cygevent-2-1-7.dll"
Delete "$INSTDIR\cygexpat-1.dll" Delete "$INSTDIR\cygexpat-1.dll"
Delete "$INSTDIR\cygffi-6.dll" Delete "$INSTDIR\cygffi-6.dll"
Delete "$INSTDIR\cygfontconfig-1.dll" Delete "$INSTDIR\cygfontconfig-1.dll"
@ -206,10 +209,11 @@ Delete "$INSTDIR\cygpcre-1.dll"
Delete "$INSTDIR\cygpixman-1-0.dll" Delete "$INSTDIR\cygpixman-1-0.dll"
Delete "$INSTDIR\cygpng16-16.dll" Delete "$INSTDIR\cygpng16-16.dll"
Delete "$INSTDIR\cygrsvg-2-2.dll" Delete "$INSTDIR\cygrsvg-2-2.dll"
Delete "$INSTDIR\cygsharpyuv-0.dll"
Delete "$INSTDIR\cygssl-1.1.dll" Delete "$INSTDIR\cygssl-1.1.dll"
Delete "$INSTDIR\cygstdc++-6.dll" Delete "$INSTDIR\cygstdc++-6.dll"
Delete "$INSTDIR\cygthai-0.dll" Delete "$INSTDIR\cygthai-0.dll"
Delete "$INSTDIR\cygtiff-6.dll" Delete "$INSTDIR\cygtiff-7.dll"
Delete "$INSTDIR\cyguuid-1.dll" Delete "$INSTDIR\cyguuid-1.dll"
Delete "$INSTDIR\cygwebp-7.dll" Delete "$INSTDIR\cygwebp-7.dll"
Delete "$INSTDIR\cygwin1.dll" Delete "$INSTDIR\cygwin1.dll"

View File

@ -1238,12 +1238,12 @@ static int list_item_mark(struct dialog_data *dlg, struct dialog_item_data *usel
rd.n = 0; rd.n = 0;
if (ld->current_pos != ld->list) ld->current_pos->type ^= 4; if (ld->current_pos != ld->list) ld->current_pos->type ^= 4;
rd.n = -1;
if (next_in_tree(ld, ld->current_pos) == ld->list) /* already at the bottom */ if (next_in_tree(ld, ld->current_pos) == ld->list) /* already at the bottom */
{ {
draw_to_window(dlg->win, redraw_list_line, &rd); draw_to_window(dlg->win, redraw_list_line, &rd);
return 0; return 0;
} }
rd.n = -1;
ld->current_pos = next_in_tree(ld, ld->current_pos); ld->current_pos = next_in_tree(ld, ld->current_pos);
ld->win_pos++; ld->win_pos++;
if (ld->win_pos > ld->n_items - 1) /* scroll down */ if (ld->win_pos > ld->n_items - 1) /* scroll down */

View File

@ -78,13 +78,6 @@ void tn3270_func(struct session *ses, unsigned char *url)
tn_func(ses, url, &tn3270_prog, TEXT_(T_TN3270), TEXT_(T_BAD_TN3270_URL)); tn_func(ses, url, &tn3270_prog, TEXT_(T_TN3270), TEXT_(T_BAD_TN3270_URL));
} }
void magnet_func(struct session *ses, unsigned char *url)
{
unsigned char *escaped_url = escape_path(url);
prog_func(ses->term, &magnet_prog, escaped_url, TEXT_(T_MAGNET));
mem_free(escaped_url);
}
void mms_func(struct session *ses, unsigned char *url) void mms_func(struct session *ses, unsigned char *url)
{ {
if (check_shell_url(url)) { if (check_shell_url(url)) {
@ -93,3 +86,17 @@ void mms_func(struct session *ses, unsigned char *url)
} }
prog_func(ses->term, &mms_prog, url, TEXT_(T_MMS)); prog_func(ses->term, &mms_prog, url, TEXT_(T_MMS));
} }
void magnet_func(struct session *ses, unsigned char *url)
{
unsigned char *escaped_url = escape_path(url);
prog_func(ses->term, &magnet_prog, escaped_url, TEXT_(T_MAGNET));
mem_free(escaped_url);
}
void gopher_func(struct session *ses, unsigned char *url)
{
unsigned char *escaped_url = escape_path(url);
prog_func(ses->term, &gopher_prog, escaped_url, TEXT_(T_GOPHER));
mem_free(escaped_url);
}

137
menu.c
View File

@ -217,6 +217,14 @@ static void menu_version(void *term_)
#ifdef HAVE_SVG #ifdef HAVE_SVG
add_to_str(&s, &l, cast_uchar ", "); add_to_str(&s, &l, cast_uchar ", ");
add_svg_version(&s, &l); add_svg_version(&s, &l);
#endif
#ifdef HAVE_WEBP
add_to_str(&s, &l, cast_uchar ", ");
add_webp_version(&s, &l);
#endif
#ifdef HAVE_AVIF
add_to_str(&s, &l, cast_uchar ", ");
add_avif_version(&s, &l);
#endif #endif
add_to_str(&s, &l, cast_uchar "\n"); add_to_str(&s, &l, cast_uchar "\n");
#endif #endif
@ -1664,7 +1672,7 @@ static void dlg_net_options(struct terminal *term, void *xxx, void *yyy)
snprint(time_str, 5, receive_timeout); snprint(time_str, 5, receive_timeout);
snprint(unrtime_str, 5, unrestartable_receive_timeout); snprint(unrtime_str, 5, unrestartable_receive_timeout);
snprint(addrtime_str, 4, timeout_multiple_addresses); snprint(addrtime_str, 4, timeout_multiple_addresses);
d = mem_calloc(sizeof(struct dialog) + 12 * sizeof(struct dialog_item)); d = mem_calloc(sizeof(struct dialog) + 11 * sizeof(struct dialog_item));
d->title = TEXT_(T_NETWORK_OPTIONS); d->title = TEXT_(T_NETWORK_OPTIONS);
d->fn = group_fn; d->fn = group_fn;
d->udata = (void *)net_msg; d->udata = (void *)net_msg;
@ -1729,12 +1737,6 @@ static void dlg_net_options(struct terminal *term, void *xxx, void *yyy)
d->items[a].dlen = sizeof(bind_ipv6_address); d->items[a].dlen = sizeof(bind_ipv6_address);
d->items[a++].fn = check_local_ipv6_address; d->items[a++].fn = check_local_ipv6_address;
} }
#endif
#ifndef NO_ASYNC_LOOKUP
net_msg[a] = TEXT_(T_ASYNC_DNS_LOOKUP);
d->items[a].type = D_CHECKBOX;
d->items[a].data = (unsigned char *)&async_lookup;
d->items[a++].dlen = sizeof(int);
#endif #endif
net_msg[a] = TEXT_(T_SET_TIME_OF_DOWNLOADED_FILES); net_msg[a] = TEXT_(T_SET_TIME_OF_DOWNLOADED_FILES);
d->items[a].type = D_CHECKBOX; d->items[a].type = D_CHECKBOX;
@ -2337,6 +2339,105 @@ static void dlg_ssl_options(struct terminal *term, void *xxx, void *yyy)
#endif #endif
static unsigned char * const dns_msg[] = {
#ifndef NO_ASYNC_LOOKUP
TEXT_(T_ASYNC_DNS_LOOKUP),
#endif
TEXT_(T_DNS_OVER_HTTPS_URL),
};
static void dns_options_fn(struct dialog_data *dlg)
{
struct terminal *term = dlg->win->term;
int max = 0, min = 0;
int w, rw;
int i;
int y = 0;
i = 0;
#ifndef NO_ASYNC_LOOKUP
max_group_width(term, dns_msg + i, dlg->items, 1, &max);
min_group_width(term, dns_msg + i, dlg->items, 1, &min);
i++;
#endif
for (; i < dlg->n - 2; i++) {
max_text_width(term, dns_msg[i], &max, AL_LEFT);
min_text_width(term, dns_msg[i], &min, AL_LEFT);
}
max_buttons_width(term, dlg->items + dlg->n - 2, 2, &max);
min_buttons_width(term, dlg->items + dlg->n - 2, 2, &min);
w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB;
if (w > max) w = max;
if (w < min) w = min;
if (w > dlg->win->term->x - 2 * DIALOG_LB) w = dlg->win->term->x - 2 * DIALOG_LB;
if (w < 1) w = 1;
rw = 0;
i = 0;
#ifndef NO_ASYNC_LOOKUP
dlg_format_group(dlg, NULL, dns_msg, dlg->items, 1, 0, &y, w, &rw);
y += LL;
i++;
#else
if (!dlg->win->term->spec->braille) y -= LL;
#endif
for (; i < dlg->n - 2; i++) {
dlg_format_text_and_field(dlg, NULL, dns_msg[i], &dlg->items[i], 0, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT);
if (!dlg->win->term->spec->braille) y += LL;
}
dlg_format_buttons(dlg, NULL, dlg->items + dlg->n - 2, 2, 0, &y, w, &rw, AL_CENTER);
w = rw;
dlg->xw = w + 2 * DIALOG_LB;
dlg->yw = y + 2 * DIALOG_TB;
center_dlg(dlg);
draw_dlg(dlg);
y = dlg->y + DIALOG_TB;
y += LL;
i = 0;
#ifndef NO_ASYNC_LOOKUP
dlg_format_group(dlg, term, dns_msg, dlg->items, 1, dlg->x + DIALOG_LB, &y, w, &rw);
y += LL;
i++;
#else
if (!dlg->win->term->spec->braille) y -= LL;
#endif
for (; i < dlg->n - 2; i++) {
dlg_format_text_and_field(dlg, term, dns_msg[i], &dlg->items[i], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT);
y += LL;
}
dlg_format_buttons(dlg, term, &dlg->items[dlg->n - 2], 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_CENTER);
}
static void dlg_dns_options(struct terminal *term, void *xxx, void *yyy)
{
struct dialog *d;
int a = 0;
d = mem_calloc(sizeof(struct dialog) + 5 * sizeof(struct dialog_item));
d->title = TEXT_(T_DNS_OPTIONS);
d->fn = dns_options_fn;
d->refresh = refresh_network;
#ifndef NO_ASYNC_LOOKUP
d->items[a].type = D_CHECKBOX;
d->items[a].dlen = sizeof(int);
d->items[a].data = (unsigned char *)&async_lookup;
a++;
#endif
d->items[a].type = D_FIELD;
d->items[a].dlen = MAX_STR_LEN;
d->items[a].data = dns_over_https;
a++;
d->items[a].type = D_BUTTON;
d->items[a].gid = B_ENTER;
d->items[a].fn = ok_dialog;
d->items[a].text = TEXT_(T_OK);
a++;
d->items[a].type = D_BUTTON;
d->items[a].gid = B_ESC;
d->items[a].fn = cancel_dialog;
d->items[a].text = TEXT_(T_CANCEL);
a++;
d->items[a].type = D_END;
do_dialog(term, d, getml(d, NULL));
}
static unsigned char * const http_labels[] = { TEXT_(T_USE_HTTP_10), TEXT_(T_ALLOW_SERVER_BLACKLIST), TEXT_(T_DO_NOT_SEND_ACCEPT_CHARSET), static unsigned char * const http_labels[] = { TEXT_(T_USE_HTTP_10), TEXT_(T_ALLOW_SERVER_BLACKLIST), TEXT_(T_DO_NOT_SEND_ACCEPT_CHARSET),
#ifdef HAVE_ANY_COMPRESSION #ifdef HAVE_ANY_COMPRESSION
TEXT_(T_DO_NOT_ADVERTISE_COMPRESSION_SUPPORT), TEXT_(T_DO_NOT_ADVERTISE_COMPRESSION_SUPPORT),
@ -2638,6 +2739,7 @@ static unsigned char * const prg_msg[] = {
TEXT_(T_TN3270_PROG), TEXT_(T_TN3270_PROG),
TEXT_(T_MMS_PROG), TEXT_(T_MMS_PROG),
TEXT_(T_MAGNET_PROG), TEXT_(T_MAGNET_PROG),
TEXT_(T_GOPHER_PROG),
TEXT_(T_SHELL_PROG), TEXT_(T_SHELL_PROG),
cast_uchar "" cast_uchar ""
}; };
@ -2660,6 +2762,8 @@ static void netprog_fn(struct dialog_data *dlg)
min_text_width(term, prg_msg[a++], &min, AL_LEFT); min_text_width(term, prg_msg[a++], &min, AL_LEFT);
max_text_width(term, prg_msg[a], &max, AL_LEFT); max_text_width(term, prg_msg[a], &max, AL_LEFT);
min_text_width(term, prg_msg[a++], &min, AL_LEFT); min_text_width(term, prg_msg[a++], &min, AL_LEFT);
max_text_width(term, prg_msg[a], &max, AL_LEFT);
min_text_width(term, prg_msg[a++], &min, AL_LEFT);
#ifdef G #ifdef G
if (have_extra_exec()) { if (have_extra_exec()) {
max_text_width(term, prg_msg[a], &max, AL_LEFT); max_text_width(term, prg_msg[a], &max, AL_LEFT);
@ -2691,6 +2795,9 @@ static void netprog_fn(struct dialog_data *dlg)
dlg_format_text_and_field(dlg, NULL, prg_msg[a], &dlg->items[a], 0, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT); dlg_format_text_and_field(dlg, NULL, prg_msg[a], &dlg->items[a], 0, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT);
a++; a++;
if (!term->spec->braille) y += LL; if (!term->spec->braille) y += LL;
dlg_format_text_and_field(dlg, NULL, prg_msg[a], &dlg->items[a], 0, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT);
a++;
if (!term->spec->braille) y += LL;
#ifdef G #ifdef G
if (have_extra_exec()) { if (have_extra_exec()) {
dlg_format_text_and_field(dlg, NULL, prg_msg[a], &dlg->items[a], 0, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT); dlg_format_text_and_field(dlg, NULL, prg_msg[a], &dlg->items[a], 0, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT);
@ -2723,6 +2830,9 @@ static void netprog_fn(struct dialog_data *dlg)
dlg_format_text_and_field(dlg, term, prg_msg[a], &dlg->items[a], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT); dlg_format_text_and_field(dlg, term, prg_msg[a], &dlg->items[a], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT);
a++; a++;
if (!term->spec->braille) y += LL; if (!term->spec->braille) y += LL;
dlg_format_text_and_field(dlg, term, prg_msg[a], &dlg->items[a], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT);
a++;
if (!term->spec->braille) y += LL;
#ifdef G #ifdef G
if (have_extra_exec()) { if (have_extra_exec()) {
dlg_format_text_and_field(dlg, term, prg_msg[a], &dlg->items[a], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT); dlg_format_text_and_field(dlg, term, prg_msg[a], &dlg->items[a], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT);
@ -2738,7 +2848,7 @@ static void net_programs(struct terminal *term, void *xxx, void *yyy)
{ {
struct dialog *d; struct dialog *d;
int a; int a;
d = mem_calloc(sizeof(struct dialog) + 8 * sizeof(struct dialog_item)); d = mem_calloc(sizeof(struct dialog) + 9 * sizeof(struct dialog_item));
#ifdef G #ifdef G
if (have_extra_exec()) d->title = TEXT_(T_MAIL_TELNET_AND_SHELL_PROGRAMS); if (have_extra_exec()) d->title = TEXT_(T_MAIL_TELNET_AND_SHELL_PROGRAMS);
else else
@ -2762,6 +2872,9 @@ static void net_programs(struct terminal *term, void *xxx, void *yyy)
d->items[a].type = D_FIELD; d->items[a].type = D_FIELD;
d->items[a].dlen = MAX_STR_LEN; d->items[a].dlen = MAX_STR_LEN;
d->items[a++].data = get_prog(&magnet_prog); d->items[a++].data = get_prog(&magnet_prog);
d->items[a].type = D_FIELD;
d->items[a].dlen = MAX_STR_LEN;
d->items[a++].data = get_prog(&gopher_prog);
#ifdef G #ifdef G
if (have_extra_exec()) { if (have_extra_exec()) {
d->items[a].type = D_FIELD; d->items[a].type = D_FIELD;
@ -3662,6 +3775,7 @@ static void free_fonts(void *fonts_)
static int select_font(struct dialog_data *dlg, struct dialog_item_data *di) static int select_font(struct dialog_data *dlg, struct dialog_item_data *di)
{ {
unsigned char * decc_volatile empty = cast_uchar "";
struct list_of_fonts *fonts; struct list_of_fonts *fonts;
int n_fonts; int n_fonts;
int i; int i;
@ -3684,11 +3798,11 @@ static int select_font(struct dialog_data *dlg, struct dialog_item_data *di)
mi = new_menu(MENU_FREE_ITEMS | MENU_FONT_LIST | (bold * MENU_FONT_LIST_BOLD) | (monospaced * MENU_FONT_LIST_MONO)); mi = new_menu(MENU_FREE_ITEMS | MENU_FONT_LIST | (bold * MENU_FONT_LIST_BOLD) | (monospaced * MENU_FONT_LIST_MONO));
add_to_menu(&mi, TEXT_(T_BUILT_IN_FONT), cast_uchar "", cast_uchar "", font_selected, cast_uchar "", 0, 0); add_to_menu(&mi, TEXT_(T_BUILT_IN_FONT), empty, empty, font_selected, empty, 0, 0);
for (i = 0; i < n_fonts; i++) { for (i = 0; i < n_fonts; i++) {
if (!strcmp(cast_const_char fonts[i].file, cast_const_char di->cdata)) if (!strcmp(cast_const_char fonts[i].file, cast_const_char di->cdata))
current_font = i + 1; current_font = i + 1;
add_to_menu(&mi, fonts[i].name, cast_uchar "", cast_uchar "", font_selected, fonts[i].file, 0, i + 1); add_to_menu(&mi, fonts[i].name, empty, empty, font_selected, fonts[i].file, 0, i + 1);
} }
do_menu_selected(dlg->win->term, mi, di->cdata, current_font, free_fonts, fonts); do_menu_selected(dlg->win->term, mi, di->cdata, current_font, free_fonts, fonts);
@ -4165,6 +4279,7 @@ static_const struct menu_item net_options_menu[] = {
#ifdef HAVE_SSL_CERTIFICATES #ifdef HAVE_SSL_CERTIFICATES
{ TEXT_(T_SSL_OPTIONS), cast_uchar "", TEXT_(T_HK_SSL_OPTIONS), dlg_ssl_options, NULL, 0, 0 }, { TEXT_(T_SSL_OPTIONS), cast_uchar "", TEXT_(T_HK_SSL_OPTIONS), dlg_ssl_options, NULL, 0, 0 },
#endif #endif
{ TEXT_(T_DNS_OPTIONS), cast_uchar "", TEXT_(T_HK_DNS_OPTIONS), dlg_dns_options, NULL, 0, 0 },
{ TEXT_(T_HTTP_OPTIONS), cast_uchar "", TEXT_(T_HK_HTTP_OPTIONS), dlg_http_options, NULL, 0, 0 }, { TEXT_(T_HTTP_OPTIONS), cast_uchar "", TEXT_(T_HK_HTTP_OPTIONS), dlg_http_options, NULL, 0, 0 },
{ TEXT_(T_FTP_OPTIONS), cast_uchar "", TEXT_(T_HK_FTP_OPTIONS), dlg_ftp_options, NULL, 0, 0 }, { TEXT_(T_FTP_OPTIONS), cast_uchar "", TEXT_(T_HK_FTP_OPTIONS), dlg_ftp_options, NULL, 0, 0 },
#ifndef DISABLE_SMB #ifndef DISABLE_SMB
@ -4181,6 +4296,7 @@ static_const struct menu_item net_options_ipv6_menu[] = {
#ifdef HAVE_SSL_CERTIFICATES #ifdef HAVE_SSL_CERTIFICATES
{ TEXT_(T_SSL_OPTIONS), cast_uchar "", TEXT_(T_HK_SSL_OPTIONS), dlg_ssl_options, NULL, 0, 0 }, { TEXT_(T_SSL_OPTIONS), cast_uchar "", TEXT_(T_HK_SSL_OPTIONS), dlg_ssl_options, NULL, 0, 0 },
#endif #endif
{ TEXT_(T_DNS_OPTIONS), cast_uchar "", TEXT_(T_HK_DNS_OPTIONS), dlg_dns_options, NULL, 0, 0 },
{ TEXT_(T_HTTP_OPTIONS), cast_uchar "", TEXT_(T_HK_HTTP_OPTIONS), dlg_http_options, NULL, 0, 0 }, { TEXT_(T_HTTP_OPTIONS), cast_uchar "", TEXT_(T_HK_HTTP_OPTIONS), dlg_http_options, NULL, 0, 0 },
{ TEXT_(T_FTP_OPTIONS), cast_uchar "", TEXT_(T_HK_FTP_OPTIONS), dlg_ftp_options, NULL, 0, 0 }, { TEXT_(T_FTP_OPTIONS), cast_uchar "", TEXT_(T_HK_FTP_OPTIONS), dlg_ftp_options, NULL, 0, 0 },
#ifndef DISABLE_SMB #ifndef DISABLE_SMB
@ -4598,4 +4714,3 @@ void free_history_lists(void)
free_history(js_get_string_history); /* is in jsint.c */ free_history(js_get_string_history); /* is in jsint.c */
#endif #endif
} }

View File

@ -15,11 +15,11 @@ else
fi fi
fi fi
if [ "`uname -m`" != x86_64 ]; then if [ "`uname -m`" != x86_64 ]; then
ARCH_CFLAGS="-O2 -march=pentium4 -mtune=generic" ARCH_CFLAGS="-O2 -march=pentiumpro -mtune=generic"
else else
ARCH_CFLAGS="-O2 -mtune=generic" ARCH_CFLAGS="-O2 -mtune=generic"
fi fi
CFLAGS="$ARCH_CFLAGS $LTO_ARGS -shared-libgcc -Wall -W -Wno-unused-parameter -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes" CFLAGS="-DWINDOWS_RELEASE $ARCH_CFLAGS $LTO_ARGS -shared-libgcc -Wall -W -Wno-unused-parameter -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes"
export CFLAGS export CFLAGS
windres --preprocessor cat -O coff ../links-current/linkswin.rc linkswin.res windres --preprocessor cat -O coff ../links-current/linkswin.rc linkswin.res
LIBS=../linkswin.res LIBS=../linkswin.res
@ -30,7 +30,7 @@ export LDFLAGS
mkdir -p links-text mkdir -p links-text
cd links-text cd links-text
if [ ! -f config.h -o ! -f Makefile ]; then if [ ! -f config.h -o ! -f Makefile ]; then
../../links-current/configure --enable-utf8 --disable-graphics --without-x --without-libevent --enable-debuglevel=0 ../../links-current/configure --enable-utf8 --disable-graphics --without-x --enable-debuglevel=0
fi fi
make -j12 make -j12
cp links.exe .. cp links.exe ..
@ -43,7 +43,7 @@ cd links-graphics
if [ ! -f config.h -o ! -f Makefile ]; then if [ ! -f config.h -o ! -f Makefile ]; then
CPPFLAGS="-DUSE_WIN32_HEAP" CPPFLAGS="-DUSE_WIN32_HEAP"
export CPPFLAGS export CPPFLAGS
../../links-current/configure --disable-utf8 --enable-graphics --without-x --without-libevent --enable-debuglevel=0 ../../links-current/configure --disable-utf8 --enable-graphics --without-x --enable-debuglevel=0
fi fi
make -j12 LDFLAGS="-mwindows" make -j12 LDFLAGS="-mwindows"
cp links.exe ../links-g.exe cp links.exe ../links-g.exe

View File

@ -109,7 +109,7 @@ static int auth_ok(struct dialog_data *dlg, struct dialog_item_data *item)
mem_free(passwd); mem_free(passwd);
rq->hold = 0; rq->hold = 0;
change_connection(&rq->stat, NULL, PRI_CANCEL); change_connection(&rq->stat, NULL, PRI_CANCEL);
load_url(rq->url, rq->prev_url, &rq->stat, rq->pri, NC_RELOAD, 0, 0, 0); load_url(rq->url, rq->prev_url, &rq->stat, rq->pri, NC_RELOAD, 0, 0, 0, 0);
} }
cancel_dialog(dlg, item); cancel_dialog(dlg, item);
return 0; return 0;
@ -198,7 +198,7 @@ static void cert_action(struct object_request *rq, int yes)
if (yes > 0) { if (yes > 0) {
rq->hold = 0; rq->hold = 0;
change_connection(&rq->stat, NULL, PRI_CANCEL); change_connection(&rq->stat, NULL, PRI_CANCEL);
load_url(rq->url, rq->prev_url, &rq->stat, rq->pri, NC_CACHE, 0, 0, 0); load_url(rq->url, rq->prev_url, &rq->stat, rq->pri, NC_CACHE, 0, 0, 0, 0);
} else { } else {
rq->hold = 0; rq->hold = 0;
rq->dont_print_error = 1; rq->dont_print_error = 1;
@ -319,7 +319,7 @@ void request_object(struct terminal *term, unsigned char *url, unsigned char *pr
if (rqp) *rqp = rq; if (rqp) *rqp = rq;
rq->count = obj_req_count++; rq->count = obj_req_count++;
add_to_list(requests, rq); add_to_list(requests, rq);
load_url(url, prev_url, &rq->stat, pri, cache, 0, allow_flags, 0); load_url(url, prev_url, &rq->stat, pri, cache, 0, 0, allow_flags, 0);
} }
static void set_ce_internal(struct object_request *rq) static void set_ce_internal(struct object_request *rq)
@ -356,7 +356,7 @@ static void objreq_end(struct status *stat, void *data)
if (stat->ce && rq->state == O_WAITING && stat->ce->redirect) { if (stat->ce && rq->state == O_WAITING && stat->ce->redirect) {
if (rq->redirect_cnt++ < MAX_REDIRECTS) { if (rq->redirect_cnt++ < MAX_REDIRECTS) {
int cache, allow_flags; int cache, allow_flags;
unsigned char *u, *pos; unsigned char *u, *pos, *url_host;
change_connection(stat, NULL, PRI_CANCEL); change_connection(stat, NULL, PRI_CANCEL);
u = join_urls(rq->url, stat->ce->redirect); u = join_urls(rq->url, stat->ce->redirect);
if ((pos = extract_position(u))) { if ((pos = extract_position(u))) {
@ -364,11 +364,19 @@ static void objreq_end(struct status *stat, void *data)
rq->goto_position = pos; rq->goto_position = pos;
} }
cache = rq->cache; cache = rq->cache;
if (cache < NC_RELOAD && (!strcmp(cast_const_char u, cast_const_char rq->url) || !strcmp(cast_const_char u, cast_const_char rq->orig_url) || rq->redirect_cnt >= MAX_CACHED_REDIRECTS)) cache = NC_RELOAD; url_host = get_host_name(rq->url);
if (cache < NC_RELOAD &&
(!strcmp(cast_const_char u, cast_const_char rq->url) ||
!strcmp(cast_const_char u, cast_const_char rq->orig_url) ||
(url_host && casestrstr(url_host, cast_uchar "consent.google")) ||
rq->redirect_cnt >= MAX_CACHED_REDIRECTS))
cache = NC_RELOAD;
if (url_host)
mem_free(url_host);
allow_flags = get_allow_flags(rq->url); allow_flags = get_allow_flags(rq->url);
mem_free(rq->url); mem_free(rq->url);
rq->url = u; rq->url = u;
load_url(u, rq->prev_url, &rq->stat, rq->pri, cache, 0, allow_flags, 0); load_url(u, rq->prev_url, &rq->stat, rq->pri, cache, 0, 0, allow_flags, 0);
return; return;
} else { } else {
maxrd: maxrd:
@ -383,7 +391,7 @@ static void objreq_end(struct status *stat, void *data)
mem_free(realm); mem_free(realm);
if (rq->redirect_cnt++ >= MAX_REDIRECTS) goto maxrd; if (rq->redirect_cnt++ >= MAX_REDIRECTS) goto maxrd;
change_connection(stat, NULL, PRI_CANCEL); change_connection(stat, NULL, PRI_CANCEL);
load_url(rq->url, rq->prev_url, &rq->stat, rq->pri, NC_RELOAD, 0, 0, 0); load_url(rq->url, rq->prev_url, &rq->stat, rq->pri, NC_RELOAD, 0, 0, 0, 0);
return; return;
} }
user = get_user_name(rq->url); user = get_user_name(rq->url);

126
os_dep.c
View File

@ -763,6 +763,9 @@ static int cleanup_fds(void)
#endif #endif
#ifdef EMFILE #ifdef EMFILE
if (errno == EMFILE) return abort_background_connections(); if (errno == EMFILE) return abort_background_connections();
#endif
#ifndef EMFILE
if (errno == EIO) return abort_background_connections();
#endif #endif
return 0; return 0;
} }
@ -777,6 +780,16 @@ int c_pipe(int fd[2])
EINTRLOOP(r, pipe(fd)); EINTRLOOP(r, pipe(fd));
if (!r) new_fd_bin(fd[0]), new_fd_bin(fd[1]); if (!r) new_fd_bin(fd[0]), new_fd_bin(fd[1]);
fd_unlock(); fd_unlock();
if (verify_handle(fd[0]) || verify_handle(fd[1])) {
EINTRLOOP(r, close(fd[0]));
EINTRLOOP(r, close(fd[1]));
r = -1;
#ifdef EMFILE
errno = EMFILE;
#else
errno = EIO;
#endif
}
} while (r == -1 && cleanup_fds()); } while (r == -1 && cleanup_fds());
return r; return r;
} }
@ -789,6 +802,16 @@ int c_dup(int oh)
EINTRLOOP(h, dup(oh)); EINTRLOOP(h, dup(oh));
if (h != -1) new_fd_cloexec(h); if (h != -1) new_fd_cloexec(h);
fd_unlock(); fd_unlock();
if (verify_handle(h)) {
int r;
EINTRLOOP(r, close(h));
h = -1;
#ifdef EMFILE
errno = EMFILE;
#else
errno = EIO;
#endif
}
} while (h == -1 && cleanup_fds()); } while (h == -1 && cleanup_fds());
return h; return h;
} }
@ -801,6 +824,16 @@ int c_socket(int d, int t, int p)
EINTRLOOP(h, socket(d, t, p)); EINTRLOOP(h, socket(d, t, p));
if (h != -1) new_fd_cloexec(h); if (h != -1) new_fd_cloexec(h);
fd_unlock(); fd_unlock();
if (verify_handle(h)) {
int r;
EINTRLOOP(r, close(h));
h = -1;
#ifdef EMFILE
errno = EMFILE;
#else
errno = EIO;
#endif
}
} while (h == -1 && cleanup_fds()); } while (h == -1 && cleanup_fds());
return h; return h;
} }
@ -813,6 +846,16 @@ int c_accept(int sh, struct sockaddr *addr, socklen_t *addrlen)
EINTRLOOP(h, accept(sh, addr, addrlen)); EINTRLOOP(h, accept(sh, addr, addrlen));
if (h != -1) new_fd_cloexec(h); if (h != -1) new_fd_cloexec(h);
fd_unlock(); fd_unlock();
if (verify_handle(h)) {
int r;
EINTRLOOP(r, close(h));
h = -1;
#ifdef EMFILE
errno = EMFILE;
#else
errno = EIO;
#endif
}
} while (h == -1 && cleanup_fds()); } while (h == -1 && cleanup_fds());
return h; return h;
} }
@ -825,6 +868,16 @@ int c_open(unsigned char *path, int flags)
EINTRLOOP(h, open(cast_const_char path, flags)); EINTRLOOP(h, open(cast_const_char path, flags));
if (h != -1) new_fd_bin(h); if (h != -1) new_fd_bin(h);
fd_unlock(); fd_unlock();
if (verify_handle(h)) {
int r;
EINTRLOOP(r, close(h));
h = -1;
#ifdef EMFILE
errno = EMFILE;
#else
errno = EIO;
#endif
}
} while (h == -1 && cleanup_fds()); } while (h == -1 && cleanup_fds());
return h; return h;
} }
@ -837,6 +890,16 @@ int c_open3(unsigned char *path, int flags, int mode)
EINTRLOOP(h, open(cast_const_char path, flags, mode)); EINTRLOOP(h, open(cast_const_char path, flags, mode));
if (h != -1) new_fd_bin(h); if (h != -1) new_fd_bin(h);
fd_unlock(); fd_unlock();
if (verify_handle(h)) {
int r;
EINTRLOOP(r, close(h));
h = -1;
#ifdef EMFILE
errno = EMFILE;
#else
errno = EIO;
#endif
}
} while (h == -1 && cleanup_fds()); } while (h == -1 && cleanup_fds());
return h; return h;
} }
@ -1136,6 +1199,26 @@ void init_os_terminal(void)
#endif #endif
} }
#ifdef WIN
void translate_win32_to_unix(unsigned char **str)
{
#ifdef HAVE_CYGWIN_CONV_PATH
unsigned char *new_path;
ssize_t sz = cygwin_conv_path(CCP_WIN_A_TO_POSIX | CCP_ABSOLUTE, *str, NULL, 0);
if (sz < 0 || sz >= MAXINT)
return;
new_path = mem_alloc(sz);
sz = cygwin_conv_path(CCP_WIN_A_TO_POSIX | CCP_ABSOLUTE, *str, new_path, sz);
if (sz < 0) {
mem_free(new_path);
return;
}
mem_free(*str);
*str = new_path;
#endif
}
#endif
#ifdef INTERIX #ifdef INTERIX
static inline void cut_program_path(unsigned char *prog, unsigned char **prog_start, unsigned char **prog_end) static inline void cut_program_path(unsigned char *prog, unsigned char **prog_start, unsigned char **prog_end)
@ -1564,7 +1647,7 @@ int exe(unsigned char *path, int fg)
return 0; return 0;
} }
int exe_on_background(unsigned char *path, unsigned char *del) int exe_on_background(unsigned char *path, unsigned char *del, int fg)
{ {
#ifdef __CYGWIN__ #ifdef __CYGWIN__
unsigned char *x1; unsigned char *x1;
@ -1609,15 +1692,29 @@ int exe_on_background(unsigned char *path, unsigned char *del)
if (use_create_process) { if (use_create_process) {
PROCESS_INFORMATION pi; PROCESS_INFORMATION pi;
STARTUPINFOA si; STARTUPINFOA si;
unsigned char *cwd;
memset(&pi, 0, sizeof pi); memset(&pi, 0, sizeof pi);
memset(&si, 0, sizeof si); memset(&si, 0, sizeof si);
si.cb = sizeof si; si.cb = sizeof si;
cwd = NULL;
if (fg == 2) {
unsigned char *bs;
cwd = stracpy(path_to_exe);
bs = cast_uchar strrchr(cast_const_char cwd, '\\');
if (bs) {
if (cwd[1] == ':' && cwd[2] == '\\' && bs == &cwd[2])
bs++;
*bs = 0;
}
}
fd_lock(); fd_lock();
if (CreateProcessA(cast_char x1, cast_char arg, NULL, NULL, FALSE, CREATE_NO_WINDOW | (is_winnt() ? DETACHED_PROCESS : 0), NULL, NULL, &si, &pi)) { if (CreateProcessA(cast_char x1, cast_char arg, NULL, NULL, FALSE, CREATE_NO_WINDOW | (is_winnt() ? DETACHED_PROCESS : 0), NULL, cast_const_char cwd, &si, &pi)) {
CloseHandle(pi.hProcess); CloseHandle(pi.hProcess);
CloseHandle(pi.hThread); CloseHandle(pi.hThread);
} }
fd_unlock(); fd_unlock();
if (cwd)
mem_free(cwd);
} else { } else {
/* We need to fork here so that we can close handles */ /* We need to fork here so that we can close handles */
pid_t pid; pid_t pid;
@ -2738,7 +2835,8 @@ int get_input_handle(void)
static unsigned char *is_on_linux_console(void) static unsigned char *is_on_linux_console(void)
{ {
static unsigned char tty_name[MAX_STR_LEN]; static unsigned char tty_name[MAX_STR_LEN];
int r = readlink("/proc/self/fd/0", cast_char tty_name, sizeof tty_name); int r;
EINTRLOOP(r, (int)readlink("/proc/self/fd/0", cast_char tty_name, sizeof tty_name));
if (r >= 1 && r < (int)sizeof(tty_name)) { if (r >= 1 && r < (int)sizeof(tty_name)) {
#define pfx1 "/dev/tty" #define pfx1 "/dev/tty"
#define pfx2 "/dev/vc/" #define pfx2 "/dev/vc/"
@ -2922,7 +3020,7 @@ void unhandle_mouse(void *data) { }
#endif /* #ifdef USE_GPM */ #endif /* #ifdef USE_GPM */
#if defined(WIN) || defined(INTERIX) #if defined(OS2) || defined(WIN) || defined(INTERIX)
static int is_remote_connection(void) static int is_remote_connection(void)
{ {
@ -3627,16 +3725,20 @@ void restore_terminal(void)
void os_report_error_va(const char *caption, const char *msg, va_list l) void os_report_error_va(const char *caption, const char *msg, va_list l)
{ {
#ifdef OS2 #ifdef OS2
char msg_buffer[OS_REPORT_ERROR_BUFFER]; if (!is_remote_connection()) {
vsnprintf(msg_buffer, sizeof msg_buffer, msg, l); char msg_buffer[OS_REPORT_ERROR_BUFFER];
if (os2_init_pm()) return; vsnprintf(msg_buffer, sizeof msg_buffer, msg, l);
WinMessageBox(HWND_DESKTOP, NULLHANDLE, msg_buffer, caption, 0, MB_CANCEL | MB_ERROR | MB_APPLMODAL | MB_MOVEABLE); if (os2_init_pm()) return;
os2_exit_pm(); WinMessageBox(HWND_DESKTOP, NULLHANDLE, msg_buffer, caption, 0, MB_CANCEL | MB_ERROR | MB_APPLMODAL | MB_MOVEABLE);
os2_exit_pm();
}
#endif #endif
#if defined(WIN) && !(defined(_UWIN) && !defined(GRDRV_PMSHELL)) #if defined(WIN) && !(defined(_UWIN) && !defined(GRDRV_PMSHELL))
char msg_buffer[OS_REPORT_ERROR_BUFFER]; if (!is_remote_connection()) {
vsnprintf(msg_buffer, sizeof msg_buffer, msg, l); char msg_buffer[OS_REPORT_ERROR_BUFFER];
MessageBoxA(NULL, msg_buffer, caption, MB_OK | MB_ICONEXCLAMATION); vsnprintf(msg_buffer, sizeof msg_buffer, msg, l);
MessageBoxA(NULL, msg_buffer, caption, MB_OK | MB_ICONEXCLAMATION);
}
#endif #endif
} }

View File

@ -523,8 +523,8 @@ static int win_x(struct pm_window *win)
#ifdef WIN #ifdef WIN
int x = GET_X_LPARAM(win->lastpos); int x = GET_X_LPARAM(win->lastpos);
#endif #endif
if (x < 0) x = -1; if (x >= win->x) x = win->x - 1;
if (x > win->x) x = win->x; if (x < 0) x = 0;
return x; return x;
} }
@ -536,8 +536,8 @@ static int win_y(struct pm_window *win)
#ifdef WIN #ifdef WIN
int y = GET_Y_LPARAM(win->lastpos); int y = GET_Y_LPARAM(win->lastpos);
#endif #endif
if (y < 0) y = -1; if (y >= win->y) y = win->y - 1;
if (y > win->y) y = win->y; if (y < 0) y = 0;
return y; return y;
} }

77
sched.c
View File

@ -127,6 +127,9 @@ void setcstate(struct connection *c, int state)
{ {
struct status *stat; struct status *stat;
struct list_head *lstat; struct list_head *lstat;
if (state < 0)
if (c->cache)
finish_cache_entry(c->cache);
if (c->state < 0 && state >= 0) c->prev_error = c->state; if (c->state < 0 && state >= 0) c->prev_error = c->state;
if ((c->state = state) == S_TRANS) { if ((c->state = state) == S_TRANS) {
struct remaining_info *r = &c->prg; struct remaining_info *r = &c->prg;
@ -236,11 +239,13 @@ static void free_connection_data(struct connection *c)
c->info = NULL; c->info = NULL;
} }
clear_connection_timeout(c); clear_connection_timeout(c);
if (--active_connections < 0) { if (!c->doh) {
internal_error("active connections underflow"); if (--active_connections < 0) {
active_connections = 0; internal_error("active connections underflow");
active_connections = 0;
}
} }
if (c->state != S_WAIT) { if (c->state != S_WAIT && !c->doh) {
if ((h = is_host_on_list(c))) { if ((h = is_host_on_list(c))) {
if (!--h->conn) { if (!--h->conn) {
del_from_list(h); del_from_list(h);
@ -464,9 +469,8 @@ static int try_to_suspend_connection(struct connection *c, unsigned char *ho)
return -1; return -1;
} }
int is_noproxy_url(unsigned char *url) int is_noproxy_host(unsigned char *host)
{ {
unsigned char *host = get_host_name(url);
if (!proxies.only_proxies) { if (!proxies.only_proxies) {
unsigned char *np = proxies.no_proxy; unsigned char *np = proxies.no_proxy;
int host_l = (int)strlen(cast_const_char host); int host_l = (int)strlen(cast_const_char host);
@ -478,7 +482,6 @@ int is_noproxy_url(unsigned char *url)
goto no_match; goto no_match;
if (casecmp(np, host + (host_l - l), l)) if (casecmp(np, host + (host_l - l), l))
goto no_match; goto no_match;
mem_free(host);
return 1; return 1;
no_match: no_match:
if (!np[l]) if (!np[l])
@ -486,10 +489,17 @@ no_match:
np += l + 1; np += l + 1;
} }
} }
mem_free(host);
return 0; return 0;
} }
int is_noproxy_url(unsigned char *url)
{
unsigned char *host = get_host_name(url);
int r = is_noproxy_host(host);
mem_free(host);
return r;
}
static void run_connection(struct connection *c) static void run_connection(struct connection *c)
{ {
struct h_conn *hc; struct h_conn *hc;
@ -522,17 +532,21 @@ static void run_connection(struct connection *c)
del_connection(c); del_connection(c);
return; return;
} }
if (!(hc = is_host_on_list(c))) { if (c->doh && func != http_func && func != https_func && func != proxy_func)
hc = mem_alloc(sizeof(struct h_conn)); goto s_bad_url;
if (!(hc->host = get_host_name(c->url))) { if (!c->doh) {
mem_free(hc); if (!(hc = is_host_on_list(c))) {
goto s_bad_url; hc = mem_alloc(sizeof(struct h_conn));
if (!(hc->host = get_host_name(c->url))) {
mem_free(hc);
goto s_bad_url;
}
hc->conn = 0;
add_to_list(h_conns, hc);
} }
hc->conn = 0; hc->conn++;
add_to_list(h_conns, hc); active_connections++;
} }
hc->conn++;
active_connections++;
c->keepalive = 0; c->keepalive = 0;
c->running = 1; c->running = 1;
func(c); func(c);
@ -601,17 +615,19 @@ void abort_connection(struct connection *c)
static int try_connection(struct connection *c) static int try_connection(struct connection *c)
{ {
struct h_conn *hc = NULL; struct h_conn *hc;
if ((hc = is_host_on_list(c))) { if (!c->doh) {
if (hc->conn >= max_connections_to_host) { if ((hc = is_host_on_list(c))) {
if (try_to_suspend_connection(c, hc->host)) return 0; if (hc->conn >= max_connections_to_host) {
if (try_to_suspend_connection(c, hc->host)) return 0;
else return -1;
}
}
if (active_connections >= max_connections) {
if (try_to_suspend_connection(c, NULL)) return 0;
else return -1; else return -1;
} }
} }
if (active_connections >= max_connections) {
if (try_to_suspend_connection(c, NULL)) return 0;
else return -1;
}
run_connection(c); run_connection(c);
return 1; return 1;
} }
@ -627,7 +643,7 @@ static void check_queue_bugs(void)
cc = 0; cc = 0;
foreach(struct connection, d, ld, queue) { foreach(struct connection, d, ld, queue) {
int q = getpri(d); int q = getpri(d);
cc += d->running; cc += d->running && !d->doh;
if (q < p) { if (q < p) {
if (!ps) { if (!ps) {
internal_error("queue is not sorted"); internal_error("queue is not sorted");
@ -755,7 +771,7 @@ int disallow_url(unsigned char *url, int allow_flags)
/* prev_url is a pointer to previous url or NULL */ /* prev_url is a pointer to previous url or NULL */
/* prev_url will NOT be deallocated */ /* prev_url will NOT be deallocated */
void load_url(unsigned char *url, unsigned char *prev_url, struct status *stat, int pri, int no_cache, int no_compress, int allow_flags, off_t position) void load_url(unsigned char *url, unsigned char *prev_url, struct status *stat, int pri, int no_cache, int no_compress, int doh, int allow_flags, off_t position)
{ {
struct cache_entry *e = NULL; struct cache_entry *e = NULL;
struct connection *c; struct connection *c;
@ -785,7 +801,7 @@ void load_url(unsigned char *url, unsigned char *prev_url, struct status *stat,
} }
} }
#endif #endif
if (is_url_blocked(url)) { if (!doh && is_url_blocked(url)) {
if (stat) { if (stat) {
stat->state = S_BLOCKED_URL; stat->state = S_BLOCKED_URL;
if (stat->end) stat->end(stat, stat->data); if (stat->end) stat->end(stat, stat->data);
@ -841,6 +857,10 @@ void load_url(unsigned char *url, unsigned char *prev_url, struct status *stat,
u = get_proxy(url); u = get_proxy(url);
foreach(struct connection, c, lc, queue) if (!c->detached && !strcmp(cast_const_char c->url, cast_const_char u)) { foreach(struct connection, c, lc, queue) if (!c->detached && !strcmp(cast_const_char c->url, cast_const_char u)) {
if (c->from < position) continue; if (c->from < position) continue;
if (c->doh != doh) {
must_detach = 1;
break;
}
if (no_compress && !c->no_compress) { if (no_compress && !c->no_compress) {
unsigned char *enc; unsigned char *enc;
if ((c->state >= S_WAIT && c->state < S_TRANS) || !c->cache) { if ((c->state >= S_WAIT && c->state < S_TRANS) || !c->cache) {
@ -910,6 +930,7 @@ void load_url(unsigned char *url, unsigned char *prev_url, struct status *stat,
#else #else
c->no_compress = 1; c->no_compress = 1;
#endif #endif
c->doh = doh;
c->prg.timer = NULL; c->prg.timer = NULL;
c->timer = NULL; c->timer = NULL;
if (position || must_detach) { if (position || must_detach) {

View File

@ -585,6 +585,16 @@ void kill_timer(struct timer *tm)
#endif #endif
} }
int verify_handle(int fd)
{
#if defined(USE_POLL) && defined(USE_LIBEVENT)
if (!event_enabled)
#endif
if (fd >= (int)FD_SETSIZE)
return -1;
return 0;
}
void (*get_handler(int fd, int tp))(void *) void (*get_handler(int fd, int tp))(void *)
{ {
if (fd < 0) if (fd < 0)
@ -602,7 +612,7 @@ void (*get_handler(int fd, int tp))(void *)
void *get_handler_data(int fd) void *get_handler_data(int fd)
{ {
if (fd < 0) if (fd < 0)
internal_error("get_handler: handle %d", fd); internal_error("get_handler_data: handle %d", fd);
if (fd >= w_max) if (fd >= w_max)
return NULL; return NULL;
return threads[fd].data; return threads[fd].data;

View File

@ -278,7 +278,8 @@ static void x_print_screen_status(struct terminal *term, void *ses_)
{ {
struct session *ses = (struct session *)ses_; struct session *ses = (struct session *)ses_;
if (!F) { if (!F) {
unsigned char color = get_session_attribute(ses, proxies.only_proxies); decc_volatile int p = proxies.only_proxies;
unsigned char color = get_session_attribute(ses, p);
fill_area(term, 0, term->y - 1, term->x, 1, ' ', color); fill_area(term, 0, term->y - 1, term->x, 1, ' ', color);
if (ses->st) print_text(term, 0, term->y - 1, (int)strlen(cast_const_char ses->st), ses->st, COLOR_STATUS); if (ses->st) print_text(term, 0, term->y - 1, (int)strlen(cast_const_char ses->st), ses->st, COLOR_STATUS);
#ifdef G #ifdef G
@ -294,7 +295,8 @@ static void x_print_screen_title(struct terminal *term, void *ses_)
{ {
struct session *ses = (struct session *)ses_; struct session *ses = (struct session *)ses_;
unsigned char *m; unsigned char *m;
unsigned char color = get_session_attribute(ses, proxies.only_proxies); decc_volatile int p = proxies.only_proxies;
unsigned char color = get_session_attribute(ses, p);
if (!term->spec->col) color = COLOR_TITLE; if (!term->spec->col) color = COLOR_TITLE;
fill_area(term, 0, 0, term->x, 1, ' ', color); fill_area(term, 0, 0, term->x, 1, ' ', color);
if ((m = print_current_title(ses))) { if ((m = print_current_title(ses))) {
@ -827,7 +829,7 @@ static void download_data(struct status *stat, void *down_)
if (!strcmp(cast_const_char down->url, cast_const_char prev_down_url) || down->redirect_cnt >= MAX_CACHED_REDIRECTS) cache = NC_RELOAD; if (!strcmp(cast_const_char down->url, cast_const_char prev_down_url) || down->redirect_cnt >= MAX_CACHED_REDIRECTS) cache = NC_RELOAD;
allow_flags = get_allow_flags(prev_down_url); allow_flags = get_allow_flags(prev_down_url);
mem_free(prev_down_url); mem_free(prev_down_url);
load_url(down->url, NULL, &down->stat, PRI_DOWNLOAD, cache, 1, allow_flags, down->last_pos); load_url(down->url, NULL, &down->stat, PRI_DOWNLOAD, cache, 1, 0, allow_flags, down->last_pos);
return; return;
} else { } else {
if (stat->state >= 0) change_connection(&down->stat, NULL, PRI_CANCEL); if (stat->state >= 0) change_connection(&down->stat, NULL, PRI_CANCEL);
@ -1178,7 +1180,7 @@ void start_download(struct session *ses, unsigned char *file, int mode)
down->ses = ses; down->ses = ses;
down->remotetime = 0; down->remotetime = 0;
add_to_list(downloads, down); add_to_list(downloads, down);
load_url(url, NULL, &down->stat, PRI_DOWNLOAD, NC_CACHE, 1, ses->dn_allow_flags, down->last_pos); load_url(url, NULL, &down->stat, PRI_DOWNLOAD, NC_CACHE, 1, 0, ses->dn_allow_flags, down->last_pos);
display_download(ses->term, down, ses); display_download(ses->term, down, ses);
} }

9
sortix.c Normal file
View File

@ -0,0 +1,9 @@
#include "cfg.h"
#ifdef GRDRV_SORTIX
#include "links.h"
struct graphics_driver sortix_driver;
#endif /* GRDRV_SORTIX */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1334,14 +1334,14 @@ void exec_on_terminal(struct terminal *term, unsigned char *path, unsigned char
int rs; int rs;
if (path && !*path) return; if (path && !*path) return;
if (!path) path = cast_uchar ""; if (!path) path = cast_uchar "";
#ifdef NO_FG_EXEC
fg = 0;
#endif
#ifdef HAVE_EXE_ON_BACKGROUND #ifdef HAVE_EXE_ON_BACKGROUND
if (*path) { if (*path) {
rs = exe_on_background(path, delet); rs = exe_on_background(path, delet, fg);
if (!rs) return; if (!rs) return;
} }
#endif
#ifdef NO_FG_EXEC
fg = 0;
#endif #endif
if (term->master) { if (term->master) {
if (!*path) { if (!*path) {

5
tix.port Normal file
View File

@ -0,0 +1,5 @@
NAME=links
BUILD_LIBRARIES='libssl libbrotli? libevent? liblzma? libz? libzstd? liblzip?'
BUILD_SYSTEM=configure
LOCATION_INDEPENDENT=true
LICENSE=GPL-2.0-or-later

12
types.c
View File

@ -750,6 +750,7 @@ void create_initial_extensions(void)
ext.ext = cast_uchar "xpm", ext.ct=cast_uchar "image/x-xpixmap", update_ext(&ext); ext.ext = cast_uchar "xpm", ext.ct=cast_uchar "image/x-xpixmap", update_ext(&ext);
ext.ext = cast_uchar "xls", ext.ct=cast_uchar "application/excel", update_ext(&ext); ext.ext = cast_uchar "xls", ext.ct=cast_uchar "application/excel", update_ext(&ext);
ext.ext = cast_uchar "xbm", ext.ct=cast_uchar "image/x-xbitmap", update_ext(&ext); ext.ext = cast_uchar "xbm", ext.ct=cast_uchar "image/x-xbitmap", update_ext(&ext);
ext.ext = cast_uchar "webp", ext.ct=cast_uchar "image/webp", update_ext(&ext);
ext.ext = cast_uchar "wav", ext.ct=cast_uchar "audio/x-wav", update_ext(&ext); ext.ext = cast_uchar "wav", ext.ct=cast_uchar "audio/x-wav", update_ext(&ext);
ext.ext = cast_uchar "tiff,tif", ext.ct=cast_uchar "image/tiff", update_ext(&ext); ext.ext = cast_uchar "tiff,tif", ext.ct=cast_uchar "image/tiff", update_ext(&ext);
ext.ext = cast_uchar "tga", ext.ct=cast_uchar "image/targa", update_ext(&ext); ext.ext = cast_uchar "tga", ext.ct=cast_uchar "image/targa", update_ext(&ext);
@ -784,6 +785,7 @@ void create_initial_extensions(void)
ext.ext = cast_uchar "dvi", ext.ct=cast_uchar "application/x-dvi", update_ext(&ext); ext.ext = cast_uchar "dvi", ext.ct=cast_uchar "application/x-dvi", update_ext(&ext);
ext.ext = cast_uchar "dl", ext.ct=cast_uchar "video/dl", update_ext(&ext); ext.ext = cast_uchar "dl", ext.ct=cast_uchar "video/dl", update_ext(&ext);
ext.ext = cast_uchar "deb", ext.ct=cast_uchar "application/x-debian-package", update_ext(&ext); ext.ext = cast_uchar "deb", ext.ct=cast_uchar "application/x-debian-package", update_ext(&ext);
ext.ext = cast_uchar "avif", ext.ct=cast_uchar "image/avif", update_ext(&ext);
ext.ext = cast_uchar "avi", ext.ct=cast_uchar "video/x-msvideo", update_ext(&ext); ext.ext = cast_uchar "avi", ext.ct=cast_uchar "video/x-msvideo", update_ext(&ext);
ext.ext = cast_uchar "au,snd", ext.ct=cast_uchar "audio/basic", update_ext(&ext); ext.ext = cast_uchar "au,snd", ext.ct=cast_uchar "audio/basic", update_ext(&ext);
ext.ext = cast_uchar "aif,aiff,aifc", ext.ct=cast_uchar "audio/x-aiff", update_ext(&ext); ext.ext = cast_uchar "aif,aiff,aifc", ext.ct=cast_uchar "audio/x-aiff", update_ext(&ext);
@ -797,6 +799,7 @@ struct list_head telnet_prog = { &telnet_prog, &telnet_prog };
struct list_head tn3270_prog = { &tn3270_prog, &tn3270_prog }; struct list_head tn3270_prog = { &tn3270_prog, &tn3270_prog };
struct list_head mms_prog = { &mms_prog, &mms_prog }; struct list_head mms_prog = { &mms_prog, &mms_prog };
struct list_head magnet_prog = { &magnet_prog, &magnet_prog }; struct list_head magnet_prog = { &magnet_prog, &magnet_prog };
struct list_head gopher_prog = { &gopher_prog, &gopher_prog };
static int is_in_list(unsigned char *list, unsigned char *str, int l) static int is_in_list(unsigned char *list, unsigned char *str, int l)
@ -900,6 +903,9 @@ unsigned char *get_content_type_by_extension(unsigned char *url)
if ((extl == 3 && !casecmp(ext, cast_uchar "xbm", 3))) return stracpy(cast_uchar "image/x-xbitmap"); if ((extl == 3 && !casecmp(ext, cast_uchar "xbm", 3))) return stracpy(cast_uchar "image/x-xbitmap");
if ((extl == 3 && !casecmp(ext, cast_uchar "tif", 3)) || if ((extl == 3 && !casecmp(ext, cast_uchar "tif", 3)) ||
(extl == 4 && !casecmp(ext, cast_uchar "tiff", 4))) return stracpy(cast_uchar "image/tiff"); (extl == 4 && !casecmp(ext, cast_uchar "tiff", 4))) return stracpy(cast_uchar "image/tiff");
if ((extl == 3 && !casecmp(ext, cast_uchar "svg", 3))) return stracpy(cast_uchar "image/svg+xml");
if ((extl == 4 && !casecmp(ext, cast_uchar "webp", 4))) return stracpy(cast_uchar "image/webp");
if ((extl == 4 && !casecmp(ext, cast_uchar "avif", 4))) return stracpy(cast_uchar "image/avif");
exxt = init_str(); el = 0; exxt = init_str(); el = 0;
add_to_str(&exxt, &el, cast_uchar "application/x-"); add_to_str(&exxt, &el, cast_uchar "application/x-");
add_bytes_to_str(&exxt, &el, ext, extl); add_bytes_to_str(&exxt, &el, ext, extl);
@ -960,6 +966,10 @@ static unsigned char *get_extension_by_content_type(unsigned char *ct)
if (!casestrcmp(ct, cast_uchar "image/svg") || if (!casestrcmp(ct, cast_uchar "image/svg") ||
!casestrcmp(ct, cast_uchar "image/svg+xml")) !casestrcmp(ct, cast_uchar "image/svg+xml"))
return stracpy(cast_uchar "svg"); return stracpy(cast_uchar "svg");
if (!casestrcmp(ct, cast_uchar "image/webp"))
return stracpy(cast_uchar "webp");
if (!casestrcmp(ct, cast_uchar "image/avif"))
return stracpy(cast_uchar "avif");
if (!cmpbeg(ct, cast_uchar "application/x-")) { if (!cmpbeg(ct, cast_uchar "application/x-")) {
x = ct + strlen("application/x-"); x = ct + strlen("application/x-");
if (casestrcmp(x, cast_uchar "z") && if (casestrcmp(x, cast_uchar "z") &&
@ -1317,8 +1327,8 @@ void free_types(void)
free_prog_list(&tn3270_prog); free_prog_list(&tn3270_prog);
free_prog_list(&mms_prog); free_prog_list(&mms_prog);
free_prog_list(&magnet_prog); free_prog_list(&magnet_prog);
free_prog_list(&gopher_prog);
free_history(ext_search_history); free_history(ext_search_history);
free_history(assoc_search_history); free_history(assoc_search_history);
} }

2
url.c
View File

@ -31,6 +31,7 @@ static_const struct {
{"tn3270", 0, NULL, tn3270_func, 0, 0, 0, 0, 1}, {"tn3270", 0, NULL, tn3270_func, 0, 0, 0, 0, 1},
{"mms", 0, NULL, mms_func, 1, 0, 1, 0, 1}, {"mms", 0, NULL, mms_func, 1, 0, 1, 0, 1},
{"magnet", 0, NULL, magnet_func, 1, 0, 0, 0, 1}, {"magnet", 0, NULL, magnet_func, 1, 0, 0, 0, 1},
{"gopher", 0, NULL, gopher_func, 1, 0, 0, 0, 1},
#ifdef JS #ifdef JS
{"javascript", 0, NULL, javascript_func,1, 0, 0, 0, 0}, {"javascript", 0, NULL, javascript_func,1, 0, 0, 0, 0},
#endif #endif
@ -266,6 +267,7 @@ static void translate_directories(unsigned char *url)
int lo = !casecmp(url, cast_uchar "file://", 7); int lo = !casecmp(url, cast_uchar "file://", 7);
if (!casecmp(url, cast_uchar "javascript:", 11)) return; if (!casecmp(url, cast_uchar "javascript:", 11)) return;
if (!casecmp(url, cast_uchar "magnet:", 7)) return; if (!casecmp(url, cast_uchar "magnet:", 7)) return;
if (!casecmp(url, cast_uchar "gopher:", 7)) return;
if (!dd || dd == url /*|| *--dd != '/'*/) return; if (!dd || dd == url /*|| *--dd != '/'*/) return;
if (!dsep(*dd)) { if (!dsep(*dd)) {
dd--; dd--;

3
view.c
View File

@ -2253,6 +2253,7 @@ unsigned char *get_form_url(struct session *ses, struct f_data_c *f, struct form
else add_to_strn(&go, cast_uchar "?"); else add_to_strn(&go, cast_uchar "?");
add_to_strn(&go, data); add_to_strn(&go, data);
if (pos) { if (pos) {
add_to_strn(&go, cast_uchar "#");
add_to_strn(&go, pos); add_to_strn(&go, pos);
mem_free(pos); mem_free(pos);
} }
@ -2271,7 +2272,7 @@ unsigned char *get_form_url(struct session *ses, struct f_data_c *f, struct form
for (i = 0; i < len; i++) { for (i = 0; i < len; i++) {
unsigned char p[3]; unsigned char p[3];
sprintf(cast_char p, "%02x", (int)data[i]); sprintf(cast_char p, "%02x", (int)data[i]);
add_to_str(&go, &l, p); add_bytes_to_str(&go, &l, p, 2);
} }
} }
x: x:

83
webp.c Normal file
View File

@ -0,0 +1,83 @@
#include "cfg.h"
#ifdef G
#include "links.h"
#ifdef HAVE_WEBP
#include <webp/decode.h>
struct webp_decoder {
unsigned char *buffer;
int len;
};
static void webp_free(unsigned char *ptr)
{
#ifdef HAVE_WEBPFREE
WebPFree(ptr);
#else
free(ptr);
#endif
}
void webp_start(struct cached_image *cimg)
{
struct webp_decoder *deco;
deco = mem_alloc(sizeof(struct webp_decoder));
deco->buffer = init_str();
deco->len = 0;
cimg->decoder = deco;
}
void webp_restart(struct cached_image *cimg, unsigned char *data, int length)
{
struct webp_decoder *deco = (struct webp_decoder *)cimg->decoder;
add_bytes_to_str(&deco->buffer, &deco->len, data, length);
}
void webp_finish(struct cached_image *cimg)
{
int w, h;
struct webp_decoder *deco = (struct webp_decoder *)cimg->decoder;
unsigned char *pixels;
pixels = WebPDecodeRGBA(deco->buffer, deco->len, &w, &h);
if (!pixels)
goto end;
cimg->width = w;
cimg->height = h;
cimg->buffer_bytes_per_pixel = 4;
cimg->red_gamma = cimg->green_gamma = cimg->blue_gamma = (float)sRGB_gamma;
cimg->strip_optimized = 0;
if (header_dimensions_known(cimg))
goto end_free_pixels;
memcpy(cimg->buffer, pixels, w * h * 4);
end_free_pixels:
webp_free(pixels);
end:
img_end(cimg);
}
void webp_destroy_decoder(struct cached_image *cimg)
{
struct webp_decoder *deco = (struct webp_decoder *)cimg->decoder;
mem_free(deco->buffer);
}
void add_webp_version(unsigned char **s, int *l)
{
int v = WebPGetDecoderVersion();
add_to_str(s, l, cast_uchar "WEBP (");
add_num_to_str(s, l, (v >> 16));
add_chr_to_str(s, l, '.');
add_num_to_str(s, l, (v >> 8) & 0xff);
add_chr_to_str(s, l, '.');
add_num_to_str(s, l, v & 0xff);
add_chr_to_str(s, l, ')');
}
#endif
#endif

2
x.c
View File

@ -2910,7 +2910,7 @@ static unsigned char *x_get_clipboard_text(void)
if (tt > SELECTION_NOTIFY_TIMEOUT) if (tt > SELECTION_NOTIFY_TIMEOUT)
w = 0; w = 0;
else else
w = (SELECTION_NOTIFY_TIMEOUT - tt + 999) / 1000; w = (SELECTION_NOTIFY_TIMEOUT - (unsigned)tt + 999) / 1000;
if (!x_wait_for_event(w)) if (!x_wait_for_event(w))
goto no_new_sel; goto no_new_sel;
} }