| |||||||
adm | Find | login register |
Hi, 今天發現當 HOME 非常長的時候(如 /usr/local/shared-nfs/home/$USERID ), gcin 在第一次切換到注音或詞音時會出問題。 查了一下發現是 table-update.cpp 定義了一個 char [256] 的空間放 shell command,不過這個 command 使用 sprintf 而且會重複包含HOME的檔名多次, 所以HOME一長就會超過長度256了。
建議 (1) mv -f 那邊可以直接用 remove() 加 rename() 來代替 (2) echo %d > %s 也直接用 open() 加 fprintf() 來替 (3) cp 那邊還是想用 system,可以改用 snprintf 加上 cmd 變成 [MAX_PATH*2] 如果覺得太麻煩,希望起碼把 cmd[256] 改成 cmd[MAX_PATH * 6] 謝謝!
-- piaip | |||||||||||
|
| |||||||
adm | Find | login register |