トップ 最新 追記

Masa's blog

検索キーワード:

2012年10月29日 Converter for SKK's dictionary to OpenPOBox's dictionary [長年日記]

_ Converter for SKK's dictionary to OpenPOBox's dictionary

#! /bin/sh
#
# skk2pbdic.sh
#
for i in `cat $* |\
	egrep -v '^;' |\
	sed -e 's/  */=/g'`
do
	yomi=`echo $i |\
		cut -d '=' -f 1 |\
		sed -e 's/ー/-/g;s/ン/nn/g;s/ん/nn/g' |\
		kakasi -rk -Ea -Ka -Ha -Ja |\
		tr 'A-Z' 'a-z'`
	tangos=`echo $i |\
		cut -d '=' -f 2- |\
		sed -e 's/;[^/]*\//\//g;
			s/^\///;
			s/\/$//;
			s/\// /g'`
	for j in ${tangos}
	do
		tango=`echo $j |\
			tr '=' ' '`
		echo -e "${yomi}\t${tango}"
	done
done

How to use

skk2pbdic.sh SKK-JISYO.L | sort | uniq >staticdic

Links


2012年10月31日 w100fb double buffering patch for linux-3.1.10(zaurus ARMedslack-14.0) [長年日記]

_ double buffering patch for w100fb.c of linux-3.1.10

This double buffering patch for w100fb.c is based on w100_pan_display - steleto's diary.

*** drivers/video/w100fb.c.ORG	2012-10-30 12:21:33.240038082 +0900
--- drivers/video/w100fb.c	2012-10-30 13:23:10.080014686 +0900
***************
*** 520,526 ****
  		par->mode = w100fb_get_mode(par, &par->xres, &par->yres, 0);

  		info->fix.visual = FB_VISUAL_TRUECOLOR;
! 		info->fix.ypanstep = 0;
  		info->fix.ywrapstep = 0;
  		info->fix.line_length = par->xres * BITS_PER_PIXEL / 8;

--- 520,526 ----
  		par->mode = w100fb_get_mode(par, &par->xres, &par->yres, 0);

  		info->fix.visual = FB_VISUAL_TRUECOLOR;
! 		info->fix.ypanstep = 1;
  		info->fix.ywrapstep = 0;
  		info->fix.line_length = par->xres * BITS_PER_PIXEL / 8;

***************
*** 540,545 ****
--- 540,580 ----
  }


+ static int w100fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
+ {
+        struct w100fb_par *par = info->par;
+        int yres = 0, offset = 0;
+
+        if (par->xres == par->mode->xres) {
+                if (par->flip) {
+                        /* 180 degree */
+                        yres = info->var.yres + var->yoffset;
+                        offset = (info->var.xres * yres) - 1;
+                } else {
+                        /*   0 degree */
+                        offset = info->var.xres * var->yoffset;
+                }
+        } else {
+                if (par->flip) {
+                        /* 270 degree */
+                        offset = info->var.xres * var->yoffset - 1;
+                } else {
+                        /*  90 degree */
+                        yres = info->var.yres + var->yoffset;
+                        offset = par->xres * (yres - 1);
+                }
+        }
+
+        w100_update_disable();
+
+        writel(W100_FB_BASE + ((offset * BITS_PER_PIXEL / 8) & ~0x03UL),
+               remapped_regs + mmGRAPHIC_OFFSET);
+
+        w100_update_enable();
+
+        return 0;
+ }
+
  /*
   *  Frame buffer operations
   */
***************
*** 553,558 ****
--- 588,594 ----
  	.fb_copyarea  = w100fb_copyarea,
  	.fb_imageblit = cfb_imageblit,
  	.fb_sync      = w100fb_sync,
+ 	.fb_pan_display = w100fb_pan_display,
  };

  #ifdef CONFIG_PM