From 301e03b46ce35589dbd2b7985d6ae8bef0dca64a Mon Sep 17 00:00:00 2001
From: John Ankarstrom <john@ankarstrom.se>
Date: Sat, 3 Jul 2021 21:57:06 +0200
Subject: Add 'git-st' utility

---
 git-st | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)
 create mode 100755 git-st

(limited to 'git-st')

diff --git a/git-st b/git-st
new file mode 100755
index 0000000..8edae3f
--- /dev/null
+++ b/git-st
@@ -0,0 +1,31 @@
+#!/usr/bin/perl
+
+# git-st -- show git status (but handle binary files correctly)
+
+open $p, '-|', 'git', '-c', 'color.status=always', 'status', @ARGV
+	or die "$!\n";
+chomp($g = `git rev-parse --show-toplevel`);
+
+while (<$p>) {
+	if (/^Changes not staged for commit:$/ .. /^$/) {
+		if (/modified:\s+(.*\.pdf)/) {
+			$f = "$ENV{PWD}/$1";
+			$f =~ s,^\Q$g\E/?,,;
+			$f =~ s/'/'"'"'/g;
+			`git-bdiff '$f'`;
+			if ($?) {
+				$mbuf .= $_;
+				$mod = 1;
+			}
+		} else {
+			$mod = 1 if not $mod and /[^t]:\s+/;
+			$mbuf .= $_;
+		}
+		$buf .= $mbuf if /^$/ and $mod;
+	} else {
+		$buf .= $_;
+	}
+}
+
+close $p;
+print $buf;
-- 
cgit v1.2.3