# $NetBSD: dmesg,v 1.1 2020/04/14 13:58:11 christos Exp $ define dmesg set $mbp = msgbufp set $bufdata = &$mbp->msg_bufc[0] set $print = $mbp->msg_bufs set $newl = 0 set $skip = 0 set $i = -1 set $p = $bufdata + $mbp->msg_bufx - 1 while ($i < $mbp->msg_bufs) set $i = $i + 1 set $p = $p + 1 if ($p == $bufdata + $mbp->msg_bufs) set $p = $bufdata end if ($i < $mbp->msg_bufs - $print) loop_continue end set $c = $p[0] # Skip syslog sequences if ($skip) if ($c == '>') set $newl = 0 set $skip = 0 end loop_continue end if ($newl && $c == '<') set $skip = 1 loop_continue end if ($c == '\0') loop_continue end set $newl = $c == '\n' printf "%c", $c end if (!$newl) printf "\n" end end document dmesg print the message buffer end