|  | @@ -22,7 +22,10 @@ breakLine=$([ "$1" = --careless ] \
 | 
	
		
			
			| 22 | 22 |   && echo $wastefulBreakLine \
 | 
	
		
			
			| 23 | 23 |   || echo $standardBreakLine)
 | 
	
		
			
			| 24 | 24 |  
 | 
	
		
			
			| 25 |  | -pred() {  #get predecessor to a number
 | 
	
		
			
			|  | 25 | +pred() {
 | 
	
		
			
			|  | 26 | +    #
 | 
	
		
			
			|  | 27 | +    # Get predecessor to a number $1
 | 
	
		
			
			|  | 28 | +    #
 | 
	
		
			
			| 26 | 29 |      case $1 in
 | 
	
		
			
			| 27 | 30 |          *nine)      echo ${1%nine}eight;;
 | 
	
		
			
			| 28 | 31 |          *eight)     echo ${1%eight}seven;;
 | 
	
	
		
			
			|  | @@ -44,14 +47,20 @@ pred() {  #get predecessor to a number
 | 
	
		
			
			| 44 | 47 |      esac
 | 
	
		
			
			| 45 | 48 |  }
 | 
	
		
			
			| 46 | 49 |  
 | 
	
		
			
			| 47 |  | -teenpred() { #predecessor of a teen
 | 
	
		
			
			|  | 50 | +teenpred() {
 | 
	
		
			
			|  | 51 | +    #
 | 
	
		
			
			|  | 52 | +    # Get predecessor of a teen $1
 | 
	
		
			
			|  | 53 | +    #
 | 
	
		
			
			| 48 | 54 |      case $1 in
 | 
	
		
			
			| 49 | 55 |          thirteen)   echo twelve;;
 | 
	
		
			
			| 50 | 56 |          *)          echo $(crunchprefix $(pred $(uncrunchprefix ${1%teen})))teen;;
 | 
	
		
			
			| 51 | 57 |      esac
 | 
	
		
			
			| 52 | 58 |  }
 | 
	
		
			
			| 53 | 59 |  
 | 
	
		
			
			| 54 |  | -tenspred() { #predecessor of a multiple of ten
 | 
	
		
			
			|  | 60 | +tenspred() {
 | 
	
		
			
			|  | 61 | +    #
 | 
	
		
			
			|  | 62 | +    # Get predecessor of a multiple of ten $1
 | 
	
		
			
			|  | 63 | +    #
 | 
	
		
			
			| 55 | 64 |      case $1 in
 | 
	
		
			
			| 56 | 65 |          twenty)     echo nineteen;;
 | 
	
		
			
			| 57 | 66 |          *) echo $(crunchprefix --tens $(pred $(uncrunchprefix ${1%ty})))ty-nine;;
 | 
	
	
		
			
			|  | @@ -59,9 +68,13 @@ tenspred() { #predecessor of a multiple of ten
 | 
	
		
			
			| 59 | 68 |  }
 | 
	
		
			
			| 60 | 69 |  
 | 
	
		
			
			| 61 | 70 |  crunchprefix() {
 | 
	
		
			
			| 62 |  | -    #crunch number prefix to its conventional form
 | 
	
		
			
			| 63 |  | -    # such as three --> thir
 | 
	
		
			
			| 64 |  | -    # option --tens     multiples of ten are a bit different
 | 
	
		
			
			|  | 71 | +    #
 | 
	
		
			
			|  | 72 | +    # Crunch number prefix $1 to its conventional form
 | 
	
		
			
			|  | 73 | +    #
 | 
	
		
			
			|  | 74 | +    # ...such as `three` --> `thir`
 | 
	
		
			
			|  | 75 | +    #
 | 
	
		
			
			|  | 76 | +    # option `--tens` - multiples of ten are a bit different
 | 
	
		
			
			|  | 77 | +    #
 | 
	
		
			
			| 65 | 78 |      [ $1 = --tens ] && { tensop=true; shift; }
 | 
	
		
			
			| 66 | 79 |      case $1 in
 | 
	
		
			
			| 67 | 80 |          two)    [ -n "$tensop" ] && echo twen || echo $1;;
 | 
	
	
		
			
			|  | @@ -73,7 +86,10 @@ crunchprefix() {
 | 
	
		
			
			| 73 | 86 |      esac
 | 
	
		
			
			| 74 | 87 |  }
 | 
	
		
			
			| 75 | 88 |  
 | 
	
		
			
			| 76 |  | -uncrunchprefix() { #reverse crunchprefix
 | 
	
		
			
			|  | 89 | +uncrunchprefix() {
 | 
	
		
			
			|  | 90 | +    #
 | 
	
		
			
			|  | 91 | +    # Reverse crunchprefix $1
 | 
	
		
			
			|  | 92 | +    #
 | 
	
		
			
			| 77 | 93 |      case $1 in
 | 
	
		
			
			| 78 | 94 |          twen)   echo two;;
 | 
	
		
			
			| 79 | 95 |          thir)   echo three;;
 | 
	
	
		
			
			|  | @@ -84,7 +100,10 @@ uncrunchprefix() { #reverse crunchprefix
 | 
	
		
			
			| 84 | 100 |      esac
 | 
	
		
			
			| 85 | 101 |  }
 | 
	
		
			
			| 86 | 102 |  
 | 
	
		
			
			| 87 |  | -grammar() { #peculiarities of English grammar
 | 
	
		
			
			|  | 103 | +grammar() {
 | 
	
		
			
			|  | 104 | +    #
 | 
	
		
			
			|  | 105 | +    # Apply peculiarities of English grammar to text on stdin
 | 
	
		
			
			|  | 106 | +    #
 | 
	
		
			
			| 88 | 107 |      local oneBottle=false  #can effect the following line
 | 
	
		
			
			| 89 | 108 |      while read line; do
 | 
	
		
			
			| 90 | 109 |          line="${line/one more bottles/one more bottle}"
 | 
	
	
		
			
			|  | @@ -106,14 +125,20 @@ grammar() { #peculiarities of English grammar
 | 
	
		
			
			| 106 | 125 |      done
 | 
	
		
			
			| 107 | 126 |  }
 | 
	
		
			
			| 108 | 127 |  
 | 
	
		
			
			| 109 |  | -capitalize() {  #fix beginning of each line
 | 
	
		
			
			|  | 128 | +capitalize() {
 | 
	
		
			
			|  | 129 | +    #
 | 
	
		
			
			|  | 130 | +    # Fix capitalization of each line on stdin
 | 
	
		
			
			|  | 131 | +    #
 | 
	
		
			
			| 110 | 132 |      while read line; do
 | 
	
		
			
			| 111 | 133 |          echo -n ${line:0:1} | tr '[:lower:]' '[:upper:]'
 | 
	
		
			
			| 112 | 134 |          echo ${line#?}
 | 
	
		
			
			| 113 | 135 |      done
 | 
	
		
			
			| 114 | 136 |  }
 | 
	
		
			
			| 115 | 137 |  
 | 
	
		
			
			| 116 |  | -punctuate() {  #add punct to each line
 | 
	
		
			
			|  | 138 | +punctuate() {
 | 
	
		
			
			|  | 139 | +    #
 | 
	
		
			
			|  | 140 | +    # Add punctuation to each line on stdin
 | 
	
		
			
			|  | 141 | +    #
 | 
	
		
			
			| 117 | 142 |      while read line; do
 | 
	
		
			
			| 118 | 143 |          case "${line}" in
 | 
	
		
			
			| 119 | 144 |              [Ii]f*)     echo ${line},;;
 | 
	
	
		
			
			|  | @@ -123,7 +148,10 @@ punctuate() {  #add punct to each line
 | 
	
		
			
			| 123 | 148 |      done
 | 
	
		
			
			| 124 | 149 |  }
 | 
	
		
			
			| 125 | 150 |  
 | 
	
		
			
			| 126 |  | -verse () { #write one verse
 | 
	
		
			
			|  | 151 | +verse () {
 | 
	
		
			
			|  | 152 | +    #
 | 
	
		
			
			|  | 153 | +    # Write one verse with number $1
 | 
	
		
			
			|  | 154 | +    #
 | 
	
		
			
			| 127 | 155 |      local nb=$1
 | 
	
		
			
			| 128 | 156 |      echo $nb bottles of beer on the wall
 | 
	
		
			
			| 129 | 157 |      echo $nb bottles of beer
 | 
	
	
		
			
			|  | @@ -137,7 +165,10 @@ verse () { #write one verse
 | 
	
		
			
			| 137 | 165 |      echo $nb bottles of beer on the wall
 | 
	
		
			
			| 138 | 166 |  }
 | 
	
		
			
			| 139 | 167 |  
 | 
	
		
			
			| 140 |  | -poeticize() { #make it nice
 | 
	
		
			
			|  | 168 | +poeticize() {
 | 
	
		
			
			|  | 169 | +    #
 | 
	
		
			
			|  | 170 | +    # Make text on stdin nice
 | 
	
		
			
			|  | 171 | +    #
 | 
	
		
			
			| 141 | 172 |      while read first rest; do
 | 
	
		
			
			| 142 | 173 |          case "$rest" in
 | 
	
		
			
			| 143 | 174 |              *beer*)
 | 
	
	
		
			
			|  | @@ -153,7 +184,10 @@ poeticize() { #make it nice
 | 
	
		
			
			| 153 | 184 |      done
 | 
	
		
			
			| 154 | 185 |  }
 | 
	
		
			
			| 155 | 186 |  
 | 
	
		
			
			| 156 |  | -syllables() { #estimate number of syls in word
 | 
	
		
			
			|  | 187 | +syllables() {
 | 
	
		
			
			|  | 188 | +    #
 | 
	
		
			
			|  | 189 | +    # Estimate number of syllables in word $1
 | 
	
		
			
			|  | 190 | +    #
 | 
	
		
			
			| 157 | 191 |      local n=1
 | 
	
		
			
			| 158 | 192 |      case $1 in
 | 
	
		
			
			| 159 | 193 |          eleven)     n=2;; #sounds better if not considered 3
 |