summaryrefslogtreecommitdiffstats
path: root/examples/fontforge-old/FFnameSearchNReplace.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/fontforge-old/FFnameSearchNReplace.py')
-rwxr-xr-xexamples/fontforge-old/FFnameSearchNReplace.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/examples/fontforge-old/FFnameSearchNReplace.py b/examples/fontforge-old/FFnameSearchNReplace.py
new file mode 100755
index 0000000..d2c6176
--- /dev/null
+++ b/examples/fontforge-old/FFnameSearchNReplace.py
@@ -0,0 +1,38 @@
+#!/usr/bin/env python3
+'Search and replace strings in Glyph names. Strings can be regular expressions'
+__url__ = 'https://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2015 SIL International (https://www.sil.org)'
+__license__ = 'Released under the MIT License (https://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+from silfont.core import execute
+import re
+
+argspec = [
+ ('ifont',{'help': 'Input font file'}, {'type': 'infont'}),
+ ('ofont',{'help': 'Output font file','nargs': '?' }, {'type': 'outfont', 'def': 'new'}),
+ ('search',{'help': 'Expression to search for'}, {}),
+ ('replace',{'help': 'Expression to replace with'}, {}),
+ ('-l','--log',{'help': 'Log file'}, {'type': 'outfile', 'def': 'searchNReplace.log'})]
+
+def doit(args) :
+ font=args.ifont
+ search=args.search
+ replace=args.replace
+ logf = args.log
+
+ changes=False
+ for glyph in font :
+ newname = re.sub(search, replace, glyph)
+ if newname != glyph :
+ font[glyph].glyphname=newname
+ changes=True
+ logf.write('Glyph %s renamed to %s\n' % (glyph,newname))
+ logf.close()
+ if changes :
+ return font
+ else :
+ return
+
+def cmd() : execute("FF",doit,argspec)
+if __name__ == "__main__": cmd()