Esempio n. 1
0
import stringprep
import util

if len(sys.argv) != 3:
    print "usage: %s rfc3454.txt out-dir" % sys.argv[0]
    sys.exit(1)

tables = rfc3454.read(sys.argv[1])
t2 = rfc4518.read()

for x in t2:
    tables[x] = t2[x]

map_list = stringprep.get_maplist()

map_h = generate.Header('%s/map_table.h' % sys.argv[2])

map_c = generate.Implementation('%s/map_table.c' % sys.argv[2])

map_h.file.write(
'''
#include "windlocl.h"

struct translation {
  uint32_t key;
  unsigned short val_len;
  unsigned short val_offset;
  wind_profile_flags flags;
};

extern const struct translation _wind_map_table[];
Esempio n. 2
0
def sortedKeys(d):
    """Return a sorted list of the keys of a dict"""
    keys = d.keys()
    keys.sort()
    return keys


trans = dict([(k, [re.sub('<[a-zA-Z]+>', '', v[4]), v[0]])
              for k, v in ud.items() if v[4]])

maxLength = 0
for v in trans.values():
    maxLength = max(maxLength, len(v[0].split()))

normalize_h = generate.Header('%s/normalize_table.h' % sys.argv[3])
normalize_c = generate.Implementation('%s/normalize_table.c' % sys.argv[3])

normalize_h.file.write('''
#include <krb5-types.h>

#define MAX_LENGTH_CANON %u

struct translation {
  uint32_t key;
  unsigned short val_len;
  unsigned short val_offset;
};

extern const struct translation _wind_normalize_table[];
Esempio n. 3
0
import rfc4518
import stringprep

if len(sys.argv) != 3:
    print("usage: %s rfc3454.txt out-dir" % sys.argv[0])
    sys.exit(1)

tables = rfc3454.read(sys.argv[1])
t2 = rfc4518.read()

for x in t2.keys():
    tables[x] = t2[x]

error_list = stringprep.get_errorlist()

errorlist_h = generate.Header('%s/errorlist_table.h' % sys.argv[2])

errorlist_c = generate.Implementation('%s/errorlist_table.c' % sys.argv[2])

errorlist_h.file.write(
'''
#include "windlocl.h"

struct error_entry {
  uint32_t start;
  unsigned len;
  wind_profile_flags flags;
};

extern const struct error_entry _wind_errorlist_table[];
Esempio n. 4
0
# SUCH DAMAGE. 

import re
import string
import sys

import generate
import rfc3454

if len(sys.argv) != 3:
    print "usage: %s rfc3454.txt outdir" % sys.argv[0]
    sys.exit(1)

tables = rfc3454.read(sys.argv[1])

bidi_h = generate.Header('%s/bidi_table.h' % sys.argv[2])

bidi_c = generate.Implementation('%s/bidi_table.c' % sys.argv[2])

bidi_h.file.write(
'''
#include <krb5-types.h>

struct range_entry {
  uint32_t start;
  unsigned len;
};

extern const struct range_entry _wind_ral_table[];
extern const struct range_entry _wind_l_table[];
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
# SUCH DAMAGE. 

import re
import string
import sys

import generate

if len(sys.argv) != 3:
    print "usage: %s rfc3492.txt" % sys.argv[0]
    sys.exit(1)

f = open(sys.argv[1], 'r')

examples_h = generate.Header('%s/punycode_examples.h' % sys.argv[2])
examples_c = generate.Header('%s/punycode_examples.c' % sys.argv[2])

start = False

while True:
    l = f.readline()
    if not l:
        break
    if l[-2:] == "\\\n":
        l2 = f.readline()
        if not l2:
            raise Exception("EOF in backslash escape")
        l2 = re.sub('^ *', '', l2)
        l = l[:-2] + l2
    if start:
Esempio n. 6
0
import UnicodeData

if len(sys.argv) != 3:
    print "usage: %s UnicodeData.txt out-dir" % sys.argv[0]
    sys.exit(1)

ud = UnicodeData.read(sys.argv[1])

trans = {}
for k, v in ud.items():
    if int(v[2]) != 0:
        trans[k] = [int(v[2]), v[1]]

# trans = [(x[0], int(x[3]), x[1]) for x in UnicodeData.read() if int(x[3]) != 0]

combining_h = generate.Header('%s/combining_table.h' % sys.argv[2])
combining_c = generate.Implementation('%s/combining_table.c' % sys.argv[2])

combining_h.file.write('''
#include <krb5-types.h>

struct translation {
  uint32_t key;
  unsigned combining_class;	
};

extern const struct translation _wind_combining_table[];

extern const size_t _wind_combining_table_size;
''')