From: Araki K. <j00...@ip...> - 2002-01-08 07:30:30
|
Hi, Subject: Re: [Mlterm-dev-en] Re: [I18n]Bidi on mlterm From: Noah Levitt <nl...@co...> Message-ID: <200...@co...> Date: Tue, 8 Jan 2002 01:30:44 -0500 > My ~/.mlterm/font is > ISO10646_UCS2_1=-gnu-fixed-*-*-*-h-8-160-*-*-*-*-iso10646-1 > ISO10646_UCS2_1_BIWIDTH=-gnu-fixed-*-*-*-f-16-160-*-*-*-*-iso10646-1 ~/.mlterm/font format is CHARSET=[size],[font]; so , please write as follows in ~/.mlterm/font. ISO10646_UCS2_1=8,-gnu-fixed-medium-r-normal-h-8-160-75-75-c-80-iso10646-1; ISO10646_UCS2_1_BIWIDTH=8,-gnu-fixed-medium-r-normal-f-16-160-75-75-c-80-iso10646-1; and $ mlterm -w 8 -E utf8 > I get a different stack trace: > DEBUG: [ml_bidi()] visual order(29) of 0 is illegal. > > Program received signal SIGABRT, Aborted. > 0x402e9971 in kill () from /lib/libc.so.6 > (gdb) bt > #0 0x402e9971 in kill () from /lib/libc.so.6 > #1 0x402e9775 in raise () from /lib/libc.so.6 > #2 0x402eada3 in abort () from /lib/libc.so.6 > #3 0x08068183 in ml_bidi (order=0x80b1890, src=0x809d2d0, size=29) > at ml_bidi.c:99 > #4 0x0805ef1e in ml_imgline_render_bidi (line=0x809c8a8) > at ml_image_line.c:910 > #5 0x08051df4 in ml_image_render_bidi (image=0x8073030) at ml_image.c:1025 > #6 0x0805b896 in ml_term_screen_stop_vt100_cmd (termscr=0x8072f28) > at ml_term_screen.c:3860 > #7 0x08056354 in ml_parse_vt100_sequence (vt100_parser=0x80a8408) > at ml_vt100_parser.c:2426 > #8 0x0806510a in receive_next_event (term_man=0xbffff650) > at ml_term_manager.c:619 > #9 0x080669c9 in ml_term_manager_event_loop (term_man=0xbffff650) > at ml_term_manager.c:1523 > #10 0x0805fcf9 in main (argc=6, argv=0xbffff994) at main.c:44 > #11 0x402d75b0 in __libc_start_main () from /lib/libc.so.6 This error means that fribidi_log2vis() returns strange values , but I don't still know why this happens... Would you please patch an attached file to src/ml_bidi.c , do $ mlterm -km utf8 -bi -w 8 2> log and send me the log file ? I want to know what happens around fribid_log2vis() ... >> uum ... "f-16" and "h-8" seems somewhat strange and designed only for xterm , >> but is it preferable to support these styles ? > Kubota san > I don't really know anything about fonts, but I was under > the impression that these two fonts made sense as values for > the ISO10646_UCS2_1 and ISO10646_UCS2_1_BIWIDTH parameters. > (The "f" and "h" stand for full-width and half-width, I > think.) I am curious as to what usual values for > ISO10646_UCS2_1 and ISO10646_UCS2_1_BIWIDTH are. I also use > these fonts in vim, as my "guifont" and "guifontwide". what i wrote is inadequate , sorry. XLFD font size value of CJK full width fonts(and some other Unicode fonts) is usually the same as the half width one. For example , -efont-biwidth-medium-r-normal--12-120-75-75-p-60-iso10646-1 ^^ is full width font for 12 dot and -efont-fixed-medium-r-normal--12-120-75-75-c-60-iso10646-1 ^^ is half width font for 12 dot. "f-16" and "h-8" , both which I think are the same height , seem somewhat strange for me. That's why i wrote "is it preferable to support these styles?" , which means whether "f-[size]" font shoule be searched for *automatically* or not. I am afraid it can have some secondary bad effects. (e.g. loading twice as large font as expected...) Of cource , specifying these font explicitly in ~/.mlterm/font like ISO10646_UCS2_1_BIWIDTH=8,-gnu-fixed-medium-r-normal-f-16-160-75-75-c-80-iso10646-1; ISO10646_UCS2_1=8,-gnu-fixed-medium-r-normal-h-8-160-75-75-c-80-iso10646-1; is completely ok:) -- kiken j00...@ip... Index: ml_bidi.c =================================================================== RCS file: /home/ken/cvsroot/mlterm/src/ml_bidi.c,v retrieving revision 1.8 diff -u -r1.8 ml_bidi.c --- ml_bidi.c 2002/01/07 00:57:35 1.8 +++ ml_bidi.c 2002/01/08 07:10:41 @@ -9,7 +9,7 @@ #include <kiklib/kik_mem.h> /* alloca */ -#if 0 +#if 1 #define __DEBUG #endif @@ -72,7 +72,14 @@ /* white space */ fri_src[counter] = 0x20 ; } + + #ifdef __DEBUG + fprintf( stderr , "%.4x " , fri_src[counter]) ; + #endif } +#ifdef __DEBUG + fprintf( stderr , "\n") ; +#endif /* initial state */ type = FRIBIDI_TYPE_LTR ; @@ -83,7 +90,7 @@ printf( "visual order => ") ; for( counter = 0 ; counter < size ; counter ++) { - printf( "%.2d" , order[counter]) ; + printf( "%.2d " , order[counter]) ; } printf( "\n") ; #endif |