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