1 /* demanguse.c -- libiberty demangler usage
2 Copyright (C) 2021-2022 Free Software Foundation, Inc.
4 This file is part of GNU Binutils.
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.
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.
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
24 #include "demanguse.h"
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. */
31 display_demangler_styles (FILE *stream
, const char *msg
)
33 const struct demangler_engine
*info
= libiberty_demanglers
;
36 const char *cont
= "";
38 while (msg
[lead_spaces
] == ' ')
40 col
= fprintf (stream
, "%s", msg
);
41 while (info
->demangling_style_name
)
43 if (col
+ strlen (info
->demangling_style_name
) >= 75)
45 fprintf (stream
, "%.1s\n", cont
);
46 col
= fprintf (stream
, "%.*s", lead_spaces
, msg
);
49 col
+= fprintf (stream
, "%s\"%s\"", cont
, info
->demangling_style_name
);
53 fprintf (stream
, "\n");