| 12345678910111213141516171819 | 
							- package mahonia
 
- // FallbackDecoder combines a series of Decoders into one.
 
- // If the first Decoder returns a status of INVALID_CHAR, the others are tried as well.
 
- //
 
- // Note: if the text to be decoded ends with a sequence of bytes that is not a valid character in the first charset,
 
- // but it could be the beginning of a valid character, the FallbackDecoder will give a status of NO_ROOM instead of
 
- // falling back to the other Decoders.
 
- func FallbackDecoder(decoders ...Decoder) Decoder {
 
- 	return func(p []byte) (c rune, size int, status Status) {
 
- 		for _, d := range decoders {
 
- 			c, size, status = d(p)
 
- 			if status != INVALID_CHAR {
 
- 				return
 
- 			}
 
- 		}
 
- 		return 0, 1, INVALID_CHAR
 
- 	}
 
- }
 
 
  |