googlefonts / googlefonts/glyphsLib
Can't handle empty glyph name
- Dominant language
- Python
- Stars
- 201
- Forks
- 56
- Avg merge
- 17m
- Merged PRs (30d)
- 1
Description
I.e. a `glyphname = "";` in the .glyphs file.
```
Traceback (most recent call last):
File "c:\program files\python38\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\program files\python38\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Program Files\Python38\Scripts\glyphs2ufo.exe\__main__.py", line 7, in
File "c:\program files\python38\lib\site-packages\glyphsLib\cli.py", line 228, in _glyphs2ufo_entry_point
return main(args)
File "c:\program files\python38\lib\site-packages\glyphsLib\cli.py", line 189, in main
return options.func(options)
File "c:\program files\python38\lib\site-packages\glyphsLib\cli.py", line 208, in glyphs2ufo
glyphsLib.build_masters(
File "c:\program files\python38\lib\site-packages\glyphsLib\__init__.py", line 139, in build_masters
source.font.save(ufo_path)
File "c:\program files\python38\lib\site-packages\ufoLib2\objects\font.py", line 546, in save
self.write(writer, saveAs=saveAs)
File "c:\program files\python38\lib\site-packages\ufoLib2\objects\font.py", line 481, in write
self.layers.write(writer, saveAs=saveAs)
File "c:\program files\python38\lib\site-packages\ufoLib2\objects\layerSet.py", line 311, in write
layer.write(glyphSet, saveAs=saveAs)
File "c:\program files\python38\lib\site-packages\ufoLib2\objects\layer.py", line 328, in write
glyphSet.writeGlyph(
File "c:\program files\python38\lib\site-packages\fontTools\ufoLib\glifLib.py", line 455, in writeGlyph
fileName = self.glyphNameToFileName(glyphName, self._existingFileNames.values())
File "c:\program files\python38\lib\site-packages\fontTools\ufoLib\glifLib.py", line 573, in glyphNameToFileName
return userNameToFileName(glyphName, existing=existingFileNames, suffix=".glif")
File "c:\program files\python38\lib\site-packages\fontTools\ufoLib\filenames.py", line 76, in userNameToFileName
if not prefix and userName[0] == ".":
IndexError: string index out of range
```
Contributor guide
Research direction
Reproduce the failure with a .glyphs file containing glyphname = "" and trace the conversion from glyphsLib/cli.py through glyphsLib/__init__.py to the UFO save operation shown in the traceback. Done means the conversion handles the empty glyph name without the reported IndexError.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100