Bug 691097

Summary: get_next_char maps '?' on 'space' when using UFST with lineprinter font
Product: GhostPCL Reporter: norbert.janssen
Component: PCL fontsAssignee: Henry Stiles <henry.stiles>
Status: NOTIFIED DUPLICATE    
Severity: normal    
Priority: P4    
Version: master   
Hardware: PC   
OS: Windows XP   
Customer: 661 Word Size: ---

Description norbert.janssen 2010-02-01 02:20:42 UTC
When compiling with the UFST fontrasterizer and printing attached testfile
(selecting lineprinter font) and printing the '?' character a ' ' (space) is
printed instead. When using AFS it is printed correctly.

Caused by this piece of code in pctext.c :: get_next_char()

    if (plfont->storage == pcds_internal && chr == 0x0020) {
        *pis_space = true;
        *pchr = 0xffff;
        return 0;
     }

    /* check if the character is in the font and get the character
       width at the same time */

I.e. pl_map_symbol(...) returned (chr = 32)
the '?' has key=32 in the pl_map_m2u[] (With AFS the pl_map_symbol() skips the
pl_map_Unicode_to_MSL() because of is_MSL == 0 (with UFST is_MSL == 1).
pl_load_ufst_lineprinter() in plulfont.c sets the lineprinterfont to be MSL.
Comment 1 norbert.janssen 2010-02-01 02:49:06 UTC
due to slow connection I submitted the bug twice

*** This bug has been marked as a duplicate of 691098 ***
Comment 2 Marcos H. Woehrmann 2011-09-18 21:47:03 UTC
Changing customer bugs that have been resolved more than a year ago to closed.