about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJohn Keeping2015-08-13 12:14:19 +0100
committerJason A. Donenfeld2015-08-13 15:38:35 +0200
commit7105a78b17b118866aee77735e26cffcd1fd08fd (patch)
treed41495b5e039be7cd5943e206b4f1a173542c07c
parentcgit.h: move stdbool.h from ui-shared.h (diff)
downloadcgit-7105a78b17b118866aee77735e26cffcd1fd08fd.tar.gz
cgit-7105a78b17b118866aee77735e26cffcd1fd08fd.zip
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>
-rw-r--r--cgit.h3
-rw-r--r--ui-tree.c1
2 files changed, 3 insertions, 1 deletions
diff --git a/cgit.h b/cgit.h index 508179a..f327627 100644 --- a/cgit.h +++ b/cgit.h
@@ -25,6 +25,9 @@
25#include <notes.h> 25#include <notes.h>
26#include <graph.h> 26#include <graph.h>
27 27
28/* Add isgraph(x) to Git's sane ctype support (see git-compat-util.h) */
29#undef isgraph
30#define isgraph(x) (isprint((x)) && !isspace((x)))
28 31
29/* 32/*
30 * Dateformats used on misc. pages 33 * Dateformats used on misc. pages
diff --git a/ui-tree.c b/ui-tree.c index c8d24f6..2dbe89e 100644 --- a/ui-tree.c +++ b/ui-tree.c
@@ -6,7 +6,6 @@
6 * (see COPYING for full license text) 6 * (see COPYING for full license text)
7 */ 7 */
8 8
9#include <ctype.h>
10#include "cgit.h" 9#include "cgit.h"
11#include "ui-tree.h" 10#include "ui-tree.h"
12#include "html.h" 11#include "html.h"