1#!/bin/sh 2# $NetBSD: countmail,v 1.8 2021/05/02 13:10:36 rillig Exp $ 3 4# 5# Copyright (c) 1998, 2002 The NetBSD Foundation, Inc. 6# All rights reserved. 7# 8# This code is derived from software contributed to The NetBSD Foundation 9# by Charles M. Hannum. 10# 11# Redistribution and use in source and binary forms, with or without 12# modification, are permitted provided that the following conditions 13# are met: 14# 1. Redistributions of source code must retain the above copyright 15# notice, this list of conditions and the following disclaimer. 16# 2. Redistributions in binary form must reproduce the above copyright 17# notice, this list of conditions and the following disclaimer in the 18# documentation and/or other materials provided with the distribution. 19# 20# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 21# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 22# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 24# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30# POSSIBILITY OF SUCH DAMAGE. 31# 32 33# Count the messages in your mailbox. 34# 35set -- `from 2>/dev/null | wc -l` 36v=$1 37 38set -- 39g=0 40v=000$v 41 42while :; do 43 44 case $v in 45 '' | 0 | 00) break ;; 46 *000) ;; 47 *) 48 case $g in 49 0) x= ;; 50 1) x=THOUSAND ;; 51 2) x=MILLION ;; 52 3) x=BILLION ;; 53 4) x=TRILLION ;; 54 5) x=QUADRILLION ;; 55 6) x=QUINTILLION ;; 56 7) x=SEXTILLION ;; 57 8) x=SEPTILLION ;; 58 *) 59 echo "YOU HAVE TOO MUCH MAIL!" 1>&2 60 exit 1 61 ;; 62 esac 63 64 case $v in 65 *10) y=TEN ;; 66 *11) y=ELEVEN ;; 67 *12) y=TWELVE ;; 68 *13) y=THIRTEEN ;; 69 *14) y=FOURTEEN ;; 70 *15) y=FIFTEEN ;; 71 *16) y=SIXTEEN ;; 72 *17) y=SEVENTEEN ;; 73 *18) y=EIGHTEEN ;; 74 *19) y=NINETEEN ;; 75 *2?) y=TWENTY ;; 76 *3?) y=THIRTY ;; 77 *4?) y=FORTY ;; 78 *5?) y=FIFTY ;; 79 *6?) y=SIXTY ;; 80 *7?) y=SEVENTY ;; 81 *8?) y=EIGHTY ;; 82 *9?) y=NINETY ;; 83 *) y= ;; 84 esac 85 86 case $v in 87 *[01]? | *?0) ;; 88 *) y=$y- ;; 89 esac 90 91 case $v in 92 *1?) ;; 93 *1) y=${y}ONE ;; 94 *2) y=${y}TWO ;; 95 *3) y=${y}THREE ;; 96 *4) y=${y}FOUR ;; 97 *5) y=${y}FIVE ;; 98 *6) y=${y}SIX ;; 99 *7) y=${y}SEVEN ;; 100 *8) y=${y}EIGHT ;; 101 *9) y=${y}NINE ;; 102 esac 103 104 case $v in 105 *1??) z=ONE ;; 106 *2??) z=TWO ;; 107 *3??) z=THREE ;; 108 *4??) z=FOUR ;; 109 *5??) z=FIVE ;; 110 *6??) z=SIX ;; 111 *7??) z=SEVEN ;; 112 *8??) z=EIGHT ;; 113 *9??) z=NINE ;; 114 *) z= ;; 115 esac 116 117 set $z ${z:+HUNDRED} $y $x $* 118 ;; 119 esac 120 121 g=$(($g + 1)) 122 v=${v%%???} 123 124done 125 126p=S 127 128case "$*" in 129 "") set ZERO ;; 130 ONE) p= ;; 131esac 132 133echo "$*! 134 135$* NEW MAIL MESSAGE$p! 136 137HAHAHAHAHA!" 138