about summary refs log tree commit diff
diff options
context:
space:
mode:
authorsternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org>2020-12-25 14:21:36 +0100
committersternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org>2020-12-25 14:23:23 +0100
commitc803df72ca91c25cc224c6c871524f89fc9a6c6b (patch)
tree6c81bd39cae8ed313616d240cfea65d6bc560b5c
parentb7e7ed739ff8b05a3469f89bd6cce2a432f4f3e4 (diff)
fix(library): get rid of GNU C extensions to fix build with clang
-rw-r--r--bitmap.c20
-rw-r--r--build_config2
-rw-r--r--default.exe.do2
-rw-r--r--default.o.do3
-rw-r--r--include/buchstabensuppe.h4
-rw-r--r--util.h13
6 files changed, 13 insertions, 31 deletions
diff --git a/bitmap.c b/bitmap.c
index 98140e3..837143b 100644
--- a/bitmap.c
+++ b/bitmap.c
@@ -6,14 +6,12 @@
 
 #include <buchstabensuppe/bitmap.h>
 
-#include "util.h"
-
 bool bs_bitmap_extend(bs_bitmap_t *b, int new_w, int new_h, unsigned char init) {
-  int diff_x = MAX(new_w - b->bs_bitmap_width, 0);
-  int diff_y = MAX(new_h - b->bs_bitmap_height, 0);
+  int diff_x = fmax(new_w - b->bs_bitmap_width, 0);
+  int diff_y = fmax(new_h - b->bs_bitmap_height, 0);
 
-  new_w = MAX(new_w, b->bs_bitmap_width);
-  new_h = MAX(new_h, b->bs_bitmap_height);
+  new_w = fmax(new_w, b->bs_bitmap_width);
+  new_h = fmax(new_h, b->bs_bitmap_height);
 
   if(diff_y == 0 && diff_x == 0) {
     return true;
@@ -117,11 +115,11 @@ void bs_bitmap_copy(bs_bitmap_t dst, int offset_x, int offset_y, bs_bitmap_t src
   // TODO optimized implementation for when widths are equal
   // and offset_x == 0
 
-  int src_min_y = MAX(0, (-1) * offset_y);
-  int src_max_y = MIN(dst.bs_bitmap_height - offset_y, src.bs_bitmap_height);
+  int src_min_y = fmax(0, (-1) * offset_y);
+  int src_max_y = fmin(dst.bs_bitmap_height - offset_y, src.bs_bitmap_height);
 
-  int src_min_x = MAX(0, (-1) * offset_x);
-  int src_max_x = MIN(dst.bs_bitmap_width - offset_x, src.bs_bitmap_width);
+  int src_min_x = fmax(0, (-1) * offset_x);
+  int src_max_x = fmin(dst.bs_bitmap_width - offset_x, src.bs_bitmap_width);
 
   for(int y = src_min_y; y < src_max_y; y++) {
     int dst_y = y + offset_y;
@@ -166,7 +164,7 @@ uint8_t *bs_view_bitarray(bs_view_t view, size_t *size, unsigned char def) {
   for(int y = view.bs_view_offset_y; y < view_max_y; y++) {
     for(int x = view.bs_view_offset_x; x < view_max_x; x = x + 8) {
       uint8_t byte = 0;
-      int max_i = MIN(8, view_max_x - x);
+      int max_i = fmin(8, view_max_x - x);
 
       for(int i = 0; i < max_i; i++) {
         // reduce pixel to a single bit works regardless of monospace and
diff --git a/build_config b/build_config
index eeae406..de0a536 100644
--- a/build_config
+++ b/build_config
@@ -1,7 +1,7 @@
 AR=ar
 RANLIB=ranlib
 CC=cc
-CFLAGS="-W -Wall -Wextra -Os -std=c99 -g -lm"
+CFLAGS="-W -Wall -Wextra -pedantic -Os -std=c99 -g"
 CFLAGS="$CFLAGS -Iinclude -Ithird_party/stb"
 
 # vim: ft=sh
diff --git a/default.exe.do b/default.exe.do
index 9c01326..36449a2 100644
--- a/default.exe.do
+++ b/default.exe.do
@@ -4,6 +4,6 @@ source ./build_config
 DEPS="$2.o libbuchstabensuppe.a"
 redo-ifchange $DEPS
 
-$CC $CFLAGS -o "$3" "$2.o" -L. -lharfbuzz -lutf8proc -lbuchstabensuppe
+$CC $CFLAGS -o "$3" "$2.o" -L. -lm -lharfbuzz -lutf8proc -lbuchstabensuppe
 
 # vim: ft=sh
diff --git a/default.o.do b/default.o.do
index 3540f24..efc006b 100644
--- a/default.o.do
+++ b/default.o.do
@@ -21,9 +21,6 @@ case "$2" in
     redo-ifchange buchstabensuppe.o
     redo-ifchange flipdot.o
     ;;
-  bitmap)
-    redo-ifchange util.h
-    ;;
   flipdot)
     redo-ifchange bitmap.o
     ;;
diff --git a/include/buchstabensuppe.h b/include/buchstabensuppe.h
index 7573aff..03f6aa1 100644
--- a/include/buchstabensuppe.h
+++ b/include/buchstabensuppe.h
@@ -50,8 +50,8 @@ typedef struct bs_font {
 } bs_font_t;
 
 enum bs_rendering_flag {
-  BS_RENDER_BINARY      = 0b001,
-  BS_RENDER_NO_FALLBACK = 0b100,
+  BS_RENDER_BINARY      = 0x01,
+  BS_RENDER_NO_FALLBACK = 0x04,
 };
 
 typedef struct bs_context {
diff --git a/util.h b/util.h
deleted file mode 100644
index d6d9ed6..0000000
--- a/util.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef BUCHSTABENSUPPE_UTIL_H
-#define BUCHSTABENSUPPE_UTIL_H
-
-#define MAX(a,b) \
-  ({ __typeof__ (a) _a = (a); \
-     __typeof__ (b) _b = (b); \
-     _a > _b ? _a : _b; })
-#define MIN(a,b) \
-  ({ __typeof__ (a) _a = (a); \
-     __typeof__ (b) _b = (b); \
-     _a < _b ? _a : _b; })
-
-#endif