diff options
Diffstat (limited to 'template/encdb.h.tmpl')
-rw-r--r-- | template/encdb.h.tmpl | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/template/encdb.h.tmpl b/template/encdb.h.tmpl index 308227e9e9..a53562f680 100644 --- a/template/encdb.h.tmpl +++ b/template/encdb.h.tmpl @@ -19,9 +19,14 @@ def check_duplication(defs, name, fn, line) end end -count = 0 lines = [] -encodings = [] +BUILTIN_ENCODINGS = { + 'ASCII-8BIT' => 0, + 'UTF-8' => 1, + 'US-ASCII' => 2, +} +encodings = %w[ASCII-8BIT UTF-8 US-ASCII] # BUILTIN_ENCODINGS.keys is not available on cross compiling and used ruby 1.8 +count = encodings.size defs = {} encdirs = ARGV.dup encdirs << 'enc' if encdirs.empty? @@ -44,6 +49,7 @@ encdirs.each do |encdir| name = $1 end check_duplication(defs, $1, fn, $.) + next if BUILTIN_ENCODINGS[name] encodings << $1 count += 1 end @@ -52,6 +58,7 @@ encdirs.each do |encdir| when /^\s*rb_enc_register\(\s*"([^"]+)"/ count += 1 line = nil + encodings << $1 when /^ENC_REPLICATE\(\s*"([^"]+)"\s*,\s*"([^"]+)"/ raise ArgumentError, '%s:%d: ENC_REPLICATE: %s is not defined yet. (replica %s)' % @@ -73,11 +80,16 @@ encdirs.each do |encdir| end end end -encodings.each do |e| +encodings.each_with_index do |e, i| %>ENC_DEFINE("<%=e%>"); +#define ENCIDX_<%=e.tr('-', '_')%> <%=i%> % end +% encidx = encodings.size - 1 % lines.each do |line| <%=line%> +% if /^ENC_(?:DUMMY(?:_UNICODE)?|REPLICATE)\(\s*"([^"]+)/ =~ line +#define ENCIDX_<%=$1.tr('-', '_')%> <%=encidx+=1%> +% end % end #define ENCODING_COUNT <%=count%> |