summary refs log tree commit diff
diff options
context:
space:
mode:
authorCurtis McEnroe2019-02-25 17:00:28 -0500
committerCurtis McEnroe2019-02-25 17:00:28 -0500
commit2a6e3f2d02951fea389db6767f5e4ed657964d80 (patch)
treee84d46fa5ee64aa874972adaa098aa4a8012d124
parentd85c1c3f9649608bc003d66a6e9d2c696188bf19 (diff)
Output raw to standard error if it is not a terminal
-rw-r--r--catgirl.13
-rw-r--r--irc.c2
2 files changed, 5 insertions, 0 deletions
diff --git a/catgirl.1 b/catgirl.1
index 2638d6f..b8c912a 100644
--- a/catgirl.1
+++ b/catgirl.1
@@ -90,6 +90,9 @@ the same as the nickname.
 Show raw IRC protocol in the
 .Sy <raw>
 window.
+If standard error is not a terminal,
+output raw IRC protocol
+to standard error.
 .
 .It Fl w Ar pass
 Log in with
diff --git a/irc.c b/irc.c
index a8dc2dd..2ad6d19 100644
--- a/irc.c
+++ b/irc.c
@@ -111,6 +111,7 @@ void ircFmt(const char *format, ...) {
 	va_end(ap);
 	if (!buf) err(EX_OSERR, "vasprintf");
 	if (self.raw) {
+		if (!isatty(STDERR_FILENO)) fprintf(stderr, "<<< %.*s\n", len - 2, buf);
 		uiFmt(TagRaw, UICold, "\3%d<<<\3 %.*s", IRCWhite, len - 2, buf);
 	}
 	ircWrite(buf, len);
@@ -142,6 +143,7 @@ retry:
 	while (NULL != (crlf = memmem(line, &buf[len] - line, "\r\n", 2))) {
 		crlf[0] = '\0';
 		if (self.raw) {
+			if (!isatty(STDERR_FILENO)) fprintf(stderr, ">>> %s\n", line);
 			uiFmt(TagRaw, UICold, "\3%d>>>\3 %s", IRCGray, line);
 		}
 		handle(line);