about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-05-04 13:02:56 -0400
committerJune McEnroe <june@causal.agency>2020-05-04 13:02:56 -0400
commit6391d22de74c7a0454e838c9df46f95e562745ee (patch)
treea0d9e19b75def1f6038a8df18ffbc591b54f4209
parentDon't clear MANSECT (diff)
downloadexman-6391d22de74c7a0454e838c9df46f95e562745ee.tar.gz
exman-6391d22de74c7a0454e838c9df46f95e562745ee.zip
Add hack for macOS to search extra man sections
-rw-r--r--exman.sh31
1 files changed, 30 insertions, 1 deletions
diff --git a/exman.sh b/exman.sh
index 5077c34..9b6777d 100644
--- a/exman.sh
+++ b/exman.sh
@@ -26,4 +26,33 @@ for sect in "${MANPATH}"/man*/; do
 	MANSECT="${MANSECT:-}${MANSECT:+:}${sect}"
 done
 
-exec man "$@"
+# macOS man(1) refuses to search in directories such as "man3p", so do it
+# manually here unless there are other flags passed.
+hack() {
+	case "${1:-}" in
+		(-*) exec man "$@";;
+		([0-9]*) MANSECT=$1; shift;;
+	esac
+	[ $# -gt 0 ] || die 'What manual page do you want?'
+	for page in "$@"; do
+		found=0
+		IFS=:
+		for sect in $MANSECT; do
+			path="${MANPATH}/man${sect}/${page}"
+			for ext in ".${sect}" ".${sect}.gz"; do
+				[ -f "${path}${ext}" ] || continue
+				man "${path}${ext}"
+				found=1
+				break
+			done
+			[ $found -eq 0 ] || break
+		done
+		[ $found -ne 0 ] || die "No manual entry for ${page}"
+	done
+}
+
+if [ "$(uname)" = 'Darwin' ]; then
+	hack "$@"
+else
+	exec man "$@"
+fi
href='/src/commit/bin/gfb.c?id=a150d3d2eaaa4411d7cdc625c198c76d71a9638f&follow=1'>Double-buffer gfb frontendJune McEnroe 2018-02-05Rewrite gfxx bit handlingJune McEnroe 2018-02-05Add flip option to gfxxJune McEnroe 2018-02-05Remove gfxx reverse optionJune McEnroe 2018-02-04Fix gfxx draw stop conditionJune McEnroe 2018-02-04Reuse CGColorSpace and CGDataProvider in gfcocoaJune McEnroe 2018-02-04Mark mac target phonyJune McEnroe 2018-02-04Set up Makefile for gfxx-cocoa or gfxx-fbJune McEnroe 2018-02-04Avoid doing excessive work in gfxxJune McEnroe 2018-02-04Handle window resizing in gfcocoaJune McEnroe 2018-02-04Set cinoptionsJune McEnroe 2018-02-04Tweak colorscheme moreJune McEnroe 2018-02-04Color MatchParen DarkYellowJune McEnroe 2018-02-04Add palette sampling to gfxxJune McEnroe 2018-02-04Add 4-bit RGB to gfxxJune McEnroe 2018-02-04Add Quit menu item to gfcocoaJune McEnroe 2018-02-04Switch back to sane Objective-C styleJune McEnroe 2018-02-04Quit gfcocoa when window closesJune McEnroe 2018-02-03Apparently this is how people write Objective-CJune McEnroe