URL:
  <http://savannah.gnu.org/bugs/?33144>

                 Summary: [PATCH] Support * as field width or precision in
printf
                 Project: GNU GRUB
            Submitted by: joshtriplett
            Submitted on: Fri 22 Apr 2011 12:52:51 AM PDT
                Category: None
                Severity: Major
                Priority: 5 - Normal
              Item Group: Feature Request
                  Status: None
                 Privacy: Public
             Assigned to: None
         Originator Name: 
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
                 Release: 
                 Release: Bazaar - trunk
         Reproducibility: None
         Planned Release: None

    _______________________________________________________

Details:

The attached patch implements support for * as the field width or precision in
printf, which obtains that field width or precision from the next va_arg. 
This proves particularly useful for modifying %s: %.*s allows printing a
non-NUL-terminated string with a known length.

Tested with the following test cases, all of which worked:


grub_printf("|%*s|\n", -50, "left-aligned in 50");
grub_printf("|%*s|\n", 50, "right-aligned in 50");
grub_printf("|%.*s|\n", 5, "truncated");
grub_printf("|%.*s|\n", -5, "truncated");
grub_printf("|%*.*s|\n", 20, 5, "truncated");
grub_printf("|%*.*s|\n", -20, 5, "truncated");
grub_printf("|%50s|\n", "hardcoded 50");
grub_printf("|%-50s|\n", "hardcoded -50");
grub_printf("|%.5s|\n", "truncated");


ChangeLog entry:

2011-04-21  Josh Triplett  <j...@joshtriplett.org>
2011-04-21  Burt Triplett  <b...@pbjtriplett.org>

        * grub-core/kern/misc.c (grub_vsnprintf_real): Add support for '*'
        as field width or precision.




    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Fri 22 Apr 2011 12:52:51 AM PDT  Name: grub-printf-star.patch  Size: 2kB
  By: joshtriplett

<http://savannah.gnu.org/bugs/download.php?file_id=23288>

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?33144>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/


_______________________________________________
Bug-grub mailing list
Bug-grub@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-grub

Reply via email to