[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#250376: Yet some other issues



Hi,

Unfortunately, the problem still persists with the 2.4.26 kernel despite 
I apply the patch.  Let me summarize the whole picture:

Below is the current setting in /etc/console-tools/config after the 
'prebaseconfig' invocation:

	SCREEN_FONT_MAP=iso09 # $acm
	SCREEN_FONT=ter-916f  # $consolefont

Symptom: Garbage glyphes are displayed for Turkish characters.

* First attempt towards a solution:  Define APP_CHARSET_MAP.

	SCREEN_FONT_MAP=iso09 # $acm
	SCREEN_FONT=ter-916f  # $consolefont
	APP_CHARSET_MAP=iso09 # $acm

This fixes the Turkish console for only the kernel 2.6.x (though some 
side-effects still exist i.e. some box drawing characters are not 
properly displayed), kernel 2.4.x still remains unresolved.  

* Second attempt:  Define APP_CHARSET_MAP, _undefine_  SCREEN_FONT_MAP.
	
	#SCREEN_FONT_MAP=iso09 # Just leave it untouched.
	SCREEN_FONT=ter-916f   # $consolefont
	APP_CHARSET_MAP=iso09  # $acm

This fixes the console for both kernels (without any _side-effects_).
For the kernel 2.4.x, there is a strange interaction between 
SCREEN_FONT_MAP and APP_CHARSET_MAP.  I don't know why, but seeing the 
facts that (1) there is no such problem in kernel 2.6.x and (2) 2.6.x 
AFAIK has a new console API, it appears to me that kernel 2.4.x has some 
bugs at least for the iso09 case.  I suggest that the problem should be 
tested for other encodings.

As my proposed solution, I've sent a new patch set.  I don't want to 
define a special 'consoletype' (like 'cyr' for cyrillic) in languagelist 
just to handle the Turkish console, so I modified the code for the 
consoletype 'kbd'.  But of course you may want to insert a separate code 
for Turkish under a special consoletype, i.e. something like 'trk' 
defined by the following line in languagelist as follows:

	Turkish;tr_TR;tr;TR;;trk=ter-916f(iso09)

Hope this bug is resolved before the next release.

Regards,

-- 
roktas
--- prebaseconfig	2004-04-13 10:57:45.000000000 +0300
+++ prebaseconfig.new	2004-05-23 08:07:19.000000000 +0300
@@ -20,15 +20,16 @@
         acm=`echo $consolefont | sed -e 's/.*(//' -e 's/).*//'`
         [ "$acm" = utf8 ] && acm=
         if [ -n "$acm" ]; then
-            sed -e "s/^#SCREEN_FONT_MAP=iso01/SCREEN_FONT_MAP=$acm/" \
-                $ctconfig > $ctconfig.tmp && \
-            mv $ctconfig.tmp $ctconfig
+	    if [ "$acm" = "iso09" ]; then
+		# Special case for Turkish console.
+                echo "APP_CHARSET_MAP=iso09"
+	    else
+                echo "SCREEN_FONT_MAP=$acm"
+	    fi >> $ctconfig
         fi
         consolefont=`echo $consolefont | sed -e 's/(.*//'`
         if [ -n "$consolefont" ]; then
-            sed -e "s/^#SCREEN_FONT=iso01.f16/SCREEN_FONT=$consolefont/" \
-                $ctconfig > $ctconfig.tmp && \
-            mv $ctconfig.tmp $ctconfig
+            echo "SCREEN_FONT=$consolefont" >> $ctconfig
         fi
     fi
     ;;
--- prebaseconfig	2004-04-13 10:57:45.000000000 +0300
+++ prebaseconfig.new	2004-05-23 07:58:29.000000000 +0300
@@ -20,9 +20,12 @@
         acm=`echo $consolefont | sed -e 's/.*(//' -e 's/).*//'`
         [ "$acm" = utf8 ] && acm=
         if [ -n "$acm" ]; then
-            sed -e "s/^#SCREEN_FONT_MAP=iso01/SCREEN_FONT_MAP=$acm/" \
-                $ctconfig > $ctconfig.tmp && \
-            mv $ctconfig.tmp $ctconfig
+	    if [ "$acm" = "iso09" ]; then
+		# Special case for Turkish console.
+                sed -e "s/^#APP_CHARSET_MAP=iso05/APP_CHARSET_MAP=$acm/"
+	    else
+                sed -e "s/^#SCREEN_FONT_MAP=iso01/SCREEN_FONT_MAP=$acm/"
+	    fi < $ctconfig > $ctconfig.tmp && mv $ctconfig.tmp $ctconfig
         fi
         consolefont=`echo $consolefont | sed -e 's/(.*//'`
         if [ -n "$consolefont" ]; then

Attachment: signature.asc
Description: Digital signature


Reply to: