Skip to content
Commits on Source (10)
This diff is collapsed.
......@@ -17,7 +17,7 @@
project(
'vte',
['c', 'cpp'],
version: '0.70.0',
version: '0.70.1',
license: ['LGPL-3.0-or-later', 'GPL-3.0-or-later'],
default_options: [
'buildtype=release',
......@@ -229,9 +229,15 @@ if system == 'freebsd'
libc_feature_defines = []
elif system == 'darwin'
# See issue #2592
libc_feature_defines += [
['_DARWIN_C_SOURCE', '1'],
]
elif system == 'netbsd'
libc_feature_defines += [
'_NETBSD_SOURCE',
['_NETBSD_SOURCE', '1'],
]
endif
......
# Turkish translation of vte.
# Copyright (C) 2003 vte's COPYRIGHT HOLDER
# Copyright (C) 2003-2022 vte's COPYRIGHT HOLDER
# This file is distributed under the same license as the vte package.
#
# Görkem Çetin <gorkem@gelecek.com.tr>, 2003.
......@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vte master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/vte/issues\n"
"POT-Creation-Date: 2020-04-27 18:50+0000\n"
"POT-Creation-Date: 2022-08-06 12:19+0000\n"
"PO-Revision-Date: 2020-04-28 15:36+0300\n"
"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>\n"
"Language-Team: Türkçe <gnome-turk@gnome.org>\n"
......@@ -25,115 +25,43 @@ msgstr ""
"X-Generator: Poedit 2.3\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: src/vte.cc:7843
#: src/vte.cc:7643
msgid "WARNING"
msgstr "UYARI"
#: src/vte.cc:7845
#: src/vte.cc:7645
msgid "GnuTLS not enabled; data will be written to disk unencrypted!"
msgstr "GnuTLS etkin değil; veriler diske şifrelenmemiş olarak yazılacak!"
#: src/spawn.cc:104
#: src/spawn.cc:124
#, c-format
msgid "Failed to set pipe nonblocking: %s"
msgstr "Boru nonblocking belirlenemedi. %s"
#: src/spawn.cc:148
#: src/spawn.cc:169
#, c-format
msgid "poll error: %s"
msgstr "poll hatası: %s"
#: src/spawn.cc:154
#: src/spawn.cc:176
msgid "Operation timed out"
msgstr "İşlem zaman aşımına uğradı"
#: src/spawn.cc:164
#: src/spawn.cc:186
msgid "Operation was cancelled"
msgstr "İşlem iptal edildi"
#: src/spawn.cc:182
#: src/spawn.cc:204
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Çocuk borudan (%s) okunurken hata"
#: src/spawn.cc:576
#: src/spawn.cc:639
#, c-format
msgid "Failed to change to directory “%s”: %s"
msgstr "“%s” dizinine değiştirme başarısız: %s"
#: src/spawn.cc:645
#: src/spawn.cc:708
#, c-format
msgid "Failed to execute child process “%s”: "
msgstr "“%s” çocuk süreci çalıştırılamadı: "
#~ msgid "Unable to convert characters from %s to %s."
#~ msgstr "Karakterler %sʼden %sʼe dönüştürülemiyor."
#~ msgid "Error (%s) converting data for child, dropping."
#~ msgstr "Çocuk süreç için veriyi çevirirken hata (%s), bırakılıyor."
#~ msgid "Copy"
#~ msgstr "Kopyala"
#~ msgid "Paste"
#~ msgstr "Yapıştır"
#~ msgid "Reset (use Ctrl to reset and clear)"
#~ msgstr "Sıfırla (Sıfırlamak ve temizlemek için Ctrl'yi kullanın)"
#~ msgid "Reset"
#~ msgstr "Sıfırla"
#~ msgid "Toggle input enabled setting"
#~ msgstr "Girişi aç/kapa"
#~ msgid "Input"
#~ msgstr "Giriş"
#~ msgid "Could not open console.\n"
#~ msgstr "Konsol açılamadı.\n"
#~ msgid "Could not parse the geometry spec passed to --geometry"
#~ msgstr "--geometry'de belirtilen geometri belirtimi ayrıştırılamadı"
#~ msgid "Unable to send data to child, invalid charset convertor"
#~ msgstr "Alt sürece veri gönderilemedi, geçersiz karakter kümesi çevirici"
#~ msgid "Error reading PTY size, using defaults: %s\n"
#~ msgstr "PTY boyutu okunurken hata, öntanımlı değerler kullanılıyor: %s\n"
#~ msgid "Attempt to set invalid NRC map '%c'."
#~ msgstr "Geçersiz NRC haritası '%c' ayarlanmaya çalışıldı."
#~ msgid "Unrecognized identified coding system."
#~ msgstr "Anımsanmayan tanımlanmış kodlama sistemi."
#~ msgid "Attempt to set invalid wide NRC map '%c'."
#~ msgstr "Geçersiz geniş NRC haritası '%c' ayarlanmaya çalışıldı."
#~ msgid "Duplicate (%s/%s)!"
#~ msgstr "Çift (%s/%s)!"
#~ msgid "Error compiling regular expression \"%s\"."
#~ msgstr "Düzenli ifade derlenirken hata: \"%s\"."
#~ msgid "_vte_conv_open() failed setting word characters"
#~ msgstr "_vte_iconv_open() kelime karakterlerini ayarlarken başarısız oldu"
#~ msgid "can not run %s"
#~ msgstr "%s çalıştırılamadı"
#~ msgid "Error creating signal pipe."
#~ msgstr "Sinyal borusu oluştururken hata."
#~ msgid "No handler for control sequence `%s' defined."
#~ msgstr "`%s' kontrol serisi için işlemci tanımlanmamış."
#~ msgid "Error setting PTY size: %s."
#~ msgstr "PTY boyutu ayarlanırken hata: %s."
#~ msgid "Got unexpected (key?) sequence `%s'."
#~ msgstr "Beklenmeyen (tuş?) serisi `%s' alındı."
#~ msgid "Unknown pixel mode %d.\n"
#~ msgstr "Bilinmeyen benek kipi %d.\n"
......@@ -157,6 +157,86 @@ public:
return m_map_fds;
}
auto environment_for_spawn() const noexcept
{
auto envv = g_get_environ();
// Merge in extra variables
if (environment) {
for (auto i = 0; environment[i]; ++i) {
auto const eq = strchr(environment[i], '=');
if (eq) {
auto const var = vte::glib::take_string(g_strndup(environment[i], eq - environment[i]));
envv = g_environ_setenv(envv, var.get(), eq + 1, true);
} else {
envv = g_environ_unsetenv(envv, environment[i]);
}
}
}
// Cleanup environment
// List of variables and prefixes copied from gnome-terminal.
for (auto const& var : {"COLORTERM",
"COLUMNS",
"DESKTOP_STARTUP_ID",
"EXIT_CODE",
"EXIT_STATUS",
"GIO_LAUNCHED_DESKTOP_FILE",
"GIO_LAUNCHED_DESKTOP_FILE_PID",
"GJS_DEBUG_OUTPUT",
"GJS_DEBUG_TOPICS",
"GNOME_DESKTOP_ICON",
"INVOCATION_ID",
"JOURNAL_STREAM",
"LINES",
"LISTEN_FDNAMES",
"LISTEN_FDS",
"LISTEN_PID",
"MAINPID",
"MANAGERPID",
"NOTIFY_SOCKET",
"NOTIFY_SOCKET",
"PIDFILE",
"PWD",
"REMOTE_ADDR",
"REMOTE_PORT",
"SERVICE_RESULT",
"SHLVL",
"TERM",
"VTE_VERSION",
"WATCHDOG_PID",
"WATCHDOG_USEC",
"WINDOWID"}) {
envv = g_environ_unsetenv(envv, var);
}
for (auto const& prefix : {"GNOME_TERMINAL_",
// other terminals
"FOOT_",
"ITERM2_",
"MC_",
"MINTTY_",
"PUTTY_",
"RXVT_",
"TERM_",
"URXVT_",
"WEZTERM_",
"XTERM_"}) {
for (auto i = 0; envv[i]; ++i) {
if (!g_str_has_prefix (envv[i], prefix))
continue;
auto const eq = strchr(envv[i], '=');
g_assert(eq);
auto const var = vte::glib::take_string(g_strndup(envv[i], eq - envv[i]));
envv = g_environ_unsetenv(envv, var.get());
}
}
return vte::glib::take_strv(envv);
}
private:
std::vector<vte::libc::FD> m_fds{};
......@@ -732,7 +812,7 @@ public:
return rv;
}
};
}; // class Options
Options options{}; /* global */
......@@ -1684,6 +1764,7 @@ vteapp_window_launch_argv(VteappWindow* window,
GError** error)
{
auto const spawn_flags = GSpawnFlags(G_SPAWN_SEARCH_PATH_FROM_ENVP |
VTE_SPAWN_NO_PARENT_ENVV |
(options.no_systemd_scope ? VTE_SPAWN_NO_SYSTEMD_SCOPE : 0) |
(options.require_systemd_scope ? VTE_SPAWN_REQUIRE_SYSTEMD_SCOPE : 0));
auto fds = options.fds();
......@@ -1692,7 +1773,7 @@ vteapp_window_launch_argv(VteappWindow* window,
VTE_PTY_DEFAULT,
options.working_directory,
argv,
options.environment,
options.environment_for_spawn().get(),
fds.data(), fds.size(),
map_fds.data(), map_fds.size(),
spawn_flags,
......@@ -2623,6 +2704,15 @@ vteapp_window_dispose(GObject *object)
window->search_popover = nullptr;
}
// Disconnect all signal handlers from the terminal
g_signal_handlers_disconnect_matched(window->terminal,
GSignalMatchType(G_SIGNAL_MATCH_DATA),
0, // signal id
0, // detail quark
nullptr, // closure
nullptr, // func
window);
G_OBJECT_CLASS(vteapp_window_parent_class)->dispose(object);
}
......
This diff is collapsed.
......@@ -31,7 +31,10 @@ namespace vte::platform {
enum class ClipboardFormat {
TEXT,
HTML
HTML,
#if VTE_GTK == 4
INVALID = -1
#endif
};
enum class ClipboardType {
......@@ -39,7 +42,14 @@ enum class ClipboardType {
PRIMARY = 1
};
#if VTE_GTK == 4
class ContentProvider;
#endif
class Clipboard : public std::enable_shared_from_this<Clipboard> {
#if VTE_GTK == 4
friend class ContentProvider;
#endif
public:
Clipboard(Widget& delegate,
ClipboardType type) /* throws */;
......@@ -69,7 +79,8 @@ public:
OfferGetCallback get_callback,
OfferClearCallback clear_callback) /* throws */;
void set_text(std::string_view const& text) noexcept;
void set_text(char const* text,
size_t size) noexcept;
void request_text(RequestDoneCallback done_callback,
RequestFailedCallback failed_callback) /* throws */;
......
......@@ -278,6 +278,7 @@ bool set_error_from_exception(GError** error
namespace vte {
VTE_DECLARE_FREEABLE(GBytes, g_bytes_unref);
VTE_DECLARE_FREEABLE(GOptionContext, g_option_context_free);
VTE_DECLARE_FREEABLE(GVariant, g_variant_unref);
......
......@@ -31,6 +31,7 @@ VTE_DECLARE_FREEABLE(GtkTargetList, gtk_target_list_unref);
#if VTE_GTK == 4
VTE_DECLARE_FREEABLE(GdkContentFormats, gdk_content_formats_unref);
VTE_DECLARE_FREEABLE(GdkContentFormatsBuilder, gdk_content_formats_builder_unref);
#endif /* VTE_GTK == 4 */
} // namespace vte
......@@ -4932,15 +4932,6 @@ Terminal::widget_key_press(vte::platform::KeyEvent const& event)
return true;
}
#if VTE_GTK == 4
if (!handled &&
event.matches(GDK_KEY_Menu, 0)) {
_vte_debug_print(VTE_DEBUG_EVENTS, "Showing context menu\n");
// FIXMEgtk4 do context menu
handled = true;
}
#endif
return false;
}
......@@ -6800,16 +6791,6 @@ Terminal::widget_mouse_press(vte::platform::MouseEvent const& event)
break;
}
#if VTE_GTK == 4
if (!handled &&
((event.button() == vte::platform::MouseEvent::Button::eRIGHT) ||
!(event.modifiers() & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK)))) {
_vte_debug_print(VTE_DEBUG_EVENTS, "Showing context menu\n");
// FIXMEgtk4 context menu
handled = true;
}
#endif /* VTE_GTK == 4 */
/* Save the pointer state for later use. */
if (event.button_value() >= 1 && event.button_value() <= 3)
m_mouse_pressed_buttons |= (1 << (event.button_value() - 1));
......@@ -7863,8 +7844,8 @@ Terminal::widget_unrealize()
// FIXMEchpe we should check m_selection_format[sel]
// and also put text/html on if it's HTML format
widget()->clipboard_set_text(sel_type,
{m_selection[sel]->str,
m_selection[sel]->len});
m_selection[sel]->str,
m_selection[sel]->len);
}
g_string_free(m_selection[sel], TRUE);
m_selection[sel] = nullptr;
......
......@@ -628,9 +628,10 @@ Widget::clipboard_request_text(ClipboardType type) noexcept
void
Widget::clipboard_set_text(ClipboardType type,
std::string_view const& str) noexcept
char const* str,
size_t size) noexcept
{
clipboard_get(type).set_text(str);
clipboard_get(type).set_text(str, size);
}
#if VTE_GTK == 4
......
......@@ -383,7 +383,8 @@ public:
ClipboardFormat format) noexcept;
void clipboard_request_text(ClipboardType type) noexcept;
void clipboard_set_text(ClipboardType type,
std::string_view const& str) noexcept;
char const* str,
size_t size) noexcept;
void paste_text(std::string_view const& text) { m_terminal->widget_paste(text); }
void paste(vte::platform::ClipboardType type) { clipboard_request_text(type); }
......