/****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
****************************************************************************/
-
-
/*
* lib_tracechr.c - Tracing/Debugging routines
*/
-
-#ifndef TRACE
-#define TRACE /* turn on internal defs for this module */
-#endif
-
#include <curses.priv.h>
-#include <ctype.h>
+MODULE_ID("$Id: lib_tracechr.c,v 1.9 2002/05/25 23:34:19 tom Exp $")
#ifdef TRACE
-char *_tracechar(const unsigned char ch)
+NCURSES_EXPORT(char *)
+_tracechar(int ch)
{
- static char crep[20];
- /*
- * We can show the actual character if it's either an ordinary printable
- * or one of the high-half characters.
- */
- if (isprint(ch) || (ch & 0x80))
- {
- crep[0] = '\'';
- crep[1] = ch; /* necessary; printf tries too hard on metachars */
- (void) sprintf(crep + 2, "' = 0x%02x", (unsigned)ch);
- }
- else
- (void) sprintf(crep, "0x%02x", (unsigned)ch);
- return(crep);
+ static char crep[40];
+ (void) sprintf(crep, "'%.30s' = %#03o",
+ ((ch > KEY_MIN || ch < 0)
+ ? keyname(ch)
+ : unctrl(ch)),
+ ch);
+ return (crep);
}
#else
-extern void _nc_lib_tracechr(void);
- void _nc_lib_tracechr(void) { }
+empty_module(_nc_lib_tracechr)
#endif