PR22397, BFD internal error when message locale isn't C
authorAlan Modra <amodra@gmail.com>
Sun, 5 Nov 2017 05:52:55 +0000 (16:22 +1030)
committerAlan Modra <amodra@gmail.com>
Sun, 5 Nov 2017 08:23:10 +0000 (18:53 +1030)
commit7167fe4c70ea74f1bb74a6130bb7e6bf5ca354ee
treed18b949e287e1c81530541f17e9a98ef0131d54c
parent0724bd460babc0c3c31aa67b5f8385a4cb5279f9
PR22397, BFD internal error when message locale isn't C

This adds positional parameter support to the bfd error handler,
something that was lost 2017-04-13 when _doprnt was added with commit
c08bb8dd.  The number of format args is now limited to 9, which is
sufficient for current _bfd_error_handler messages.  If someone
exceeds 9 args they get the joy of modifying this code to support more
args (shouldn't be too difficult).

PR 22397
* bfd.c (union _bfd_doprnt_args): New.
(PRINT_TYPE): Add FIELD arg.  Take value from args.
(_bfd_doprnt): Replace ap parameter with args.  Adjust all
PRINT_TYPE invocations and reading of format args to suit.
Move "%%" handling out of switch handling args.  Support
positional parameters.
(_bfd_doprnt_scan): New function.
(error_handler_internal): Call _bfd_doprnt_scan and read args.
bfd/ChangeLog
bfd/bfd.c