ui-tree: use "sane" isgraph()

Git's git-compat-util.h defines a "sane ctype" that does not use locale
information and works with signed chars, but it does not include
isgraph() so we have included ctype.h ourselves.

However, this means we have to include a system header before
git-compat-util.h which may lead to the system defining some macros
(e.g. _FILE_OFFSET_BITS on Solaris) before git-compat-util.h redefines
them with a different value.  We cannot include ctype.h after
git-compat-util.h because we have defined many of its functions as
macros which causes a stream of compilation errors.

Defining our own "sane" isgraph() using Git's sane isprint() and
isspace() avoids all of these problems.

Signed-off-by: John Keeping <john@keeping.me.uk>
This commit is contained in:
John Keeping 2015-08-13 12:14:19 +01:00 committed by Jason A. Donenfeld
parent e09574bdf6
commit 7105a78b17
2 changed files with 3 additions and 1 deletions

3
cgit.h
View File

@ -25,6 +25,9 @@
#include <notes.h> #include <notes.h>
#include <graph.h> #include <graph.h>
/* Add isgraph(x) to Git's sane ctype support (see git-compat-util.h) */
#undef isgraph
#define isgraph(x) (isprint((x)) && !isspace((x)))
/* /*
* Dateformats used on misc. pages * Dateformats used on misc. pages

View File

@ -6,7 +6,6 @@
* (see COPYING for full license text) * (see COPYING for full license text)
*/ */
#include <ctype.h>
#include "cgit.h" #include "cgit.h"
#include "ui-tree.h" #include "ui-tree.h"
#include "html.h" #include "html.h"