summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/renderdemo.c49
1 files changed, 36 insertions, 13 deletions
diff --git a/examples/renderdemo.c b/examples/renderdemo.c
index 42bde875..76cea9a8 100644
--- a/examples/renderdemo.c
+++ b/examples/renderdemo.c
@@ -27,6 +27,7 @@
#include <string.h>
#include <glib.h>
+#include <glib/gprintf.h>
#include <pango/pango.h>
#include "renderdemo.h"
@@ -366,8 +367,11 @@ parse_ellipsis (const char *name,
opt_ellipsize = value->value;
else
{
- fail ("--ellipsize option must be one of none/start/middle/end");
- ret = FALSE;
+ g_set_error(error,
+ G_OPTION_ERROR,
+ G_OPTION_ERROR_BAD_VALUE,
+ "Argument for --ellipsize must be one of none/start/middle/end");
+ ret = FALSE;
}
return ret;
@@ -393,10 +397,13 @@ parse_hinting (const char *name,
opt_hinting = HINT_FULL;
else
{
- fail ("--hinting option must be one of none/auto/full");
+ g_set_error(error,
+ G_OPTION_ERROR,
+ G_OPTION_ERROR_BAD_VALUE,
+ "Argument for --hinting must be one of none/auto/full");
ret = FALSE;
}
-
+
return ret;
}
@@ -421,7 +428,10 @@ parse_wrap (const char *name,
}
else
{
- fail ("--wrap option must be one of word/char/word-char");
+ g_set_error(error,
+ G_OPTION_ERROR,
+ G_OPTION_ERROR_BAD_VALUE,
+ "Argument for --wrap must be one of word/char/word-char");
ret = FALSE;
}
@@ -496,7 +506,11 @@ parse_backend (const char *name,
{
gchar *backends = backends_to_string ();
- fail ("available --backend options are: %s", backends);
+ g_set_error(error,
+ G_OPTION_ERROR,
+ G_OPTION_ERROR_BAD_VALUE,
+ "Available --backend options are: %s",
+ backends);
g_free(backends);
ret = FALSE;
}
@@ -505,6 +519,17 @@ parse_backend (const char *name,
}
+static gboolean
+show_version(const char *name,
+ const char *arg,
+ gpointer data,
+ GError **error)
+{
+ g_printf("%s (%s) %s\n", prog_name, PACKAGE_NAME, PACKAGE_VERSION);
+ g_printf("module interface version: %s\n", MODULE_VERSION);
+ exit(0);
+}
+
void
parse_options (int argc, char *argv[])
{
@@ -547,6 +572,8 @@ parse_options (int argc, char *argv[])
"Run Pango layout engine this many times", "integer"},
{"text", 't', 0, G_OPTION_ARG_STRING, &opt_text,
"Text to display (instead of a file)", "string"},
+ {"version", 0, G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, &show_version,
+ "Show version numbers", NULL},
{"waterfall", 0, 0, G_OPTION_ARG_NONE, &opt_waterfall,
"Create a waterfall display", NULL},
{"width", 'w', 0, G_OPTION_ARG_INT, &opt_width,
@@ -567,13 +594,9 @@ parse_options (int argc, char *argv[])
if (!g_option_context_parse (context, &argc, &argv, &parse_error))
{
if (parse_error != NULL)
- {
- fail("Parse option error : %s\n", parse_error->message);
- }
+ fail("%s", parse_error->message);
else
- {
- fail("Parse option error\n");
- }
+ fail("Option parse error");
exit(1);
}
g_option_context_free(context);
@@ -615,7 +638,7 @@ parse_options (int argc, char *argv[])
if (!g_file_get_contents (argv[1], &text, &len, &error))
fail ("%s\n", error->message);
if (!g_utf8_validate (text, len, NULL))
- fail ("Text is not valid UTF-8");
+ fail ("Input text is not valid UTF-8");
}
/* Strip trailing whitespace