xref: /Universal-ctags/main/param.c (revision 99ac24f8a0b72436d1659a49f6b193f7bda5c01f)
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