summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Fleischer <calcurse@cryptocrack.de>2011-06-07 09:42:39 +0200
committerLukas Fleischer <calcurse@cryptocrack.de>2011-07-02 10:09:13 +0200
commite85501e5ef0d990539090f4d12dbb3eae487c971 (patch)
treef3acd91b9e7d076150e6efd3e181fb6ca0b38838
parentc8029a5a1356ee7e684dc6dfe4001bcc739bc2a6 (diff)
downloadcalcurse-e85501e5ef0d990539090f4d12dbb3eae487c971.tar.gz
calcurse-e85501e5ef0d990539090f4d12dbb3eae487c971.zip
Use constant for maximum UTF-8 character size
Introduce a UTF8_MAXLEN constant instead of using the literal value "6" at various places. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
-rw-r--r--src/calcurse.h1
-rw-r--r--src/day.c2
-rw-r--r--src/getstring.c5
-rw-r--r--src/todo.c2
4 files changed, 6 insertions, 4 deletions
diff --git a/src/calcurse.h b/src/calcurse.h
index 8e71a27..315f8e1 100644
--- a/src/calcurse.h
+++ b/src/calcurse.h
@@ -200,6 +200,7 @@
#define TOSTRING(x) STRINGIFY(x)
#define __FILE_POS__ __FILE__ ":" TOSTRING(__LINE__)
+#define UTF8_MAXLEN 6
#define UTF8_LENGTH(ch) ((unsigned char)ch >= 0xFC ? 6 : \
((unsigned char)ch >= 0xF8 ? 5 : \
((unsigned char)ch >= 0xF0 ? 4 : \
diff --git a/src/day.c b/src/day.c
index 2d0737e..7ad0b27 100644
--- a/src/day.c
+++ b/src/day.c
@@ -352,7 +352,7 @@ display_item (int incolor, char *msg, int recur, int note, int width, int y,
{
WINDOW *win;
int ch_recur, ch_note;
- char buf[width * 6];
+ char buf[width * UTF8_MAXLEN];
int i;
if (width <= 0)
diff --git a/src/getstring.c b/src/getstring.c
index 9dd7b8a..3b9e865 100644
--- a/src/getstring.c
+++ b/src/getstring.c
@@ -186,7 +186,7 @@ getstring (WINDOW *win, char *str, int l, int x, int y)
struct getstr_charinfo ci[l + 1];
int ch, k;
- char c[6];
+ char c[UTF8_MAXLEN];
getstr_init (&st, str, ci);
custom_apply_attr (win, ATTR_HIGHEST);
@@ -255,7 +255,8 @@ getstring (WINDOW *win, char *str, int l, int x, int y)
return (GETSTRING_ESC);
break;
default: /* insert one character */
- for (c[0] = ch, k = 1; k < MIN (UTF8_LENGTH (c[0]), 6); k++)
+ c[0] = ch;
+ for (k = 1; k < MIN (UTF8_LENGTH (c[0]), UTF8_MAXLEN); k++)
c[k] = (unsigned char)wgetch (win);
if (st.ci[st.len].offset + k < l)
{
diff --git a/src/todo.c b/src/todo.c
index 43d5ad5..a6b5687 100644
--- a/src/todo.c
+++ b/src/todo.c
@@ -374,7 +374,7 @@ display_todo_item (int incolor, char *msg, int prio, int note, int width, int y,
{
WINDOW *w;
int ch_note;
- char buf[width * 6], priostr[2];
+ char buf[width * UTF8_MAXLEN], priostr[2];
int i;
w = win[TOD].p;