Skip to content

Version 2.0.0 Artoria

Compare
Choose a tag to compare
@holishing holishing released this 26 Nov 13:33
· 902 commits to master since this release

Version 2.0.0 Artoria 發行說明

發行代號:Artoria

  • 靈感來源:Fate Stay/Night 系列作品的登場角色,職階 Saber。

v2.0.0 的新增功能與變動

直接影響使用者操作與介面的修正

  • 支援使用 SHA-256 加密密碼
  • 支援使用 SHA-256 產生的發站外信時所使用的 BBS 站簽章
  • 加大最大密碼長度到 36 位
  • 將密碼欄位隱形
  • 設定或產生新密碼時,讓使用者可以選擇要使用新的或舊的密碼加密方法
  • 現在使用 POP3 認證時的密碼欄位的長度增加到 36 個字元
  • 現在使用 POP3 認證時的密碼欄位會隱形
  • 使用處理器數量作為系統負載高低的判斷基準
  • 將處理器數量與系統負載一同顯示
  • 將 yes/no 提示框的非預設選項的字母變為小寫
  • 移除登入畫面的系統負載資訊後的破折號

Command line 工具介面的改進

  • 改善 BBS 工具的不正確 command-line 用法的回報
  • 修正當 poststat 的參數為 1、2、或 100 以外的正數時,會造成越界存取的問題
  • 修正 addsong 的參數為負數時,會減少點歌次數的問題
  • 修正 counter w 可以設定最大同時上線人數、最大註冊人數、
    最大每小時上線數、及最大每天上線數為負數的問題
  • 接受兩個以上參數的 BBS 工具,現在可以使用 -? 語法指定參數以及跳過某些參數

其它 UI 修正及改進

  • 系統程式資訊: 一律顯示所有模組
  • 增加 vget()echo flags VGET_STRICT_DOECHO, VGET_STEALTH_NOECHO, PASSECHO, VGET_BREAKABLE, & NUMECHO
  • 現在使用 LCECHO 時,vget() 會將整個數入字串轉成小寫
  • 系統程式資訊: 如果 LuaJIT 有啟用的話,就顯示出它的版本資訊
  • 移除會呼叫 shell 指令的一部分 adminutil 工具

與 pfterm 有關的改進

  • 初步實作 pfterm 與 pmore 所使用的 vkey_is_typeahead() 函數
  • 更新 pfterm 的註解與參考資料
  • 增加 pfterm 對 ANSI escape sequence ESC [ <n> d (移動到第 <n> 行) 的支援
  • 增加 pfterm 對 ANSI escape sequence ESC [ 27 (反色屬性關) 的支援
    (ESC [ 7 的作用是開啟或關閉反色屬性)

BBS-Lua 的支援

改進

  • 從 PttBBS 引進 bbslua 模組
  • 增加編譯設定 macros
  • 實作轉接 macros 和函數
  • 現在執行 BBS-Lua 前會先檢查使用者有無足夠權限
  • 改善特殊按鍵的處理過程與其它 BBS 系統的相容度
  • 支援 Shift-Tab
  • 實作 bl_getdata()Ctrl-C 偵測
  • 增加 HIDEECHO (32) flag 給 Maple3 版的 bl_getdata(),以讓 NOECHO 效果能與其它 echo flags 自由組合
  • 將 deprecated 的 bitlib library 以 BitOp http://bitop.luajit.org/ 取代
  • 支援 LuaJIT
  • 重新實作 BBS-Lua 在 Maple3 上的鍵盤輸入支援
  • 更新 BBS-Lua 的版本號為 0.119-DlPatch-1
  • 其它較小的 refactoring

修正

  • 修正使用 Ctrl-C 結束程式時會輸出無意義字串的問題。
  • getdata/getstr(): 修正在 PttBBS 上當 echo == 8 時會斷線的問題。
  • getch()/kball(): 修正在 PttBBS 上 ESC- 組合鍵會被誤當作 ESC 鍵的問題。

BBS-Ruby support

  • 從 itszero/bbs-ruby 引進 bbsruby 模組
  • 不載入 "empty.rb"
  • 讓 BBS-Ruby 和 Ruby 1.9 - 2.2 相容
  • 將 BBS-Ruby C API 函數名前綴由 bbs_ 改成 brb_
  • 重新整理 row/line/ycolumn/x 的用法
  • 重新啟用和修復 interface 版本的檢查.
  • 改進 exception 處理以及 debug 訊息
  • 讓程式行號和文章行號一致
  • 現在在執行前會清除畫面
  • 放寬 TOC tags 的語法
  • 現在執行 BBS-Ruby 前會先檢查使用者有無足夠權限
  • 增加編譯設定 macros
  • 讓 BBS-Ruby 能在 PttBBS 上通過編譯
  • 如果可能,讓 getdata()NOECHO echo mode 中把輸入欄位隱形
  • 如果可能,讓 BBS-Ruby 可用 Ctrl-C 結束
  • 其它較小的 refactoring

Fixes

  • 修正 memory leaks
  • 修正存取未初始化變數的問題
  • 修正 Ruby interpreter 會因為取到垃圾值而隨機回報 parsing 錯誤的問題
  • 繞過不能使用 rb_compile_string() + ruby_exec_node() 的問題
  • 修正 BBS-Ruby 遇到錯誤會直接造成 segmentation fault 的問題
  • 修正執行時會導致所有的 signal handlers 被取代的問題
  • 部份解決 class BBS 和 variables 不會重設的問題
  • 修正 Fix move() and moverel() 因為沒有轉換到函數參數而造成結果不正確的問題
  • 其它較小修正

WebSocket proxy 的支援

  • bbsd 支援透過 unix socket 傳送連線資料;相容於 PttBBS 的 WebSocket proxy 模組
  • 從 PttBBS 引進 wsproxy 模組
  • wsproxy: 使用新版本的官方 OpenResty 提供的 method receiveany()
    取代須自行 patch 出的 method receiveatmost()

程式變數型別的改善

  • 移除在函數宣告中無效的 top-level cvr-qualifier 以及 register 關鍵字
  • 將 14 個 static storage 的指標的指向型別加上 const
  • 將超過 374 個函數參數及回傳值的指標的指向型別加上 const
  • 將超過 26 個 static storage 的指標的型別加上 const
  • 將超過 90 個陣列的元素型別加上 const
  • 將超過 11 個指向字串的變數的型別加上 const

與編譯及架站過程有關的改進

  • 編譯時使用 -ggdb3 -O0 以方便 debug
  • 避免在非設定檔中定義 M3_USE_* 之類的 macro
  • 增加 libdao 函數 f_mv() and f_cp() 的測試
  • Refactor Makefiles
  • 消除在 makefiles 中進行 .include 時不必要的載入
  • 支援不使用 dynamic library 載入機制來編譯及使用 BBS 系統的各個程式模組

其它改進

  • 將沒有專門功能的 macros 從 'include/bbs_script.h' 移到 'include/cppdef.h'
  • 改善與 flexible array member 相關的程式碼,並修正 allocate 時微小的 over allocation
  • 引入 PttBBS 對 GCC attribute 定義的一些有用 macros
  • 定義一些有用的 GCC attribute macros
  • 改善 README.md 的語法與用詞
  • 其它較小的 refactor