From owner-freebsd-bugs@FreeBSD.ORG Wed Dec 7 18:12:18 2005 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B542E16A420 for ; Wed, 7 Dec 2005 18:12:18 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id E936743D72 for ; Wed, 7 Dec 2005 18:10:18 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.3/8.13.3) with ESMTP id jB7IA2uq040774 for ; Wed, 7 Dec 2005 18:10:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.3/8.13.1/Submit) id jB7IA229040773; Wed, 7 Dec 2005 18:10:02 GMT (envelope-from gnats) Resent-Date: Wed, 7 Dec 2005 18:10:02 GMT Resent-Message-Id: <200512071810.jB7IA229040773@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Oliver Fromme Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0DE2816A42F for ; Wed, 7 Dec 2005 18:08:37 +0000 (GMT) (envelope-from olli@lurza.secnetix.de) Received: from lurza.secnetix.de (lurza.secnetix.de [83.120.8.8]) by mx1.FreeBSD.org (Postfix) with ESMTP id 797F743D94 for ; Wed, 7 Dec 2005 18:08:19 +0000 (GMT) (envelope-from olli@lurza.secnetix.de) Received: from lurza.secnetix.de (qvcpah@localhost [127.0.0.1]) by lurza.secnetix.de (8.13.4/8.13.4) with ESMTP id jB7I8GcT049960; Wed, 7 Dec 2005 19:08:16 +0100 (CET) (envelope-from oliver.fromme@secnetix.de) Received: (from olli@localhost) by lurza.secnetix.de (8.13.4/8.13.1/Submit) id jB7I8Gmm049959; Wed, 7 Dec 2005 19:08:16 +0100 (CET) (envelope-from olli) Message-Id: <200512071808.jB7I8Gmm049959@lurza.secnetix.de> Date: Wed, 7 Dec 2005 19:08:16 +0100 (CET) From: Oliver Fromme To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Oliver Fromme Subject: conf/90082: [syscons] [patch] curses ACS line graphics support for iso15 fonts X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Oliver Fromme List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Dec 2005 18:12:19 -0000 >Number: 90082 >Category: conf >Synopsis: [syscons] [patch] curses ACS line graphics support for iso15 fonts >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Wed Dec 07 18:10:01 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Oliver Fromme >Release: FreeBSD 6.0-STABLE i386 >Organization: secnetix GmbH & Co. KG, Munich, Germany http://www.secnetix.de/bsd >Environment: The solution presented in this PR has been developed and tested under RELENG_6 (6.0-STABLE), but it is believed to apply to all versions from RELENG_4 to -current (HEAD). >Description: Most users in western and central Europe use the "iso15" syscons fonts. Those fonts don't contain the line drawing characters which are present in e.g. the cp437 fonts and are used by various console-based "GUI" programs, including sysinstall, the famous midnight commander and others. Instead, simple ASCII characters such as "+" and "-" are used, which looks ugly. In the past years, a lot of users have complained about that problem (e.g. on the German BSD mailing lists; note that German requires an iso15 font). It was often mentioned that Linux does not suffer from the same problem. The fix below consists of a script that adds the missing characters to the existing iso15-8x*.fnt font files. In conjunction with an appropriate termcap entry, the problem is solved. >How-To-Repeat: Enable one of the "iso15" fonts (vidcontrol -l) and set TERM=cons25l1. Then run sysinstall,midnight commander or any other curses based program that uses line drawing characters for window borders or similar. >Fix: The following script merges line drawing characters from the cp437 fonts into the iso15 fonts. The following files are modified: iso15-8x8.fnt iso15-8x14.fnt iso15-8x16.fnt The script must be run in a directory containing the existing font files, i.e. either in /usr/share/syscons/fonts or in the source tree: /usr/src/share/syscons/fonts The new characters are placed in an unused range of the iso15 fonts, beginning at position 128 (0x80). All existing characters are preserved, so the change should be without any risk. The "cons25l1" entry in the termcap must be changed like this (and don't forget to rebuilt termcap.db with cap_mkdb(1), and logout+login after the change so the TERMCAP variable in your environment gets updated): cons25l1|cons25-iso8859-1:\ :ac=l\200m\201k\202j\203t\204u\205v\206w\207q\210x\211n\212`\213a\214f\260g\261~\267,\215+\216.\217-\220h\221i\2470\222y\223z\224{\225}\243:\ :tc=cons25w: Note: The termcap source directory is /usr/src/share/termcap. Here's the script to modify the fonts: #!/bin/sh - set -e ACS_START=128 CP437_SRC="218 192 191 217 195 180 193 194 196 179 197 4 176 27 26 25 24 177 219 243 242 227" for H in 8 14 16; do CP437="cp437-8x$H" ISO15="iso15-8x$H" DD_ARGS="if=$CP437 of=$ISO15 bs=$H count=1 conv=notrunc" uudecode -p $CP437.fnt > $CP437 uudecode -p $ISO15.fnt > $ISO15 DST="$ACS_START" for SRC in $CP437_SRC; do dd $DD_ARGS skip=$SRC seek=$DST 2>/dev/null DST=$(( $DST + 1 )) done uuencode $ISO15 $ISO15 > $ISO15.fnt rm $CP437 $ISO15 done #END. >Release-Note: >Audit-Trail: >Unformatted: