commit dd11df30322db3ff2a58d7118c26ec048481f2fc from: noodle date: Wed Dec 31 22:07:57 2025 UTC add an -r flag for hiding unread manpages when checking stats for a section commit - b922200e0e347dfefce48245e3346837c9c50749 commit + dd11df30322db3ff2a58d7118c26ec048481f2fc blob - ecb9a3aa47699b9fa699bbab1265c40bebb0acd4 blob + 22f4b37d3d045fdbbc8d916bc3bed53d0c21abff --- readman +++ readman @@ -1,6 +1,7 @@ #!/bin/sh aflag=false dflag=false +rflag=false progname=${0##*/} men=$HOME/.manread @@ -11,7 +12,7 @@ cleanup() { usage() { echo "usage: ${progname} [-d]" 1>&2 - echo " ${progname} [-d] section" 1>&2 + echo " ${progname} [-d|-r] section" 1>&2 echo " ${progname} [-a|-d] section mantitle" 1>&2 return 1 } @@ -65,10 +66,11 @@ diffmen() { trap cleanup EXIT trap exit HUP INT TERM -while getopts ad arg; do +while getopts adr arg; do case ${arg} in a) aflag=true;; d) dflag=true;; + r) rflag=true;; ?) usage;; esac done @@ -81,7 +83,7 @@ mymen=$(echo 'mkstemp(/tmp/readman.XXXXXXXXXX)' | m4) allmen=$(echo 'mkstemp(/tmp/readman.XXXXXXXXXX)' | m4) case $# in 0) - if $aflag; then + if $aflag || $rflag; then usage elif $dflag; then prompt 'Do you really want to delete all your stats?' && :>"$men" @@ -96,8 +98,10 @@ case $# in if $aflag || ! issec "$sec"; then usage - elif $dflag && prompt "Do you really want to delete all stats for section ${sec}?"; then - printf 'g/%s/d\nwq\n' "$sec" | ed - "$men" + elif $dflag; then + $rflag && usage + prompt "Do you really want to delete all stats for section ${sec}?" && + printf 'g/%s/d\nwq\n' "$sec" | ed - "$men" else secstats "$sec" [ "$nchanged" -gt 0 ] && echo "* to reread: $(diffmen "$sec" | tr '\n' ' ')" @@ -105,7 +109,7 @@ case $# in man -ws "$1" -k . | awk -F/ '{ split($NF, a, /\.[1-9]/); print a[1] }' >"$allmen" [ "$nread" -gt 0 ] && echo "* have read: $(comm -12 "$mymen" "$allmen" | tr '\n' ' ')" - echo "* to read: $(comm -13 "$mymen" "$allmen" | tr '\n' ' ')" + $rflag || echo "* to read: $(comm -13 "$mymen" "$allmen" | tr '\n' ' ')" fi ;; 2) @@ -113,7 +117,7 @@ case $# in page=$2 mantitle="${page}(${sec})" - if ! issec "$sec"; then + if $rflag || ! issec "$sec"; then usage elif ! manpath=$(man -w "$sec" "$page" 2>/dev/null); then err "man page ${mantitle} doesn't exist!"