Having fixed flags for single-character getopt options is a bit hard to

maintain and is only going to get worse as more are used. So instead, add a new
uint64_t member to cmd_entry which is a bitmask of upper and lowercase options
accepted by the command.

This means new single character options can be used without the need to add it
explicitly to the list.
This commit is contained in:
Nicholas Marriott
2009-07-14 06:43:33 +00:00
parent 5ccd0025a0
commit 097b96ea44
73 changed files with 269 additions and 307 deletions

View File

@ -1,4 +1,4 @@
/* $Id: cmd-paste-buffer.c,v 1.17 2009-07-12 17:11:39 nicm Exp $ */
/* $Id: cmd-paste-buffer.c,v 1.18 2009-07-14 06:43:32 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -32,7 +32,7 @@ void cmd_paste_buffer_lf2cr(struct buffer *, const char *, size_t);
const struct cmd_entry cmd_paste_buffer_entry = {
"paste-buffer", "pasteb",
"[-dr] " CMD_BUFFER_WINDOW_USAGE,
CMD_DFLAG|CMD_RFLAG,
0, CMD_CHFLAG('d')|CMD_CHFLAG('r'),
cmd_buffer_init,
cmd_buffer_parse,
cmd_paste_buffer_exec,
@ -66,7 +66,7 @@ cmd_paste_buffer_exec(struct cmd *self, struct cmd_ctx *ctx)
if (pb != NULL && *pb->data != '\0') {
/* -r means raw data without LF->CR conversion. */
if (data->flags & CMD_RFLAG) {
if (data->chflags & CMD_CHFLAG('r')) {
buffer_write(
w->active->out, pb->data, strlen(pb->data));
} else {
@ -76,7 +76,7 @@ cmd_paste_buffer_exec(struct cmd *self, struct cmd_ctx *ctx)
}
/* Delete the buffer if -d. */
if (data->flags & CMD_DFLAG) {
if (data->chflags & CMD_CHFLAG('d')) {
if (data->buffer == -1)
paste_free_top(&s->buffers);
else