version 1.11, 2009/12/03 22:50:10 |
version 1.12, 2010/12/30 23:16:18 |
|
|
|
|
self->data = data = xmalloc(sizeof *data); |
self->data = data = xmalloc(sizeof *data); |
data->chflags = 0; |
data->chflags = 0; |
data->target = NULL; |
|
data->buffer = -1; |
data->buffer = -1; |
data->arg = NULL; |
data->arg = NULL; |
data->arg2 = NULL; |
data->arg2 = NULL; |
|
|
cmd_buffer_init(self, 0); |
cmd_buffer_init(self, 0); |
data = self->data; |
data = self->data; |
|
|
while ((opt = cmd_getopt(argc, argv, "b:t:", entry->chflags)) != -1) { |
while ((opt = cmd_getopt(argc, argv, "b:", entry->chflags)) != -1) { |
if (cmd_parse_flags(opt, entry->chflags, &data->chflags) == 0) |
if (cmd_parse_flags(opt, entry->chflags, &data->chflags) == 0) |
continue; |
continue; |
switch (opt) { |
switch (opt) { |
|
|
data->buffer = n; |
data->buffer = n; |
} |
} |
break; |
break; |
case 't': |
|
if (data->target == NULL) |
|
data->target = xstrdup(optarg); |
|
break; |
|
default: |
default: |
goto usage; |
goto usage; |
} |
} |
|
|
{ |
{ |
struct cmd_buffer_data *data = self->data; |
struct cmd_buffer_data *data = self->data; |
|
|
if (data->target != NULL) |
|
xfree(data->target); |
|
if (data->arg != NULL) |
if (data->arg != NULL) |
xfree(data->arg); |
xfree(data->arg); |
if (data->arg2 != NULL) |
if (data->arg2 != NULL) |
|
|
off += cmd_print_flags(buf, len, off, data->chflags); |
off += cmd_print_flags(buf, len, off, data->chflags); |
if (off < len && data->buffer != -1) |
if (off < len && data->buffer != -1) |
off += xsnprintf(buf + off, len - off, " -b %d", data->buffer); |
off += xsnprintf(buf + off, len - off, " -b %d", data->buffer); |
if (off < len && data->target != NULL) |
|
off += cmd_prarg(buf + off, len - off, " -t ", data->target); |
|
if (off < len && data->arg != NULL) |
if (off < len && data->arg != NULL) |
off += cmd_prarg(buf + off, len - off, " ", data->arg); |
off += cmd_prarg(buf + off, len - off, " ", data->arg); |
if (off < len && data->arg2 != NULL) |
if (off < len && data->arg2 != NULL) |