From 991c30eae1a942ab49f350560aeb76f25f76fe65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juhani=20Krekel=C3=A4?= Date: Mon, 6 Jun 2022 16:14:24 +0300 Subject: [PATCH] Upstream Links 2.27 --- ChangeLog | 19 ++++++++ INSTALL | 2 +- Makefile.in | 2 +- config-vms.h | 4 +- configure | 2 +- configure.in | 2 +- doh.c | 9 ++++ file.c | 3 +- intl/turkish.lng | 70 ++++++++++++++--------------- language.inc | 70 ++++++++++++++--------------- links.h | 6 +-- links.nsi | 2 + links.wis | 2 +- links64.nsi | 2 + mk-release-win | 4 +- os_dep.c | 85 +++++++++++++++++++++++++++++++---- pmshell.c | 8 ++-- select.c | 12 ++++- suffix.inc | 9 ++++ suffix/public_suffix_list.dat | 37 +++++++++++---- 20 files changed, 243 insertions(+), 107 deletions(-) diff --git a/ChangeLog b/ChangeLog index b8f8508..b3f65d8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,22 @@ +=== RELEASE 2.27 === + +Fri May 27 20:10:59 CEST 2022 mikulas: + + Compile the Windows version with libevent 2.0 (note that libevent 2.1 + doesn't work on Windows 7) + + This fixes "Fatal error: too big handle" because Cygwin has too low + FD_SETSIZE (64) + +Wed Apr 13 19:43:10 CEST 2022 Emir Yasin SARI : + + Updated the Turkish translation + +Mon Apr 11 19:23:19 CEST 2022 mikulas: + + Allow the user to specify a numeric IPv6 address in the dns-over-https + box + === RELEASE 2.26 === Wed Apr 6 18:13:16 CEST 2022 mikulas: diff --git a/INSTALL b/INSTALL index 6c28568..bd0136d 100644 --- a/INSTALL +++ b/INSTALL @@ -1,4 +1,4 @@ -Links 2.26 -- How To Install +Links 2.27 -- How To Install ---------------------------- Follow this step-by-step: diff --git a/Makefile.in b/Makefile.in index 626acd7..a64da53 100644 --- a/Makefile.in +++ b/Makefile.in @@ -104,10 +104,10 @@ 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 +@HAIKU_GR_TRUE@links_DEPENDENCIES = haiku.o @JAVASCRIPT_TRUE@links_DEPENDENCIES = builtin.o context.o ipret.o \ @JAVASCRIPT_TRUE@javascr.o javascript.o md5.o md5hl.o ns.o pomocny.o \ @JAVASCRIPT_TRUE@regexp.o -@HAIKU_GR_TRUE@links_DEPENDENCIES = haiku.o links_LDFLAGS = CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) diff --git a/config-vms.h b/config-vms.h index 8c61063..bb043aa 100644 --- a/config-vms.h +++ b/config-vms.h @@ -934,11 +934,11 @@ #define PACKAGE "links" /* Version number of package */ -#define VERSION "2.26" +#define VERSION "2.27" /* */ -#define VERSION "2.26" +#define VERSION "2.27" /* */ /* #undef HAVE_OPENMP */ diff --git a/configure b/configure index 20948c4..e2afdb0 100755 --- a/configure +++ b/configure @@ -771,7 +771,7 @@ fi PACKAGE=links -VERSION=2.26 +VERSION=2.27 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } diff --git a/configure.in b/configure.in index 4b3338e..8de2531 100644 --- a/configure.in +++ b/configure.in @@ -5,7 +5,7 @@ AC_INIT(main.c) -AM_INIT_AUTOMAKE(links, 2.26) +AM_INIT_AUTOMAKE(links, 2.27) ACLOCAL="./missing aclocal" AUTOCONF="./missing autoconf" diff --git a/doh.c b/doh.c index 5588b3a..b2b2e7b 100644 --- a/doh.c +++ b/doh.c @@ -187,8 +187,17 @@ void do_doh_lookup(struct dnsquery *q) if (!casecmp(dns_over_https, cast_uchar "http://", 7) || !casecmp(dns_over_https, cast_uchar "https://", 8)) { add_to_str(&u, &ul, dns_over_https); } else { + int ipv6 = 0; add_to_str(&u, &ul, cast_uchar "https://"); +#ifdef SUPPORT_IPV6 + if (!numeric_ipv6_address(dns_over_https, NULL, NULL)) + ipv6 = 1; +#endif + if (ipv6) + add_chr_to_str(&u, &ul, '['); add_to_str(&u, &ul, dns_over_https); + if (ipv6) + add_chr_to_str(&u, &ul, ']'); add_to_str(&u, &ul, cast_uchar "/dns-query"); } add_chr_to_str(&u, &ul, POST_CHAR); diff --git a/file.c b/file.c index 6681305..e6e6363 100644 --- a/file.c +++ b/file.c @@ -205,7 +205,8 @@ again: add_chr_to_str(p, l, ' '); } -static unsigned char *get_filename(unsigned char *url) +/* ATTR_NOINLINE is a workaround for a bogus warning on gcc 12 */ +ATTR_NOINLINE static unsigned char *get_filename(unsigned char *url) { unsigned char *p, *m; int ml; diff --git a/intl/turkish.lng b/intl/turkish.lng index 3daacab..5d386f7 100644 --- a/intl/turkish.lng +++ b/intl/turkish.lng @@ -1,7 +1,7 @@ T__CHAR_SET, "8859-9", T__LANGUAGE, "Turkish", T__ACCEPT_LANGUAGE, "tr", -T__LOCALE_CODE, "tr_TR", +T__LOCALE_CODE, "tr_TR,tr_CY", T__DEFAULT_CHAR_SET, "ISO-8859-9", T_OK, "Tamam", T_CANCEL, "İptal", @@ -54,10 +54,10 @@ T_THREADS5, "i T_CONFIGURATION_DIRECTORY, "Yapılandırma dizini", T_NONE, "Yok", T_KEYS, "Düğmeler", -T_KEYS_DESC, "ESC menüyü göster\n^C, q çık\np, l yukarı kaydır, aşağı kaydır\n[, ] sağa kaydır, sola kaydır\nyukarı, aşağı bağlantıyı seç\n-> bağlantıyı izle\n<- geri git\ng adrese git\nG şimdiki adresten yola çıkarak yeni bir adrese git\n/ ara\n? geriye doğru ara\nn tekrar ara\nN geriye doğru tekrar ara\n= belge bilgisi\n\\ kaynağını göster\nd indir", +T_KEYS_DESC, "ESC menüyü göster\n^C, q çık\np, l yukarı kaydır, aşağı kaydır\n[, ] sağa kaydır, sola kaydır\nyukarı, aşağı bağlantıyı seç\n-> bağlantıyı izle\n<- geri git\ng adrese git\nG şimdiki adresten yola çıkarak yeni bir adrese git\n/ ara\n? geriye doğru ara\nn yeniden ara\nN geriye doğru yeniden ara\n= belge bilgisi\n\\ kaynağını göster\nd indir", T_KEYS_BRAILLE_DESC, "a, w imleç durum satırına veya başlığına\n{, } imleç satırın başlangıcına/sonuna\n^Y,^T,y,t,^O git: önceki/sonraki bağlantı/sözcük/form girdisi", T_COPYING, "Telif hakkı", -T_COPYING_DESC, "Bağlantılar " VERSION_STRING "\n\n" LINKS_COPYRIGHT "\n\n Bu özgür bir yazılımdır; GNU Genel Kamu Lisansı altında dağıtılabilir ve/veya geliştirilebilir.", +T_COPYING_DESC, "Bağlantılar " VERSION_STRING "\n\n" LINKS_COPYRIGHT "\n\n Links, özgür bir yazılımdır; GNU Genel Kamu Lisansı altında dağıtılabilir ve/veya geliştirilebilir.", T_RESOURCES, "Kaynaklar", T_MEMORY_CACHE, "Önbellek dosyası", T_DECOMPRESSED_CACHE, "Çıkartılmış önbellek", @@ -140,8 +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_DNS_OPTIONS, "DNS seçenekleri", +T_DNS_OVER_HTTPS_URL, "HTTPS üzerinden DNS (makine veya url)", T_CONNECTIONS, "Bağlantılar", T_MAX_CONNECTIONS, "En çok bağlantı", T_MAX_CONNECTIONS_TO_ONE_HOST, "Bir makineye en çok bağlantı", @@ -163,7 +163,7 @@ T_AGGRESSIVE_CACHE, "Agresif T_HTML_OPTIONS, "HTML seçenekleri", T_DISPLAY_TABLES, "Tabloları göster", T_DISPLAY_FRAMES, "Çerçeveleri göster", -T_BREAK_LONG_LINES, "Uzun satırları kır", +T_BREAK_LONG_LINES, "Uzun satırları kes", T_DISPLAY_IMAGES, "Görselleri göster", T_DISPLAY_IMAGE_FILENAMES, "Görsel dosya adlarını göster", T_DISPLAY_LINKS_TO_IMAGES, "Görsellere olan bağlantıları göster", @@ -172,8 +172,8 @@ T_NUMBERED_LINKS, "Ba T_AUTO_REFRESH, "Kendiliğinden yenile", T_TARGET_IN_NEW_WINDOW, "Bağlantıların yeni pencerede açılmasına izin ver", T_TEXT_MARGIN, "Metin boşluğu", -T_DEFAULT_CODEPAGE, "Öntanımlı karakter seti", -T_IGNORE_CHARSET_INFO_SENT_BY_SERVER, "Sunucu tarafından belirlenmiş karakter setini önemseme", +T_DEFAULT_CODEPAGE, "Öntanımlı karakter kümesi", +T_IGNORE_CHARSET_INFO_SENT_BY_SERVER, "Sunucu tarafından belirlenmiş karakter kümesini önemseme", T_TEXT_COLOR, "Metin", T_LINK_COLOR, "Bağlantı", T_BACKGROUND_COLOR, "Arka plan", @@ -214,7 +214,7 @@ T_SEARCH, "Ara", T_SEARCH_BACK, "Geriye doğru ara", T_FIND_NEXT, "Sonrakini bul", T_FIND_PREVIOUS, "Öncekini bul", -T_TOGGLE_HTML_PLAIN, "HTML/düz metin aç/kapa", +T_TOGGLE_HTML_PLAIN, "HTML/düz metin aç/kapat", T_DOCUMENT_INFO, "Belge bilgisi", T_FRAME_AT_FULL_SCREEN, "Çerçeve tam ekran", T_SAVE_CLIPBOARD_TO_A_FILE, "Panoyu bir dosyaya kaydet", @@ -268,7 +268,7 @@ T_DATA_MODIFIED, "Veri d T_BAD_URL_SYNTAX, "Hatalı adres yazımı", T_BAD_PROXY_SYNTAX, "Hatalı vekil sunucu yazımı", T_RECEIVE_TIMEOUT, "Zaman aşımı", -T_REQUEST_MUST_BE_RESTARTED, "İstek tekrar yapılmalı", +T_REQUEST_MUST_BE_RESTARTED, "İstek yeniden yapılmalı", T_CANT_GET_SOCKET_STATE, "Uç durumu alınamıyor", T_CYCLIC_REDIRECT, "Çevrimli yeniden yönlendirme", T_TOO_LARGE_FILE, "Dosya çok büyük", @@ -346,12 +346,12 @@ T_OPEN, "A T_OPEN_WITH, "Birlikte aç", T_DO_YOU_WANT_TO_FOLLOW_REDIRECT_AND_POST_FORM_DATA_TO_URL, "Yönlendirmeyi izlemek ve form bilgisini adrese göndermek istiyor musunuz", T_DO_YOU_WANT_TO_POST_FORM_DATA_TO_URL, "Form bilgisini adrese göndermek istiyor musunuz", -T_DO_YOU_WANT_TO_REPOST_FORM_DATA_TO_URL, "Form bilgisini adrese tekrar göndermek istiyor musunuz", +T_DO_YOU_WANT_TO_REPOST_FORM_DATA_TO_URL, "Form bilgisini adrese yeniden göndermek istiyor musunuz", T_WARNING, "Uyarı", T_ERROR, "Hata", T_WELCOME, "Hoş geldiniz", T_WELCOME_TO_LINKS, "Links'e hoş geldiniz!", -T_BASIC_HELP, "Menü için ESC ye basın. Kullanıcı kılavuzu için Yardım -> Kılavuz'u seçin.", +T_BASIC_HELP, "Menü için ESC'ye basın. Kullanıcı kılavuzu için Yardım -> Kılavuz'u seçin.", T_LABEL, "Etiketler", T_CONTENT_TYPES, "Content-Type(s)", T_PROGRAM__IS_REPLACED_WITH_FILE_NAME, "Program ('%' dosya adı ile değiştirildi)", @@ -372,7 +372,7 @@ T_ERROR_WHILE_POSTING_FORM, "Formu g T_COULD_NOT_GET_FILE, "Dosya alınamıyor", T_READING_FILES_IS_NOT_ALLOWED, "Dosya okumaya izin verilmiyor", T_NO_PREVIOUS_SEARCH, "Geri arama yok", -T_SEARCH_STRING_NOT_FOUND, "Aranan söz dizimi bulunamadı", +T_SEARCH_STRING_NOT_FOUND, "Aranan sözdizim bulunamadı", T_SAVE_ERROR, "Kaydetme hatası", T_ERROR_WRITING_TO_FILE, "Dosyaya yazarken hata", T_ERROR_READING_THE_FILE, "Dosya okunurken hata", @@ -454,25 +454,25 @@ T_BOOKMARKS, "Yer imleri", T_BOOKMARK, "yer imi", T_ADD_BOOKMARK, "Yer imi ekle", T_ADD_ASSOCIATION, "İlişkilendirme ekle", -T_ADD_EXTENSION, "Genişletme ekle", +T_ADD_EXTENSION, "Uzantı ekle", T_ADD_FOLDER, "Klasör ekle", T_BOOKMARK_TITLE, "Yer imi başlığı", T_EDIT_BOOKMARK, "Yer imini düzenle", T_EDIT_ASSOCIATION, "İlişkilendirmeyi düzenle", -T_EDIT_EXTENSION, "Genişletmeyi düzenle", +T_EDIT_EXTENSION, "Uzantıyı düzenle", T_DELETE_BOOKMARK, "Yer imini sil", T_EDIT_FOLDER, "Klasörü düzenle", T_DELETE_FOLDER, "Klasörü sil", -T_NOT_EMPTY_SURE_DELETE, " boş değil. Silmek istediğinizden emin misiniz?", +T_NOT_EMPTY_SURE_DELETE, " boş değil. Silmek istediğinize emin misiniz?", T_BOOKMARK_MANAGER, "Yer imi Yöneticisi", T_ASSOCIATIONS_MANAGER, "İlişkilendirmeler Yöneticisi", -T_EXTENSIONS_MANAGER, "Genişletmeler Yöneticisi", +T_EXTENSIONS_MANAGER, "Uzantılar Yöneticisi", T_url, "adres", T_NNAME, "Ad", T_EXIT_LINKS, "Links'ten çık", -T_DO_YOU_REALLY_WANT_TO_CLOSE_WINDOW, "Pencereyi kapatmak istediğinizden emin misiniz?", +T_DO_YOU_REALLY_WANT_TO_CLOSE_WINDOW, "Pencereyi kapatmak istediğinize emin misiniz?", T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS, "Links'ten çıkmak istediğinize emin misiniz?", -T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS_AND_TERMINATE_ALL_DOWNLOADS, "Links'ten çıkmak (ve indirmeleri durdurmak) istediğinizden emin misiniz?", +T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS_AND_TERMINATE_ALL_DOWNLOADS, "Links'ten çıkmak (ve indirmeleri durdurmak) istediğinize emin misiniz?", T_HTTP_OPTIONS, "HTTP seçenekleri", T_FTP_OPTIONS, "FTP seçenekleri", T_SMB_OPTIONS, "SMB seçenekleri", @@ -485,13 +485,13 @@ T_RETRY_ON_INTERNAL_ERRORS, " T_HEADER_OPTIONS, "Başlık seçenekleri", T_HTTP_HEADER_OPTIONS, "HTTP başlık seçenekleri", T_FAKE_FIREFOX, "Kendini Firefox olarak göster (gizliliği iyileştirir)", -T_DO_NOT_TRACK, "\"Beni Takip Etme\" isteği gönder", -T_REFERER_NONE, "Referansçı yok", -T_REFERER_SAME_URL, "İstenen URL'yi referansçı olarak gönder", -T_REFERER_FAKE, "Sabit referansçı", -T_REFERER_REAL_SAME_SERVER, "Gerçek referansçıyı yalnızca aynı sunucuya gönder", -T_REFERER_REAL, "Gerçek referansçıyı gönder (güvensiz işlem!)", -T_FAKE_REFERER, "Sabit HTTP referansçısı", +T_DO_NOT_TRACK, "\"Beni İzleme\" isteği gönder", +T_REFERER_NONE, "Başvurucu yok", +T_REFERER_SAME_URL, "İstenen URL'yi başvurucu olarak gönder", +T_REFERER_FAKE, "Sabit başvurucu", +T_REFERER_REAL_SAME_SERVER, "Gerçek başvurucuyu yalnızca aynı sunucuya gönder", +T_REFERER_REAL, "Gerçek başvurucuyu gönder (güvensiz işlem!)", +T_FAKE_REFERER, "Sabit HTTP başvurucusu", T_FAKE_USERAGENT, "Kullanıcı kimliğini başka göster", T_EXTRA_HEADER, "Ek başlık dizisi (\\ yeni satır demektir)", T_PASSWORD_FOR_ANONYMOUS_LOGIN, "Adsız kullanıcı için şifre", @@ -507,7 +507,7 @@ T_TELNET_PROG, "Telnet program 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_GOPHER_PROG, "Gopher programı (% URL ile değiştirilir)", T_SHELL_PROG, "Dış komutları çalıştırmak için kabuk (% kabuk ile değiştirilir)", T_MAIL_AND_TELNET_PROGRAMS, "Posta ve Telnet Programları", T_MAIL_TELNET_AND_SHELL_PROGRAMS, "Posta, Telnet ve kabuk Programları", @@ -518,14 +518,14 @@ T_TELNET, "telnet", T_TN3270, "tn3270", T_MMS, "mms", T_MAGNET, "mıknatıs", -T_GOPHER, NULL, +T_GOPHER, "gopher", T_BAD_MAILTO_URL, "Adrese posta gönder", T_BAD_TELNET_URL, "Hatalı Telnet adresi", T_BAD_TN3270_URL, "Hatalı tn3270 adresi", T_MMS_URL_CONTAINS_INACCEPTABLE_CHARACTERS, "MMS URL'si izin verilmeyen karakterler içeriyor", T_AUTHORIZATION_REQUIRED, "Kimlik doğrulama gerekli", T_PROXY_AUTHORIZATION_REQUIRED, "Vekil kimlik doğrulaması gerekli", -T_USERID, "Kullanıcı ID'si", +T_USERID, "Kullanıcı kimliği", T_PASSWORD, "Parola", T_ENTER_USERNAME, "Kullanıcı adını gir: ", T_AT, "/", @@ -534,12 +534,12 @@ T_DOESNT_HAVE_A_VALID_CERTIFICATE, " ge T_USES_DOWNGRADED_METHOD, " eskimiş SSL/TLS yöntemleri kullanıyor. Yine de bağlanmak istiyor musunuz?", T_USES_INSECURE_CIPHER, " güvensiz şifreleme kullanıyor. Yine de bağlanmak istiyor musunuz?", T_WAITING_FOR_REDIRECT_CONFIRMATION, "Yönlendirme onayı için bekleniyor", -T_DECOMPRESSION_ERROR, "Sıkıştırma açım hatası", +T_DECOMPRESSION_ERROR, "Sıkıştırma açma hatası", T_ERROR_DECOMPRESSING_, "Şu sıkıştırma açılırken: ", T__wITH_, " ile ", T_COMPRESSED_ERROR, "Sıkıştırılmış veride hata", T_UNKNOWN_COMPRESSION_METHOD, "Bilinmeyen sıkıştırma yöntemi", -T_SURE_DELETE, "Silmek istediğinizden emin misiniz?", +T_SURE_DELETE, "Silmek istediğinize emin misiniz?", T_BOOKMARKS_ALREADY_IN_USE, "Yer imleri halihazırda kullanımda!", T_ASSOCIATIONS_ALREADY_IN_USE, "İlişkilendirmeler halihazırda kullanımda!", T_EXTENSIONS_ALREADY_IN_USE, "Genişletmeler halihazırda kullanımda!", @@ -625,7 +625,7 @@ T_BLOCK_URL, "G T_BLOCK_LIST, "Engellenmiş görseller", T_BLOCKED_IMAGE, "Engellenmiş görseller", T_BLOCK_LIST_IN_USE, "Engellenmiş görseller halihazırda açık", -T_BLOCK_LIST_MANAGER, "Görsel engelleme yöneticisi", +T_BLOCK_LIST_MANAGER, "Görsel Engelleme Yöneticisi", T_BLOCK_ADD, "Engellemek için görsel URL'si girin", T_BLOCK_EDIT, "Görsel URL'sini düzenle", T_BLOCK_DELETE, "Kaldır", @@ -671,10 +671,10 @@ 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_DNS_OPTIONS, "D", T_HK_HTTP_OPTIONS, "H", T_HK_FTP_OPTIONS, "F", -T_HK_SMB_OPTIONS, "S", +T_HK_SMB_OPTIONS, "M", T_HK_JAVASCRIPT_OPTIONS, "J", T_HK_MISCELANEOUS_OPTIONS, "S", T_HK_COOKIES, "Z", @@ -682,7 +682,7 @@ T_HK_FONTS, "Y", T_HK_CACHE, "N", T_HK_MAIL_AND_TELNEL, "P", T_HK_ASSOCIATIONS, "L", -T_HK_FILE_EXTENSIONS, "Z", +T_HK_FILE_EXTENSIONS, "D", T_HK_BLOCK_LIST, "G", T_HK_SAVE_OPTIONS, "T", T_HK_ABOUT, "H", diff --git a/language.inc b/language.inc index 17216c9..f014af4 100644 --- a/language.inc +++ b/language.inc @@ -21754,7 +21754,7 @@ static_const struct translation translation_turkish [] = { { "8859-9" }, { "Turkish" }, { "tr" }, - { "tr_TR" }, + { "tr_TR,tr_CY" }, { "ISO-8859-9" }, { "Tamam" }, { "\335ptal" }, @@ -21807,10 +21807,10 @@ static_const struct translation translation_turkish [] = { { "Yap\375land\375rma dizini" }, { "Yok" }, { "D\374\360meler" }, - { "ESC men\374y\374 g\366ster\n^C, q \347\375k\np, l yukar\375 kayd\375r, a\376a\360\375 kayd\375r\n[, ] sa\360a kayd\375r, sola kayd\375r\nyukar\375, a\376a\360\375 ba\360lant\375y\375 se\347\n-> ba\360lant\375y\375 izle\n<- geri git\ng adrese git\nG \376imdiki adresten yola \347\375karak yeni bir adrese git\n/ ara\n? geriye do\360ru ara\nn tekrar ara\nN geriye do\360ru tekrar ara\n= belge bilgisi\n\\ kayna\360\375n\375 g\366ster\nd indir" }, + { "ESC men\374y\374 g\366ster\n^C, q \347\375k\np, l yukar\375 kayd\375r, a\376a\360\375 kayd\375r\n[, ] sa\360a kayd\375r, sola kayd\375r\nyukar\375, a\376a\360\375 ba\360lant\375y\375 se\347\n-> ba\360lant\375y\375 izle\n<- geri git\ng adrese git\nG \376imdiki adresten yola \347\375karak yeni bir adrese git\n/ ara\n? geriye do\360ru ara\nn yeniden ara\nN geriye do\360ru yeniden ara\n= belge bilgisi\n\\ kayna\360\375n\375 g\366ster\nd indir" }, { "a, w imle\347 durum sat\375r\375na veya ba\376l\375\360\375na\n{, } imle\347 sat\375r\375n ba\376lang\375c\375na/sonuna\n^Y,^T,y,t,^O git: \366nceki/sonraki ba\360lant\375/s\366zc\374k/form girdisi" }, { "Telif hakk\375" }, - { "Ba\360lant\375lar " VERSION_STRING "\n\n" LINKS_COPYRIGHT "\n\n Bu \366zg\374r bir yaz\375l\375md\375r; GNU Genel Kamu Lisans\375 alt\375nda da\360\375t\375labilir ve/veya geli\376tirilebilir." }, + { "Ba\360lant\375lar " VERSION_STRING "\n\n" LINKS_COPYRIGHT "\n\n Links, \366zg\374r bir yaz\375l\375md\375r; GNU Genel Kamu Lisans\375 alt\375nda da\360\375t\375labilir ve/veya geli\376tirilebilir." }, { "Kaynaklar" }, { "\326nbellek dosyas\375" }, { "\307\375kart\375lm\375\376 \366nbellek" }, @@ -21893,8 +21893,8 @@ static_const struct translation translation_turkish [] = { { "Dosya bi\347imi ge\347ersiz" }, { "G\366m\374l\374 sertifikalar kullan\375l\375rken hata" }, { "ba\376ar\375s\375z oldu" }, - { NULL }, - { NULL }, + { "DNS se\347enekleri" }, + { "HTTPS \374zerinden DNS (makine veya url)" }, { "Ba\360lant\375lar" }, { "En \347ok ba\360lant\375" }, { "Bir makineye en \347ok ba\360lant\375" }, @@ -21916,7 +21916,7 @@ static_const struct translation translation_turkish [] = { { "HTML se\347enekleri" }, { "Tablolar\375 g\366ster" }, { "\307er\347eveleri g\366ster" }, - { "Uzun sat\375rlar\375 k\375r" }, + { "Uzun sat\375rlar\375 kes" }, { "G\366rselleri g\366ster" }, { "G\366rsel dosya adlar\375n\375 g\366ster" }, { "G\366rsellere olan ba\360lant\375lar\375 g\366ster" }, @@ -21925,8 +21925,8 @@ static_const struct translation translation_turkish [] = { { "Kendili\360inden yenile" }, { "Ba\360lant\375lar\375n yeni pencerede a\347\375lmas\375na izin ver" }, { "Metin bo\376lu\360u" }, - { "\326ntan\375ml\375 karakter seti" }, - { "Sunucu taraf\375ndan belirlenmi\376 karakter setini \366nemseme" }, + { "\326ntan\375ml\375 karakter k\374mesi" }, + { "Sunucu taraf\375ndan belirlenmi\376 karakter k\374mesini \366nemseme" }, { "Metin" }, { "Ba\360lant\375" }, { "Arka plan" }, @@ -21967,7 +21967,7 @@ static_const struct translation translation_turkish [] = { { "Geriye do\360ru ara" }, { "Sonrakini bul" }, { "\326ncekini bul" }, - { "HTML/d\374z metin a\347/kapa" }, + { "HTML/d\374z metin a\347/kapat" }, { "Belge bilgisi" }, { "\307er\347eve tam ekran" }, { "Panoyu bir dosyaya kaydet" }, @@ -22021,7 +22021,7 @@ static_const struct translation translation_turkish [] = { { "Hatal\375 adres yaz\375m\375" }, { "Hatal\375 vekil sunucu yaz\375m\375" }, { "Zaman a\376\375m\375" }, - { "\335stek tekrar yap\375lmal\375" }, + { "\335stek yeniden yap\375lmal\375" }, { "U\347 durumu al\375nam\375yor" }, { "\307evrimli yeniden y\366nlendirme" }, { "Dosya \347ok b\374y\374k" }, @@ -22099,12 +22099,12 @@ static_const struct translation translation_turkish [] = { { "Birlikte a\347" }, { "Y\366nlendirmeyi izlemek ve form bilgisini adrese g\366ndermek istiyor musunuz" }, { "Form bilgisini adrese g\366ndermek istiyor musunuz" }, - { "Form bilgisini adrese tekrar g\366ndermek istiyor musunuz" }, + { "Form bilgisini adrese yeniden g\366ndermek istiyor musunuz" }, { "Uyar\375" }, { "Hata" }, { "Ho\376 geldiniz" }, { "Links'e ho\376 geldiniz!" }, - { "Men\374 i\347in ESC ye bas\375n. Kullan\375c\375 k\375lavuzu i\347in Yard\375m -> K\375lavuz'u se\347in." }, + { "Men\374 i\347in ESC'ye bas\375n. Kullan\375c\375 k\375lavuzu i\347in Yard\375m -> K\375lavuz'u se\347in." }, { "Etiketler" }, { "Content-Type(s)" }, { "Program ('%' dosya ad\375 ile de\360i\376tirildi)" }, @@ -22125,7 +22125,7 @@ static_const struct translation translation_turkish [] = { { "Dosya al\375nam\375yor" }, { "Dosya okumaya izin verilmiyor" }, { "Geri arama yok" }, - { "Aranan s\366z dizimi bulunamad\375" }, + { "Aranan s\366zdizim bulunamad\375" }, { "Kaydetme hatas\375" }, { "Dosyaya yazarken hata" }, { "Dosya okunurken hata" }, @@ -22207,25 +22207,25 @@ static_const struct translation translation_turkish [] = { { "yer imi" }, { "Yer imi ekle" }, { "\335li\376kilendirme ekle" }, - { "Geni\376letme ekle" }, + { "Uzant\375 ekle" }, { "Klas\366r ekle" }, { "Yer imi ba\376l\375\360\375" }, { "Yer imini d\374zenle" }, { "\335li\376kilendirmeyi d\374zenle" }, - { "Geni\376letmeyi d\374zenle" }, + { "Uzant\375y\375 d\374zenle" }, { "Yer imini sil" }, { "Klas\366r\374 d\374zenle" }, { "Klas\366r\374 sil" }, - { " bo\376 de\360il. Silmek istedi\360inizden emin misiniz?" }, + { " bo\376 de\360il. Silmek istedi\360inize emin misiniz?" }, { "Yer imi Y\366neticisi" }, { "\335li\376kilendirmeler Y\366neticisi" }, - { "Geni\376letmeler Y\366neticisi" }, + { "Uzant\375lar Y\366neticisi" }, { "adres" }, { "Ad" }, { "Links'ten \347\375k" }, - { "Pencereyi kapatmak istedi\360inizden emin misiniz?" }, + { "Pencereyi kapatmak istedi\360inize emin misiniz?" }, { "Links'ten \347\375kmak istedi\360inize emin misiniz?" }, - { "Links'ten \347\375kmak (ve indirmeleri durdurmak) istedi\360inizden emin misiniz?" }, + { "Links'ten \347\375kmak (ve indirmeleri durdurmak) istedi\360inize emin misiniz?" }, { "HTTP se\347enekleri" }, { "FTP se\347enekleri" }, { "SMB se\347enekleri" }, @@ -22238,13 +22238,13 @@ static_const struct translation translation_turkish [] = { { "Ba\376l\375k se\347enekleri" }, { "HTTP ba\376l\375k se\347enekleri" }, { "Kendini Firefox olarak g\366ster (gizlili\360i iyile\376tirir)" }, - { "\"Beni Takip Etme\" iste\360i g\366nder" }, - { "Referans\347\375 yok" }, - { "\335stenen URL'yi referans\347\375 olarak g\366nder" }, - { "Sabit referans\347\375" }, - { "Ger\347ek referans\347\375y\375 yaln\375zca ayn\375 sunucuya g\366nder" }, - { "Ger\347ek referans\347\375y\375 g\366nder (g\374vensiz i\376lem!)" }, - { "Sabit HTTP referans\347\375s\375" }, + { "\"Beni \335zleme\" iste\360i g\366nder" }, + { "Ba\376vurucu yok" }, + { "\335stenen URL'yi ba\376vurucu olarak g\366nder" }, + { "Sabit ba\376vurucu" }, + { "Ger\347ek ba\376vurucuyu yaln\375zca ayn\375 sunucuya g\366nder" }, + { "Ger\347ek ba\376vurucuyu g\366nder (g\374vensiz i\376lem!)" }, + { "Sabit HTTP ba\376vurucusu" }, { "Kullan\375c\375 kimli\360ini ba\376ka g\366ster" }, { "Ek ba\376l\375k dizisi (\\ yeni sat\375r demektir)" }, { "Ads\375z kullan\375c\375 i\347in \376ifre" }, @@ -22260,7 +22260,7 @@ static_const struct translation translation_turkish [] = { { "Tn3270 program\375 (% \"makine\" veya \"makine kap\375s\375\" ile de\360i\376tirilir)" }, { "MMS program\375 (% URL ile de\360i\376tirilir)" }, { "M\375knat\375s program\375 (% URL ile de\360i\376tirilir)" }, - { NULL }, + { "Gopher program\375 (% URL ile de\360i\376tirilir)" }, { "D\375\376 komutlar\375 \347al\375\376t\375rmak i\347in kabuk (% kabuk ile de\360i\376tirilir)" }, { "Posta ve Telnet Programlar\375" }, { "Posta, Telnet ve kabuk Programlar\375" }, @@ -22271,14 +22271,14 @@ static_const struct translation translation_turkish [] = { { "tn3270" }, { "mms" }, { "m\375knat\375s" }, - { NULL }, + { "gopher" }, { "Adrese posta g\366nder" }, { "Hatal\375 Telnet adresi" }, { "Hatal\375 tn3270 adresi" }, { "MMS URL'si izin verilmeyen karakterler i\347eriyor" }, { "Kimlik do\360rulama gerekli" }, { "Vekil kimlik do\360rulamas\375 gerekli" }, - { "Kullan\375c\375 ID'si" }, + { "Kullan\375c\375 kimli\360i" }, { "Parola" }, { "Kullan\375c\375 ad\375n\375 gir: " }, { "/" }, @@ -22287,12 +22287,12 @@ static_const struct translation translation_turkish [] = { { " eskimi\376 SSL/TLS y\366ntemleri kullan\375yor. Yine de ba\360lanmak istiyor musunuz?" }, { " g\374vensiz \376ifreleme kullan\375yor. Yine de ba\360lanmak istiyor musunuz?" }, { "Y\366nlendirme onay\375 i\347in bekleniyor" }, - { "S\375k\375\376t\375rma a\347\375m hatas\375" }, + { "S\375k\375\376t\375rma a\347ma hatas\375" }, { "\336u s\375k\375\376t\375rma a\347\375l\375rken: " }, { " ile " }, { "S\375k\375\376t\375r\375lm\375\376 veride hata" }, { "Bilinmeyen s\375k\375\376t\375rma y\366ntemi" }, - { "Silmek istedi\360inizden emin misiniz?" }, + { "Silmek istedi\360inize emin misiniz?" }, { "Yer imleri halihaz\375rda kullan\375mda!" }, { "\335li\376kilendirmeler halihaz\375rda kullan\375mda!" }, { "Geni\376letmeler halihaz\375rda kullan\375mda!" }, @@ -22378,7 +22378,7 @@ static_const struct translation translation_turkish [] = { { "Engellenmi\376 g\366rseller" }, { "Engellenmi\376 g\366rseller" }, { "Engellenmi\376 g\366rseller halihaz\375rda a\347\375k" }, - { "G\366rsel engelleme y\366neticisi" }, + { "G\366rsel Engelleme Y\366neticisi" }, { "Engellemek i\347in g\366rsel URL'si girin" }, { "G\366rsel URL'sini d\374zenle" }, { "Kald\375r" }, @@ -22424,10 +22424,10 @@ static_const struct translation translation_turkish [] = { { "6" }, { "V" }, { "S" }, - { NULL }, + { "D" }, { "H" }, { "F" }, - { "S" }, + { "M" }, { "J" }, { "S" }, { "Z" }, @@ -22435,7 +22435,7 @@ static_const struct translation translation_turkish [] = { { "N" }, { "P" }, { "L" }, - { "Z" }, + { "D" }, { "G" }, { "T" }, { "H" }, diff --git a/links.h b/links.h index 3f469af..855759d 100644 --- a/links.h +++ b/links.h @@ -1134,9 +1134,9 @@ void debug_test_free(unsigned char *file, int line); #define FD_ZERO(p) memset((void *)(p), 0, sizeof(*(p))) #endif - extern int terminate_loop; +void portable_sleep(unsigned msec); int can_write(int fd); int can_read(int fd); int can_read_timeout(int fd, int sec); @@ -1153,11 +1153,9 @@ void add_event_string(unsigned char **, int *, struct terminal *); struct timer; struct timer *install_timer(uttime, void (*)(void *), void *); void kill_timer(struct timer *); -void portable_sleep(unsigned msec); - +int verify_handle(int); #define H_READ 0 #define H_WRITE 1 - void (*get_handler(int, int))(void *); void *get_handler_data(int); extern unsigned char *sh_file; diff --git a/links.nsi b/links.nsi index 6d5a646..3a393e0 100644 --- a/links.nsi +++ b/links.nsi @@ -88,6 +88,7 @@ File c:\cygwin\bin\cygcroco-0.6-3.dll File c:\cygwin\bin\cygcrypto-1.1.dll File c:\cygwin\bin\cygdatrie-1.dll File c:\cygwin\bin\cygdeflate-0.dll +File c:\cygwin\bin\cygevent-2-0-5.dll File c:\cygwin\bin\cygexpat-1.dll File c:\cygwin\bin\cygffi-6.dll File c:\cygwin\bin\cygfontconfig-1.dll @@ -181,6 +182,7 @@ Delete "$INSTDIR\cygcroco-0.6-3.dll" Delete "$INSTDIR\cygcrypto-1.1.dll" Delete "$INSTDIR\cygdatrie-1.dll" Delete "$INSTDIR\cygdeflate-0.dll" +Delete "$INSTDIR\cygevent-2-0-5.dll" Delete "$INSTDIR\cygexpat-1.dll" Delete "$INSTDIR\cygffi-6.dll" Delete "$INSTDIR\cygfontconfig-1.dll" diff --git a/links.wis b/links.wis index 415ac1c..e8f6689 100644 --- a/links.wis +++ b/links.wis @@ -1,7 +1,7 @@ lastpos); #endif - if (x < 0) x = -1; - if (x > win->x) x = win->x; + if (x >= win->x) x = win->x - 1; + if (x < 0) x = 0; return x; } @@ -536,8 +536,8 @@ static int win_y(struct pm_window *win) #ifdef WIN int y = GET_Y_LPARAM(win->lastpos); #endif - if (y < 0) y = -1; - if (y > win->y) y = win->y; + if (y >= win->y) y = win->y - 1; + if (y < 0) y = 0; return y; } diff --git a/select.c b/select.c index d92599b..dfa1422 100644 --- a/select.c +++ b/select.c @@ -585,6 +585,16 @@ void kill_timer(struct timer *tm) #endif } +int verify_handle(int fd) +{ +#if defined(USE_POLL) && defined(USE_LIBEVENT) + if (!event_enabled) +#endif + if (fd >= (int)FD_SETSIZE) + return -1; + return 0; +} + void (*get_handler(int fd, int tp))(void *) { if (fd < 0) @@ -602,7 +612,7 @@ void (*get_handler(int fd, int tp))(void *) void *get_handler_data(int fd) { if (fd < 0) - internal_error("get_handler: handle %d", fd); + internal_error("get_handler_data: handle %d", fd); if (fd >= w_max) return NULL; return threads[fd].data; diff --git a/suffix.inc b/suffix.inc index 8e4483c..60ce27e 100644 --- a/suffix.inc +++ b/suffix.inc @@ -106,6 +106,7 @@ static_const const_char_ptr domain_suffix[] = { "0.bg", "001www.com", "0e.vc", + "1.azurestaticapps.net", "1.bg", "12hp.at", "12hp.ch", @@ -869,6 +870,7 @@ static_const const_char_ptr domain_suffix[] = { "biz.tt", "biz.ua", "biz.vn", + "biz.wf", "biz.zm", "bizen.okayama.jp", "bj", @@ -1073,6 +1075,7 @@ static_const const_char_ptr domain_suffix[] = { "budejju.no", "bugatti", "build", + "builder.code.com", "builders", "building.museum", "builtwithdark.com", @@ -1924,6 +1927,7 @@ static_const const_char_ptr domain_suffix[] = { "deta.dev", "detroit.museum", "dev", + "dev-builder.code.com", "dev-myqnapcloud.com", "dev.br", "dev.static.land", @@ -3066,6 +3070,7 @@ static_const const_char_ptr domain_suffix[] = { "gov.mz", "gov.nc.tr", "gov.ng", + "gov.nl", "gov.nr", "gov.om", "gov.ph", @@ -5496,6 +5501,7 @@ static_const const_char_ptr domain_suffix[] = { "name.my", "name.na", "name.ng", + "name.pm", "name.pr", "name.qa", "name.tj", @@ -7164,6 +7170,8 @@ static_const const_char_ptr domain_suffix[] = { "sch.sa", "sch.so", "sch.ss", + "sch.tf", + "sch.wf", "sch.zm", "schaeffler", "schlesisches.museum", @@ -7628,6 +7636,7 @@ static_const const_char_ptr domain_suffix[] = { "steiermark.museum", "steigen.no", "steinkjer.no", + "stg-builder.code.com", "sth.ac.at", "stjohn.museum", "stjordal.no", diff --git a/suffix/public_suffix_list.dat b/suffix/public_suffix_list.dat index 237e159..f521691 100644 --- a/suffix/public_suffix_list.dat +++ b/suffix/public_suffix_list.dat @@ -7130,7 +7130,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-03-27T15:13:38Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-05-18T15:16:02Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7471,7 +7471,7 @@ bio // black : 2014-01-16 Afilias Limited black -// blackfriday : 2014-01-16 UNR Corp. +// blackfriday : 2014-01-16 Registry Services, LLC blackfriday // blockbuster : 2015-07-30 Dish DBS Corporation @@ -8308,7 +8308,7 @@ gdn // gea : 2014-12-04 GEA Group Aktiengesellschaft gea -// gent : 2014-01-23 COMBELL NV +// gent : 2014-01-23 Easyhost BV gent // genting : 2015-03-12 Resorts World Inc Pte. Ltd. @@ -8851,7 +8851,7 @@ lincoln // linde : 2014-12-04 Linde Aktiengesellschaft linde -// link : 2013-11-14 UNR Corp. +// link : 2013-11-14 Nova Registry Ltd link // lipsy : 2015-06-25 Lipsy Ltd @@ -9307,7 +9307,7 @@ philips // phone : 2016-06-02 Dish DBS Corporation phone -// photo : 2013-11-14 UNR Corp. +// photo : 2013-11-14 Registry Services, LLC photo // photography : 2013-09-20 Binky Moon, LLC @@ -9550,7 +9550,7 @@ rsvp // rugby : 2016-12-15 World Rugby Strategic Developments Limited rugby -// ruhr : 2013-10-02 regiodot GmbH & Co. KG +// ruhr : 2013-10-02 dotSaarland GmbH ruhr // run : 2015-03-19 Binky Moon, LLC @@ -9901,7 +9901,7 @@ tatamotors // tatar : 2014-04-24 Limited Liability Company "Coordination Center of Regional Domain of Tatarstan Republic" tatar -// tattoo : 2013-08-30 UNR Corp. +// tattoo : 2013-08-30 Top Level Design, LLC tattoo // tax : 2014-03-20 Binky Moon, LLC @@ -12281,6 +12281,10 @@ blogspot.vn // Submitted by Niels Martignene goupile.fr +// Government of the Netherlands: https://www.government.nl +// Submitted by +gov.nl + // Group 53, LLC : https://www.group53.com // Submitted by Tyler Todd awsmppl.com @@ -12357,7 +12361,6 @@ ltd.ng ngo.ng edu.scot sch.so -org.yt // HostyHosting (hostyhosting.com) hostyhosting.io @@ -12798,12 +12801,13 @@ eu.meteorapp.com co.pl // Microsoft Corporation : http://microsoft.com -// Submitted by Mitch Webster +// Submitted by Public Suffix List Admin *.azurecontainer.io azurewebsites.net azure-mobile.net cloudapp.net azurestaticapps.net +1.azurestaticapps.net centralus.azurestaticapps.net eastasia.azurestaticapps.net eastus2.azurestaticapps.net @@ -13388,6 +13392,12 @@ rocky.page Ñпб.Ñ€ÑƒÑ Ñ.Ñ€ÑƒÑ +// Salesforce.com, Inc. https://salesforce.com/ +// Submitted by Michael Biven +builder.code.com +dev-builder.code.com +stg-builder.code.com + // Sandstorm Development Group, Inc. : https://sandcats.io/ // Submitted by Asheesh Laroia sandcats.io @@ -13811,6 +13821,15 @@ hk.org ltd.hk inc.hk +// UNIVERSAL DOMAIN REGISTRY : https://www.udr.org.yt/ +// see also: whois -h whois.udr.org.yt help +// Submitted by Atanunu Igbunuroghene +name.pm +sch.tf +biz.wf +sch.wf +org.yt + // United Gameserver GmbH : https://united-gameserver.de // Submitted by Stefan Schwarz virtualuser.de