aboutsummaryrefslogtreecommitdiff
path: root/modules/mahonia/charset.go
diff options
context:
space:
mode:
authorPeter Smit <peter@smitmail.eu>2014-12-22 11:29:02 +0200
committerPeter Smit <peter@smitmail.eu>2014-12-22 11:29:02 +0200
commitfff8109567f8296f81954dbf6280eb3049bb3db8 (patch)
tree69fa6db9788dee5aa770b65785e04c052c94a3ed /modules/mahonia/charset.go
parent3af757ed77b5c8763b81f913ec6981671fdd6f26 (diff)
Removing redundant mahonia
Diffstat (limited to 'modules/mahonia/charset.go')
-rw-r--r--modules/mahonia/charset.go115
1 files changed, 0 insertions, 115 deletions
diff --git a/modules/mahonia/charset.go b/modules/mahonia/charset.go
deleted file mode 100644
index eef8ed31..00000000
--- a/modules/mahonia/charset.go
+++ /dev/null
@@ -1,115 +0,0 @@
-// This package is a character-set conversion library for Go.
-//
-// (DEPRECATED: use code.google.com/p/go.text/encoding, perhaps along with
-// code.google.com/p/go.net/html/charset)
-package mahonia
-
-import (
- "bytes"
- "unicode"
-)
-
-// Status is the type for the status return value from a Decoder or Encoder.
-type Status int
-
-const (
- // SUCCESS means that the character was converted with no problems.
- SUCCESS = Status(iota)
-
- // INVALID_CHAR means that the source contained invalid bytes, or that the character
- // could not be represented in the destination encoding.
- // The Encoder or Decoder should have output a substitute character.
- INVALID_CHAR
-
- // NO_ROOM means there were not enough input bytes to form a complete character,
- // or there was not enough room in the output buffer to write a complete character.
- // No bytes were written, and no internal state was changed in the Encoder or Decoder.
- NO_ROOM
-
- // STATE_ONLY means that bytes were read or written indicating a state transition,
- // but no actual character was processed. (Examples: byte order marks, ISO-2022 escape sequences)
- STATE_ONLY
-)
-
-// A Decoder is a function that decodes a character set, one character at a time.
-// It works much like utf8.DecodeRune, but has an additional status return value.
-type Decoder func(p []byte) (c rune, size int, status Status)
-
-// An Encoder is a function that encodes a character set, one character at a time.
-// It works much like utf8.EncodeRune, but has an additional status return value.
-type Encoder func(p []byte, c rune) (size int, status Status)
-
-// A Charset represents a character set that can be converted, and contains functions
-// to create Converters to encode and decode strings in that character set.
-type Charset struct {
- // Name is the character set's canonical name.
- Name string
-
- // Aliases returns a list of alternate names.
- Aliases []string
-
- // NewDecoder returns a Decoder to convert from the charset to Unicode.
- NewDecoder func() Decoder
-
- // NewEncoder returns an Encoder to convert from Unicode to the charset.
- NewEncoder func() Encoder
-}
-
-// The charsets are stored in charsets under their canonical names.
-var charsets = make(map[string]*Charset)
-
-// aliases maps their aliases to their canonical names.
-var aliases = make(map[string]string)
-
-// simplifyName converts a name to lower case and removes non-alphanumeric characters.
-// This is how the names are used as keys to the maps.
-func simplifyName(name string) string {
- var buf bytes.Buffer
- for _, c := range name {
- switch {
- case unicode.IsDigit(c):
- buf.WriteRune(c)
- case unicode.IsLetter(c):
- buf.WriteRune(unicode.ToLower(c))
- default:
-
- }
- }
-
- return buf.String()
-}
-
-// RegisterCharset adds a charset to the charsetMap.
-func RegisterCharset(cs *Charset) {
- name := cs.Name
- charsets[name] = cs
- aliases[simplifyName(name)] = name
- for _, alias := range cs.Aliases {
- aliases[simplifyName(alias)] = name
- }
-}
-
-// GetCharset fetches a charset by name.
-// If the name is not found, it returns nil.
-func GetCharset(name string) *Charset {
- return charsets[aliases[simplifyName(name)]]
-}
-
-// NewDecoder returns a Decoder to decode the named charset.
-// If the name is not found, it returns nil.
-func NewDecoder(name string) Decoder {
- cs := GetCharset(name)
- if cs == nil {
- return nil
- }
- return cs.NewDecoder()
-}
-
-// NewEncoder returns an Encoder to encode the named charset.
-func NewEncoder(name string) Encoder {
- cs := GetCharset(name)
- if cs == nil {
- return nil
- }
- return cs.NewEncoder()
-}