Commit Diff


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!"