From a568f73e7731c129be881050d9411e922fccfc1f Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 12 Dec 2016 13:36:11 +0530 Subject: [PATCH] Fix compilation with clang --- kitty/data-types.h | 7 +++++++ kitty/line.c | 1 - kitty/parser.c | 26 +++++++++++--------------- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/kitty/data-types.h b/kitty/data-types.h index a87388734..3efe1e8b4 100644 --- a/kitty/data-types.h +++ b/kitty/data-types.h @@ -129,10 +129,17 @@ typedef unsigned int index_type; return result; \ } +#ifdef __clang__ +#define START_ALLOW_CASE_RANGE _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wpedantic\"") +#define END_ALLOW_CASE_RANGE _Pragma("clang diagnostic pop") +#define ALLOW_UNUSED_RESULT _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wunused-result\"") +#define END_ALLOW_UNUSED_RESULT _Pragma("clang diagnostic pop") +#else #define START_ALLOW_CASE_RANGE _Pragma("GCC diagnostic ignored \"-Wpedantic\"") #define END_ALLOW_CASE_RANGE _Pragma("GCC diagnostic pop") #define ALLOW_UNUSED_RESULT _Pragma("GCC diagnostic ignored \"-Wunused-result\"") #define END_ALLOW_UNUSED_RESULT _Pragma("GCC diagnostic pop") +#endif typedef struct { PyObject_HEAD diff --git a/kitty/line.c b/kitty/line.c index eda5d271d..6e8258d6a 100644 --- a/kitty/line.c +++ b/kitty/line.c @@ -195,7 +195,6 @@ static PyObject* as_ansi(Line* self) { #define as_ansi_doc "Return the line's contents with ANSI (SGR) escape codes for formatting" static Py_UCS4 t[5120] = {0}; - if (t == NULL) return PyErr_NoMemory(); index_type num = line_as_ansi(self, t, 5120); PyObject *ans = PyUnicode_FromKindAndData(PyUnicode_4BYTE_KIND, t, num); return ans; diff --git a/kitty/parser.c b/kitty/parser.c index 1d80a29e2..f2ae17eb9 100644 --- a/kitty/parser.c +++ b/kitty/parser.c @@ -633,21 +633,17 @@ static inline void _parse_bytes(Screen *screen, uint8_t *buf, Py_ssize_t len, PyObject DUMP_UNUSED *dump_callback) { uint32_t prev = screen->utf8_state, codepoint = 0; for (unsigned int i = 0; i < len; i++) { - switch(screen->use_latin1) { - case true: - dispatch_unicode_char(screen, latin1_charset[buf[i]], dump_callback); - break; - default: - switch (decode_utf8(&screen->utf8_state, &codepoint, buf[i])) { - case UTF8_ACCEPT: - dispatch_unicode_char(screen, codepoint, dump_callback); - break; - case UTF8_REJECT: - screen->utf8_state = UTF8_ACCEPT; - if (prev != UTF8_ACCEPT) i--; - break; - } - break; + if (screen->use_latin1) dispatch_unicode_char(screen, latin1_charset[buf[i]], dump_callback); + else { + switch (decode_utf8(&screen->utf8_state, &codepoint, buf[i])) { + case UTF8_ACCEPT: + dispatch_unicode_char(screen, codepoint, dump_callback); + break; + case UTF8_REJECT: + screen->utf8_state = UTF8_ACCEPT; + if (prev != UTF8_ACCEPT) i--; + break; + } } } FLUSH_DRAW;