-/* $Id: chars.c,v 1.41 2011/05/14 17:54:42 kristaps Exp $ */
+/* $Id: chars.c,v 1.43 2011/05/15 22:29:50 kristaps Exp $ */
/*
* Copyright (c) 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org>
#include <string.h>
#include "mandoc.h"
+#include "libmandoc.h"
#define PRINT_HI 126
#define PRINT_LO 32
* This can only be a printable character (i.e., alnum, punct, space) so
* prevent the character from ruining our state (backspace, newline, and
* so on).
+ * If the character is illegal, returns '\0'.
*/
char
mchars_num2char(const char *p, size_t sz)
{
int i;
- if (sz > 3)
+ if ((i = mandoc_strntou(p, sz, 10)) < 0)
return('\0');
- i = atoi(p);
- /* LINTED */
return(isprint(i) ? i : '\0');
}