]> Git Repo - binutils.git/blob - binutils/demanguse.c
Automatic date update in version.in
[binutils.git] / binutils / demanguse.c
1 /* demanguse.c -- libiberty demangler usage
2    Copyright (C) 2021-2022 Free Software Foundation, Inc.
3
4    This file is part of GNU Binutils.
5
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 3 of the License, or
9    (at your option) any later version.
10
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with this program; if not, write to the Free Software
18    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
19    02110-1301, USA.  */
20
21 #include <stdio.h>
22 #include <string.h>
23 #include "demangle.h"
24 #include "demanguse.h"
25
26 /* Print the list of demangling styles to STREAM.  A one line MSG is
27    printed before the styles.  Output is limited to 80 columns, with
28    continuation lines being indented by leading spaces in MSG.  */
29
30 void
31 display_demangler_styles (FILE *stream, const char *msg)
32 {
33   const struct demangler_engine *info = libiberty_demanglers;
34   int col;
35   int lead_spaces = 0;
36   const char *cont = "";
37
38   while (msg[lead_spaces] == ' ')
39     ++lead_spaces;
40   col = fprintf (stream, "%s", msg);
41   while (info->demangling_style_name)
42     {
43       if (col + strlen (info->demangling_style_name) >= 75)
44         {
45           fprintf (stream, "%.1s\n", cont);
46           col = fprintf (stream, "%.*s", lead_spaces, msg);
47           cont = "";
48         }
49       col += fprintf (stream, "%s\"%s\"", cont, info->demangling_style_name);
50       cont = ", ";
51       ++info;
52     }
53   fprintf (stream, "\n");
54 }
This page took 0.026374 seconds and 4 git commands to generate.