Upstream Links 2.26

This commit is contained in:
Juhani Krekelä 2022-06-06 16:08:05 +03:00
parent 4677966d3f
commit 062136efb3
78 changed files with 3724 additions and 2015 deletions

10
AUTHORS
View File

@ -389,3 +389,13 @@ pluvano <me@pluvano.com>
Ing. Daniel G. Gionco <dggionco@hotmail.com>
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

View File

@ -1,3 +1,44 @@
=== 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 ===
Fri Oct 1 18:27:25 CEST 2021 mikulas:

View File

@ -1,4 +1,4 @@
Links 2.25 -- How To Install
Links 2.26 -- How To Install
----------------------------
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
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 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 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
dist-hook:

View File

@ -78,7 +78,7 @@ bin_PROGRAMS = links
@HAIKU_GR_TRUE@links_LDADD = haiku.o
@JAVASCRIPT_TRUE@links_LDADD = builtin.o context.o ipret.o javascr.o javascript.o md5.o md5hl.o ns.o pomocny.o regexp.o
links_SOURCES = af_unix.c auth.c beos.c bfu.c block.c bookmark.c cache.c charsets.c compress.c connect.c cookies.c data.c default.c dip.c directfb.c dither.c dns.c dos.c drivers.c error.c file.c finger.c fn_impl.c fontconf.c font_inc.c framebuf.c freetype.c ftp.c gif.c grx.c hpux.c html.c html_gr.c html_r.c html_tbl.c http.c https.c img.c imgcache.c jpeg.c jsint.c kbd.c language.c listedit.c lru.c mailto.c main.c memory.c menu.c objreq.c os_dep.c pmshell.c png.c sched.c select.c session.c smb.c string.c suffix.c svg.c svgalib.c terminal.c tiff.c types.c url.c view.c view_gr.c vms.c x.c xbm.c beos.h bits.h cfg.h codepage.h com-defs.h config-vms.h dfb_cur.h hpux.h language.h links.h os_dep.h os_depx.h setup.h arrow.inc certs.inc codepage.inc entity.inc fbcommon.inc language.inc links_ic.inc locase.inc suffix.inc suffix_x.inc uni_7b.inc upcase.inc vpipe.inc
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 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 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@
@ -96,13 +96,13 @@ CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
links_OBJECTS = af_unix.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 \
dip.o directfb.o dither.o dns.o dos.o drivers.o error.o file.o finger.o \
fn_impl.o fontconf.o font_inc.o framebuf.o freetype.o ftp.o gif.o grx.o \
hpux.o html.o html_gr.o html_r.o html_tbl.o http.o https.o img.o \
imgcache.o jpeg.o jsint.o kbd.o language.o listedit.o lru.o mailto.o \
main.o memory.o menu.o objreq.o os_dep.o pmshell.o png.o sched.o \
select.o session.o smb.o string.o suffix.o svg.o svgalib.o terminal.o \
tiff.o types.o url.o view.o view_gr.o vms.o x.o xbm.o
dip.o directfb.o dither.o dns.o doh.o dos.o drivers.o error.o file.o \
finger.o fn_impl.o fontconf.o font_inc.o framebuf.o freetype.o ftp.o \
gif.o grx.o hpux.o html.o html_gr.o html_r.o html_tbl.o http.o https.o \
img.o imgcache.o jpeg.o jsint.o kbd.o language.o listedit.o lru.o \
mailto.o main.o memory.o menu.o objreq.o os_dep.o pmshell.o png.o \
sched.o select.o session.o smb.o string.o suffix.o svg.o svgalib.o \
terminal.o tiff.o types.o url.o view.o view_gr.o vms.o webp.o x.o xbm.o
@ATHEOS_GR_TRUE@links_DEPENDENCIES = atheos.o
@JAVASCRIPT_TRUE@links_DEPENDENCIES = builtin.o context.o ipret.o \
@JAVASCRIPT_TRUE@javascr.o javascript.o md5.o md5hl.o ns.o pomocny.o \
@ -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
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
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
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
@ -481,6 +483,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 \
os_depx.h setup.h language.h codepage.h
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 \
language.h codepage.h
xbm.o: xbm.c cfg.h config.h links.h com-defs.h os_dep.h os_depx.h \

View File

@ -241,5 +241,8 @@
/* SVG */
#undef HAVE_SVG
/* WebP */
#undef HAVE_WEBP
/* Gpm_Event has wdx and wdy */
#undef HAVE_WDX_WDY

9
bfu.c
View File

@ -1666,15 +1666,6 @@ static int check_local_ip_address_internal(struct dialog_data *dlg, struct dialo
if (!*p) {
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);
if (s != -1) {
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 "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 "Links Homepage", cast_uchar "http://atrey.karlin.mff.cuni.cz/~clock/twibright/links/", 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://links.twibright.com/", 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 "Kalibracni procedura", cast_uchar "http://atrey.karlin.mff.cuni.cz/~clock/twibright/links/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 "Kalibracni procedura", cast_uchar "http://links.twibright.com/kalibrace.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);
}

View File

@ -126,6 +126,15 @@
/* Define if you have the SSL_set_security_level function. */
/* #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. */
/* #undef HAVE_X509_CHECK_HOST */
@ -798,6 +807,9 @@
/* Define if you have the <values.h> header file. */
/* #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. */
/* #undef HAVE_WINDOWSX_H */
@ -897,6 +909,9 @@
/* Define if you have the watt library (-lwatt). */
/* #undef HAVE_LIBWATT */
/* Define if you have the webp library (-lwebp). */
/* #undef HAVE_LIBWEBP */
/* Define if you have the x86 library (-lx86). */
/* #undef HAVE_LIBX86 */
@ -919,11 +934,11 @@
#define PACKAGE "links"
/* Version number of package */
#define VERSION "2.25"
#define VERSION "2.26"
/* */
#define VERSION "2.25"
#define VERSION "2.26"
/* */
/* #undef HAVE_OPENMP */
@ -1156,5 +1171,8 @@
/* SVG */
/* #undef HAVE_SVG */
/* WebP */
/* #undef HAVE_WEBP */
/* Gpm_Event has wdx and wdy */
/* #undef HAVE_WDX_WDY */

View File

@ -125,6 +125,15 @@
/* Define if you have the SSL_set_security_level function. */
#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. */
#undef HAVE_X509_CHECK_HOST
@ -818,6 +827,9 @@
/* Define if you have the <values.h> header file. */
#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. */
#undef HAVE_WINDOWSX_H
@ -920,6 +932,9 @@
/* Define if you have the watt library (-lwatt). */
#undef HAVE_LIBWATT
/* Define if you have the webp library (-lwebp). */
#undef HAVE_LIBWEBP
/* Define if you have the x86 library (-lx86). */
#undef HAVE_LIBX86
@ -1185,5 +1200,8 @@
/* SVG */
#undef HAVE_SVG
/* WebP */
#undef HAVE_WEBP
/* Gpm_Event has wdx and wdy */
#undef HAVE_WDX_WDY

1737
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@
AC_INIT(main.c)
AM_INIT_AUTOMAKE(links, 2.25)
AM_INIT_AUTOMAKE(links, 2.26)
ACLOCAL="./missing aclocal"
AUTOCONF="./missing autoconf"
@ -910,7 +910,7 @@ if test -z "$disable_ssl"; then
if test "$cf_result" = nss; then
AC_DEFINE(HAVE_NSS)
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_TRY_LINK([#include <openssl/crypto.h>
static int csmf(void *(*m)(size_t), void *(*r)(void *, size_t), void (*f)(void *)) { return 0; }
@ -1441,11 +1441,12 @@ fi
fi
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
AC_CHECK_LIB(rsvg-2, rsvg_handle_render_cairo)
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
AC_HAVE_FUNCS(rsvg_handle_read_stream_sync)
AC_DEFINE(HAVE_SVG)
cf_have_svg=yes
image_formats="$image_formats SVG"
@ -1455,6 +1456,38 @@ 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
if test -z "$drivers" && test "$cf_use_graphics" != no; then
AC_MSG_ERROR([No graphics drivers found.])

View File

@ -110,9 +110,7 @@ int socket_and_bind(int pf, unsigned char *address)
struct sockaddr_in sa;
unsigned char addr[4];
if (numeric_ip_address(address, addr) == -1) {
EINTRLOOP(rs, close(s));
errno = EINVAL;
return -1;
goto bind_to_iface;
}
memset(&sa, 0, sizeof sa);
sa.sin_family = AF_INET;
@ -133,9 +131,7 @@ int socket_and_bind(int pf, unsigned char *address)
unsigned char addr[16];
unsigned scope;
if (numeric_ipv6_address(address, addr, &scope) == -1) {
EINTRLOOP(rs, close(s));
errno = EINVAL;
return -1;
goto bind_to_iface;
}
memset(&sa, 0, sizeof sa);
sa.sin6_family = AF_INET6;
@ -162,6 +158,16 @@ int socket_and_bind(int pf, unsigned char *address)
}
}
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)
@ -187,7 +193,6 @@ struct conn_info {
void make_connection(struct connection *c, int port, int *sock, void (*func)(struct connection *))
{
int socks_port = -1;
int as;
unsigned char *host;
size_t sl;
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.dont_try_more_servers = 1;
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 {
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);
if (as) setcstate(c, S_DNS);
}
int is_ipv6(int h)
@ -610,16 +618,13 @@ void retry_connect(struct connection *c, int err, int ssl_downgrade)
return;
}
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 == 1)
rotate_addresses(&b->l.addr);
log_string(cast_uchar "\nNEXT ADDRESS\n");
close_socket(b->sock);
try_connect(c);
} else
#endif
{
} else {
dns_clear_host(b->host);
setcstate(c, b->first_error);
retry_connection(c);
@ -702,11 +707,9 @@ static void try_connect(struct connection *c)
}
set_handlers(s, NULL, connected, c);
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)) {
set_connection_timeout(c);
}
#endif
} else {
connected(c);
}
@ -846,7 +849,6 @@ skip_numeric_address:
static void update_dns_priority(struct connection *c)
{
#if MAX_ADDRESSES > 1
struct conn_info *b = c->newconn;
if (!b->l.dont_try_more_servers && b->host[0]) {
if (b->l.addr_index) {
@ -857,7 +859,6 @@ static void update_dns_priority(struct connection *c)
}
b->l.dont_try_more_servers = 1;
}
#endif
}
static void connected_callback(struct connection *c)

View File

@ -1426,26 +1426,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)
{
unsigned char *e;
@ -1665,10 +1645,10 @@ fprintf(stdout, "%s%s%s%s%s%s\n",
" Timeout for connection when trying multiple addresses or keepalive connection.\n"
" (default: 3)\n"
"\n"
" -bind-address <ip address>\n"
" -bind-address <ip address or interface name>\n"
" Use a specific local IP address.\n"
"\n"
" -bind-address-ipv6 <ipv6 address>\n"
" -bind-address-ipv6 <ipv6 address or interface name>\n"
" Use a specific local IPv6 address.\n"
"\n"
" -no-libevent\n"
@ -1677,9 +1657,6 @@ fprintf(stdout, "%s%s%s%s%s%s\n",
" -no-openmp\n"
" Don't use OpenMP.\n"
"\n"
" -async-dns <0>/<1>\n"
" Asynchronous DNS resolver on(1)/off(0).\n"
"\n"
" -download-utime <0>/<1>\n"
" Set time of downloaded files to last modification time reported by server.\n"
"\n"
@ -1767,6 +1744,13 @@ fprintf(stdout, "%s%s%s%s%s%s\n",
"\n"
" -ssl.client-cert-password <text>\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"),(
" -http-bugs.http10 <0>/<1>\n"
" (default 0)\n"
@ -2139,7 +2123,6 @@ int unrestartable_receive_timeout = 600;
int timeout_multiple_addresses = 3;
unsigned char bind_ip_address[16] = "";
unsigned char bind_ipv6_address[INET6_ADDRSTRLEN] = "";
int async_lookup = 1;
int download_utime = 0;
int max_format_cache_entries = 5;
@ -2157,6 +2140,8 @@ struct ssl_options ssl_options = { SSL_WARN_ON_INVALID_CERTIFICATE,
0,
#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 ftp_options ftp_options = { "somebody@host.domain", 1, 0, 1 };
struct smb_options smb_options = { 0 };
@ -2269,11 +2254,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, &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, ip_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, 16, bind_ip_address, "bind_address", "bind-address"},
{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_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, 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"},
@ -2296,6 +2280,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_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, 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.allow_blacklist, "http_bugs.allow_blacklist", "http-bugs.allow-blacklist"},
{1, gen_cmd, NULL, NULL, 0, 1, NULL, "http_bugs.bug_302_redirect", NULL},
@ -2366,6 +2352,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, &mms_prog, "mms", 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, dp_rd, dp_wr, 0, 0, NULL, "video_driver", 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
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,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)
$(LINK) /EXECUTABLE=LINKS.EXE $(OBJS)$(LINKFLAGS)

8
dip.c
View File

@ -160,8 +160,10 @@ static void add_row_gray(unsigned *my_restrict row_buf, unsigned char *my_restri
ATTR_NOINLINE
#endif
static void add_col_color(scale_t *my_restrict col_buf,
#if defined(__GNUC__) && __GNUC__ == 3
#ifdef __GNUC__
#if __GNUC__ == 3
volatile
#endif
#endif
unsigned short *my_restrict ptr,
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 */
/* We assume unsigned short holds at least 16 bits. */
static void add_row_color(scale_t *my_restrict row_buf,
#if defined(__GNUC__) && __GNUC__ == 3
#ifdef __GNUC__
#if __GNUC__ == 3
volatile
#endif
#endif
unsigned short *my_restrict ptr,
size_t n, ulonglong weight)

View File

@ -54,9 +54,11 @@
static int *red_table = DUMMY, *green_table = DUMMY, *blue_table = DUMMY;
static int table_16 = 1;
static unsigned short *
#if defined(__GNUC__) && __GNUC__ == 3
#ifdef __GNUC__
#if __GNUC__ == 3
volatile
#endif
#endif
real_colors_table = NULL;
/* 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 {
list_entry_1st
uttime absolute_time;
uttime timeout;
struct lookup_result addr;
list_entry_last
unsigned char name[1];
@ -72,23 +73,9 @@ struct dnsentry {
struct dnsquery *dns_queue = NULL;
#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 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 get_addr_byte(unsigned char **ptr, unsigned char *res, unsigned char stp)
@ -237,22 +224,18 @@ skip_addr:
#endif
#if MAX_ADDRESSES > 1
static int memcmp_host_address(struct host_address *a, struct host_address *b)
{
if (a->af != b->af || a->scope_id != b->scope_id)
return 1;
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 *e, *t;
#if MAX_ADDRESSES > 1
struct host_address *n;
#endif
if (af != AF_INET && preference == ADDR_PREFERENCE_IPV4_ONLY)
return;
#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;
e = &host->a[host->n];
t = e;
#if MAX_ADDRESSES > 1
for (n = host->a; n != e; n++) {
if (!memcmp_host_address(n, &neww))
return;
@ -283,7 +265,6 @@ static void add_address(struct lookup_result *host, int af, unsigned char *addre
#endif
}
memmove(t + 1, t, (e - t) * sizeof(struct host_address));
#endif
memcpy(t, &neww, sizeof(struct host_address));
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)
{
#if MAX_ADDRESSES > 1
int first_type, first_different, i;
if (host->n <= 2)
@ -352,7 +332,6 @@ do_swap:
memmove(&host->a[2], &host->a[1], (first_different - 1) * 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)
@ -471,11 +450,11 @@ static void end_real_lookup(void *q_)
end:
set_handlers(q->h, NULL, NULL, NULL);
EINTRLOOP(rs, close(q->h));
end_dns_lookup(q, r);
end_dns_lookup(q, r, -1);
}
#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);*/
#ifndef NO_ASYNC_LOOKUP
@ -485,34 +464,30 @@ static int do_lookup(struct dnsquery *q, int force_async)
sync_lookup:
#endif
do_real_lookup(q->name, q->addr_preference, q->addr);
end_dns_lookup(q, !q->addr->n);
return 0;
end_dns_lookup(q, !q->addr->n, -1);
#ifndef NO_ASYNC_LOOKUP
} else {
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;
set_handlers(q->h, end_real_lookup, NULL, q);
return 1;
}
#endif
}
static int do_queued_lookup(struct dnsquery *q)
static void do_queued_lookup(struct dnsquery *q)
{
#ifndef THREAD_SAFE_LOOKUP
q->next_in_queue = NULL;
if (!dns_queue) {
dns_queue = q;
/*debug("direct lookup");*/
#endif
return do_lookup(q, 0);
do_lookup(q, 0);
#ifndef THREAD_SAFE_LOOKUP
} else {
/*debug("queuing lookup for %s", q->name);*/
if (dns_queue->next_in_queue) internal_error("DNS queue corrupted");
dns_queue->next_in_queue = q;
dns_queue = q;
return 1;
}
#endif
}
@ -546,13 +521,15 @@ static void free_dns_entry(struct dnsentry *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;
size_t sl;
void (*fn)(void *, int);
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
if (q->next_in_queue) {
/*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);
memcpy(&dnsentry->addr, q->addr, sizeof(struct lookup_result));
dnsentry->absolute_time = get_absolute_time();
dnsentry->timeout = timeout;
add_to_list(dns_cache, dnsentry);
e:
if (q->s) *q->s = NULL;
@ -589,7 +567,7 @@ static void end_dns_lookup(struct dnsquery *q, int 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;
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))
goto retry;
fn(data, 1);
return 0;
}
#ifndef THREAD_SAFE_LOOKUP
q->next_in_queue = NULL;
#endif
q->fn = fn;
q->data = data;
q->s = (struct dnsquery **)qp;
q->s = qp;
q->doh = NULL;
q->addr = addr;
q->addr_preference = ipv6_options.addr_preference;
strcpy(cast_char q->name, cast_const_char name);
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;
if (qp) *qp = NULL;
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));
fn(data, 0);
return 0;
}
timeout:
return find_host_no_cache(name, addr, qp, fn, data);
return -1;
}
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));
if (!addr)
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
}
#if MAX_ADDRESSES > 1
void dns_set_priority(unsigned char *name, struct host_address *address, int prefer)
{
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));
}
}
#endif
void dns_clear_host(unsigned char *name)
{
@ -686,6 +678,7 @@ unsigned long dns_info(int type)
{
switch (type) {
case CI_FILES:
shrink_dns_cache(SH_CHECK_QUOTA);
return list_size(&dns_cache);
default:
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);
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:
ld = d->list_entry.prev;
free_dns_entry(d);
@ -800,6 +793,7 @@ void flood_memory(void)
while (1) {
while ((de = mem_alloc_mayfail(s))) {
de->absolute_time = get_absolute_time();
de->timeout = DNS_TIMEOUT;
memset(&de->addr, 0, sizeof de->addr);
de->name[0] = 0;
add_to_list(list, de);

226
doh.c Normal file
View File

@ -0,0 +1,226 @@
#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 {
add_to_str(&u, &ul, cast_uchar "https://");
add_to_str(&u, &ul, dns_over_https);
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

@ -1068,8 +1068,10 @@ static void fb_ps2_in(void *nic)
if (dw & 0x08) dw |= -0x10;
}
mouse_x += dx;
mouse_y += dy;
if (fb_active) {
mouse_x += dx;
mouse_y += dy;
}
if (mouse_x >= fb_xsize) mouse_x = fb_xsize - 1;
if (mouse_y >= fb_ysize) mouse_y = fb_ysize - 1;
@ -2077,7 +2079,7 @@ static int fb_block(struct graphics_device *dev)
fb_block_dev = dev;
unhandle_fb_mouse();
fb_old_vd = current_virtual_device;
current_virtual_device=NULL;
current_virtual_device = NULL;
svgalib_block_itrm(fb_kbd);
if (have_cmap && fb_active) set_palette(&old_palette);
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))
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
if (ftp_options.set_tos) {
int rx;
int on = IPTOS_THROUGHPUT;
EINTRLOOP(rx, setsockopt(c->sock2, IPPROTO_IP, IP_TOS, (char *)&on, sizeof(int)));
}
if (ftp_options.set_tos) {
int rx;
int on = IPTOS_THROUGHPUT;
EINTRLOOP(rx, setsockopt(c->sock2, IPPROTO_IP, IP_TOS, (char *)&on, sizeof(int)));
}
#endif
}
dd = d;
while (*dd == '/') dd++;
de = cast_uchar strchr(cast_const_char dd, 0);

2
html.c
View File

@ -2728,7 +2728,7 @@ static void html_link(unsigned char *a)
!casestrcmp(name, cast_uchar "prerender") ||
!casestrcmp(name, cast_uchar "preload")) {
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);
goto skip;
}

View File

@ -456,6 +456,7 @@ static struct table *parse_table(unsigned char *html, unsigned char *eof, unsign
int i, j, k;
struct rgb l_col;
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));
*end = html;
if (bad_html) {
@ -542,6 +543,7 @@ static struct table *parse_table(unsigned char *html, unsigned char *eof, unsign
c_span = 0;
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 (c_span) new_columns(t, c_span, c_width, c_al, c_val, 1);
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_bgcolor(t_attr, &l_col);
y++, x = 0;
norow = 0;
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)))) {
@ -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 (p) CELL(t, x, y)->end = html, p = 0;
if (y == -1) y = 0, x = 0;
if (norow && x) y++, x = 0, norow = 0;
nc:
cell = new_cell(t, x, y);
if (cell->used) {

49
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 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_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_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);
@ -484,20 +484,28 @@ static void http_send_header(struct connection *c)
if (proxy) add_proxy_auth_string(&hdr, &l, c->url);
if (!info->https_forward) {
test_restart(c);
add_referer(&hdr, &l, host, c->prev_url);
add_accept(&hdr, &l);
add_accept_language(&hdr, &l, info);
add_accept_encoding(&hdr, &l, host, c);
add_accept_charset(&hdr, &l, info);
if (!c->doh) {
add_referer(&hdr, &l, host, c->prev_url);
}
add_accept(&hdr, &l, c);
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_connection(&hdr, &l, http10, proxy, !info->send_close);
add_upgrade(&hdr, &l);
add_if_modified(&hdr, &l, c);
add_range(&hdr, &l, host, c);
add_pragma_no_cache(&hdr, &l, c->no_cache);
add_auth_string(&hdr, &l, host);
if (!c->doh) {
add_upgrade(&hdr, &l);
add_if_modified(&hdr, &l, c);
add_range(&hdr, &l, host, c);
add_pragma_no_cache(&hdr, &l, c->no_cache);
add_auth_string(&hdr, &l, host);
}
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_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: ");
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:91.0) Gecko/20100101 Firefox/91.0\r\n");
} else if (!(*http_options.header.fake_useragent)) {
/*
@ -648,9 +656,11 @@ 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: 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,*/*;q=0.8\r\n");
} else {
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;
}
#endif
if (h != 401 && h != 407) {
if (h != 401 && h != 407 && !c->doh) {
unsigned char *cookie;
unsigned char *ch = head;
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;
if (e->head) mem_free(e->head);
e->head = head;
if (c->doh)
e->expire_time = 1;
if ((d = parse_http_header(head, cast_uchar "Expires", NULL))) {
time_t t = parse_http_date(d);
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:
* - we are using DNS-over-HTTPS
* - it is compressed (the mix of an old and new document
* would likely produce decompression error).
* - it was http authentication (the user doesn't need to see the
* 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);
truncate_entry(e, c->from, 0);
} 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);
#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
X509_VERIFY_PARAM_set_flags(SSL_CTX_get_cert_store(ctx)->param, X509_V_FLAG_TRUSTED_FIRST);
#else

28
img.c
View File

@ -60,6 +60,11 @@ static void destroy_decoder (struct cached_image *cimg)
case IM_SVG:
svg_destroy_decoder(cimg);
break;
#endif
#ifdef HAVE_WEBP
case IM_WEBP:
webp_destroy_decoder(cimg);
break;
#endif
}
mem_free(cimg->decoder);
@ -773,6 +778,10 @@ static void type(struct cached_image *cimg, unsigned char *content_type, unsigne
#ifdef HAVE_SVG
if (data[0] == '<' && data[1] == '?')
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 (data[0] == 0x89 && data[1] == 'P' && data[2] == 'N' && data[3] == 'G')
goto have_png;
@ -819,6 +828,13 @@ static void type(struct cached_image *cimg, unsigned char *content_type, unsigne
svg_start(cimg);
} else
#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 */
{
/* Error */
img_end(cimg);
@ -916,6 +932,11 @@ static int img_process_download(struct g_object_image *goi, struct f_data_c *fda
svg_restart(cimg,data,length);
break;
#endif /* #ifdef HAVE_SVG */
#ifdef HAVE_WEBP
case IM_WEBP:
webp_restart(cimg,data,length);
break;
#endif /* #ifdef HAVE_WEBP */
#ifdef DEBUG
default:
fprintf(stderr,"cimg->image_type=%d\n",cimg->state);
@ -942,6 +963,10 @@ img_process_download.\n");
#ifdef HAVE_SVG
if (cimg->image_type==IM_SVG)
svg_finish(cimg);
#endif
#ifdef HAVE_WEBP
if (cimg->image_type==IM_WEBP)
webp_finish(cimg);
#endif
}
cimg->eof_hit=1;
@ -1345,6 +1370,9 @@ int known_image_type(unsigned char *type)
if (!casestrcmp(type, cast_uchar "image/svg+xml")) return 1;
if (!casestrcmp(type, cast_uchar "image/svg")) return 1;
#endif
#ifdef HAVE_WEBP
if (!casestrcmp(type, cast_uchar "image/webp")) return 1;
#endif
#endif
return 0;
}

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Angka melebihi batas",
T_BAD_STRING, "Salah string",
T_EMPTY_STRING_NOT_ALLOWED, "String kosong tidak dibolehkan",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Salah 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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Hubungan",
T_MAX_CONNECTIONS, "Batas hubungan",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Batas hubungan untuk satu host",
@ -502,20 +503,22 @@ T_MANUAL, "Panduan pengguna",
T_HOMEPAGE, "Halaman rumah",
T_CALIBRATION, "Pengukuran",
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_MAGNET_PROG, NULL,
T_TN3270_PROG, "Program Tn3270 (% diganti dengan \"host\" atau \"host port\")",
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_TELNET_AND_SHELL_PROGRAMS, "Program surat, telnet dan shell",
T_NO_PROGRAM, "Tidak ada program",
T_NO_PROGRAM_SPECIFIED_FOR, "Tidak ada program diberikan untuk",
T_MAIL, "surat",
T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270",
T_MMS, "mms",
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "URL mailto salah",
T_BAD_TELNET_URL, "URL telnet salah",
T_BAD_TN3270_URL, "URL tn3270 salah",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "
T_BAD_STRING, "îÑÐÒÁצÌØÎÙ ÒÁÄÏË",
T_EMPTY_STRING_NOT_ALLOWED, "ðÕÓÔÙÑ ÒÁÄ˦ ÎÅ ÄÁÚ×ÁÌÑÀÃÃÁ",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "ðÁÍÙÌËÁ ÎÁÓÔÒÏÊ˦",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "úÌÕÞÜÎÎÑ®",
T_MAX_CONNECTIONS, "íÁËÓ. ËÏÌØËÁÓÃØ ÚÌÕÞÜÎÎÑ®",
T_MAX_CONNECTIONS_TO_ONE_HOST, "íÁËÓ. ËÏÌØËÁÓÃØ ÚÌÕÞÜÎÎÑ® ÄÁ ÁÄÎÁÇÏ ÓÅÒ×ÅÒÁ",
@ -502,20 +503,22 @@ T_MANUAL, "
T_HOMEPAGE, NULL,
T_CALIBRATION, NULL,
T_MAILTO_PROG, "ðÒÁÇÒÁÍÁ ÁÄÐÒÁ®Ë¦ ÐÏÛÔÙ (% ÚÁÍÑÎÑÅÃÃÁ ÎÁ ÁÄÒÁÓ)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "ðÒÁÇÒÁÍÁ telnet (% ÚÁÍÑÎÑÅÃÃÁ ÎÁ 'host' æ 'host port')",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "ðÒÁÇÒÁÍÁ tn3270 (% ÚÁÍÑÎÑÅÃÃÁ ÎÁ 'host' æ 'host port')",
T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "ðÒÁÇÒÁÍÙ ÄÌÑ ÐÏÛÔÙ ¦ telnet'Á",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "îÑÍÁ ÐÒÁÇÒÁÍÙ",
T_NO_PROGRAM_SPECIFIED_FOR, "îÅ ®ËÁÚÁÎÁ ÐÒÁÇÒÁÍÁ ÄÌÑ",
T_MAIL, "ÐÏÛÔÙ",
T_TELNET, NULL,
T_MAGNET, NULL,
T_TN3270, NULL,
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "îÑÐÒÁצÌØÎÙ ÁÄÒÁÓ mailto:",
T_BAD_TELNET_URL, "îÑÐÒÁצÌØÎÙ ÁÄÒÁÓ telnet",
T_BAD_TN3270_URL, "îÑÐÒÁצÌØÎÙ ÁÄÒÁÓ tn3270",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "Não é permitido sequência de caracteres vazia",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Erro 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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "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",
@ -502,20 +503,22 @@ T_MANUAL, "Manual do Usu
T_HOMEPAGE, NULL,
T_CALIBRATION, NULL,
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_MAGNET_PROG, NULL,
T_TN3270_PROG, "Cliente tn3270 (% será substituido por \"host\" or \"host port\")",
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_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Nenhum programa",
T_NO_PROGRAM_SPECIFIED_FOR, "Nenhum programa foi especificado para",
T_MAIL, "mail",
T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270",
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "URL mailto incorreta",
T_BAD_TELNET_URL, "URL telnet incorreta",
T_BAD_TN3270_URL, "URL tn3270 incorreta",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "
T_BAD_STRING, "Íåâàëèäåí ñèìâîëåí íèç",
T_EMPTY_STRING_NOT_ALLOWED, "Íå å ïîçâîëåí ïðàçåí ñèìâîëåí íèç",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Ãðåøêà â íàñòðîéêèòå",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Âðúçêà(è)",
T_MAX_CONNECTIONS, "Ìàêñ. áðîé âðúçêè",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Ìàêñ. áðîé âðúçêè êúì åäèí ñúðâúð",
@ -502,20 +503,22 @@ T_MANUAL, "
T_HOMEPAGE, NULL,
T_CALIBRATION, NULL,
T_MAILTO_PROG, "Ïîùåíñêà ïðîãðàìà (% çàìåíÿ àäðåñà)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Ïðîãðàìà çà telnet (% çàìåíÿ 'host' èëè 'host port')",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Ïðîãðàìà çà tn3270 (% çàìåíÿ 'host' èëè 'host port')",
T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "Ïðîãðàìè çà ïîùà è telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Íÿìà ïðîãðàìà",
T_NO_PROGRAM_SPECIFIED_FOR, "Íå å ïîñî÷åíà ïðîãðàìà çà",
T_MAIL, "ïîùà",
T_TELNET, NULL,
T_MAGNET, NULL,
T_TN3270, NULL,
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Íåâàëèäåí àäðåñ mailto:",
T_BAD_TELNET_URL, "Íåâàëèäåí àäðåñ telnet",
T_BAD_TN3270_URL, "Íåâàëèäåí àäðåñ tn3270",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "No s'hi permeten cadenes buides",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Error 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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Connexions",
T_MAX_CONNECTIONS, "Màxim de connexions",
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_CALIBRATION, "Calibratge",
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_MAGNET_PROG, NULL,
T_TN3270_PROG, "Programa tn3270 (% és substituït per \"host\" o per \"host port\")",
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_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Cap programa",
T_NO_PROGRAM_SPECIFIED_FOR, "No hi ha cap programa especificat per a",
T_MAIL, "correu",
T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270",
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Adreça de correu incorrecta",
T_BAD_TELNET_URL, "Adreça de telnet 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_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "Prazni niz znakova nije dozvoljen",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Gre¹ka u konfiguraciji",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Veze",
T_MAX_CONNECTIONS, "Maksimanlno veza",
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_CALIBRATION, "Kalibracija",
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_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270 program (% æe biti zamijenjeno sa \"raèunalo\" ili \"raèunalo port\")",
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_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Nema programa",
T_NO_PROGRAM_SPECIFIED_FOR, "Nema programa za",
T_MAIL, "email",
T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270",
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Neispravan mailto url",
T_BAD_TELNET_URL, "Neispravan telnet url",
T_BAD_TN3270_URL, "Neispravan tn3270 url",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "Musí¹ zadat nìjaký text!",
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_CONFIG_ERROR, "Chyba v konfiguraci",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, "Chyba pøi inicializaci vestavìných certifikátù",
T_FAILED, "selhalo",
T_DNS_OPTIONS, "DNS nastavení",
T_DNS_OVER_HTTPS_URL, "DNS přes HTTPS (host nebo url)",
T_CONNECTIONS, "Spojení",
T_MAX_CONNECTIONS, "Maximálnì spojení",
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_CALIBRATION, "Kalibrace",
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_MAGNET_PROG, "Program pro magnet (% je nahrazeno URL)",
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_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_TELNET_AND_SHELL_PROGRAMS, "Programy pro mail, telnet a shell",
T_NO_PROGRAM, "®ádný program",
T_NO_PROGRAM_SPECIFIED_FOR, "Není zadán ¾ádný program pro",
T_MAIL, "mail",
T_TELNET, "telnet",
T_MAGNET, "magnet",
T_TN3270, "tn3270",
T_MMS, "mms",
T_MAGNET, "magnet",
T_GOPHER, "gopher",
T_BAD_MAILTO_URL, "©patné mailto url",
T_BAD_TELNET_URL, "©patné telnet url",
T_BAD_TN3270_URL, "©patné tn3270 url",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, "S",
T_HK_IPV6_OPTIONS, "I",
T_HK_PROXIES, "P",
T_HK_SSL_OPTIONS, "L",
T_HK_DNS_OPTIONS, "D",
T_HK_HTTP_OPTIONS, "H",
T_HK_FTP_OPTIONS, "F",
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_EMPTY_STRING_NOT_ALLOWED, "Tom tekststreng ikke tilladt",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Konfigurationsfejl",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Forbindelser",
T_MAX_CONNECTIONS, "Max forbindelser",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Max forbindelser til en vært",
@ -502,20 +503,22 @@ T_MANUAL, "Brugervejledning",
T_HOMEPAGE, "Hjemmeside",
T_CALIBRATION, "Kalibrering",
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_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270-program (% erstattes med \"vært\" eller \"vært port\")",
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_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Intet program",
T_NO_PROGRAM_SPECIFIED_FOR, "Intet program angivet for",
T_MAIL, "epost",
T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270",
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Fejl i mailto URL",
T_BAD_TELNET_URL, "Fejl i telnet URL",
T_BAD_TN3270_URL, "Fejl i tn3270 URL",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "Lege string niet toegestaan",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Configuratie fout",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Verbindingen",
T_MAX_CONNECTIONS, "Max verbindingen",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Max verbindingen naar één host",
@ -502,20 +503,22 @@ T_MANUAL, "Gebruikershandleiding",
T_HOMEPAGE, NULL,
T_CALIBRATION, NULL,
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_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270 programma (% is vervangen met \"host\" of \"host port\")",
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_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Geen programma",
T_NO_PROGRAM_SPECIFIED_FOR, "Geen programma gespecificieerd voor",
T_MAIL, "mail",
T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270",
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Onjuiste mailto url",
T_BAD_TELNET_URL, "Onjuiste telnet url",
T_BAD_TN3270_URL, "Onjuiste tn3270 url",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "Empty string not allowed",
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_CONFIG_ERROR, "Config error",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, "Error initializing built-in certificates",
T_FAILED, "failed",
T_DNS_OPTIONS, "DNS options",
T_DNS_OVER_HTTPS_URL, "DNS over HTTPS (host or url)",
T_CONNECTIONS, "Connections",
T_MAX_CONNECTIONS, "Max connections",
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_CALIBRATION, "Calibration",
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_MAGNET_PROG, "Magnet program (% is replaced with URL)",
T_TN3270_PROG, "Tn3270 program (% is replaced with \"host\" or \"host port\")",
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_TELNET_AND_SHELL_PROGRAMS, "Mail, telnet and shell programs",
T_NO_PROGRAM, "No program",
T_NO_PROGRAM_SPECIFIED_FOR, "No program specified for",
T_MAIL, "mail",
T_TELNET, "telnet",
T_MAGNET, "magnet",
T_TN3270, "tn3270",
T_MMS, "mms",
T_MAGNET, "magnet",
T_GOPHER, "gopher",
T_BAD_MAILTO_URL, "Bad mailto url",
T_BAD_TELNET_URL, "Bad telnet url",
T_BAD_TN3270_URL, "Bad tn3270 url",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, "C",
T_HK_IPV6_OPTIONS, "I",
T_HK_PROXIES, "P",
T_HK_SSL_OPTIONS, "L",
T_HK_DNS_OPTIONS, "D",
T_HK_HTTP_OPTIONS, "H",
T_HK_FTP_OPTIONS, "F",
T_HK_SMB_OPTIONS, "S",

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Number v
T_BAD_STRING, "Ebasobiv string",
T_EMPTY_STRING_NOT_ALLOWED, "Tühi string pole lubatud",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Konfiguratsiooni viga",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Ühendused",
T_MAX_CONNECTIONS, "Maksimaalselt ühendusi",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Maksimaalselt ühendusi ühele hostile",
@ -502,20 +503,22 @@ T_MANUAL, "Kasutamisjuhend",
T_HOMEPAGE, "Kodulehekülg",
T_CALIBRATION, "Kalibreerimine",
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_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270 programm (% asendatakse \"host\" või \"host port\")",
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_TELNET_AND_SHELL_PROGRAMS, "Maili, telneti ja shelli programmid",
T_NO_PROGRAM, "Pole programmi",
T_NO_PROGRAM_SPECIFIED_FOR, "Pole programmi märgitud",
T_MAIL, NULL,
T_TELNET, NULL,
T_MAGNET, NULL,
T_TN3270, NULL,
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Vigane mailto url",
T_BAD_TELNET_URL, "Vigane telnet url",
T_BAD_TN3270_URL, "Vigane tn3270 url",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "Tyhjä merkkijono ei sallittu",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Asetuksissa virhe",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Yhteydet",
T_MAX_CONNECTIONS, "Yhteyksien maksimilkm",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Yhteyksien maksimilkm yhteen kohteeseen",
@ -502,20 +503,22 @@ T_MANUAL, "K
T_HOMEPAGE, "Kotisivu",
T_CALIBRATION, "Kalibrointi",
T_MAILTO_PROG, "Sähköpostiohjelma (% korvataan osoitteella)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Telnet-ohjelma (% korvataan \"osoitteella\" tai \"portilla\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270-ohjelma (% korvataan \"osoitteella\" tai \"portilla\")",
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_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Ei ohjelmaa",
T_NO_PROGRAM_SPECIFIED_FOR, "Ei ohjelmaa osoitettu",
T_MAIL, "sähköposti",
T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270",
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Laiton sähköposti-URL",
T_BAD_TELNET_URL, "Laiton telnet-URL",
T_BAD_TN3270_URL, "Laiton tn3270-URL",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "Saisie obligatoire",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Erreur de 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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Connexions",
T_MAX_CONNECTIONS, "Nombre maximum de connexions",
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_CALIBRATION, "Calibration",
T_MAILTO_PROG, "Programme E-Mail (% = adresse)",
T_SHELL_PROG, "Programme Shell (% = commande)",
T_TELNET_PROG, "Programme Telnet (% = port hôte)",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Programme TN3270 (% = port hôte)",
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_TELNET_AND_SHELL_PROGRAMS, "Clients e-mail/telnet/shell",
T_NO_PROGRAM, "Pas de programme",
T_NO_PROGRAM_SPECIFIED_FOR, "Aucun programme n'est défini pour ",
T_MAIL, "e-mail",
T_TELNET, "Telnet",
T_MAGNET, NULL,
T_TN3270, "TN3270",
T_MMS, "mms",
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Adresse e-mail incorrecte",
T_BAD_TELNET_URL, "Adresse Telnet incorrecte",
T_BAD_TN3270_URL, "Adresse TN3270 incorrecte",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "Non se permite unha cadea baleira",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Erro 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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "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",
@ -502,20 +503,22 @@ T_MANUAL, "Manual de usuario",
T_HOMEPAGE, "Páxina de inicio",
T_CALIBRATION, "Calibrar",
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_MAGNET_PROG, NULL,
T_TN3270_PROG, "Programa de Tn3270 (% é remprazado por \"máquina\" ou \"máquina porto\")",
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_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Sen programa",
T_NO_PROGRAM_SPECIFIED_FOR, "Sen programa especificado para",
T_MAIL, "correo",
T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270",
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "URL mailto errónea",
T_BAD_TELNET_URL, "URL telnet 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_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "Werteingabe erforderlich",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Konfigurationsfehler",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Verbindungen",
T_MAX_CONNECTIONS, "Max. Verbindungen",
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_LOAD_CLIPBOARD_FROM_A_FILE, 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_DEFAULT_CHARSET, NULL,
T_CACHE, "Cache",
@ -502,20 +503,22 @@ T_MANUAL, "Manual",
T_HOMEPAGE, "Homepage",
T_CALIBRATION, "Kalibration",
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_MAGNET_PROG, NULL,
T_TN3270_PROG, "TN3270-Programm (% wird mit \"host\" oder \"host port\" ersetzt)",
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_TELNET_AND_SHELL_PROGRAMS, "Mail-/Telnet-/Shell-Programme",
T_NO_PROGRAM, "Kein Programm",
T_NO_PROGRAM_SPECIFIED_FOR, "Programm nicht definiert für ",
T_MAIL, "Mail",
T_TELNET, "Telnet",
T_MAGNET, NULL,
T_TN3270, "TN3270",
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "fehlerhafte Mailadresse",
T_BAD_TELNET_URL, "fehlerhafte Telnetadresse",
T_BAD_TN3270_URL, "fehlerhafte TN3270-Adresse",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "
T_BAD_STRING, "Ìç Ýãêõñï áëöáñéèìçôéêü",
T_EMPTY_STRING_NOT_ALLOWED, "Äåí åðéôñÝðåôáé êåíü áëöáñéèìçôéêü",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "ÓöÜëìá ñõèìßóåùí",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "ÓõíäÝóåéò",
T_MAX_CONNECTIONS, "ÌÝãéóôïò áñéèìüò óõíäÝóåùí",
T_MAX_CONNECTIONS_TO_ONE_HOST, "ÌÝãéóôïò áñéèìüò óõíäÝóåùí óå Ýíá åîõðçñåôçôÞ",
@ -502,20 +503,22 @@ T_MANUAL, "
T_HOMEPAGE, NULL,
T_CALIBRATION, NULL,
T_MAILTO_PROG, "Ðñüãñáììá áëëçëïãñáößáò (ôï % áíôéêáèßóôáôáé ìå ôç äéåýèõíóç)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "Ðñüãñáììá telnet (ôï % áíôéêáèßóôáôáé ìå \"åîõðçñåôçôÞò\" Þ \"åîõðçñåôçôÞò èýñá\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "Ðñüãñáììá Tn3270 (ôï % áíôéêáèßóôáôáé ìå \"åîõðçñåôçôÞò\" Þ \"åîõðçñåôçôÞò èýñá\")",
T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "ÐñïãñÜììáôá áëëçëïãñáößáò êáé telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Äåí õðÜñ÷åé ðñüãñáììá",
T_NO_PROGRAM_SPECIFIED_FOR, "Äåí êáèïñßóôçêå ðñüãñáììá ãéá",
T_MAIL, "áëëçëïãñáößá",
T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270",
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "ÅóöáëìÝíï URL mailto",
T_BAD_TELNET_URL, "ÅóöáëìÝíï URL telnet",
T_BAD_TN3270_URL, "ÅóöáëìÝíï URL tn3270",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "Üres szöveg nem engedélyezett",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Beállítási hiba",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Kapcsolatok",
T_MAX_CONNECTIONS, "Maximális kapcsolatok",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Maximális kapcsolatok egy kiszolgálóhoz",
@ -502,20 +503,22 @@ T_MANUAL, "K
T_HOMEPAGE, "Honlap",
T_CALIBRATION, "Kalibráció",
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_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270 program (% helyére írd be \'kiszolgáló\' vagy \'kiszolgáló port\')",
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_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Nincs program",
T_NO_PROGRAM_SPECIFIED_FOR, "Nincs program beállítva",
T_MAIL, "levelezés",
T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270",
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Hibás levélküldési URL",
T_BAD_TELNET_URL, "Hibás telnet URL",
T_BAD_TN3270_URL, "Hibás tn3270 URL",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "Tómur strengur óheimill",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Uppsetningarvilla",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Tengingar",
T_MAX_CONNECTIONS, "Hámark tenginga",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Hámark tenginga við hvern miðlara",
@ -502,20 +503,22 @@ T_MANUAL, "Handb
T_HOMEPAGE, NULL,
T_CALIBRATION, NULL,
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_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270 forrit (% er skipt út fyrir \"miðlari\" eða \"miðlari gátt\")",
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_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Ekkert forrit",
T_NO_PROGRAM_SPECIFIED_FOR, "Ekkert forrit skilgreint fyrir",
T_MAIL, "póstur",
T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270",
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Rangt póstfang",
T_BAD_TELNET_URL, "Rangt netfang",
T_BAD_TN3270_URL, "Rangt netfang",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Numero fuori intervallo",
T_BAD_STRING, "Stringa sbagliata",
T_EMPTY_STRING_NOT_ALLOWED, "Stringa vuota non consentita",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Errore 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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Connessioni",
T_MAX_CONNECTIONS, "Connessioni massime",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Connessioni massime ad un host",
@ -502,20 +503,22 @@ T_MANUAL, "Manuale utente",
T_HOMEPAGE, NULL,
T_CALIBRATION, NULL,
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_MAGNET_PROG, NULL,
T_TN3270_PROG, "Programma Tn3270 (% e' sostituito con \"host\" o \"host port\")",
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_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Nessun programma",
T_NO_PROGRAM_SPECIFIED_FOR, "Nessun programma definito per",
T_MAIL, "mail",
T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270",
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Errato mailto url",
T_BAD_TELNET_URL, "Errato telnet url",
T_BAD_TN3270_URL, "Errato tn3270 url",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "Eilutë negali bûti tuðèia",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Configûravimo klaida",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Prisijungimai",
T_MAX_CONNECTIONS, "Daugiausia prisijungimø",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Daugiausia prisijungimø á tà patá hostà",
@ -502,20 +503,22 @@ T_MANUAL, "Vartotojo gidas",
T_HOMEPAGE, NULL,
T_CALIBRATION, NULL,
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_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270 programa (% pakeièiamas \"hostu\" arba \"hostu prievadu\")",
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_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Nër programos",
T_NO_PROGRAM_SPECIFIED_FOR, "Nër programos",
T_MAIL, "paðtui",
T_TELNET, "telnet'ui",
T_MAGNET, NULL,
T_TN3270, "tn3270'ui",
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Blogas paðto adresas",
T_BAD_TELNET_URL, "Blogas telnet'o adresas",
T_BAD_TN3270_URL, "Blogas tn3270 adresas",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "Tom tekststreng er ikke tillatt",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Konfigurasjonsfeil",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Tilkoblinger",
T_MAX_CONNECTIONS, "Maks antall tilkoblinger",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Maks antall tilkoblinger per vert",
@ -502,20 +503,22 @@ T_MANUAL, "Brukerveiledning",
T_HOMEPAGE, "Hjemmeside",
T_CALIBRATION, "Kalibrering",
T_MAILTO_PROG, "E-brevklient (% erstattes med adresse)",
T_SHELL_PROG, "Skall",
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_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_TELNET_AND_SHELL_PROGRAMS, "Program for e-brev, fjerninnlogging og skall",
T_NO_PROGRAM, "Ingen program",
T_NO_PROGRAM_SPECIFIED_FOR, "Ingen program er spesifisert",
T_MAIL, "e-brev",
T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270",
T_MMS, "mms",
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Feil i \"mailto\"-adresse",
T_BAD_TELNET_URL, "Feil i \"telnet\"-adresse",
T_BAD_TN3270_URL, "Feil i \"tn3270\"-adresse",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Liczba poza dozwolonym zakresem",
T_BAD_STRING, "Nieprawid³owe wyra¿enie",
T_EMPTY_STRING_NOT_ALLOWED, "Musisz wpisaæ jakie¶ wyra¿enie",
T_BAD_IP_ADDRESS, "B³êdny adres IP",
T_INVALID_IP_ADDRESS_SYNTAX, "B喚dna sk豉dnia adresu IP",
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, "Nie mo¿na u¿yæ lokalnego adresu IP",
T_CONFIG_ERROR, "B³±d konfiguracji",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Nie mo¿na zapisaæ do pliku konfiguracyjnego",
@ -141,6 +140,8 @@ T_THE_FILE_DOES_NOT_EXIST, "Plik nie istnieje",
T_THE_FILE_HAS_INVALID_FORMAT, "Plik ma b³êdny format",
T_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Po³±czenia",
T_MAX_CONNECTIONS, "Maksymalna liczba po³±czeñ",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Maksymalna liczba po³±czeñ z jednym serwerem",
@ -502,20 +503,22 @@ T_MANUAL, "Podr
T_HOMEPAGE, "Strona domowa",
T_CALIBRATION, "Kalibracja",
T_MAILTO_PROG, "Program pocztowy (% jest zastêpowany przez adres e-mail)",
T_SHELL_PROG, "Program pow這ki",
T_TELNET_PROG, "Program us³ugi Telnet (% jest zastêpowany przez \"host\" lub przez \"host port\")",
T_MAGNET_PROG, "Program Magnet (% jest zast瘼owany przez URL)",
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_MAGNET_PROG, "Program Magnet (% jest zastêpowany przez URL)",
T_GOPHER_PROG, NULL,
T_SHELL_PROG, "Program pow³oki",
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_NO_PROGRAM, "Nie okre¶lono programu",
T_NO_PROGRAM_SPECIFIED_FOR, "Nie okre¶lono programu do obs³ugi",
T_MAIL, "poczty",
T_TELNET, "telneta",
T_MAGNET, "magneta",
T_TN3270, "tn3270",
T_MMS, "mms",
T_MAGNET, "magneta",
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "B³êdny adres e-mail",
T_BAD_TELNET_URL, "Niew³a¶ciwy adres serwera dla programu Telnet",
T_BAD_TN3270_URL, "Niew³a¶ciwy adres serwera dla programu Tn3270",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, "C",
T_HK_IPV6_OPTIONS, "I",
T_HK_PROXIES, "P",
T_HK_SSL_OPTIONS, "L",
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, "H",
T_HK_FTP_OPTIONS, "F",
T_HK_SMB_OPTIONS, "S",

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "N
T_BAD_STRING, "Sequência de caracteres inválida",
T_EMPTY_STRING_NOT_ALLOWED, "Não é permitida uma sequência de caracteres vazia",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Erro 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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Conexões",
T_MAX_CONNECTIONS, NULL,
T_MAX_CONNECTIONS_TO_ONE_HOST, NULL,
@ -502,20 +503,22 @@ T_MANUAL, "Manual do Utilizador",
T_HOMEPAGE, NULL,
T_CALIBRATION, NULL,
T_MAILTO_PROG, NULL,
T_SHELL_PROG, NULL,
T_TELNET_PROG, NULL,
T_MAGNET_PROG, NULL,
T_TN3270_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_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Nenhum programa",
T_NO_PROGRAM_SPECIFIED_FOR, "Nenhum programa foi especificado para",
T_MAIL, NULL,
T_TELNET, NULL,
T_MAGNET, NULL,
T_TN3270, NULL,
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, NULL,
T_BAD_TELNET_URL, NULL,
T_BAD_TN3270_URL, NULL,
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "ªir vid neacceptabil",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Eroare de configurare",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Conexiuni",
T_MAX_CONNECTIONS, "Conexiuni maxime",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Conexiuni maxime la un host",
@ -502,20 +503,22 @@ T_MANUAL, "Manualul utilizatorului",
T_HOMEPAGE, NULL,
T_CALIBRATION, NULL,
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_MAGNET_PROG, NULL,
T_TN3270_PROG, "Program de Tn3270 (% este înlocuit cu \"Host\" ori \"Host port\")",
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_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Nici un program",
T_NO_PROGRAM_SPECIFIED_FOR, "Program nespecificat pentru",
T_MAIL, "E-mail",
T_TELNET, "Telnet",
T_MAGNET, NULL,
T_TN3270, "Tn3270",
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "URL greºit pentru e-mail",
T_BAD_TELNET_URL, "URL greºit pentru telnet",
T_BAD_TN3270_URL, "URL greºit pentru tn3270",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL,

View File

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

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "
T_BAD_STRING, "»ÞèÐ ÝØáÚÐ",
T_EMPTY_STRING_NOT_ALLOWED, "¿àÐ×ÝÐ ÝØáÚÐ ÝØøÕ ÔÞ×ÒÞùÕÝÐ",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "³àÕèÚÐ ã ßÞÔÕèÐÒÐúØÜÐ",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "¿ÞÒÕ×ØÒÐúÐ",
T_MAX_CONNECTIONS, "½ÐøÒØèÕ ßÞÒÕ×ØÒÐúÐ",
T_MAX_CONNECTIONS_TO_ONE_HOST, "½ÐøÒØèÕ ßÞÒÕ×ØÒÐúÐ áÐ øÕÔÝØÜ ÔÞÜÐûØÝÞÜ",
@ -502,20 +503,22 @@ T_MANUAL, "
T_HOMEPAGE, "´ÞÜÐûÐ áâàÐÝØæÐ",
T_CALIBRATION, "ºÐÛØÑàØáÐúÕ",
T_MAILTO_PROG, "¿àÞÓàÐÜ ×Ð ßÞèâã (% áÕ ×ÐÜÕúãøÕ ÐÔàÕáÞÜ)",
T_SHELL_PROG, "©ãáÚÐ ×Ð Ø×ÒàèÐÒÐúÕ áßÞùÐèúØå ÝÐàÕÔÑØ (×ÝÐÚ % ûÕ ÑØâØ ×ÐÜÕúÕÝ ÝÐàÕÔÑÞÜ)",
T_TELNET_PROG, "¿àÞÓàÐÜ ×Ð âÕÛÝÕâ (% áÕ ×ÐÜÕúãøÕ ÝØáÚÞÜ \"ÔÞÜÐûØÝ\" ØÛØ \"ÔÞÜÐûØÝ ßÞàâ\")",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "¿àÞÓàÐÜ ×Ð tn3270 (% áÕ ×ÐÜÕúãøÕ ÝØáÚÞÜ \"ÔÞÜÐûØÝ\" ØÛØ \"ÔÞÜÐûØÝ ßÞàâ\")",
T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, "©ãáÚÐ ×Ð Ø×ÒàèÐÒÐúÕ áßÞùÐèúØå ÝÐàÕÔÑØ (×ÝÐÚ % ûÕ ÑØâØ ×ÐÜÕúÕÝ ÝÐàÕÔÑÞÜ)",
T_MAIL_AND_TELNET_PROGRAMS, "¿àÞÓàÐÜØ ×Ð ßÞèâã Ø âÕÛÝÕâ",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, "¿àÞÓàÐÜØ ×Ð ßÞèâã, âÕÛÝÕâ Ø ùãáÚã",
T_NO_PROGRAM, "½ÕÜÐ ßàÞÓàÐÜÐ",
T_NO_PROGRAM_SPECIFIED_FOR, "½ØøÕ ×ÐÔÐâ ßàÞÓàÐÜ ×Ð",
T_MAIL, "ßÞèâã",
T_TELNET, "âÕÛÝÕâ",
T_MAGNET, NULL,
T_TN3270, "tn3270",
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "»Þè mailto ÃÀ»",
T_BAD_TELNET_URL, "»Þè telnet ÃÀ»",
T_BAD_TN3270_URL, "»Þè tn3270 ÃÀ»",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "Prázdny re»azec nie je dovolený!",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Chyba v konfigurácii",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Spojenie",
T_MAX_CONNECTIONS, "Maximálny poèet spojení",
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_CALIBRATION, "Kalibrácia",
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_MAGNET_PROG, "Program pre magnet (% je nahradene URL)",
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_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_TELNET_AND_SHELL_PROGRAMS, "Programy pre mail a telnet a shell",
T_NO_PROGRAM, "®iadny program",
T_NO_PROGRAM_SPECIFIED_FOR, "Nie je nastavený ¾iadny program pre",
T_MAIL, "mail",
T_TELNET, "telnet",
T_MAGNET, "magnet",
T_TN3270, "tn3270",
T_MMS, "mms",
T_MAGNET, "magnet",
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Chybné mailové URL",
T_BAD_TELNET_URL, " Chybné terminálove URL (telnet)",
T_BAD_TN3270_URL, " Chybné terminálove URL (tn3270)",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "No se permite cadena vacía",
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_CONFIG_ERROR, "Error 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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, "Error al inicializar los certificados incorporados",
T_FAILED, "Ha fallado",
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Conexiones",
T_MAX_CONNECTIONS, "Máximo de conexiones",
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_CALIBRATION, "Calibració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_MAGNET_PROG, "Programa magnet (% se reemplaza con URL)",
T_TN3270_PROG, "Programa Tn3270 (% se reemplaza con \"máquina\" o \"máquina puerto\")",
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_TELNET_AND_SHELL_PROGRAMS, "Programas de correo, telnet y shell",
T_NO_PROGRAM, "Sin programa",
T_NO_PROGRAM_SPECIFIED_FOR, "Sin programa especificado para",
T_MAIL, "correo",
T_TELNET, "telnet",
T_MAGNET, "magnet",
T_TN3270, "tn3270",
T_MMS, "mms",
T_MAGNET, "magnet",
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Dirección de correo incorrecta",
T_BAD_TELNET_URL, "URL de telnet incorrecta",
T_BAD_TN3270_URL, "URL de TN3270 incorrecta",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "Tom sträng ej tillåten",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Konfigurationsfel",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "uppkopplingar",
T_MAX_CONNECTIONS, "Max anslutningar",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Max anslutningar till värd",
@ -502,20 +503,22 @@ T_MANUAL, "Bruksanvisning",
T_HOMEPAGE, NULL,
T_CALIBRATION, NULL,
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_MAGNET_PROG, NULL,
T_TN3270_PROG, "Tn3270-program (% ersätts med \"värd\" eller \"värd port\")",
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_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "Inget program",
T_NO_PROGRAM_SPECIFIED_FOR, "Inget program angett för",
T_MAIL, "epost",
T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, "tn3270",
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Felaktig mailto-URL",
T_BAD_TELNET_URL, "Felaktig telnet-URL",
T_BAD_TN3270_URL, "Felaktig tn3270-URL",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "Werte Igabe erforderlich",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Konfigurationsfehler",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Verbindige",
T_MAX_CONNECTIONS, "Max. Verbindige",
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_LOAD_CLIPBOARD_FROM_A_FILE, 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_DEFAULT_CHARSET, NULL,
T_CACHE, "Cache",
@ -502,20 +503,22 @@ T_MANUAL, "Manual",
T_HOMEPAGE, "Homepage",
T_CALIBRATION, "Kalibration",
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_MAGNET_PROG, NULL,
T_TN3270_PROG, "TN3270-Programm (% wird mit \"host\" oder \"host port\" ersetzt)",
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_TELNET_AND_SHELL_PROGRAMS, "Mail-/Telnet-/Shell-Programme",
T_NO_PROGRAM, "Keis Programm",
T_NO_PROGRAM_SPECIFIED_FOR, "Programm nöd definiert für ",
T_MAIL, "Mail",
T_TELNET, "Telnet",
T_MAGNET, NULL,
T_TN3270, "TN3270",
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "fehlerhafti Mailadresse",
T_BAD_TELNET_URL, "fehlerhafti Telnetadresse",
T_BAD_TN3270_URL, "fehlerhafti TN3270-Adresse",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL,

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "Say
T_BAD_STRING, "Hatalý dizi",
T_EMPTY_STRING_NOT_ALLOWED, "Boþ diziye izin verilmiyor",
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_CONFIG_ERROR, "Yapýlandýrma hatasý",
T_UNABLE_TO_WRITE_TO_CONFIG_FILE, "Yapýlandýrma dosyasýna yazýlamýyor",
@ -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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, "Gömülü sertifikalar kullanýlýrken hata",
T_FAILED, "baþarýsýz oldu",
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "Baðlantýlar",
T_MAX_CONNECTIONS, "En çok baðlantý",
T_MAX_CONNECTIONS_TO_ONE_HOST, "Bir makineye en çok baðlantý",
@ -502,20 +503,22 @@ T_MANUAL, "Kullan
T_HOMEPAGE, "Ana sayfa",
T_CALIBRATION, "Kalibrasyon",
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_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_MMS_PROG, "MMS programý (% URL ile deðiþtirilir)",
T_MAGNET_PROG, "Mýknatýs programý (% URL ile deðiþtirilir)",
T_GOPHER_PROG, NULL,
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_TELNET_AND_SHELL_PROGRAMS, "Posta, Telnet ve kabuk Programlarý",
T_NO_PROGRAM, "Program yok",
T_NO_PROGRAM_SPECIFIED_FOR, "Program belirlenmemiþ:",
T_MAIL, "posta",
T_TELNET, "telnet",
T_MAGNET, "mıknatıs",
T_TN3270, "tn3270",
T_MMS, "mms",
T_MAGNET, "mýknatýs",
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Adrese posta gönder",
T_BAD_TELNET_URL, "Hatalý Telnet adresi",
T_BAD_TN3270_URL, "Hatalý tn3270 adresi",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, "R",
T_HK_IPV6_OPTIONS, "6",
T_HK_PROXIES, "V",
T_HK_SSL_OPTIONS, "S",
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, "H",
T_HK_FTP_OPTIONS, "F",
T_HK_SMB_OPTIONS, "S",

View File

@ -11,7 +11,6 @@ T_NUMBER_OUT_OF_RANGE, "
T_BAD_STRING, "îÅÐÒÁ×ÉÌØÎÉÊ ÒÑÄÏË",
T_EMPTY_STRING_NOT_ALLOWED, "ðÏÒÏÖΦ ÒÑÄËÉ ÎÅÄÏÐÕÓÔÉͦ",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "ðÏÍÉÌËÁ ËÏÎƦÇÕÒÁæ§",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "ú'¤ÄÎÁÎÎÑ",
T_MAX_CONNECTIONS, "íÁËÓ. ÞÉÓÌÏ Ú'¤ÄÎÁÎØ",
T_MAX_CONNECTIONS_TO_ONE_HOST, "íÁËÓ. ÞÉÓÌÏ Ú'¤ÄÎÁÎØ Ú ÏÄÎÉÍ ÓÅÒ×ÅÒÏÍ",
@ -502,20 +503,22 @@ T_MANUAL, "
T_HOMEPAGE, NULL,
T_CALIBRATION, NULL,
T_MAILTO_PROG, "ðÏÛÔÏ×Á ÐÒÏÇÒÁÍÁ (% ÚÁͦÎÀ¤ÔØÓÑ ÁÄÒÅÓÏÀ)",
T_SHELL_PROG, NULL,
T_TELNET_PROG, "ðÒÏÇÒÁÍÁ telnet (% ÚÁͦÎÀ¤ÔØÓÑ ÎÁ 'host' ÁÂÏ 'host port')",
T_MAGNET_PROG, NULL,
T_TN3270_PROG, "ðÒÏÇÒÁÍÁ tn3270 (% ÚÁͦÎÀ¤ÔØÓÑ ÎÁ 'host' ÁÂÏ 'host port')",
T_MMS_PROG, NULL,
T_MAGNET_PROG, NULL,
T_GOPHER_PROG, NULL,
T_SHELL_PROG, NULL,
T_MAIL_AND_TELNET_PROGRAMS, "ðÒÏÇÒÁÍÉ ÄÌÑ ÐÏÛÔÉ ÔÁ telnet",
T_MAIL_TELNET_AND_SHELL_PROGRAMS, NULL,
T_NO_PROGRAM, "îÅÍÁ¤ ÐÒÏÇÒÁÍÉ",
T_NO_PROGRAM_SPECIFIED_FOR, "îÅ ×ËÁÚÁÎÏ ÐÒÏÇÒÁÍÕ ÄÌÑ",
T_MAIL, "ÐÏÛÔÉ",
T_TELNET, NULL,
T_MAGNET, NULL,
T_TN3270, NULL,
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "îÅÐÒÁ×ÉÌØÎÁ ÁÄÒÅÓÁ mailto:",
T_BAD_TELNET_URL, "îÅÐÒÁ×ÉÌØÎÁ ÁÄÒÅÓÁ telnet",
T_BAD_TN3270_URL, "îÅÐÒÁ×ÉÌØÎÁ ÁÄÒÅÓÁ tn3270",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_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_EMPTY_STRING_NOT_ALLOWED, "Nulowy wuraz njedowoleny",
T_BAD_IP_ADDRESS, NULL,
T_INVALID_IP_ADDRESS_SYNTAX, NULL,
T_UNABLE_TO_USE_LOCAL_IP_ADDRESS, NULL,
T_CONFIG_ERROR, "Zmylk konfiguracije",
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_ERROR_INITIALIZING_BUILT_IN_CERTIFICATES, NULL,
T_FAILED, NULL,
T_DNS_OPTIONS, NULL,
T_DNS_OVER_HTTPS_URL, NULL,
T_CONNECTIONS, "zwiskow",
T_MAX_CONNECTIONS, "Maksimalna lièba zwiskow",
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_CALIBRATION, "Kalibracija",
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_MAGNET_PROG, NULL,
T_TN3270_PROG, "Program za Tn3270 (% naruna so z \"host\" abo \"host port\")",
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_TELNET_AND_SHELL_PROGRAMS, "Programy za elektronisku pó¹tu, telnet a komanda",
T_NO_PROGRAM, "®adyn program",
T_NO_PROGRAM_SPECIFIED_FOR, "®adyn program podaty za",
T_MAIL, "email",
T_TELNET, "telnet",
T_MAGNET, NULL,
T_TN3270, NULL,
T_MMS, NULL,
T_MAGNET, NULL,
T_GOPHER, NULL,
T_BAD_MAILTO_URL, "Hubjena emailowa adresa",
T_BAD_TELNET_URL, "Hubjena adresa serwera za telnet",
T_BAD_TN3270_URL, "Hubjena adresa serwera za Tn3270",
@ -668,6 +671,7 @@ T_HK_CONNECTIONS, NULL,
T_HK_IPV6_OPTIONS, NULL,
T_HK_PROXIES, NULL,
T_HK_SSL_OPTIONS, NULL,
T_HK_DNS_OPTIONS, NULL,
T_HK_HTTP_OPTIONS, NULL,
T_HK_FTP_OPTIONS, NULL,
T_HK_SMB_OPTIONS, NULL,

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)
.TP
\f3-bind-address \f2<ip address>\f1
\f3-bind-address \f2<ip address or interface name>\f1
Use a specific local IP address.
.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.
.TP
@ -156,10 +156,6 @@ Don't use libevent library.
\f3-no-openmp\f1
Don't use OpenMP.
.TP
\f3-async-dns \f2<0>/<1>\f1
Asynchronous DNS resolver on(1)/off(0).
.TP
\f3-download-utime \f2<0>/<1>\f1
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
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
\f3-http-bugs.http10 \f2<0>/<1>\f1
(default 0) "1" forces using only HTTP/1.0 protocol. (useful for buggy servers

62
links.h
View File

@ -1181,11 +1181,7 @@ void omp_end(void);
/* dns.c */
#ifdef USE_GETADDRINFO
#define MAX_ADDRESSES 64
#else
#define MAX_ADDRESSES 1
#endif
struct host_address {
int af;
@ -1206,6 +1202,22 @@ struct lookup_state {
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
extern int support_ipv6;
#else
@ -1216,21 +1228,25 @@ int numeric_ip_address(unsigned char *name, unsigned char address[4]);
#ifdef SUPPORT_IPV6
int numeric_ipv6_address(unsigned char *name, unsigned char address[16], unsigned *scope_id);
#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 do_real_lookup(unsigned char *, int, struct lookup_result *);
int find_host(unsigned char *, struct lookup_result *, void **, void (*)(void *, int), void *);
int find_host_no_cache(unsigned char *, struct lookup_result *, void **, void (*)(void *, int), void *);
void end_dns_lookup(struct dnsquery *, int, uttime);
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 dns_prefetch(unsigned char *);
#if MAX_ADDRESSES > 1
void dns_set_priority(unsigned char *, struct host_address *, int);
#endif
void dns_clear_host(unsigned char *);
unsigned long dns_info(int type);
unsigned char *print_address(struct host_address *);
int ipv6_full_access(void);
void init_dns(void);
/* doh.c */
void do_doh_lookup(struct dnsquery *);
/* cache.c */
struct cache_entry {
@ -1300,6 +1316,7 @@ typedef struct {
} links_ssl;
#endif
#define PRI_DOH 0
#define PRI_MAIN 0
#define PRI_DOWNLOAD 0
#define PRI_FRAME 1
@ -1350,6 +1367,7 @@ struct connection {
off_t est_length;
int unrestartable;
int no_compress;
int doh;
struct remaining_info prg;
struct timer *timer;
int detached;
@ -1474,6 +1492,7 @@ struct status {
list_entry_last
};
int is_noproxy_host(unsigned char *host);
int is_noproxy_url(unsigned char *url);
unsigned char *get_proxy_string(unsigned char *url);
unsigned char *get_proxy(unsigned char *url);
@ -1493,7 +1512,7 @@ void abort_connection(struct connection *c);
#define ALLOW_SMB 1
#define ALLOW_FILE 2
#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 detach_connection(struct status *, off_t, int, int);
void abort_all_connections(void);
@ -1698,11 +1717,12 @@ void smb_func(struct connection *);
/* mailto.c */
void magnet_func(struct session *, unsigned char *);
void mailto_func(struct session *, unsigned char *);
void telnet_func(struct session *, unsigned char *);
void tn3270_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 */
@ -3143,6 +3163,10 @@ struct g_object_tag {
#define IM_SVG 5
#endif /* #ifdef HAVE_SVG */
#ifdef HAVE_WEBP
#define IM_WEBP 6
#endif /* #ifdef HAVE_WEBP */
#define MEANING_DIMS 0
#define MEANING_AUTOSCALE 1
struct cached_image {
@ -4342,6 +4366,19 @@ void add_svg_version(unsigned char **s, int *l);
#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
/* img.c */
#ifdef G
@ -4890,7 +4927,6 @@ extern int unrestartable_receive_timeout;
extern int timeout_multiple_addresses;
extern unsigned char bind_ip_address[16];
extern unsigned char bind_ipv6_address[INET6_ADDRSTRLEN];
extern int async_lookup;
extern int download_utime;
extern int max_format_cache_entries;
@ -4943,6 +4979,9 @@ struct 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 {
int fake_firefox;
int do_not_track;
@ -5153,6 +5192,7 @@ extern struct list_head telnet_prog;
extern struct list_head tn3270_prog;
extern struct list_head mms_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_content_type_by_extension(unsigned char *url);

View File

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

View File

@ -1238,12 +1238,12 @@ static int list_item_mark(struct dialog_data *dlg, struct dialog_item_data *usel
rd.n = 0;
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 */
{
draw_to_window(dlg->win, redraw_list_line, &rd);
return 0;
}
rd.n = -1;
ld->current_pos = next_in_tree(ld, ld->current_pos);
ld->win_pos++;
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));
}
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)
{
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));
}
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);
}

132
menu.c
View File

@ -217,6 +217,10 @@ static void menu_version(void *term_)
#ifdef HAVE_SVG
add_to_str(&s, &l, cast_uchar ", ");
add_svg_version(&s, &l);
#endif
#ifdef HAVE_WEBP
add_to_str(&s, &l, cast_uchar ", ");
add_webp_version(&s, &l);
#endif
add_to_str(&s, &l, cast_uchar "\n");
#endif
@ -1664,7 +1668,7 @@ static void dlg_net_options(struct terminal *term, void *xxx, void *yyy)
snprint(time_str, 5, receive_timeout);
snprint(unrtime_str, 5, unrestartable_receive_timeout);
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->fn = group_fn;
d->udata = (void *)net_msg;
@ -1729,12 +1733,6 @@ static void dlg_net_options(struct terminal *term, void *xxx, void *yyy)
d->items[a].dlen = sizeof(bind_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
net_msg[a] = TEXT_(T_SET_TIME_OF_DOWNLOADED_FILES);
d->items[a].type = D_CHECKBOX;
@ -2337,6 +2335,105 @@ static void dlg_ssl_options(struct terminal *term, void *xxx, void *yyy)
#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),
#ifdef HAVE_ANY_COMPRESSION
TEXT_(T_DO_NOT_ADVERTISE_COMPRESSION_SUPPORT),
@ -2638,6 +2735,7 @@ static unsigned char * const prg_msg[] = {
TEXT_(T_TN3270_PROG),
TEXT_(T_MMS_PROG),
TEXT_(T_MAGNET_PROG),
TEXT_(T_GOPHER_PROG),
TEXT_(T_SHELL_PROG),
cast_uchar ""
};
@ -2660,6 +2758,8 @@ static void netprog_fn(struct dialog_data *dlg)
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);
max_text_width(term, prg_msg[a], &max, AL_LEFT);
min_text_width(term, prg_msg[a++], &min, AL_LEFT);
#ifdef G
if (have_extra_exec()) {
max_text_width(term, prg_msg[a], &max, AL_LEFT);
@ -2691,6 +2791,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);
a++;
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
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);
@ -2723,6 +2826,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);
a++;
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
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);
@ -2738,7 +2844,7 @@ static void net_programs(struct terminal *term, void *xxx, void *yyy)
{
struct dialog *d;
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
if (have_extra_exec()) d->title = TEXT_(T_MAIL_TELNET_AND_SHELL_PROGRAMS);
else
@ -2762,6 +2868,9 @@ static void net_programs(struct terminal *term, void *xxx, void *yyy)
d->items[a].type = D_FIELD;
d->items[a].dlen = MAX_STR_LEN;
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
if (have_extra_exec()) {
d->items[a].type = D_FIELD;
@ -3662,6 +3771,7 @@ static void free_fonts(void *fonts_)
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;
int n_fonts;
int i;
@ -3684,11 +3794,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));
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++) {
if (!strcmp(cast_const_char fonts[i].file, cast_const_char di->cdata))
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);
@ -4165,6 +4275,7 @@ static_const struct menu_item net_options_menu[] = {
#ifdef HAVE_SSL_CERTIFICATES
{ TEXT_(T_SSL_OPTIONS), cast_uchar "", TEXT_(T_HK_SSL_OPTIONS), dlg_ssl_options, NULL, 0, 0 },
#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_FTP_OPTIONS), cast_uchar "", TEXT_(T_HK_FTP_OPTIONS), dlg_ftp_options, NULL, 0, 0 },
#ifndef DISABLE_SMB
@ -4181,6 +4292,7 @@ static_const struct menu_item net_options_ipv6_menu[] = {
#ifdef HAVE_SSL_CERTIFICATES
{ TEXT_(T_SSL_OPTIONS), cast_uchar "", TEXT_(T_HK_SSL_OPTIONS), dlg_ssl_options, NULL, 0, 0 },
#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_FTP_OPTIONS), cast_uchar "", TEXT_(T_HK_FTP_OPTIONS), dlg_ftp_options, NULL, 0, 0 },
#ifndef DISABLE_SMB

View File

@ -109,7 +109,7 @@ static int auth_ok(struct dialog_data *dlg, struct dialog_item_data *item)
mem_free(passwd);
rq->hold = 0;
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);
return 0;
@ -198,7 +198,7 @@ static void cert_action(struct object_request *rq, int yes)
if (yes > 0) {
rq->hold = 0;
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 {
rq->hold = 0;
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;
rq->count = obj_req_count++;
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)
@ -368,7 +368,7 @@ static void objreq_end(struct status *stat, void *data)
allow_flags = get_allow_flags(rq->url);
mem_free(rq->url);
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;
} else {
maxrd:
@ -383,7 +383,7 @@ static void objreq_end(struct status *stat, void *data)
mem_free(realm);
if (rq->redirect_cnt++ >= MAX_REDIRECTS) goto maxrd;
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;
}
user = get_user_name(rq->url);

View File

@ -2738,7 +2738,8 @@ int get_input_handle(void)
static unsigned char *is_on_linux_console(void)
{
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)) {
#define pfx1 "/dev/tty"
#define pfx2 "/dev/vc/"

74
sched.c
View File

@ -236,11 +236,13 @@ static void free_connection_data(struct connection *c)
c->info = NULL;
}
clear_connection_timeout(c);
if (--active_connections < 0) {
internal_error("active connections underflow");
active_connections = 0;
if (!c->doh) {
if (--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->conn) {
del_from_list(h);
@ -464,9 +466,8 @@ static int try_to_suspend_connection(struct connection *c, unsigned char *ho)
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) {
unsigned char *np = proxies.no_proxy;
int host_l = (int)strlen(cast_const_char host);
@ -478,7 +479,6 @@ int is_noproxy_url(unsigned char *url)
goto no_match;
if (casecmp(np, host + (host_l - l), l))
goto no_match;
mem_free(host);
return 1;
no_match:
if (!np[l])
@ -486,10 +486,17 @@ no_match:
np += l + 1;
}
}
mem_free(host);
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)
{
struct h_conn *hc;
@ -522,17 +529,21 @@ static void run_connection(struct connection *c)
del_connection(c);
return;
}
if (!(hc = is_host_on_list(c))) {
hc = mem_alloc(sizeof(struct h_conn));
if (!(hc->host = get_host_name(c->url))) {
mem_free(hc);
goto s_bad_url;
if (c->doh && func != http_func && func != https_func && func != proxy_func)
goto s_bad_url;
if (!c->doh) {
if (!(hc = is_host_on_list(c))) {
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;
add_to_list(h_conns, hc);
hc->conn++;
active_connections++;
}
hc->conn++;
active_connections++;
c->keepalive = 0;
c->running = 1;
func(c);
@ -601,17 +612,19 @@ void abort_connection(struct connection *c)
static int try_connection(struct connection *c)
{
struct h_conn *hc = NULL;
if ((hc = is_host_on_list(c))) {
if (hc->conn >= max_connections_to_host) {
if (try_to_suspend_connection(c, hc->host)) return 0;
struct h_conn *hc;
if (!c->doh) {
if ((hc = is_host_on_list(c))) {
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;
}
}
if (active_connections >= max_connections) {
if (try_to_suspend_connection(c, NULL)) return 0;
else return -1;
}
run_connection(c);
return 1;
}
@ -627,7 +640,7 @@ static void check_queue_bugs(void)
cc = 0;
foreach(struct connection, d, ld, queue) {
int q = getpri(d);
cc += d->running;
cc += d->running && !d->doh;
if (q < p) {
if (!ps) {
internal_error("queue is not sorted");
@ -755,7 +768,7 @@ int disallow_url(unsigned char *url, int allow_flags)
/* prev_url is a pointer to previous url or NULL */
/* 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 connection *c;
@ -785,7 +798,7 @@ void load_url(unsigned char *url, unsigned char *prev_url, struct status *stat,
}
}
#endif
if (is_url_blocked(url)) {
if (!doh && is_url_blocked(url)) {
if (stat) {
stat->state = S_BLOCKED_URL;
if (stat->end) stat->end(stat, stat->data);
@ -841,6 +854,10 @@ void load_url(unsigned char *url, unsigned char *prev_url, struct status *stat,
u = get_proxy(url);
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->doh != doh) {
must_detach = 1;
break;
}
if (no_compress && !c->no_compress) {
unsigned char *enc;
if ((c->state >= S_WAIT && c->state < S_TRANS) || !c->cache) {
@ -910,6 +927,7 @@ void load_url(unsigned char *url, unsigned char *prev_url, struct status *stat,
#else
c->no_compress = 1;
#endif
c->doh = doh;
c->prg.timer = NULL;
c->timer = NULL;
if (position || must_detach) {

View File

@ -827,7 +827,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;
allow_flags = get_allow_flags(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;
} else {
if (stat->state >= 0) change_connection(&down->stat, NULL, PRI_CANCEL);
@ -1178,7 +1178,7 @@ void start_download(struct session *ses, unsigned char *file, int mode)
down->ses = ses;
down->remotetime = 0;
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);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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 "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 "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 "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);
@ -797,6 +798,7 @@ struct list_head telnet_prog = { &telnet_prog, &telnet_prog };
struct list_head tn3270_prog = { &tn3270_prog, &tn3270_prog };
struct list_head mms_prog = { &mms_prog, &mms_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)
@ -900,6 +902,8 @@ 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 "tif", 3)) ||
(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 == 3 && !casecmp(ext, cast_uchar "webp", 3))) return stracpy(cast_uchar "image/webp");
exxt = init_str(); el = 0;
add_to_str(&exxt, &el, cast_uchar "application/x-");
add_bytes_to_str(&exxt, &el, ext, extl);
@ -960,6 +964,8 @@ static unsigned char *get_extension_by_content_type(unsigned char *ct)
if (!casestrcmp(ct, cast_uchar "image/svg") ||
!casestrcmp(ct, cast_uchar "image/svg+xml"))
return stracpy(cast_uchar "svg");
if (!casestrcmp(ct, cast_uchar "image/webp"))
return stracpy(cast_uchar "webp");
if (!cmpbeg(ct, cast_uchar "application/x-")) {
x = ct + strlen("application/x-");
if (casestrcmp(x, cast_uchar "z") &&
@ -1317,6 +1323,7 @@ void free_types(void)
free_prog_list(&tn3270_prog);
free_prog_list(&mms_prog);
free_prog_list(&magnet_prog);
free_prog_list(&gopher_prog);
free_history(ext_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},
{"mms", 0, NULL, mms_func, 1, 0, 1, 0, 1},
{"magnet", 0, NULL, magnet_func, 1, 0, 0, 0, 1},
{"gopher", 0, NULL, gopher_func, 1, 0, 0, 0, 1},
#ifdef JS
{"javascript", 0, NULL, javascript_func,1, 0, 0, 0, 0},
#endif
@ -266,6 +267,7 @@ static void translate_directories(unsigned char *url)
int lo = !casecmp(url, cast_uchar "file://", 7);
if (!casecmp(url, cast_uchar "javascript:", 11)) return;
if (!casecmp(url, cast_uchar "magnet:", 7)) return;
if (!casecmp(url, cast_uchar "gopher:", 7)) return;
if (!dd || dd == url /*|| *--dd != '/'*/) return;
if (!dsep(*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 "?");
add_to_strn(&go, data);
if (pos) {
add_to_strn(&go, cast_uchar "#");
add_to_strn(&go, 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++) {
unsigned char p[3];
sprintf(cast_char p, "%02x", (int)data[i]);
add_to_str(&go, &l, p);
add_bytes_to_str(&go, &l, p, 2);
}
}
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)
w = 0;
else
w = (SELECTION_NOTIFY_TIMEOUT - tt + 999) / 1000;
w = (SELECTION_NOTIFY_TIMEOUT - (unsigned)tt + 999) / 1000;
if (!x_wait_for_event(w))
goto no_new_sel;
}