summary refs log tree commit diff
path: root/port
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-12-21 16:33:08 -0500
committerJune McEnroe <june@causal.agency>2020-12-21 16:33:08 -0500
commitaf4ca61222bdc9a426f491ffd7c9ef010263abae (patch)
treec2bd3d1d66dbbbefa2e1247aea3afc8000357cfe /port
parentUpdate PDF URLs (diff)
downloadsrc-af4ca61222bdc9a426f491ffd7c9ef010263abae.tar.gz
src-af4ca61222bdc9a426f491ffd7c9ef010263abae.zip
Move wcfix to port/wcwidth
Diffstat (limited to '')
-rw-r--r--port/wcwidth/.gitignore3
-rw-r--r--port/wcwidth/Makefile24
-rw-r--r--[-rwxr-xr-x]port/wcwidth/wcfix.in (renamed from home/.local/bin/wcfix)2
3 files changed, 19 insertions, 10 deletions
diff --git a/port/wcwidth/.gitignore b/port/wcwidth/.gitignore
index aa25f78d..132e8098 100644
--- a/port/wcwidth/.gitignore
+++ b/port/wcwidth/.gitignore
@@ -1,2 +1,3 @@
 *.o
-*.dylib
+libwcwidth.dylib
+wcfix
diff --git a/port/wcwidth/Makefile b/port/wcwidth/Makefile
index f6932d6d..50faa653 100644
--- a/port/wcwidth/Makefile
+++ b/port/wcwidth/Makefile
@@ -1,19 +1,27 @@
-PREFIX = ~/.local
+PREFIX ?= ~/.local
 
 OBJS = wcwidth.o wcswidth.o
-DYLIB = libwcwidth.dylib
 
-${DYLIB}: ${OBJS}
+all: libwcwidth.dylib wcfix
+
+libwcwidth.dylib: ${OBJS}
 	${CC} -dynamiclib ${LDFLAGS} ${OBJS} -o $@
 
 wcwidth.o: nonspacing.h wide.h
 
+.SUFFIXES: .in
+
+.in:
+	sed 's|%%PREFIX%%|${PREFIX}|g' $< > $@
+	chmod a+x $@
+
 clean:
-	rm -f ${DYLIB} ${OBJS}
+	rm -f libwcwidth.dylib wcfix ${OBJS}
 
-install: ${DYLIB}
-	install -d ${PREFIX}/lib
-	install -m 644 ${DYLIB} ${PREFIX}/lib
+install: libwcwidth.dylib wcfix
+	install -d ${PREFIX}/lib ${PREFIX}/bin
+	install -m 644 libwcwidth.dylib ${PREFIX}/lib
+	install wcfix ${PREFIX}/bin
 
 uninstall:
-	rm -f ${PREFIX}/lib/${DYLIB}
+	rm -f ${PREFIX}/lib/libwcwidth.dylib ${PREFIX}/bin/wcfix
diff --git a/home/.local/bin/wcfix b/port/wcwidth/wcfix.in
index b31bd19b..832c83d6 100755..100644
--- a/home/.local/bin/wcfix
+++ b/port/wcwidth/wcfix.in
@@ -2,6 +2,6 @@
 set -eu
 
 export DYLD_FORCE_FLAT_NAMESPACE=1
-export DYLD_INSERT_LIBRARIES=~/.local/lib/libwcwidth.dylib
+export DYLD_INSERT_LIBRARIES=%%PREFIX%%/lib/libwcwidth.dylib
 
 exec "$@"
class='ctx'> static const char *MinttyNames[SchemeLen] = { @@ -179,10 +182,10 @@ static const char *MinttyNames[SchemeLen] = { [Foreground] = "ForegroundColour", [Cursor] = "CursorColour", }; -static void printMintty(int n) { +static void printMintty(uint n) { if (!MinttyNames[n]) return; struct RGB rgb = toRGB(scheme[n]); - printf("%s=%d,%d,%d\n", MinttyNames[n], rgb.r, rgb.g, rgb.b); + printf("%s=%hhd,%hhd,%hhd\n", MinttyNames[n], rgb.r, rgb.g, rgb.b); } static uint32_t crc; @@ -201,7 +204,7 @@ static void pngChunk(const char *type, uint32_t size) { pngWrite(type, 4); } -static void png(int at, int to) { +static void png(uint at, uint to) { if (to - at > 256) to = at + 256; uint32_t len = to - at; @@ -221,7 +224,7 @@ static void png(int at, int to) { pngInt(crc); pngChunk("PLTE", 3 * len); - for (int i = at; i < to; ++i) { + for (uint i = at; i < to; ++i) { struct RGB rgb = toRGB(scheme[i]); pngWrite(&rgb, 3); } @@ -233,16 +236,16 @@ static void png(int at, int to) { enum { None, Sub, Up, Average, Paeth }; data[y][0] = (y % swatchHeight) ? Up : Sub; } - for (int i = at; i < to; ++i) { - int p = i - at; + for (uint i = at; i < to; ++i) { + uint p = i - at; uint32_t y = swatchHeight * (p / cols); uint32_t x = swatchWidth * (p % cols); data[y][1 + x] = x ? 1 : p; } uLong size = compressBound(sizeof(data)); - uint8_t deflate[size]; - int error = compress(deflate, &size, (Byte *)data, sizeof(data)); + byte deflate[size]; + int error = compress(deflate, &size, (byte *)data, sizeof(data)); if (error != Z_OK) errx(EX_SOFTWARE, "compress: %d", error); pngChunk("IDAT", size); @@ -253,16 +256,16 @@ static void png(int at, int to) { pngInt(crc); } -static void print(void (*fn)(int), int at, int to) { - for (int i = at; i < to; ++i) { +static void print(void (*fn)(uint), uint at, uint to) { + for (uint i = at; i < to; ++i) { fn(i); } } int main(int argc, char *argv[]) { generate(); - int at = 0; - int to = Background; + uint at = 0; + uint to = Background; char out = 'x'; int opt;