summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2012-12-21 16:46:53 -0500
committerBehdad Esfahbod <behdad@behdad.org>2012-12-21 16:46:53 -0500
commit9815a88111072aa51e78e258c5f660993b47d4df (patch)
tree8e3a07868cf13e4c154864a8bdb3b8af470a5449 /util
parentf95a87b7b813f588c7910ad4785ee68bb452e864 (diff)
[util] List supported output formats in --help output
Diffstat (limited to 'util')
-rw-r--r--util/hb-shape.cc6
-rw-r--r--util/helper-cairo.cc2
-rw-r--r--util/helper-cairo.hh1
-rw-r--r--util/options.cc9
-rw-r--r--util/options.hh5
-rw-r--r--util/view-cairo.hh2
6 files changed, 18 insertions, 7 deletions
diff --git a/util/hb-shape.cc b/util/hb-shape.cc
index adbb0344..df8524f5 100644
--- a/util/hb-shape.cc
+++ b/util/hb-shape.cc
@@ -31,7 +31,8 @@
struct output_buffer_t
{
output_buffer_t (option_parser_t *parser)
- : options (parser),
+ : options (parser,
+ g_strjoinv (" / ", (gchar**) hb_buffer_serialize_list_formats ())),
format (parser) {}
void init (const font_options_t *font_opts)
@@ -49,8 +50,7 @@ struct output_buffer_t
{
if (options.explicit_output_format)
fail (false, "Unknown output format `%s'; supported formats are: %s",
- options.output_format,
- g_strjoinv (" / ", (gchar**) hb_buffer_serialize_list_formats ()));
+ options.output_format, options.supported_formats);
else
/* Just default to TEXT if not explicitly requested and the
* file extension is not recognized. */
diff --git a/util/helper-cairo.cc b/util/helper-cairo.cc
index ee64b006..bc44e8e8 100644
--- a/util/helper-cairo.cc
+++ b/util/helper-cairo.cc
@@ -246,7 +246,7 @@ stdio_write_func (void *closure,
return CAIRO_STATUS_SUCCESS;
}
-static const char helper_cairo_supported_formats[] =
+const char helper_cairo_supported_formats[] =
"ansi"
#ifdef CAIRO_HAS_PNG_FUNCTIONS
"/png"
diff --git a/util/helper-cairo.hh b/util/helper-cairo.hh
index 2f2c9d4e..b2ac9e41 100644
--- a/util/helper-cairo.hh
+++ b/util/helper-cairo.hh
@@ -36,6 +36,7 @@ cairo_scaled_font_t *
helper_cairo_create_scaled_font (const font_options_t *font_opts,
double font_size);
+extern const char helper_cairo_supported_formats[];
cairo_t *
helper_cairo_create_context (double w, double h,
diff --git a/util/options.cc b/util/options.cc
index 6246654a..17ad8e60 100644
--- a/util/options.cc
+++ b/util/options.cc
@@ -367,10 +367,17 @@ text_options_t::add_options (option_parser_t *parser)
void
output_options_t::add_options (option_parser_t *parser)
{
+ const char *text;
+
+ if (NULL == supported_formats)
+ text = "Set output format";
+ else
+ text = g_strdup_printf ("Set output format\n\n Supported formats are: %s", supported_formats);
+
GOptionEntry entries[] =
{
{"output-file", 0, 0, G_OPTION_ARG_STRING, &this->output_file, "Set output file-name (default: stdout)","filename"},
- {"output-format", 0, 0, G_OPTION_ARG_STRING, &this->output_format, "Set output format", "format"},
+ {"output-format", 0, 0, G_OPTION_ARG_STRING, &this->output_format, text, "format"},
{NULL}
};
parser->add_group (entries,
diff --git a/util/options.hh b/util/options.hh
index c664731b..02af7583 100644
--- a/util/options.hh
+++ b/util/options.hh
@@ -310,9 +310,11 @@ struct text_options_t : option_group_t
struct output_options_t : option_group_t
{
- output_options_t (option_parser_t *parser) {
+ output_options_t (option_parser_t *parser,
+ const char *supported_formats_ = NULL) {
output_file = NULL;
output_format = NULL;
+ supported_formats = supported_formats_;
explicit_output_format = false;
fp = NULL;
@@ -345,6 +347,7 @@ struct output_options_t : option_group_t
const char *output_file;
const char *output_format;
+ const char *supported_formats;
bool explicit_output_format;
mutable FILE *fp;
diff --git a/util/view-cairo.hh b/util/view-cairo.hh
index c6219849..f2734647 100644
--- a/util/view-cairo.hh
+++ b/util/view-cairo.hh
@@ -33,7 +33,7 @@
struct view_cairo_t {
view_cairo_t (option_parser_t *parser)
- : output_options (parser),
+ : output_options (parser, helper_cairo_supported_formats),
view_options (parser) {}
~view_cairo_t (void) {
if (debug)