aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/chars.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2011-04-30 22:24:31 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2011-04-30 22:24:31 +0000
commit4ac5d826a7fc322e357b1f87a58616c3ed2a3c5f (patch)
tree3e434f4320c7b745c5d0f5893ed63711eb48be43 /chars.c
parent2d0cf7beb1dc10f2e89c1a7f207fe0f13ecd686b (diff)
downloadmandoc-4ac5d826a7fc322e357b1f87a58616c3ed2a3c5f.tar.gz
mandoc-4ac5d826a7fc322e357b1f87a58616c3ed2a3c5f.tar.zst
mandoc-4ac5d826a7fc322e357b1f87a58616c3ed2a3c5f.zip
Make mchars_num2char() return a char like it says.
Diffstat (limited to 'chars.c')
-rw-r--r--chars.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/chars.c b/chars.c
index 2e56f11d..e4f742d9 100644
--- a/chars.c
+++ b/chars.c
@@ -1,4 +1,4 @@
-/* $Id: chars.c,v 1.38 2011/04/30 22:14:42 kristaps Exp $ */
+/* $Id: chars.c,v 1.39 2011/04/30 22:24:31 kristaps Exp $ */
/*
* Copyright (c) 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org>
@@ -137,23 +137,23 @@ mchars_res2cp(struct mchars *arg, const char *p, size_t sz)
/*
- * Numbered character to literal character,
- * represented as a null-terminated string for additional safety.
+ * Numbered character to literal character.
*/
-const char *
+char
mchars_num2char(const char *p, size_t sz)
{
int i;
- static char c[2];
if (sz > 3)
- return(NULL);
+ return('\0');
+
i = atoi(p);
- if (i < 0 || i > 255)
- return(NULL);
- c[0] = (char)i;
- c[1] = '\0';
- return(c);
+ /*
+ * FIXME:
+ * This is wrong. Anything could be written here!
+ * This should be carefully screened for possible characters.
+ */
+ return(i <= 0 || i > 255 ? '\0' : (char)i);
}