Hi

I have completed the copyright assignment procedure. Just a reminder.

Thanks
Deepak

On Fri, Aug 22, 2008 at 5:56 PM, Deepak Vankadaru <
deepak.vankad...@gmail.com> wrote:

> Hi,
>
> Does this patch look okay? Or do I need to give any more information?
>
> By the way, this is my first patch submission to GNU :)
>
> Thanks
> Deepak
>
>
> On Mon, Aug 18, 2008 at 10:52 AM, Deepak Vankadaru <
> deepak.vankad...@gmail.com> wrote:
>
>> Attached the same in unified diff format.
>>
>> This is listed in known bugs (http://grub.enbug.org/KnownBugs)
>>
>>
>> On Sun, Aug 17, 2008 at 11:28 PM, Deepak Vankadaru <
>> deepak.vankad...@gmail.com> wrote:
>>
>>> Hi
>>>
>>> I have implemented precision formatting support in grub_printf. Following
>>> is the diff (of kern/misc.c)
>>>
>>> Thanks
>>> Deepak
>>>
>>> ###############start of diff
>>> *** kern/misc.c    2008-08-18 04:46:36.000000000 +0530
>>> --- /home/deepakv/orig/grub2-1.96+20080724/kern/misc.c    2008-06-16
>>> 06:12:48.000000000 +0530
>>> ***************
>>> *** 565,572 ****
>>>         *p++ = (d > 9) ? d + 'a' - 10 : d + '0';
>>>       }
>>>     while (n /= base);
>>> -   if ( p == str)
>>> -     *p++ = '0';
>>>     *p = 0;
>>>
>>>     grub_reverse (str);
>>> --- 565,570 ----
>>> ***************
>>> *** 682,693 ****
>>>       write_char (*s++);
>>>       }
>>>
>>> -   void write_str_limit (const char *s, int count)
>>> -     {
>>> -       while (*s && count--)
>>> -     write_char (*s++);
>>> -     }
>>> -
>>>     void write_fill (const char ch, int n)
>>>       {
>>>         int i;
>>> --- 680,685 ----
>>> ***************
>>> *** 704,711 ****
>>>         char tmp[32];
>>>         char *p;
>>>         unsigned int format1 = 0;
>>> !       unsigned int format2 = 1;
>>> !       grub_bool_t format2_default = TRUE;
>>>         char zerofill = ' ';
>>>         int rightfill = 0;
>>>         int n;
>>> --- 696,702 ----
>>>         char tmp[32];
>>>         char *p;
>>>         unsigned int format1 = 0;
>>> !       unsigned int format2 = 3;
>>>         char zerofill = ' ';
>>>         int rightfill = 0;
>>>         int n;
>>> ***************
>>> *** 723,737 ****
>>>         while (*p && grub_isdigit (*p))
>>>           p++;
>>>
>>> !       if (p > fmt || *p == '.')
>>>           {
>>>             char s[p - fmt + 1];
>>>             grub_strncpy (s, fmt, p - fmt);
>>>             s[p - fmt] = 0;
>>>             if (s[0] == '0')
>>>           zerofill = '0';
>>> !           if (p - fmt)
>>> !             format1 = grub_strtoul (s, 0, 10);
>>>             fmt = p;
>>>             if (*p && *p == '.')
>>>           {
>>> --- 714,727 ----
>>>         while (*p && grub_isdigit (*p))
>>>           p++;
>>>
>>> !       if (p > fmt)
>>>           {
>>>             char s[p - fmt + 1];
>>>             grub_strncpy (s, fmt, p - fmt);
>>>             s[p - fmt] = 0;
>>>             if (s[0] == '0')
>>>           zerofill = '0';
>>> !           format1 = grub_strtoul (s, 0, 10);
>>>             fmt = p;
>>>             if (*p && *p == '.')
>>>           {
>>> ***************
>>> *** 747,755 ****
>>>                 format2 = grub_strtoul (fstr, 0, 10);
>>>                 fmt = p;
>>>               }
>>> -           else
>>> -             format2 = 0;
>>> -           format2_default = FALSE;
>>>           }
>>>           }
>>>
>>> --- 737,742 ----
>>> ***************
>>> *** 790,806 ****
>>>               n = va_arg (args, int);
>>>             grub_itoa (tmp, c, n);
>>>           }
>>> !           if ( format2 == 0 && grub_strcmp (tmp, "0") == 0)
>>> !         break;
>>> !           if ( grub_strlen (tmp) > format2)
>>> !             format2 = grub_strlen (tmp);
>>> !           if (! rightfill && format2 < format1)
>>> !         write_fill (zerofill, format1 - format2);
>>> !           if ( grub_strlen (tmp) < format2)
>>> !         write_fill ('0', format2 - grub_strlen (tmp));
>>>             write_str (tmp);
>>> !           if (rightfill && format2 < format1)
>>> !         write_fill (zerofill, format1 - format2);
>>>             break;
>>>
>>>           case 'c':
>>> --- 777,787 ----
>>>               n = va_arg (args, int);
>>>             grub_itoa (tmp, c, n);
>>>           }
>>> !           if (! rightfill && grub_strlen (tmp) < format1)
>>> !         write_fill (zerofill, format1 - grub_strlen (tmp));
>>>             write_str (tmp);
>>> !           if (rightfill && grub_strlen (tmp) < format1)
>>> !         write_fill (zerofill, format1 - grub_strlen (tmp));
>>>             break;
>>>
>>>           case 'c':
>>> ***************
>>> *** 862,895 ****
>>>             p = va_arg (args, char *);
>>>             if (p)
>>>           {
>>> !           if ( format2_default )
>>> !             {
>>> !               if (!rightfill && grub_strlen (p) < format1)
>>> !                 write_fill (' ', format1 - grub_strlen (p));
>>>
>>> !               write_str (p);
>>>
>>> !               if (rightfill && grub_strlen (p) < format1)
>>> !                 write_fill (' ', format1 - grub_strlen (p));
>>> !             }
>>> !             else
>>> !             {
>>> !               if (!rightfill && format2 < format1)
>>> !                 write_fill (' ', format1 - format2);
>>> !
>>> !               if ( grub_strlen (p) < format2)
>>> !                 {
>>> !                   if ( format2 <= format1)
>>> !                     write_fill (' ', format2 - grub_strlen (p));
>>> !                   else
>>> !                     write_fill (' ', format1 - grub_strlen (p));
>>> !                 }
>>> !
>>> !               write_str_limit (p, format2);
>>> !
>>> !               if (rightfill && format2 < format1)
>>> !                 write_fill (' ', format1 - format2);
>>> !             }
>>>           }
>>>             else
>>>           write_str ("(null)");
>>> --- 843,855 ----
>>>             p = va_arg (args, char *);
>>>             if (p)
>>>           {
>>> !           if (!rightfill && grub_strlen (p) < format1)
>>> !             write_fill (zerofill, format1 - grub_strlen (p));
>>>
>>> !           write_str (p);
>>>
>>> !           if (rightfill && grub_strlen (p) < format1)
>>> !             write_fill (zerofill, format1 - grub_strlen (p));
>>>           }
>>>             else
>>>           write_str ("(null)");
>>>
>>> ###############end of diff
>>>
>>> ######start of test case
>>> int main()
>>> {
>>>     typedef int (*printf_ptr)(char const *str, ...);
>>>     printf_ptr p;
>>>     if(getenv("GRUB_PRINTF"))
>>>     {
>>>         printf("using grub_printf\n");
>>>         p = grub_printf;
>>>     }
>>>     else
>>>     {
>>>         printf("using printf\n");
>>>         p = printf;
>>>     }
>>>     p("##%4.2d##\n",1);
>>>     p("##%4.2d##\n",12);
>>>     p("##%4.2d##\n",123);
>>>     p("##%4.2d##\n",1234);
>>>     p("##%4.2d##\n",12345);
>>>     p("##%3.3d##\n",12);
>>>     p("##%3.3d##\n",123);
>>>     p("##%3.3d##\n",1234);
>>>     p("##%2.4d##\n",12345);
>>>     p("##%2.4d##\n",1234);
>>>     p("##%2.4d##\n",123);
>>>     p("##%2.4d##\n",12);
>>>     p("##%2.4d##\n",1);
>>>     p("##%.0d##\n",0);
>>>     p("##%.0d##\n",1);
>>>     p("##%4.2s##\n","1");
>>>     p("##%4.2s##\n","12");
>>>     p("##%4.2s##\n","123");
>>>     p("##%4.2s##\n","1234");
>>>     p("##%4.2s##\n","12345");
>>>     p("##%3.3s##\n","12");
>>>     p("##%3.3s##\n","123");
>>>     p("##%3.3s##\n","1234");
>>>     p("##%2.4s##\n","12345");
>>>     p("##%2.4s##\n","1234");
>>>     p("##%2.4s##\n","123");
>>>     p("##%2.4s##\n","12");
>>>     p("##%2.4s##\n","1");
>>>     return 0;
>>> }
>>>
>>
>>
>
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to