o
    Z#ûa  ã                   @   sP   d Z ddlmZmZ ddddddd	œZd
dddœZdd„ ZG dd„ dejƒZdS )z*
Parse X Bitmap Distribution Format (BDF)
é   )ÚFontFileÚImageÚRomanÚItalicÚObliquezReverse ItaliczReverse ObliqueÚOther)ÚRÚIÚOÚRIÚROÚOTÚProportionalÚ
MonospacedÚCell)ÚPÚMÚCc                 C   sŠ  	 |   ¡ }|s	d S |d d… dkrnq|dd …  ¡  d¡}i }	 |   ¡ }|r/|d d… dkr0n| d¡}||d d	…  d¡||d |…  d¡< q!g }	 |   ¡ }|r[|d d
… dkr\n
| |d d	… ¡ qMd |¡}dd„ |d  ¡ D ƒ\}}}}	dd„ |d  ¡ D ƒ\}
}|
|f||	 | || |	 fdd||ff}zt d||f|dd¡}W n t	yº   t 
d||f¡}Y nw |t|d ƒ||fS )NTé	   s	   STARTCHARÚasciié   s   BITMAPó    r   éÿÿÿÿé   s   ENDCHARó    c                 S   ó   g | ]}t |ƒ‘qS © ©Úint©Ú.0Úpr   r   ú1/usr/lib/python3/dist-packages/PIL/BdfFontFile.pyÚ
<listcomp>C   ó    zbdf_char.<locals>.<listcomp>ÚBBXc                 S   r   r   r   r   r   r   r"   r#   D   r$   ÚDWIDTHé    Ú1ÚhexÚENCODING)ÚreadlineÚstripÚdecodeÚfindÚappendÚjoinÚsplitr   Ú	frombytesÚ
ValueErrorÚnewr   )ÚfÚsÚidÚpropsÚiÚbitmapÚxÚyÚlÚdÚdxÚdyÚbboxÚimr   r   r"   Úbdf_char'   sB   û
(ûü
*þrC   c                       s    e Zd ZdZ‡ fdd„Z‡  ZS )ÚBdfFontFilez(Font file plugin for the X11 BDF format.c                    s  t ƒ  ¡  | ¡ }|d d… dkrtdƒ‚i }g }	 | ¡ }|r(|d d… dkr)n7| d¡}||d d…  d	¡||d |…  d	¡< |d |… d
v r_| d¡dk r_| ||d d…  d	¡¡ q	 t|ƒ}|sid S |\}}\}	}
}}d|  krt| j	ƒk rŠn n	|	|
||f| j	|< qa)Né   s   STARTFONT 2.1znot a valid BDF fileTs   ENDPROPERTIESr   r   r   r   )s   COMMENTs	   COPYRIGHTs   LogicalFontDescriptionr'   )
ÚsuperÚ__init__r+   ÚSyntaxErrorr.   r-   r/   rC   ÚlenÚglyph)ÚselfÚfpr6   r8   Úcommentsr9   Úcr7   ÚchÚxyÚdstÚsrcrB   ©Ú	__class__r   r"   rG   T   s0   

(ø
úzBdfFontFile.__init__)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rG   Ú__classcell__r   r   rS   r"   rD   Q   s    rD   N)rX   Ú r   r   Ú	bdf_slantÚbdf_spacingrC   rD   r   r   r   r"   Ú<module>   s   ú	*