summaryrefslogtreecommitdiff
path: root/x11/mlterm
diff options
context:
space:
mode:
authortsutsui <tsutsui@pkgsrc.org>2015-06-13 21:25:45 +0000
committertsutsui <tsutsui@pkgsrc.org>2015-06-13 21:25:45 +0000
commit905ccaf4e9058ee0ba0fde8e562db22206c6ad75 (patch)
tree66724849341691d3254e69ccc1ad845de22d45a6 /x11/mlterm
parent338acbb1a5cc660ee6d17b4127ed5f367b82fea2 (diff)
downloadpkgsrc-905ccaf4e9058ee0ba0fde8e562db22206c6ad75.tar.gz
Update mlterm to 3.5.0.
pkgsrc changes: - handle new canna and wnn input method plugins as options - remove post-3.4.5 patch - pull the following post-3.5.0 Romanized Japanese conversion updates for wnn: https://bitbucket.org/arakiken/mlterm/commits/8de212cf5b3ec7f77ce1f9f6aa66770cb28b935e Changes noted in doc/en/ReleaseNote: ver 3.5.0 * Support WSDISPLAYIO_GET_FBINFO on NetBSD/framebuffer. * Support Canna (--im canna) and Freewnn (--im wnn) as input method plugins. * Support vertical and horizontal screen separation. (Note that -s=false option disables not only scrollbar but also screen separation.) * Add HSPLIT_SCREEN(Shift+F1), VSPLIT_SCREEN(Shift+F2), NEXT_SCREEN(Shift+F3), PREV_SCREEN(Shift+F4), CLOSE_SCREEN(Shift+F5), HEXPAND_SCREEN(Shift+F6) and VEXPAND_SCREEN(Shift+F7) to shortcut key settings. * Add "hsplit_screen", "vsplit_screen", "hresize_screen", "vresize_screen" and "next_screen" to OSC 5379. * Rename "use_scrollbar" option to "use_mdi" which enables not only scrollbar but also screen separation. * Support Allow132 (CSI?40h, CSI?40l). (Merge https://gist.github.com/saitoha/4b320b9cb6d637d14dbc) * HankakuZenkaku key works on Linux/framebuffer. * Bug fixes: Fix stiff behavior of "use_local_echo=true" on ssh connection by libssh2. Fix a bug which disabled OSC 5379 show_picture URL on all platforms except win32. (enbugged at 3.4.2)
Diffstat (limited to 'x11/mlterm')
-rw-r--r--x11/mlterm/Makefile5
-rw-r--r--x11/mlterm/PLIST10
-rw-r--r--x11/mlterm/distinfo12
-rw-r--r--x11/mlterm/options.mk18
-rw-r--r--x11/mlterm/patches/patch-configure6
-rw-r--r--x11/mlterm/patches/patch-inputmethod_wnn_im__wnn.c234
-rw-r--r--x11/mlterm/patches/patch-xwindow_fb_x__display__wscons.c123
7 files changed, 267 insertions, 141 deletions
diff --git a/x11/mlterm/Makefile b/x11/mlterm/Makefile
index d7ae2fa9df1..740c8bc9215 100644
--- a/x11/mlterm/Makefile
+++ b/x11/mlterm/Makefile
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.118 2015/04/25 14:25:14 tnn Exp $
+# $NetBSD: Makefile,v 1.119 2015/06/13 21:25:45 tsutsui Exp $
-DISTNAME= mlterm-3.4.5
-PKGREVISION= 2
+DISTNAME= mlterm-3.5.0
CATEGORIES= x11
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=mlterm/}
diff --git a/x11/mlterm/PLIST b/x11/mlterm/PLIST
index ad18e8f1e48..3cf8f19423c 100644
--- a/x11/mlterm/PLIST
+++ b/x11/mlterm/PLIST
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.31 2014/11/02 19:38:12 tsutsui Exp $
+@comment $NetBSD: PLIST,v 1.32 2015/06/13 21:25:45 tsutsui Exp $
bin/mlcc
bin/mlclient
bin/mlclientx
@@ -14,14 +14,18 @@ lib/mkf/libmkf_zh.la
lib/mlterm/libathena.la
${PLIST.bidi}lib/mlterm/libctl_bidi.la
${PLIST.ind}lib/mlterm/libctl_iscii.la
+${PLIST.canna}lib/mlterm/libim-canna.la
+${PLIST.fb}${PLIST.canna}lib/mlterm/libim-canna-fb.la
+${PLIST.ibus}lib/mlterm/libim-ibus.la
+${PLIST.fb}${PLIST.ibus}lib/mlterm/libim-ibus-fb.la
lib/mlterm/libim-kbd.la
${PLIST.fb}lib/mlterm/libim-kbd-fb.la
${PLIST.m17nlib}lib/mlterm/libim-m17nlib.la
${PLIST.fb}${PLIST.m17nlib}lib/mlterm/libim-m17nlib-fb.la
${PLIST.uim}lib/mlterm/libim-uim.la
${PLIST.fb}${PLIST.uim}lib/mlterm/libim-uim-fb.la
-${PLIST.ibus}lib/mlterm/libim-ibus.la
-${PLIST.fb}${PLIST.ibus}lib/mlterm/libim-ibus-fb.la
+${PLIST.wnn}lib/mlterm/libim-wnn.la
+${PLIST.fb}${PLIST.wnn}lib/mlterm/libim-wnn-fb.la
${PLIST.ind}lib/mlterm/libind_assamese.la
${PLIST.ind}lib/mlterm/libind_bengali.la
${PLIST.ind}lib/mlterm/libind_gujarati.la
diff --git a/x11/mlterm/distinfo b/x11/mlterm/distinfo
index c66ac4d33a8..855c24258e8 100644
--- a/x11/mlterm/distinfo
+++ b/x11/mlterm/distinfo
@@ -1,8 +1,8 @@
-$NetBSD: distinfo,v 1.57 2015/03/21 20:41:37 tsutsui Exp $
+$NetBSD: distinfo,v 1.58 2015/06/13 21:25:45 tsutsui Exp $
-SHA1 (mlterm-3.4.5.tar.gz) = a5b52eddccca4a43db1321c35265ac7839de75cf
-RMD160 (mlterm-3.4.5.tar.gz) = ce4d3e37bb66725159dc9d71e28e128a8ddc2622
-Size (mlterm-3.4.5.tar.gz) = 3659801 bytes
-SHA1 (patch-configure) = 12f0edc0f53a9624da7d99202748f6bb1ee547ef
+SHA1 (mlterm-3.5.0.tar.gz) = 3660caec5be87a83279146209415324e42e84bf9
+RMD160 (mlterm-3.5.0.tar.gz) = 5e4d59692388ba3dd9e771c1c1bc5a5831d10249
+Size (mlterm-3.5.0.tar.gz) = 3707639 bytes
+SHA1 (patch-configure) = 686754205102c2ffeb2456b4fad77f72b1a992a6
SHA1 (patch-etc_font-fb) = e8d7b3171bfe7c3c26b50c0dacdafeca4fa4dfd7
-SHA1 (patch-xwindow_fb_x__display__wscons.c) = e3b30c3cdb656e9c16a8f9e99ee6b76511d9ef7d
+SHA1 (patch-inputmethod_wnn_im__wnn.c) = 926ac666bc528013e5190245f0e30955125291dc
diff --git a/x11/mlterm/options.mk b/x11/mlterm/options.mk
index 5b5945fba19..aa2f7ba5fc6 100644
--- a/x11/mlterm/options.mk
+++ b/x11/mlterm/options.mk
@@ -1,7 +1,7 @@
-# $NetBSD: options.mk,v 1.8 2014/11/02 19:38:12 tsutsui Exp $
+# $NetBSD: options.mk,v 1.9 2015/06/13 21:25:45 tsutsui Exp $
PKG_OPTIONS_VAR= PKG_OPTIONS.mlterm
-PKG_SUPPORTED_OPTIONS= cairo fribidi gdk_pixbuf2 ibus libind m17nlib mlterm-fb uim xft2
+PKG_SUPPORTED_OPTIONS= cairo canna fribidi gdk_pixbuf2 ibus libind m17nlib mlterm-fb uim wnn4 xft2
PKG_SUGGESTED_OPTIONS= cairo fribidi gdk_pixbuf2 xft2
.if ${OPSYS} == "NetBSD" || ${OPSYS} == "FreeBSD" || ${OPSYS} == "Linux"
PKG_SUGGESTED_OPTIONS+= mlterm-fb
@@ -9,7 +9,7 @@ PKG_SUGGESTED_OPTIONS+= mlterm-fb
.include "../../mk/bsd.options.mk"
-PLIST_VARS+= bidi cairo fb ibus ind m17nlib uim xft2
+PLIST_VARS+= bidi cairo canna fb ibus ind m17nlib uim wnn xft2
.if !empty(PKG_OPTIONS:Mmlterm-fb)
CONFIGURE_ARGS+= --with-gui=xlib,fb
@@ -24,6 +24,12 @@ PLIST.cairo= yes
.else
.endif
+.if !empty(PKG_OPTIONS:Mcanna)
+.include "../../inputmethod/canna-lib/buildlink3.mk"
+CONFIGURE_ARGS+= --enable-canna
+PLIST.canna= yes
+.endif
+
.if !empty(PKG_OPTIONS:Mfribidi)
.include "../../converters/fribidi/buildlink3.mk"
CONFIGURE_ARGS+= --enable-fribidi
@@ -62,6 +68,12 @@ PLIST.uim= yes
LICENSE+= AND gnu-lgpl-v2
.endif
+.if !empty(PKG_OPTIONS:Mwnn4)
+.include "../../inputmethod/ja-freewnn-lib/buildlink3.mk"
+CONFIGURE_ARGS+= --enable-wnn
+PLIST.wnn= yes
+.endif
+
.if !empty(PKG_OPTIONS:Mxft2)
.include "../../x11/libXft/buildlink3.mk"
PLIST.xft2= yes
diff --git a/x11/mlterm/patches/patch-configure b/x11/mlterm/patches/patch-configure
index ba4dbd786b9..1a07ed5879d 100644
--- a/x11/mlterm/patches/patch-configure
+++ b/x11/mlterm/patches/patch-configure
@@ -1,10 +1,10 @@
-$NetBSD: patch-configure,v 1.12 2015/03/14 14:59:27 tsutsui Exp $
+$NetBSD: patch-configure,v 1.13 2015/06/13 21:25:45 tsutsui Exp $
- setuid root is handled by SPECIAL_PERMS in pkgsrc
---- configure.orig 2015-03-14 04:47:31.000000000 +0000
+--- configure.orig 2015-06-07 01:36:26.000000000 +0000
+++ configure
-@@ -21659,7 +21659,7 @@ else
+@@ -21667,7 +21667,7 @@ else
fi
if test "$gui" = "fb" ; then
diff --git a/x11/mlterm/patches/patch-inputmethod_wnn_im__wnn.c b/x11/mlterm/patches/patch-inputmethod_wnn_im__wnn.c
new file mode 100644
index 00000000000..41b94b784c4
--- /dev/null
+++ b/x11/mlterm/patches/patch-inputmethod_wnn_im__wnn.c
@@ -0,0 +1,234 @@
+$NetBSD: patch-inputmethod_wnn_im__wnn.c,v 1.1 2015/06/13 21:25:45 tsutsui Exp $
+
+- Pull the following Romanized Japanese conversion updates for wnn:
+ https://bitbucket.org/arakiken/mlterm/commits/8de212cf5b3ec7f77ce1f9f6aa66770cb28b935e
+
+--- inputmethod/wnn/im_wnn.c.orig 2015-06-07 01:36:25.000000000 +0000
++++ inputmethod/wnn/im_wnn.c
+@@ -407,12 +407,12 @@ insert_char(
+ { 0xa4d0 , 0xa4d3 , 0xa4d6 , 0xa4d9 , 0xa4dc } , /* b */
+ { 0xa4ab , 0xa4ad , 0xa4af , 0xa4b1 , 0xa4b3 } , /* c */
+ { 0xa4c0 , 0xa4c2 , 0xa4c5 , 0xa4c7 , 0xa4c9 } , /* d */
+- { 0xa4e3 , 0 , 0xa4e5 , 0 , 0xa4e7 } , /* xy */
+- { 0 , 0 , 0 , 0 , 0 , } ,
++ { 0xa4e3 , 0xa4a3 , 0xa4e5 , 0xa4a7 , 0xa4e7 } , /* xy */
++ { 0 , 0 , 0xa4d5 , 0 , 0 , } , /* f */
+ { 0xa4ac , 0xa4ae , 0xa4b0 , 0xa4b2 , 0xa4b4 } , /* g */
+ { 0xa4cf , 0xa4d2 , 0xa4d5 , 0xa4d8 , 0xa4db } , /* h */
+- { 0 , 0 , 0 , 0 , 0 , } ,
+- { 0 , 0 , 0 , 0 , 0 , } ,
++ { 0xa4e3 , 0 , 0xa4e5 , 0xa4a7 , 0xa4e7 } , /* ch/sh */
++ { 0 , 0xa4b8 , 0 , 0 , 0 , } , /* j */
+ { 0xa4ab , 0xa4ad , 0xa4af , 0xa4b1 , 0xa4b3 } , /* k */
+ { 0xa4a1 , 0xa4a3 , 0xa4a5 , 0xa4a7 , 0xa4a9 } , /* l */
+ { 0xa4de , 0xa4df , 0xa4e0 , 0xa4e1 , 0xa4e2 } , /* m */
+@@ -433,7 +433,7 @@ insert_char(
+ static wchar sign_table1[] =
+ {
+ 0xa1aa , 0xa1c9 , 0xa1f4 , 0xa1f0 , 0xa1f3 , 0xa1f5 , 0xa1c7 ,
+- 0xa1ca , 0xa1cb , 0xa1f6 , 0xa1dc , 0xa1a4 , 0xa1bd , 0xa1a3 , 0xa1bf ,
++ 0xa1ca , 0xa1cb , 0xa1f6 , 0xa1dc , 0xa1a4 , 0xa1bc , 0xa1a3 , 0xa1bf ,
+ 0xa3b0 , 0xa3b1 , 0xa3b2 , 0xa3b3 , 0xa3b4 , 0xa3b5 , 0xa3b6 , 0xa3b7 ,
+ 0xa3b8 , 0xa3b9 , 0xa1a7 , 0xa1a8 , 0xa1e3 , 0xa1e1 , 0xa1e4 , 0xa1a9 ,
+ 0xa1f7 ,
+@@ -453,30 +453,83 @@ insert_char(
+ jcDeleteChar( wnn->convbuf , 1) ;
+ }
+
+- if( key_char == 'a')
+- {
+- wch = kana_table[wnn->dan].a ;
+- wnn->dan = 0 ;
+- }
+- else if( key_char == 'i')
+- {
+- wch = kana_table[wnn->dan].i ;
+- wnn->dan = 0 ;
+- }
+- else if( key_char == 'u')
++ if( key_char == 'a' || key_char == 'i' || key_char == 'u' ||
++ key_char == 'e' || key_char == 'o')
+ {
+- wch = kana_table[wnn->dan].u ;
+- wnn->dan = 0 ;
+- }
+- else if( key_char == 'e')
+- {
+- wch = kana_table[wnn->dan].e ;
+- wnn->dan = 0 ;
+- }
+- else if( key_char == 'o')
+- {
+- wch = kana_table[wnn->dan].o ;
+- wnn->dan = 0 ;
++ if( wnn->dan == 'f' - 'a')
++ {
++ if( key_char != 'u')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4d5) ; /* hu */
++ wnn->dan = 'x' - 'a' ;
++ }
++ }
++ else if( wnn->dan == 'j' - 'a')
++ {
++ if( key_char != 'i')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4b8) ; /* zi */
++ wnn->dan = 'e' - 'a' ;
++ }
++ }
++
++ if( key_char == 'a')
++ {
++ wch = kana_table[wnn->dan].a ;
++ wnn->dan = 0 ;
++ }
++ else if( key_char == 'i')
++ {
++ if( wnn->dan == 'i' - 'a')
++ {
++ wnn->dan = 0 ;
++
++ return 0 ; /* shi/chi */
++ }
++
++ wch = kana_table[wnn->dan].i ;
++ wnn->dan = 0 ;
++ }
++ else if( key_char == 'u')
++ {
++ if( wnn->dan == 'j' - 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4b8) ; /* zi */
++ wnn->dan = 'e' - 'a' ;
++ }
++ wch = kana_table[wnn->dan].u ;
++ wnn->dan = 0 ;
++ }
++ else if( key_char == 'e')
++ {
++ if( wnn->dan == 'f' - 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4d5) ; /* hu */
++ wnn->dan = 'x' - 'a' ;
++ }
++ else if( wnn->dan == 'j' - 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4b8) ; /* zi */
++ wnn->dan = 'x' - 'a' ;
++ }
++ wch = kana_table[wnn->dan].e ;
++ wnn->dan = 0 ;
++ }
++ else /* if( key_char == 'o') */
++ {
++ if( wnn->dan == 'f' - 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4d5) ; /* hu */
++ wnn->dan = 'x' - 'a' ;
++ }
++ else if( wnn->dan == 'j' - 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4b8) ; /* zi */
++ wnn->dan = 'e' - 'a' ;
++ }
++ wch = kana_table[wnn->dan].o ;
++ wnn->dan = 0 ;
++ }
+ }
+ else if( ( '!' <= key_char && key_char <= '@') ||
+ ( '[' <= key_char && key_char <= '_') ||
+@@ -508,6 +561,11 @@ insert_char(
+ wch = 0xa4f3 ; /* n */
+ wnn->dan = 0 ;
+ }
++ else if( key_char == wnn->dan + 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4c3) ;
++ wch = key_char ;
++ }
+ else if( key_char == 'y')
+ {
+ if( wnn->dan == 'k' - 'a')
+@@ -520,6 +578,56 @@ insert_char(
+ jcInsertChar( wnn->convbuf , 0xa4ae) ; /* gi */
+ wnn->dan = 'x' - 'a' ;
+ }
++ else if( wnn->dan == 's' - 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4b7) ; /* si */
++ wnn->dan = 'x' - 'a' ;
++ }
++ else if( wnn->dan == 'z' - 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4b8) ; /* zi */
++ wnn->dan = 'x' - 'a' ;
++ }
++ else if( wnn->dan == 't' - 'a' || wnn->dan == 'c' - 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4c1) ; /* ti */
++ wnn->dan = 'x' - 'a' ;
++ }
++ else if( wnn->dan == 'd' - 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4c2) ; /* di */
++ wnn->dan = 'x' - 'a' ;
++ }
++ else if( wnn->dan == 'n' - 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4cb) ; /* ni */
++ wnn->dan = 'x' - 'a' ;
++ }
++ else if( wnn->dan == 'h' - 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4d2) ; /* hi */
++ wnn->dan = 'x' - 'a' ;
++ }
++ else if( wnn->dan == 'b' - 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4d3) ; /* bi */
++ wnn->dan = 'x' - 'a' ;
++ }
++ else if( wnn->dan == 'p' - 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4d4) ; /* pi */
++ wnn->dan = 'x' - 'a' ;
++ }
++ else if( wnn->dan == 'm' - 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4df) ; /* mi */
++ wnn->dan = 'x' - 'a' ;
++ }
++ else if( wnn->dan == 'r' - 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4ea) ; /* ri */
++ wnn->dan = 'x' - 'a' ;
++ }
+
+ if( wnn->dan == 'x' - 'a')
+ {
+@@ -546,6 +654,24 @@ insert_char(
+ goto normal ;
+ }
+ }
++ else if( key_char == 'h')
++ {
++ if( wnn->dan == 'c' - 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4c1) ; /* ti */
++ }
++ else if( wnn->dan == 's' - 'a')
++ {
++ jcInsertChar( wnn->convbuf , 0xa4b7) ; /* si */
++ }
++ else
++ {
++ goto normal ;
++ }
++
++ wnn->dan = 'i' - 'a' ;
++ wch = 'h' ;
++ }
+ else
+ {
+ normal:
diff --git a/x11/mlterm/patches/patch-xwindow_fb_x__display__wscons.c b/x11/mlterm/patches/patch-xwindow_fb_x__display__wscons.c
deleted file mode 100644
index 9bb589e0c06..00000000000
--- a/x11/mlterm/patches/patch-xwindow_fb_x__display__wscons.c
+++ /dev/null
@@ -1,123 +0,0 @@
-$NetBSD: patch-xwindow_fb_x__display__wscons.c,v 1.6 2015/03/21 20:41:37 tsutsui Exp $
-
-Pull upstream fix for NetBSD which also affects RPI2:
-https://bitbucket.org/arakiken/mlterm/commits/d2f31b50c2b90bf731ae2223a975d9bb6320478f
-> x_display_wscons.c: WSDISPLAYIO_GET_FBINFO is supported.
-
---- xwindow/fb/x_display_wscons.c.orig 2015-03-14 04:47:23.000000000 +0000
-+++ xwindow/fb/x_display_wscons.c
-@@ -336,6 +336,9 @@ open_display(
- {
- char * dev ;
- struct wsdisplay_fbinfo vinfo ;
-+#ifdef WSDISPLAYIO_GET_FBINFO
-+ struct wsdisplayio_fbinfo vinfo2 ;
-+#endif
- int mode ;
- int wstype ;
- struct rgb_info rgbinfos[] =
-@@ -392,19 +395,45 @@ open_display(
- goto error ;
- }
-
-- if( ioctl( _display.fb_fd , WSDISPLAYIO_GINFO , &vinfo) == -1 ||
-- ioctl( _display.fb_fd , WSDISPLAYIO_GTYPE , &wstype) == -1)
-+ if( ioctl( _display.fb_fd , WSDISPLAYIO_GTYPE , &wstype) == -1)
- {
- #ifdef DEBUG
- kik_debug_printf( KIK_DEBUG_TAG
-- " WSDISPLAYIO_GINFO or WSDISPLAYIO_GTYPE failed.\n") ;
-+ " WSDISPLAYIO_GTYPE failed.\n") ;
-+ #endif
-+
-+ goto error ;
-+ }
-+
-+#ifdef WSDISPLAYIO_GET_FBINFO
-+ vinfo2.fbi_stride = 0 ;
-+ if( ioctl( _display.fb_fd , WSDISPLAYIO_GET_FBINFO , &vinfo2) == 0)
-+ {
-+ vinfo.width = vinfo2.fbi_width ;
-+ vinfo.height = vinfo2.fbi_height ;
-+ vinfo.depth = vinfo2.fbi_bitsperpixel ;
-+ vinfo.cmsize = vinfo2.fbi_subtype.fbi_cmapinfo.cmap_entries ;
-+
-+ /* XXX fbi_fboffset is regarded as multiple of fbi_stride */
-+ _display.yoffset = vinfo2.fbi_fboffset / vinfo2.fbi_stride ;
-+ }
-+ else
-+#endif
-+ if( ioctl( _display.fb_fd , WSDISPLAYIO_GINFO , &vinfo) == 0)
-+ {
-+ _display.yoffset = 0 ;
-+ }
-+ else
-+ {
-+ #ifdef DEBUG
-+ kik_debug_printf( KIK_DEBUG_TAG
-+ " WSDISPLAYIO_GTYPE and WSDISPLAYIO_GET_FBINFO failed.\n") ;
- #endif
-
- goto error ;
- }
-
- _display.xoffset = 0 ;
-- _display.yoffset = 0 ;
-
- _display.width = _disp.width = vinfo.width ;
- _display.height = _disp.height = vinfo.height ;
-@@ -453,6 +482,13 @@ open_display(
- _display.bytes_per_pixel = 4 ;
- }
-
-+#ifdef WSDISPLAYIO_GET_FBINFO
-+ if( vinfo2.fbi_stride > 0)
-+ {
-+ _display.line_length = vinfo2.fbi_stride ;
-+ }
-+ else
-+#endif
- if( ioctl( _display.fb_fd , WSDISPLAYIO_LINEBYTES , &_display.line_length) == -1)
- {
- /* WSDISPLAYIO_LINEBYTES isn't defined in some ports. */
-@@ -554,6 +590,24 @@ open_display(
- goto error ;
- }
- }
-+#ifdef WSDISPLAYIO_GET_FBINFO
-+ else if( vinfo2.fbi_stride > 0)
-+ {
-+ _display.rgbinfo.r_limit = 8 - vinfo2.fbi_subtype.fbi_rgbmasks.red_size ;
-+ _display.rgbinfo.g_limit = 8 - vinfo2.fbi_subtype.fbi_rgbmasks.green_size ;
-+ _display.rgbinfo.b_limit = 8 - vinfo2.fbi_subtype.fbi_rgbmasks.blue_size ;
-+ _display.rgbinfo.r_offset = vinfo2.fbi_subtype.fbi_rgbmasks.red_offset ;
-+ _display.rgbinfo.g_offset = vinfo2.fbi_subtype.fbi_rgbmasks.green_offset ;
-+ _display.rgbinfo.b_offset = vinfo2.fbi_subtype.fbi_rgbmasks.blue_offset ;
-+
-+ #ifdef DEBUG
-+ kik_debug_printf( "FBINFO: (limit)r%d g%d b%d (offset)r%d g%d b%d\n" ,
-+ _display.rgbinfo.r_limit , _display.rgbinfo.g_limit ,
-+ _display.rgbinfo.b_limit , _display.rgbinfo.r_offset ,
-+ _display.rgbinfo.g_offset , _display.rgbinfo.b_offset) ;
-+ #endif
-+ }
-+#endif
- else
- {
- if( _disp.depth == 15)
-@@ -569,7 +623,14 @@ open_display(
- _display.rgbinfo = rgbinfos[2] ;
- }
-
-- if( wstype == WSDISPLAY_TYPE_SUNFFB
-+ if( wstype == WSDISPLAY_TYPE_SUN24 ||
-+ wstype == WSDISPLAY_TYPE_SUNCG12 ||
-+ wstype == WSDISPLAY_TYPE_SUNCG14 ||
-+ wstype == WSDISPLAY_TYPE_SUNTCX ||
-+ wstype == WSDISPLAY_TYPE_SUNFFB
-+ #ifdef WSDISPLAY_TYPE_XVR1000
-+ || wstype == WSDISPLAY_TYPE_XVR1000
-+ #endif
- #ifdef WSDISPLAY_TYPE_VC4
- || wstype == WSDISPLAY_TYPE_VC4
- #endif