X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=ggo.c;h=81ab464491070f8b43fb7cfb018eef8e40a75495;hp=7f8eb760b49d0d72d01f284d852dc419c4c042ca;hb=5ff39998bf0ce71bd8fc8d0f002ceb81b711992f;hpb=b59a3c4131a7cd0da2a4364f6bf29b005400f77b;ds=sidebyside diff --git a/ggo.c b/ggo.c index 7f8eb760..81ab4644 100644 --- a/ggo.c +++ b/ggo.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2013 Andre Noll + * Copyright (C) 2008 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -9,11 +9,15 @@ #include "para.h" #include "ggo.h" +#include "version.h" /** * Wrapper for printf() that exits on errors. * * \param fmt Usual format string. + * + * \return The return value of the underlying (successful) call to vprintf(3), + * i.e. the number of characters printed, excluding the terminating null byte. */ __printf_1_2 int printf_or_die(const char *fmt, ...) { @@ -32,21 +36,25 @@ __printf_1_2 int printf_or_die(const char *fmt, ...) * Print one of the two given help texts. * * \param help contains the help texts. - * \param detailed_help Whether to print the detailed help text. + * \param flags What to print, see \ref ggo_print_help_flags. */ -void ggo_print_help(struct ggo_help *help, int detailed_help) +void ggo_print_help(struct ggo_help *help, unsigned flags) { const char **p; - if (!help) - return; - if (detailed_help) + if (help->purpose && (flags & GPH_PRINT_NAME_PURPOSE)) + printf_or_die("para_%s - %s\n", help->prefix, help->purpose); + if (help->usage && (flags & GPH_PRINT_USAGE)) + printf_or_die("\n%s\n", help->usage); + if (help->description && (flags & GPH_PRINT_DESCRIPTION)) + printf_or_die("\n%s\n", help->description); + printf_or_die("\n"); + if (flags & GPH_DETAILED) p = help->detailed_help; else p = help->short_help; if (!p) return; - p += 3; /* skip -h and -V */ for (; *p; p++) - printf_or_die("\t%s\n", *p); + printf_or_die("%s\n", *p); }