public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Takao Fujiwara <tfujiwar@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/ibus] autotool: Delete upstreamed patches
Date: Sun, 31 May 2026 02:08:53 GMT [thread overview]
Message-ID: <178019333375.1.14127478013814230320.rpms-ibus-8f31308236e7@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/ibus
Branch : autotool
Commit : 8f31308236e71b333e91495ddbdddf1e69401b59
Author : Takao Fujiwara <tfujiwar@redhat.com>
Date : 2025-03-19T13:51:50+09:00
Stats : +0/-542 in 1 file(s)
URL : https://src.fedoraproject.org/rpms/ibus/c/8f31308236e71b333e91495ddbdddf1e69401b59?branch=autotool
Log:
Delete upstreamed patches
---
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
deleted file mode 100644
index eada3fc..0000000
--- a/ibus-HEAD.patch
+++ /dev/null
@@ -1,542 +0,0 @@
-From 646cf459902c35268901a8713cd7cd88a4cf7cf9 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Wed, 5 Mar 2025 08:41:34 +0900
-Subject: [PATCH] client/gtk2: Revert "Add a pad to the cursor height in Wayland"
-
-Fix the regression in gnome-shell.
-
-BUG=https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8228
-Fixes: https://github.com/ibus/ibus/commit/c38d82f
----
- client/gtk2/ibusimcontext.c | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
-index a45aae92..266fa6fe 100644
---- a/client/gtk2/ibusimcontext.c
-+++ b/client/gtk2/ibusimcontext.c
-@@ -1693,14 +1693,12 @@ _set_cursor_location_internal (IBusIMContext *ibusimcontext)
- #endif
-
- if (GDK_IS_WAYLAND_DISPLAY (display)) {
-- area.y += area.height / 2;
- ibus_input_context_set_cursor_location_relative (
- ibusimcontext->ibuscontext,
- area.x,
- area.y,
- area.width,
- area.height);
--
- } else {
- #endif
- ibus_input_context_set_cursor_location (ibusimcontext->ibuscontext,
---
-2.47.0
-
-From da4d7c19e474d0e69c6e35116c625765cc377c7d Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Sun, 9 Mar 2025 10:08:44 +0900
-Subject: [PATCH] bus: Send FocusIn signal again after delayed FocusId property
-
-The FocusId D-Bus property is checked after both bus/EngineProxy
-and src/IBusEngine is generated with an idle then the first
-FocusIn D-Bus signal is sent without checking the FocusId property
-when ibus-daemon runs.
-The solution is to send the FocusIn signal again in case the
-FocusId property is TRUE.
-
-BUG=https://github.com/ibus/ibus/pull/2717
----
- bus/engineproxy.c | 26 ++++++++++++++++++++++++--
- 1 file changed, 24 insertions(+), 2 deletions(-)
-
-diff --git a/bus/engineproxy.c b/bus/engineproxy.c
-index 20f89cef..fa15d2e7 100644
---- a/bus/engineproxy.c
-+++ b/bus/engineproxy.c
-@@ -2,7 +2,7 @@
- /* vim:set et sts=4: */
- /* ibus - The Input Bus
- * Copyright (C) 2008-2013 Peng Huang <shawn.p.huang@gmail.com>
-- * Copyright (C) 2015-2022 Takao Fujiwara <takao.fujiwara1@gmail.com>
-+ * Copyright (C) 2015-2025 Takao Fujiwara <takao.fujiwara1@gmail.com>
- * Copyright (C) 2008-2016 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
-@@ -61,6 +61,8 @@ struct _BusEngineProxy {
- IBusPropList *prop_list;
- gboolean has_focus_id;
- gboolean has_active_surrounding_text;
-+ gchar *object_path;
-+ gchar *client;
- };
-
- struct _BusEngineProxyClass {
-@@ -1391,6 +1393,8 @@ _get_has_focus_id_cb (GObject *object,
- hash_table,
- (gpointer)ibus_engine_desc_get_name (engine->desc),
- value);
-+ if (engine->has_focus)
-+ g_signal_emit (engine, engine_signals[REQUIRE_SURROUNDING_TEXT], 0);
- }
- g_hash_table_unref (hash_table);
- }
-@@ -1436,6 +1440,18 @@ _get_active_surrounding_text_cb (GObject *object,
- hash_table,
- (gpointer)ibus_engine_desc_get_name (engine->desc),
- value);
-+ if (engine->has_focus_id && engine->object_path) {
-+ gchar *object_path = g_strdup (engine->object_path);
-+ gchar *client = g_strdup (engine->client);
-+
-+ engine->has_focus = FALSE;
-+ /* Send the FocusIn D-Bus signal again after the delayed FocusId
-+ * D-Bus property.
-+ */
-+ bus_engine_proxy_focus_in (engine, object_path, client);
-+ g_free (object_path);
-+ g_free (client);
-+ }
- }
- g_hash_table_unref (hash_table);
- }
-@@ -1479,9 +1495,13 @@ bus_engine_proxy_focus_in (BusEngineProxy *engine,
- const gchar *client)
- {
- g_assert (BUS_IS_ENGINE_PROXY (engine));
-- if (engine->has_focus)
-+ if (engine->has_focus && !g_strcmp0 (object_path, engine->object_path))
- return;
- engine->has_focus = TRUE;
-+ g_free (engine->object_path);
-+ g_free (engine->client);
-+ engine->object_path = g_strdup (object_path);
-+ engine->client = g_strdup (client);
- if (engine->has_active_surrounding_text)
- g_signal_emit (engine, engine_signals[REQUIRE_SURROUNDING_TEXT], 0);
- if (engine->has_focus_id) {
-@@ -1513,6 +1533,8 @@ bus_engine_proxy_focus_out (BusEngineProxy *engine,
- if (!engine->has_focus)
- return;
- engine->has_focus = FALSE;
-+ g_clear_pointer (&engine->object_path, g_free);
-+ g_clear_pointer (&engine->client, g_free);
- if (engine->has_focus_id) {
- g_dbus_proxy_call ((GDBusProxy *)engine,
- "FocusOutId",
---
-2.47.0
-
-From 5797150892317a30e37756ee62ae4fd644700dfc Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Fri, 14 Mar 2025 21:00:38 +0900
-Subject: [PATCH] ui/gtk3: Fix time lag of CandidatePanel in X11
-
-The timed `set_lookup_table()` is a workaround with the Wayland
-input-method protocol under the construction to stop the many D-Bus
-methods but it should not affect Xorg UI at least.
-
-Now `m_is_wayland flag` is inherited to the CandidatePanel and Switcher
-and add `m_first_set_lookup_table` flag newly to enhance the lag
-with the Wayland input-method protocol.
-
-Also fix compile warnings with `valac` in `xkblayout.vala`.
-
-Fixes: https://github.com/ibus/ibus/commit/d5e6e71
-BUG=https://github.com/ibus/ibus/issues/2740
----
- ui/gtk3/candidatepanel.vala | 63 ++++++++++++++++++++++++++++++++-----
- ui/gtk3/panel.vala | 5 +--
- ui/gtk3/switcher.vala | 25 ++++++++-------
- ui/gtk3/xkblayout.vala | 34 ++++++++++----------
- 4 files changed, 90 insertions(+), 37 deletions(-)
-
-diff --git a/ui/gtk3/candidatepanel.vala b/ui/gtk3/candidatepanel.vala
-index f2447703..5ba8cf36 100644
---- a/ui/gtk3/candidatepanel.vala
-+++ b/ui/gtk3/candidatepanel.vala
-@@ -36,9 +36,10 @@ public class CandidatePanel : Gtk.Box{
-
- private Pango.Attribute m_language_attribute;
- private uint m_update_id;
-+ private bool m_is_wayland;
-+ private bool m_no_wayland_panel;
-
- #if USE_GDK_WAYLAND
-- private bool m_no_wayland_panel;
- private bool m_hide_after_show;
- private uint m_prev_page_size;
- private uint m_prev_ncandidates;
-@@ -48,6 +49,7 @@ public class CandidatePanel : Gtk.Box{
- private uint m_set_preedit_text_id;
- private uint m_set_auxiliary_text_id;
- private uint m_set_lookup_table_id;
-+ private bool m_first_set_lookup_table;
- #endif
-
- public signal void cursor_up();
-@@ -64,7 +66,8 @@ public class CandidatePanel : Gtk.Box{
- public signal void realize_surface(void *surface);
- #endif
-
-- public CandidatePanel(bool no_wayland_panel) {
-+ public CandidatePanel(bool is_wayland,
-+ bool no_wayland_panel) {
- // Call base class constructor
- GLib.Object(
- name : "IBusCandidate",
-@@ -72,9 +75,8 @@ public class CandidatePanel : Gtk.Box{
- visible: true
- );
-
--#if USE_GDK_WAYLAND
-+ m_is_wayland = is_wayland;
- m_no_wayland_panel = no_wayland_panel;
--#endif
- m_toplevel = new Gtk.Window(Gtk.WindowType.POPUP);
- m_toplevel.add_events(Gdk.EventMask.BUTTON_PRESS_MASK);
- m_toplevel.button_press_event.connect((w, e) => {
-@@ -87,7 +89,7 @@ public class CandidatePanel : Gtk.Box{
- adjust_window_position(w);
- });
- #if USE_GDK_WAYLAND
-- if (!BindingCommon.default_is_xdisplay()) {
-+ if (m_is_wayland) {
- m_toplevel.realize.connect((w) => {
- realize_window(true);
- });
-@@ -201,6 +203,10 @@ public class CandidatePanel : Gtk.Box{
- }
-
- public void set_preedit_text(IBus.Text? text, uint cursor) {
-+ if (!m_is_wayland) {
-+ set_preedit_text_real(text, cursor);
-+ return;
-+ }
- #if USE_GDK_WAYLAND
- if (m_set_preedit_text_id > 0)
- GLib.Source.remove(m_set_preedit_text_id);
-@@ -238,6 +244,10 @@ public class CandidatePanel : Gtk.Box{
- }
-
- public void set_auxiliary_text(IBus.Text? text) {
-+ if (!m_is_wayland) {
-+ set_auxiliary_text_real(text);
-+ return;
-+ }
- #if USE_GDK_WAYLAND
- if (m_set_auxiliary_text_id > 0)
- GLib.Source.remove(m_set_auxiliary_text_id);
-@@ -269,6 +279,10 @@ public class CandidatePanel : Gtk.Box{
- }
-
- public void set_lookup_table(IBus.LookupTable? table) {
-+ if (!m_is_wayland) {
-+ set_lookup_table_real(table);
-+ return;
-+ }
- #if USE_GDK_WAYLAND
- if (m_set_lookup_table_id > 0) {
- if (table == null ||
-@@ -282,14 +296,25 @@ public class CandidatePanel : Gtk.Box{
- }
- }
- if (table != null) {
-+ if (m_prev_ncandidates == 0)
-+ m_first_set_lookup_table = true;
- m_prev_page_size = table.get_page_size();
- m_prev_ncandidates = table.get_number_of_candidates();
- m_prev_cursor = table.get_cursor_pos();
- m_prev_cursor_in_page = table.get_cursor_in_page();
- m_prev_show_cursor = table.is_cursor_visible();
-+ } else {
-+ m_prev_page_size = m_prev_ncandidates = m_prev_cursor =
-+ m_prev_cursor_in_page = 0;
-+ m_prev_show_cursor = false;
- }
- // FIXME: Too many PreeditText D-Bus signal happens in Wayland.
- m_set_lookup_table_id = Timeout.add(100,
-+ // FIXME: If m_set_lookup_table_id
-+ // == 0, delete the queued timed
-+ // callbacks to avoid the last
-+ // reverse cursor move after the
-+ // key release.
- () => {
- m_set_lookup_table_id = 0;
- set_lookup_table_real(table);
-@@ -353,9 +378,33 @@ public class CandidatePanel : Gtk.Box{
- }
-
- private void update() {
-+ if (!m_is_wayland) {
-+ update_real();
-+ return;
-+ }
-+#if USE_GDK_WAYLAND
-+ // Show the first lookup table immediately with the Wayland
-+ // input-method protocol because keeping pressing the space key
-+ // causes many update() and the timed update_real() is not called
-+ // until the space key is released.
-+ if (m_first_set_lookup_table) {
-+ m_first_set_lookup_table = false;
-+ if (m_update_id > 0) {
-+ GLib.Source.remove(m_update_id);
-+ m_update_id = 0;
-+ }
-+ update_real();
-+ return;
-+ }
-+#endif
- if (m_update_id > 0)
- GLib.Source.remove(m_update_id);
-- // set_lookup_table() and set_preedit_text() happens sequentially.
-+ // - set_lookup_table() and set_preedit_text() happens sequentially.
-+ // - Hide CandidatePanel after a candidate is committed with Emojier
-+ // and xterm without the Wayland panel in the Wayland input-method V2.
-+ // - Don't show the hidden lookup table unexpectedly again after
-+ // a candidate is committed with the Wayland applications in the
-+ // Wayland input-method V2.
- m_update_id = Timeout.add(100,
- () => {
- m_update_id = 0;
-@@ -436,7 +485,7 @@ public class CandidatePanel : Gtk.Box{
-
- public new void hide() {
- #if USE_GDK_WAYLAND
-- if (!BindingCommon.default_is_xdisplay())
-+ if (m_is_wayland)
- realize_surface(null);
- #endif
- m_toplevel.hide();
-diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
-index 186b3ac9..e42a166e 100644
---- a/ui/gtk3/panel.vala
-+++ b/ui/gtk3/panel.vala
-@@ -173,7 +173,8 @@ class Panel : IBus.PanelService {
- }
-
- private CandidatePanel candidate_panel_new(bool no_wayland_panel) {
-- CandidatePanel candidate_panel = new CandidatePanel(no_wayland_panel);
-+ CandidatePanel candidate_panel = new CandidatePanel(m_is_wayland,
-+ no_wayland_panel);
- candidate_panel.page_up.connect((w) => this.page_up());
- candidate_panel.page_down.connect((w) => this.page_down());
- candidate_panel.cursor_up.connect((w) => this.cursor_up());
-@@ -190,7 +191,7 @@ class Panel : IBus.PanelService {
- }
-
- private Switcher switcher_new(bool no_wayland_panel) {
-- Switcher switcher = new Switcher(no_wayland_panel);
-+ Switcher switcher = new Switcher(m_is_wayland, no_wayland_panel);
- #if USE_GDK_WAYLAND
- switcher.realize_surface.connect(
- (w, s) => this.realize_surface(s));
-diff --git a/ui/gtk3/switcher.vala b/ui/gtk3/switcher.vala
-index 13eeb481..99a2fa0b 100644
---- a/ui/gtk3/switcher.vala
-+++ b/ui/gtk3/switcher.vala
-@@ -96,6 +96,7 @@ class Switcher : Gtk.Window {
- private double m_mouse_init_x;
- private double m_mouse_init_y;
- private bool m_mouse_moved;
-+ private bool m_is_wayland;
- private bool m_no_wayland_panel;
- private GLib.HashTable<string, string> m_xkb_languages =
- new GLib.HashTable<string, string>(GLib.str_hash,
-@@ -106,16 +107,19 @@ class Switcher : Gtk.Window {
- public signal void realize_surface(void *surface);
- #endif
-
-- public Switcher(bool no_wayland_panel) {
-+ public Switcher(bool is_wayland,
-+ bool no_wayland_panel) {
- GLib.Object(
- type : Gtk.WindowType.POPUP,
-- events : Gdk.EventMask.KEY_PRESS_MASK | Gdk.EventMask.KEY_RELEASE_MASK,
-+ events : Gdk.EventMask.KEY_PRESS_MASK |
-+ Gdk.EventMask.KEY_RELEASE_MASK,
- window_position : Gtk.WindowPosition.CENTER,
- accept_focus : true,
- decorated : false,
- modal : true,
- focus_visible : true
- );
-+ m_is_wayland = is_wayland;
- m_no_wayland_panel = no_wayland_panel;
- Gtk.Box vbox = new Gtk.Box(Gtk.Orientation.VERTICAL, 0);
- add(vbox);
-@@ -139,7 +143,7 @@ class Switcher : Gtk.Window {
- vbox.pack_end(m_label, false, false, 0);
-
- #if USE_GDK_WAYLAND
-- if (!BindingCommon.default_is_xdisplay()) {
-+ if (m_is_wayland) {
- this.realize.connect((w) => {
- realize_window(true);
- });
-@@ -381,12 +385,8 @@ class Switcher : Gtk.Window {
- return false;
- }
- m_mouse_moved = true;
--#if USE_GDK_WAYLAND
-- if (BindingCommon.default_is_xdisplay())
-+ if (!m_is_wayland)
- button.grab_focus();
--#else
-- button.grab_focus();
--#endif
- m_selected_engine = index;
- return false;
- });
-@@ -571,7 +571,7 @@ class Switcher : Gtk.Window {
- // if e.type == Gdk.EventType.KEY_RELEASE, m_loop is already null.
- // m_loop is always null in Wayland but this signal is not emitted
- // when the Wayland panel protocol is enabled.
-- if (m_loop == null && !m_no_wayland_panel)
-+ if (m_loop == null && !m_is_wayland)
- return Gdk.EVENT_PROPAGATE;
-
- if (m_popup_delay_time > 0) {
-@@ -582,9 +582,9 @@ class Switcher : Gtk.Window {
- }
-
- m_result = (int)m_selected_engine;
-- if (!m_no_wayland_panel) {
-+ if (!m_is_wayland) {
- m_loop.quit();
-- } else {
-+ } else if (m_no_wayland_panel) {
- // Switcher without the Wayland panel protocol can return
- // the m_result_engine immediately in Wayland without waiting
- // for the focus-in event due to a virtual input context in
-@@ -592,6 +592,9 @@ class Switcher : Gtk.Window {
- GLib.assert(m_result < m_engines.length);
- m_result_engine = m_engines[m_result];
- hide();
-+ } else {
-+ // Switcher should not get focus with the Wayland panel protocol.
-+ GLib.assert_not_reached();
- }
- return Gdk.EVENT_STOP;
- }
-diff --git a/ui/gtk3/xkblayout.vala b/ui/gtk3/xkblayout.vala
-index 874920ee..598431c3 100644
---- a/ui/gtk3/xkblayout.vala
-+++ b/ui/gtk3/xkblayout.vala
-@@ -48,6 +48,11 @@ class XKBLayout
- public void get_layout(out string layout,
- out string variant,
- out string option) {
-+ layout = "";
-+ variant = "";
-+ var o = Environment.get_variable("XKB_DEFAULT_OPTIONS");
-+ option = o != null ? o : "";
-+
- search_get_layout_program();
- if (m_get_layout_args[0] == null) {
- warning("Not found localectl or setxkbmap command in PATH");
-@@ -60,11 +65,6 @@ class XKBLayout
- string standard_error = null;
- int exit_status = 0;
-
-- layout = "";
-- variant = "";
-- var o = Environment.get_variable("XKB_DEFAULT_OPTIONS");
-- option = o != null ? o : "";
--
- try {
- GLib.Process.spawn_sync(null,
- exec_command,
-@@ -84,14 +84,14 @@ class XKBLayout
-
- if (exec_command[0] == "localectl") {
- parse_localectl_status_str(standard_output,
-- out layout,
-- out variant,
-- out option);
-+ ref layout,
-+ ref variant,
-+ ref option);
- } else if (exec_command[0] == XKB_COMMAND) {
- parse_xkbmap_query_str(standard_output,
-- out layout,
-- out variant,
-- out option);
-+ ref layout,
-+ ref variant,
-+ ref option);
- }
- }
-
-@@ -113,9 +113,9 @@ class XKBLayout
-
-
- private void parse_localectl_status_str(string standard_output,
-- out string layout,
-- out string variant,
-- out string option) {
-+ ref string layout,
-+ ref string variant,
-+ ref string option) {
- foreach (string line in standard_output.split("\n")) {
- const string[] elements = { "X11 Layout:", "X11 Variant:" };
- foreach (unowned string element in elements) {
-@@ -136,9 +136,9 @@ class XKBLayout
-
-
- private void parse_xkbmap_query_str(string standard_output,
-- out string layout,
-- out string variant,
-- out string option) {
-+ ref string layout,
-+ ref string variant,
-+ ref string option) {
- foreach (string line in standard_output.split("\n")) {
- const string[] elements = { "layout:", "variant:", "options:" };
- foreach (unowned string element in elements) {
---
-2.47.0
-
-From 1d56d77b19daf5c8d6f3ee87a0712ae5904293f4 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Fri, 14 Mar 2025 21:00:52 +0900
-Subject: [PATCH] client/wayland: Fix infinite Return key in xterm
-
-Currently the repeating key feature of IBus is disabled when the focus
-is changed but the feature of the Wayland compositor still happens in
-the Sway desktop session when invoke xterm by manual in foot.
-I think Sway should stop the repeating key feature when the focus is
-changed from the Wayland application to the non-Wayland application.
-
-I add a workaround to call `zwp_virtual_keyboard_v1_key()` with
-the `WL_KEYBOARD_KEY_STATE_RELEASED` flag to stop the feature of
-the Sway compositor after the IBus repeating key timeout.
----
- client/wayland/ibuswaylandim.c | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/client/wayland/ibuswaylandim.c b/client/wayland/ibuswaylandim.c
-index ba392c6b..356cec31 100644
---- a/client/wayland/ibuswaylandim.c
-+++ b/client/wayland/ibuswaylandim.c
-@@ -1332,6 +1332,17 @@ _process_key_event_repeat_delay_cb (gpointer user_data)
- /* The key release event was sent to non-Wayland apps likes xterm. */
- if (!priv->ibuscontext) {
- event->count_cb_id = 0;
-+ /* Stop the infinite Return keys in non-Wayland apps likes xterm in
-+ * the Sway desktop session.
-+ * But priv->context in NULL in the Wayland input-method V1 here.
-+ */
-+ if (priv->version != INPUT_METHOD_V1) {
-+ ibus_wayland_im_key(event->wlim,
-+ event->serial,
-+ event->time + priv->repeat_delay,
-+ event->key,
-+ WL_KEYBOARD_KEY_STATE_RELEASED);
-+ }
- return G_SOURCE_REMOVE;
- }
- /* The focus is changed. */
---
-2.47.0
-
next reply other threads:[~2026-05-31 2:08 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-31 2:08 Takao Fujiwara [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-05-31 2:09 [rpms/ibus] autotool: Delete upstreamed patches Takao Fujiwara
2026-05-31 2:09 Takao Fujiwara
2026-05-31 2:09 Takao Fujiwara
2026-05-31 2:08 Takao Fujiwara
2026-05-31 2:08 Takao Fujiwara
2026-05-31 2:08 Takao Fujiwara
2026-05-31 2:08 Takao Fujiwara
2026-05-31 2:08 Takao Fujiwara
2026-05-31 2:08 [rpms/ibus] autotool: Delete Upstreamed patches Takao Fujiwara
2026-05-31 2:08 [rpms/ibus] autotool: Delete upstreamed patches Takao Fujiwara
2026-05-31 2:08 Takao Fujiwara
2026-05-31 2:07 Takao Fujiwara
2026-05-31 2:07 Takao Fujiwara
2026-05-31 2:07 Takao Fujiwara
2026-05-31 2:07 Takao Fujiwara
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178019333375.1.14127478013814230320.rpms-ibus-8f31308236e7@fedoraproject.org \
--to=tfujiwar@redhat.com \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox