March 30, 2007

ダブルクリックで選択する文字範囲の変更

先日ちょっとした事故でgnome-terminalのprofileをすべて消失させてしまってから、ダブルクリックによる文字選択の挙動が変わってしまったので、ちょっとメモ。

まず何が悪かったかというと、profileのdialogにある「単語単位で選択する文字」が空だったことで、これによって英数字のみ単語として認識する、という状況だった。これだと、ちょっと不便なので、設定を次のように変えた。

.0-9A-Za-z-

実際にこれを処理しているのがvte_terminal_set_word_chars()で、レンジ指定を可能にするためにハイフンのみ特殊な役割を担っている。よって-そのものを含めたい場合は、その出現位置に注意しないといけない。ややバグっぽい挙動だけど

0-9A-Za-z.-

と記述すると.が無視されてしまう。まあ単独の文字として扱われる条件が

                if ((wbuf[i] != '-') && (wbuf[i + 1] != '-')) {

で、レンジの条件が

                if ((wbuf[i] != '-') &&
(wbuf[i + 1] == '-') &&
(wbuf[i + 2] != '-') &&
(wbuf[i + 2] != 0)) {

となっていて、これに漏れた条件については救済していないのが原因。BK臭が漂ってはいるけれども最初に書いたようにしておいた。

March 28, 2007

rpmでのbuild手順の省略方法

rpmをbuild中にspecファイルの記述ミスとかで、散々待たされた挙句エラー、なんてことを経験したことはないだろうか。そんな時に役立つのが--short-circuitオプション。

-bc-biと組み合わせて使い、それぞれ、%buildから開始、%installから開始という具合に動作する。configureを%prepとかに書いとけば、makeでこけても

$ rpmbuild -bc --short-circuit foo.spec

とかやれば、続きからbuildしてくれる。
ほとんどがconfigureは%buildに書かれているので、便利か不便かはspecの書き方次第になってしまうのがちょっと悲しいところ。

March 26, 2007

URLの補完

URLを入力するときにctrl+enterでwww. + .com、shift+enterでwww. + .net、ctrl+shift+enterでwww. + .orgを補完してくれるらしい。

他にはctrl+Lでロケーションバーに移動とか、ロケーションバーにフォーカスがある状態で、ctrl+UでURL削除とか。その他のEmacs keybindings

February 23, 2007

NT_STATUS_BAD_NETWORK_NAME

野暮用でRawhide上にsambaの設定をしてみたんだけど、smbclientでテストしてみても繋がらない。ログは次のとおり。

[2007/02/23 05:10:45, 0] smbd/service.c:make_connection_snum(920)
'/home/samba/public' does not exist or permission denied when connecting to [T
esting] Error was 許可がありません

/home/samba/publicのpermissionも問題なく途方に暮れてたところ、SELinuxが悪さしてたことが判明。

type=AVC msg=audit(1172175045.653:1369): avc: denied { search } for pid=27149
comm="smbd" name="home" dev=dm-0 ino=1305601 scontext=user_u:system_r:smbd_t:s0
tcontext=system_u:object_r:home_root_t:s0 tclass=dir

smbdのhomeへのアクセスを許すためには次の設定が必要らしい。

# setsebool -P samba_enable_home_dirs=1

February 8, 2007

semanticのDBファイルを一ヶ所に集約させる

semanticと いうelispで書かれたparserがあるのだけれど、読み込んだソースコードを解析して、関数のプロトタイプとか構造体や型の定義なんかも出してくれ たりと便利なんだけど、解析結果のcacheとしてそのファイルのあったディレクトリの下にsemantic.cacheというファイルを作ってくれる。 ドットファイルではなく。もろ見えてるし、ソースコード管理下にあるファイルの場合浮いてしまうので精神衛生上あまりよろしくない。という理由で使うのを やめてたのだけど、よくよく見てみると実はこのファイル名を変えられるし、保存先も変えられた。ということで.emacsに

(setq semanticdb-default-save-directory "~/.semantic")
という一行を加えてみた。どのように区別されるのかというと、!path!to!top!of!working!directory!semantic.cacheみたいなファイルを作り、cacheがどれかを区別するようだ。

まあでも使ってみると、idle時にいろいろ裏でやっててCPU食いまくって使う気が失せるんだけどね。