diff options
author | Tiago Cunha <tcunha@gmx.com> | 2009-09-22 13:56:02 +0000 |
---|---|---|
committer | Tiago Cunha <tcunha@gmx.com> | 2009-09-22 13:56:02 +0000 |
commit | 649b7c132d3a83cc7e67742d38d9e74c5cfae9ac (patch) | |
tree | d35e739aac571cfe6e61097caef7d00051bf4ee4 | |
parent | b6bc8a6828d448e5d6c89d1eb5cad2ea3c203d18 (diff) |
Sync OpenBSD patchset 339:
Move common code from show-options and show-window-options into a function.
-rw-r--r-- | cmd-show-options.c | 48 | ||||
-rw-r--r-- | cmd-show-window-options.c | 48 | ||||
-rw-r--r-- | options-cmd.c | 42 | ||||
-rw-r--r-- | tmux.h | 4 |
4 files changed, 56 insertions, 86 deletions
diff --git a/cmd-show-options.c b/cmd-show-options.c index 6f0f359f..2586bb53 100644 --- a/cmd-show-options.c +++ b/cmd-show-options.c @@ -1,4 +1,4 @@ -/* $Id: cmd-show-options.c,v 1.16 2009-07-28 22:12:16 tcunha Exp $ */ +/* $Id: cmd-show-options.c,v 1.17 2009-09-22 13:56:02 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -46,9 +46,9 @@ cmd_show_options_exec(struct cmd *self, struct cmd_ctx *ctx) struct cmd_target_data *data = self->data; struct session *s; struct options *oo; + struct options_entry *o; const struct set_option_entry *entry; - char *vs; - long long vn; + const char *optval; if (data->chflags & CMD_CHFLAG('g')) oo = &global_s_options; @@ -59,46 +59,10 @@ cmd_show_options_exec(struct cmd *self, struct cmd_ctx *ctx) } for (entry = set_option_table; entry->name != NULL; entry++) { - if (options_find1(oo, entry->name) == NULL) + if ((o = options_find1(oo, entry->name)) == NULL) continue; - - switch (entry->type) { - case SET_OPTION_STRING: - vs = options_get_string(oo, entry->name); - ctx->print(ctx, "%s \"%s\"", entry->name, vs); - break; - case SET_OPTION_NUMBER: - vn = options_get_number(oo, entry->name); - ctx->print(ctx, "%s %lld", entry->name, vn); - break; - case SET_OPTION_KEY: - vn = options_get_number(oo, entry->name); - ctx->print(ctx, "%s %s", - entry->name, key_string_lookup_key(vn)); - break; - case SET_OPTION_COLOUR: - vn = options_get_number(oo, entry->name); - ctx->print(ctx, "%s %s", - entry->name, colour_tostring(vn)); - break; - case SET_OPTION_ATTRIBUTES: - vn = options_get_number(oo, entry->name); - ctx->print(ctx, "%s %s", - entry->name, attributes_tostring(vn)); - break; - case SET_OPTION_FLAG: - vn = options_get_number(oo, entry->name); - if (vn) - ctx->print(ctx, "%s on", entry->name); - else - ctx->print(ctx, "%s off", entry->name); - break; - case SET_OPTION_CHOICE: - vn = options_get_number(oo, entry->name); - ctx->print(ctx, "%s %s", - entry->name, entry->choices[vn]); - break; - } + optval = set_option_print(entry, o); + ctx->print(ctx, "%s %s", entry->name, optval); } return (0); diff --git a/cmd-show-window-options.c b/cmd-show-window-options.c index 051bf798..291508c9 100644 --- a/cmd-show-window-options.c +++ b/cmd-show-window-options.c @@ -1,4 +1,4 @@ -/* $Id: cmd-show-window-options.c,v 1.12 2009-07-28 22:12:16 tcunha Exp $ */ +/* $Id: cmd-show-window-options.c,v 1.13 2009-09-22 13:56:02 tcunha Exp $ */ /* * Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net> @@ -46,9 +46,9 @@ cmd_show_window_options_exec(struct cmd *self, struct cmd_ctx *ctx) struct cmd_target_data *data = self->data; struct winlink *wl; struct options *oo; + struct options_entry *o; const struct set_option_entry *entry; - char *vs; - long long vn; + const char *optval; if (data->chflags & CMD_CHFLAG('g')) oo = &global_w_options; @@ -59,46 +59,10 @@ cmd_show_window_options_exec(struct cmd *self, struct cmd_ctx *ctx) } for (entry = set_window_option_table; entry->name != NULL; entry++) { - if (options_find1(oo, entry->name) == NULL) + if ((o = options_find1(oo, entry->name)) == NULL) continue; - - switch (entry->type) { - case SET_OPTION_STRING: - vs = options_get_string(oo, entry->name); - ctx->print(ctx, "%s \"%s\"", entry->name, vs); - break; - case SET_OPTION_NUMBER: - vn = options_get_number(oo, entry->name); - ctx->print(ctx, "%s %lld", entry->name, vn); - break; - case SET_OPTION_KEY: - vn = options_get_number(oo, entry->name); - ctx->print(ctx, "%s %s", - entry->name, key_string_lookup_key(vn)); - break; - case SET_OPTION_COLOUR: - vn = options_get_number(oo, entry->name); - ctx->print(ctx, "%s %s", - entry->name, colour_tostring(vn)); - break; - case SET_OPTION_ATTRIBUTES: - vn = options_get_number(oo, entry->name); - ctx->print(ctx, "%s %s", - entry->name, attributes_tostring(vn)); - break; - case SET_OPTION_FLAG: - vn = options_get_number(oo, entry->name); - if (vn) - ctx->print(ctx, "%s on", entry->name); - else - ctx->print(ctx, "%s off", entry->name); - break; - case SET_OPTION_CHOICE: - vn = options_get_number(oo, entry->name); - ctx->print(ctx, "%s %s", - entry->name, entry->choices[vn]); - break; - } + optval = set_option_print(entry, o); + ctx->print(ctx, "%s %s", entry->name, optval); } return (0); diff --git a/options-cmd.c b/options-cmd.c index e328fea2..aba4b3c5 100644 --- a/options-cmd.c +++ b/options-cmd.c @@ -1,4 +1,4 @@ -/* $Id: options-cmd.c,v 1.5 2009-08-09 16:48:34 tcunha Exp $ */ +/* $Id: options-cmd.c,v 1.6 2009-09-22 13:56:02 tcunha Exp $ */ /* * Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net> @@ -23,6 +23,46 @@ #include "tmux.h" +const char * +set_option_print(const struct set_option_entry *entry, struct options_entry *o) +{ + static char out[BUFSIZ]; + const char *s; + + *out = '\0'; + switch (entry->type) { + case SET_OPTION_STRING: + xsnprintf(out, sizeof out, "\"%s\"", o->str); + break; + case SET_OPTION_NUMBER: + xsnprintf(out, sizeof out, "%lld", o->num); + break; + case SET_OPTION_KEY: + s = key_string_lookup_key(o->num); + xsnprintf(out, sizeof out, "%s", s); + break; + case SET_OPTION_COLOUR: + s = colour_tostring(o->num); + xsnprintf(out, sizeof out, "%s", s); + break; + case SET_OPTION_ATTRIBUTES: + s = attributes_tostring(o->num); + xsnprintf(out, sizeof out, "%s", s); + break; + case SET_OPTION_FLAG: + if (o->num) + strlcpy(out, "on", sizeof out); + else + strlcpy(out, "off", sizeof out); + break; + case SET_OPTION_CHOICE: + s = entry->choices[o->num]; + xsnprintf(out, sizeof out, "%s", s); + break; + } + return (out); +} + void set_option_string(struct cmd_ctx *ctx, struct options *oo, const struct set_option_entry *entry, char *value, int append) @@ -1,4 +1,4 @@ -/* $Id: tmux.h,v 1.447 2009-09-22 13:49:13 tcunha Exp $ */ +/* $Id: tmux.h,v 1.448 2009-09-22 13:56:02 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -1236,6 +1236,8 @@ void tty_keys_free(struct tty *); int tty_keys_next(struct tty *, int *, u_char *); /* options-cmd.c */ +const char *set_option_print( + const struct set_option_entry *, struct options_entry *); void set_option_string(struct cmd_ctx *, struct options *, const struct set_option_entry *, char *, int); void set_option_number(struct cmd_ctx *, |