Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 279536 | Differences between
and this patch

Collapse All | Expand All

(-)grub-0.97.orig/stage2/char_io.c (-12 / +14 lines)
Lines 20-25 Link Here
20
20
21
#include <shared.h>
21
#include <shared.h>
22
#include <term.h>
22
#include <term.h>
23
#include <stdarg.h>
23
24
24
#ifdef SUPPORT_HERCULES
25
#ifdef SUPPORT_HERCULES
25
# include <hercules.h>
26
# include <hercules.h>
Lines 178-187 Link Here
178
void
179
void
179
grub_printf (const char *format,...)
180
grub_printf (const char *format,...)
180
{
181
{
181
  int *dataptr = (int *) &format;
182
  va_list ap ;
183
  va_start(ap, format);
184
182
  char c, str[16];
185
  char c, str[16];
183
  
186
  
184
  dataptr++;
185
187
186
  while ((c = *(format++)) != 0)
188
  while ((c = *(format++)) != 0)
187
    {
189
    {
Lines 196-212 Link Here
196
	  case 'X':
198
	  case 'X':
197
#endif
199
#endif
198
	  case 'u':
200
	  case 'u':
199
	    *convert_to_ascii (str, c, *((unsigned long *) dataptr++)) = 0;
201
	    *convert_to_ascii (str, c, va_arg(ap,unsigned long)) = 0;
200
	    grub_putstr (str);
202
	    grub_putstr (str);
201
	    break;
203
	    break;
202
204
203
#ifndef STAGE1_5
205
#ifndef STAGE1_5
204
	  case 'c':
206
	  case 'c':
205
	    grub_putchar ((*(dataptr++)) & 0xff);
207
	    grub_putchar (va_arg(ap,char) & 0xff);
206
	    break;
208
	    break;
207
209
208
	  case 's':
210
	  case 's':
209
	    grub_putstr ((char *) *(dataptr++));
211
	    grub_putstr (va_arg(ap,char *));
210
	    break;
212
	    break;
211
#endif
213
#endif
212
	  }
214
	  }
Lines 219-230 Link Here
219
{
221
{
220
  /* XXX hohmuth
222
  /* XXX hohmuth
221
     ugly hack -- should unify with printf() */
223
     ugly hack -- should unify with printf() */
222
  int *dataptr = (int *) &format;
224
  va_list ap ;
225
  va_start(ap, format);
226
223
  char c, *ptr, str[16];
227
  char c, *ptr, str[16];
224
  char *bp = buffer;
228
  char *bp = buffer;
225
229
226
  dataptr++;
227
228
  while ((c = *format++) != 0)
230
  while ((c = *format++) != 0)
229
    {
231
    {
230
      if (c != '%')
232
      if (c != '%')
Lines 233-239 Link Here
233
	switch (c = *(format++))
235
	switch (c = *(format++))
234
	  {
236
	  {
235
	  case 'd': case 'u': case 'x':
237
	  case 'd': case 'u': case 'x':
236
	    *convert_to_ascii (str, c, *((unsigned long *) dataptr++)) = 0;
238
	    *convert_to_ascii (str, c, va_arg(ap,unsigned long)) = 0;
237
239
238
	    ptr = str;
240
	    ptr = str;
239
241
Lines 241-252 Link Here
241
	      *bp++ = *(ptr++); /* putchar(*(ptr++)); */
243
	      *bp++ = *(ptr++); /* putchar(*(ptr++)); */
242
	    break;
244
	    break;
243
245
244
	  case 'c': *bp++ = (*(dataptr++))&0xff;
246
	  case 'c': *bp++ = va_arg(ap,char) & 0xff;
245
	    /* putchar((*(dataptr++))&0xff); */
247
	    /* putchar (va_arg(ap,char) & 0xff); */
246
	    break;
248
	    break;
247
249
248
	  case 's':
250
	  case 's':
249
	    ptr = (char *) (*(dataptr++));
251
	    ptr = va_arg(ap,char *);
250
252
251
	    while ((c = *ptr++) != 0)
253
	    while ((c = *ptr++) != 0)
252
	      *bp++ = c; /* putchar(c); */
254
	      *bp++ = c; /* putchar(c); */

Return to bug 279536