On Tue, 2017-01-31 at 12:08 +0100, Victor Toso wrote: > From: Victor Toso <me@xxxxxxxxxxxxxx> > > --- > tools/spicy.c | 19 ++++++++++++------- > 1 file changed, 12 insertions(+), 7 deletions(-) > > diff --git a/tools/spicy.c b/tools/spicy.c > index bffbef8..4712db6 100644 > --- a/tools/spicy.c > +++ b/tools/spicy.c > @@ -180,25 +180,30 @@ static int ask_user(GtkWidget *parent, char > *title, char *message, > return retval; > } > > +#define SPICY_STATUS_LABEL "mouse: %6s, agent: %3s" > +#define SPICY_UNGRAB_INFO "Use %s to ungrab mouse" > + > static void update_status_window(SpiceWindow *win) > { > - gchar *status; > + GString *status; > > if (win == NULL) > return; > > + status = g_string_new(NULL); > + g_string_printf(status, SPICY_STATUS_LABEL, > + win->conn->mouse_state, > + win->conn->agent_state); > + > if (win->mouse_grabbed) { > SpiceGrabSequence *sequence = > spice_display_get_grab_keys(SPICE_DISPLAY(win->spice)); > gchar *seq = spice_grab_sequence_as_string(sequence); > - status = g_strdup_printf("Use %s to ungrab mouse.", seq); > + g_string_append_printf(status, "\t"SPICY_UNGRAB_INFO, seq); > g_free(seq); > - } else { > - status = g_strdup_printf("mouse: %s, agent: %s", > - win->conn->mouse_state, win->conn->agent_state); > } > > - gtk_label_set_text(GTK_LABEL(win->status), status); > - g_free(status); > + gtk_label_set_text(GTK_LABEL(win->status), status->str); > + g_string_free(status, TRUE); > } > > static void update_status(struct spice_connection *conn) Perhaps I'm missing something, but these #defines only seem to be used a single time. What's the benefit of defining them rather than just using the literal string as the format argument? I generally find that #defines used as format strings are more confusing because you can't immediately see how many additional arguments need to be passed to the printf function. Jonathon _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel