scan with %p didn't work properly on 2-4 machines
This commit is contained in:
parent
7987a1fed8
commit
51467658c6
1 changed files with 12 additions and 1 deletions
|
@ -9,6 +9,15 @@
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include "loc_incl.h"
|
#include "loc_incl.h"
|
||||||
|
|
||||||
|
#if _EM_WSIZE == _EM_PSIZE
|
||||||
|
#define set_pointer(flags) /* nothing */
|
||||||
|
#elif _EM_LSIZE == _EM_PSIZE
|
||||||
|
#define set_pointer(flags) (flags |= FL_LONG)
|
||||||
|
#else
|
||||||
|
#error garbage pointer size
|
||||||
|
#define set_pointer(flags) /* compilation might continue */
|
||||||
|
#endif
|
||||||
|
|
||||||
#define NUMLEN 512
|
#define NUMLEN 512
|
||||||
#define NR_CHARS 256
|
#define NR_CHARS 256
|
||||||
|
|
||||||
|
@ -251,11 +260,13 @@ _doscan(register FILE *stream, const char *format, va_list ap)
|
||||||
*va_arg(ap, int *) = (int) nrchars;
|
*va_arg(ap, int *) = (int) nrchars;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'p': /* pointer */
|
||||||
|
set_pointer(flags);
|
||||||
|
/* fallthrough */
|
||||||
case 'b': /* binary */
|
case 'b': /* binary */
|
||||||
case 'd': /* decimal */
|
case 'd': /* decimal */
|
||||||
case 'i': /* general integer */
|
case 'i': /* general integer */
|
||||||
case 'o': /* octal */
|
case 'o': /* octal */
|
||||||
case 'p': /* pointer */
|
|
||||||
case 'u': /* unsigned */
|
case 'u': /* unsigned */
|
||||||
case 'x': /* hexadecimal */
|
case 'x': /* hexadecimal */
|
||||||
case 'X': /* ditto */
|
case 'X': /* ditto */
|
||||||
|
|
Loading…
Reference in a new issue