|
graphviz-1.13.20040729.1224
在我的MagicLinux上用dotty时习惯性的用鼠标中键的滚轮
轻轻的向下滚动了一下,居然就core dump了:
[root@MagicLinux lefty]# gdb lefty core.23835
......
#0 0x0805d9f7 in find (tp=0x80bd1f4, ko=0x80895f0, sk=0x0) at tbl.c:479
479 if ((kvlp = tp->lp[GETSKINDEX (tp, sk)]))
(gdb) p/x sk
$1 = 0x0
看看GETSKINDEX是什么东东:
[root@MagicLinux lefty]# grep GETSKINDEX tbl.c
#define GETSKINDEX(tp, sk) (unsigned long) *sk % tp->ln
不core dump才怪!!
patch了一下这个bug:
[root@MagicLinux lefty]# diff tbl.c tbl.c.bk
479,483d478
< /* Add by cloud.040804*/
< if(sk == NULL)
< return NULL;
< /* Add End */
<
最后把这个BUG报告给 [email protected]了,
不能显示中文问题原来是需要在dotty.lefy中硬加入中文字体影射,
然后在dot中指定fontname=Simsun即可!
顺修改了一些功能:
1. 鼠标左键点击不建立新节点,改为中键点击时建立.
2. 移动节点后鼠标左键up时重绘视图.
3. 增加快捷键v显示鸟瞰视图
还没有解决的问题有:
1. 通过左键拖戈来移动图像
2. 通过左建拖戈加shift键来实现放大和缩小
Patch结果如下:
[root@MagicLinux dotty]# diff dotty.lefty dotty.lefty.old
44,45d43
< 'Simsun' =
< '-misc-fixed-medium-r-normal--0-0-0-0-c-0-gbk-0';
55d52
< 'Simsun' = 'Simsun';
[root@MagicLinux dotty]# diff dotty_ui.lefty dotty_ui.lefty.old
236d235
< 'v' = "birdseye view";
281c280
< local gt,vt;
---
> local gt;
286d284
< {
288,291d285
< vt = dotty.views[data.widget];
< gt = dotty.graphs[vt.gtid];
< gt.drawgraph (gt, [vt.vtid = vt;]);
< }
293,297c287,288
< }
<
< # else if (~data.obj)
< # gt.insertnode (gt, data.pos, null, null, null, 1);
<
---
> } else if (~data.obj)
> gt.insertnode (gt, data.pos, null, null, null, 1);
322,323d312
< {
< gt.insertnode (gt, data.pos, null, null, null, 1);
325d313
< } |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|