xref: /netbsd/games/countmail/countmail (revision 1f847b28)
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