#endif /* NHSTDC */
-
#ifndef genericptr_t
typedef genericptr genericptr_t; /* (void *) or (char *) */
#endif
+#if defined(MICRO) || defined(WIN32)
+/* we actually want to know which systems have an ANSI run-time library
+ * to know which support the new %p format for printing pointers.
+ * due to the presence of things like gcc, NHSTDC is not a good test.
+ * so we assume microcomputers have all converted to ANSI and bigger
+ * computers which may have older libraries give reasonable results with
+ * the cast.
+ */
+# define HAS_PTR_FMT
+#endif
+#define FMT_PTR_BUFSIZ 20 /* buffer size for ptr address as text */
/*
* According to ANSI, prototypes for old-style declarations must widen the
#endif
}
-
-#if defined(MONITOR_HEAP) || defined(WIZARD)
-
-# if defined(MICRO) || defined(WIN32)
-/* we actually want to know which systems have an ANSI run-time library
- * to know which support the new %p format for printing pointers.
- * due to the presence of things like gcc, NHSTDC is not a good test.
- * so we assume microcomputers have all converted to ANSI and bigger
- * computers which may have older libraries give reasonable results with
- * the cast.
- */
-# define MONITOR_PTR_FMT
-# endif
-
-# ifdef MONITOR_PTR_FMT
+# ifdef HAS_PTR_FMT
# define PTR_FMT "%p"
# define PTR_TYP genericptr_t
# else
return buf;
}
-#endif
-
#ifdef MONITOR_HEAP
/* If ${NH_HEAPLOG} is defined and we can create a file by that name,
int line;
{
long *ptr = alloc(lth);
- char ptr_address[20];
+ char ptr_address[FMT_PTR_BUFSIZ];
if (!tried_heaplog) heapmon_init();
if (heaplog)
const char *file;
int line;
{
- char ptr_address[20];
+ char ptr_address[FMT_PTR_BUFSIZ];
if (!tried_heaplog) heapmon_init();
if (heaplog)
wiz_light_sources()
{
winid win;
- char buf[BUFSZ], arg_address[20];
+ char buf[BUFSZ], arg_address[FMT_PTR_BUFSIZ];
light_source *ls;
win = create_nhwindow(NHW_MENU); /* corner text window */
struct obj *obj;
struct monst *mon;
const char *mesg;
- char obj_address[20], mon_address[20]; /* room for formatted pointers */
+ char obj_address[FMT_PTR_BUFSIZ],
+ mon_address[FMT_PTR_BUFSIZ]; /* room for formatted pointers */
mesg = "fobj sanity";
for (obj = fobj; obj; obj = obj->nobj) {
const char *mesg;
{
struct obj *obj;
- char obj1_address[20], obj2_address[20];
+ char obj1_address[FMT_PTR_BUFSIZ], obj2_address[FMT_PTR_BUFSIZ];
for (obj = container->cobj; obj; obj = obj->nobj) {
if (obj->where != OBJ_CONTAINED)
i = (int)(ptr - &mons[0]);
if (i < LOW_PM || i >= NUMMONS) {
- /* ought to switch this to use `fmt_ptr' */
- panic("monsndx - could not index monster (%lx)",
- (unsigned long)ptr);
+ char ptr_address[FMT_PTR_BUFSIZ];
+ panic("monsndx - could not index monster (%s)",
+ fmt_ptr((genericptr_t)ptr, ptr_address));
return NON_PM; /* will not get here */
}
timer_element *base;
{
timer_element *curr;
- char buf[BUFSZ], arg_address[20];
+ char buf[BUFSZ], arg_address[FMT_PTR_BUFSIZ];
if (!base) {
putstr(win, 0, "<empty>");
timer_sanity_check()
{
timer_element *curr;
- char obj_address[20];
+ char obj_address[FMT_PTR_BUFSIZ];
/* this should be much more complete */
for (curr = timer_base; curr; curr = curr->next)