summaryrefslogtreecommitdiff
path: root/misc/pylib/robofab/tools/glyphNameSchemes.py
diff options
context:
space:
mode:
Diffstat (limited to 'misc/pylib/robofab/tools/glyphNameSchemes.py')
-rwxr-xr-xmisc/pylib/robofab/tools/glyphNameSchemes.py41
1 files changed, 0 insertions, 41 deletions
diff --git a/misc/pylib/robofab/tools/glyphNameSchemes.py b/misc/pylib/robofab/tools/glyphNameSchemes.py
deleted file mode 100755
index cb6172b9a..000000000
--- a/misc/pylib/robofab/tools/glyphNameSchemes.py
+++ /dev/null
@@ -1,41 +0,0 @@
-"""A separate module for glyphname to filename functions.
-
-glyphNameToShortFileName() generates a non-clashing filename for systems with
-filename-length limitations.
-"""
-
-MAXLEN = 31
-
-def glyphNameToShortFileName(glyphName, glyphSet):
- """Alternative glyphname to filename function.
-
- Features a garuanteed maximum filename for really long glyphnames, and clash testing.
- - all non-ascii characters are converted to "_" (underscore), including "."
- - all glyphnames which are too long are truncated and a hash is added at the end
- - the hash is generated from the whole glyphname
- - finally, the candidate glyphname is checked against the contents.plist
- and a incrementing number is added at the end if there is a clash.
- """
- import binascii, struct, string
- ext = ".glif"
- ok = string.ascii_letters + string.digits + " _"
- h = binascii.hexlify(struct.pack(">l", binascii.crc32(glyphName)))
- n = ''
- for c in glyphName:
- if c in ok:
- if c != c.lower():
- n += c + "_"
- else:
- n += c
- else:
- n += "_"
- if len(n + ext) < MAXLEN:
- return n + ext
- count = 0
- candidate = n[:MAXLEN - len(h + ext)] + h + ext
- if glyphSet is not None:
- names = glyphSet.getReverseContents()
- while candidate.lower() in names:
- candidate = n[:MAXLEN - len(h + ext + str(count))] + h + str(count) + ext
- count += 1
- return candidate