13671b1d2SMasatake YAMATO /*
23671b1d2SMasatake YAMATO *
33671b1d2SMasatake YAMATO * Copyright (c) 2016, Red Hat, Inc.
43671b1d2SMasatake YAMATO * Copyright (c) 2016, Masatake YAMATO
53671b1d2SMasatake YAMATO *
63671b1d2SMasatake YAMATO * Author: Masatake YAMATO <yamato@redhat.com>
73671b1d2SMasatake YAMATO *
83671b1d2SMasatake YAMATO * This source code is released for free distribution under the terms of the
93671b1d2SMasatake YAMATO * GNU General Public License version 2 or (at your option) any later version.
103671b1d2SMasatake YAMATO *
113671b1d2SMasatake YAMATO */
123671b1d2SMasatake YAMATO
133671b1d2SMasatake YAMATO #include "general.h"
143671b1d2SMasatake YAMATO #include "param.h"
15*99ac24f8SMasatake YAMATO #include "param_p.h"
1621996d92SMasatake YAMATO #include "parse.h"
173671b1d2SMasatake YAMATO
18813a10c0SMasatake YAMATO #include <string.h>
193671b1d2SMasatake YAMATO
203671b1d2SMasatake YAMATO
paramColprintTableNew(void)21813a10c0SMasatake YAMATO extern struct colprintTable * paramColprintTableNew (void)
223671b1d2SMasatake YAMATO {
23813a10c0SMasatake YAMATO return colprintTableNew ("L:LANGUAGE", "L:NAME","L:DESCRIPTION", NULL);
243671b1d2SMasatake YAMATO }
253671b1d2SMasatake YAMATO
paramColprintAddParameter(struct colprintTable * table,langType language,const parameterHandlerTable * const paramHandler)26813a10c0SMasatake YAMATO extern void paramColprintAddParameter (struct colprintTable *table,
27813a10c0SMasatake YAMATO langType language,
28813a10c0SMasatake YAMATO const parameterHandlerTable *const paramHandler)
293671b1d2SMasatake YAMATO {
30813a10c0SMasatake YAMATO struct colprintLine *line = colprintTableGetNewLine(table);
313671b1d2SMasatake YAMATO
32813a10c0SMasatake YAMATO colprintLineAppendColumnCString (line, getLanguageName (language));
33813a10c0SMasatake YAMATO colprintLineAppendColumnCString (line, paramHandler->name);
34813a10c0SMasatake YAMATO colprintLineAppendColumnCString (line, paramHandler->desc);
35813a10c0SMasatake YAMATO }
363671b1d2SMasatake YAMATO
paramColprintCompareLines(struct colprintLine * a,struct colprintLine * b)37813a10c0SMasatake YAMATO static int paramColprintCompareLines (struct colprintLine *a , struct colprintLine *b)
38813a10c0SMasatake YAMATO {
39813a10c0SMasatake YAMATO const char *a_parser = colprintLineGetColumn (a, 0);
40813a10c0SMasatake YAMATO const char *b_parser = colprintLineGetColumn (b, 0);
41813a10c0SMasatake YAMATO
42813a10c0SMasatake YAMATO int r;
43813a10c0SMasatake YAMATO r = strcmp (a_parser, b_parser);
44813a10c0SMasatake YAMATO if (r != 0)
45813a10c0SMasatake YAMATO return r;
46813a10c0SMasatake YAMATO
47813a10c0SMasatake YAMATO const char *a_name = colprintLineGetColumn (a, 1);
48813a10c0SMasatake YAMATO const char *b_name = colprintLineGetColumn (b, 1);
49813a10c0SMasatake YAMATO
50813a10c0SMasatake YAMATO return strcmp(a_name, b_name);
51813a10c0SMasatake YAMATO }
52813a10c0SMasatake YAMATO
paramColprintTablePrint(struct colprintTable * table,bool noparser,bool withListHeader,bool machinable,FILE * fp)53813a10c0SMasatake YAMATO extern void paramColprintTablePrint (struct colprintTable *table, bool noparser,
54813a10c0SMasatake YAMATO bool withListHeader, bool machinable, FILE *fp)
55813a10c0SMasatake YAMATO {
56813a10c0SMasatake YAMATO colprintTableSort (table, paramColprintCompareLines);
57813a10c0SMasatake YAMATO colprintTablePrint (table, noparser? 1: 0, withListHeader, machinable, fp);
583671b1d2SMasatake YAMATO }
59