diff options
author | tsutsui <tsutsui@pkgsrc.org> | 2015-06-13 21:25:45 +0000 |
---|---|---|
committer | tsutsui <tsutsui@pkgsrc.org> | 2015-06-13 21:25:45 +0000 |
commit | 905ccaf4e9058ee0ba0fde8e562db22206c6ad75 (patch) | |
tree | 66724849341691d3254e69ccc1ad845de22d45a6 /x11/mlterm | |
parent | 338acbb1a5cc660ee6d17b4127ed5f367b82fea2 (diff) | |
download | pkgsrc-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/Makefile | 5 | ||||
-rw-r--r-- | x11/mlterm/PLIST | 10 | ||||
-rw-r--r-- | x11/mlterm/distinfo | 12 | ||||
-rw-r--r-- | x11/mlterm/options.mk | 18 | ||||
-rw-r--r-- | x11/mlterm/patches/patch-configure | 6 | ||||
-rw-r--r-- | x11/mlterm/patches/patch-inputmethod_wnn_im__wnn.c | 234 | ||||
-rw-r--r-- | x11/mlterm/patches/patch-xwindow_fb_x__display__wscons.c | 123 |
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 |