-
Notifications
You must be signed in to change notification settings - Fork 6
v2.0 Artoria
Wei-Cheng Yeh (IID) edited this page Jul 6, 2021
·
1 revision
- Key H and F1 now both open the help page of pmore/more
- Now the key Del deletes the character on the cursor in the input fields
- Invalid inputs or operations on input fields will now bell
- Support on-the-fly terminal resizing detecting
- Make the layout of
vs_bar()
consistent withvs_head()
- Fix typoes and refine word usage in UI strings
- Most UI elements now support widescreen display
- Re-enable MyFavorite option in Ctrl-Z menu
- The screenshot function in Ctrl-Z menu now supports widescreen
- The screenshot function in Ctrl-Z menu is now enabled when pfterm is enabled
- Add some F* and Esc-* key shortcuts from PttBBS for editor
- The format of idle time is changed from
mmmm
tohh:mm
- Now the guest who idles for too long will be kicked out
- Now the idle alert will bell
- Remove the useless V function of the user list UI
- Now the client will disconnect right after the disconnection message displays
- Now the client will perform the logout works before the logout message displays
- The number of failed reposts or forwarding posts will now be reported
- The key shortcut Ctrl-U of the editor now inputs the character
ESC
instead; please use Esc U to bring out the user list instead - Add key shortcuts Esc 1 - Esc 5 for pasting the text from 1-5th temporary buffer file in the editor
- Fix
blog()
generating misaligned log files, which makes the calculated average session duration incorrect - Use user mode
M_ADMIN
for system maintenance menu instead ofM_XMENU
for better description of the user status - Change the misleading description of user mode
M_XMENU
"網路連線選單"
to"工具選單"
- Fix MyFavorite status being displayed wrong
- Fix reversed type sometimes not being turned off after drawing the input field when pfterm is enabled
- Fix nested popupmenus not being redrawn when entered
- Fix crashes when the user repost a gem item which the user has no read permission
- Fix crashes due to writing to read-only program memory
when calling
getfield()
inu_register()
- Fix misusing
KB
instead ofbytes
as the data size unit inx_siteinfo()
- Fix the issue that failed reposts and forwarding posts increase the personal post count
- Fix all the title of the user ranks generated by
topusr
becoming%s
- Fix corrupted display and crashes in the UI of the input tool of the editer, which is caused by buffer overflow
- Fix the issue that rejected board changes cause the displayed name of the currently entered board become the name of the board to be changed to
- Fix the issue that
class_yank2()
(the i function) is not able to list all the friend-only and hidden boards - Fix the issue that using
class_yank()
(the y function) orclass_yank2()
(the i function) causes the user to be kicked out of or to be not able to enter the board list when there are no corresponding boards - Fix the hottest board listing only the board 'SYSOP'; now it lists all hot boards
- Fix the issue that an empty hottest board list prevents the user from entering the board category list
- Use
int
instead ofchar
to store the result ofvkey()
- Reassign special key values
- Add support for function keys F1 - F12
- Add support for the key combination Shift-Tab
-
maple/visio.c
: Re-enableansi_move()
, and rename it tomove_ansi()
to be consistent with pfterm. - Make the parameters of
maple/visio.c
grayout()
to be consistent with pfterm -
so/adminutil.c
:top()
: Fix shell commandtop
not working. - Remove function
clrtohol()
- Support special keys for more terminals
- Support Ctrl/Meta/Shift key modifiers for special keys
- Fix the connection overload message
msg_no_desc
ofinnbbsd
being truncated - Fix the function
HISfetch()
being declared wrong ininnbbsd/inntobbs.h
- Fix the background for
popupmenu_ans2()
&pmsg2()
not fading out when pfterm is disabled - Fix
pmsg2()
not usingvmsg()
to display the pausing message when the argument isNULL
while pfterm is disabled - Fix: Macros
STANDOUT
andSTANDEND
expand to multiple statements when pfterm is disabled, which causes display issues inSTEALTH_NOECHO
mode ofvget()
on the "Current" version. - Fix pfterm misinterpreting the ANSI escape sequence
ESC <ch>
asESC [ <ch>
(e.g.,ESC m
was misinterpreted asESC [ m
)
- Refine the seeding of pseudorandom number generators
- Improve the security of newly generated/encrypted passwords by using a cryptographically secure pseudorandom number generator (CSPRNG)
- Fix a logical error which causes the user's the ID and plaintext password being mistaken as the user's origin of connection
- Now the plaintext password input by the user will be wiped out after processed
- Now the plaintext site private key for inter-site mails will be wiped out after processed
- Fix: The user's plaintext password is stored in a global variable
whenever the compile option
CHAT_SECURE
is enabled - Fix: The global variable storing the plaintext password cannot be used to login xchatd, because the variable is wiped out after verified.
- Fix accessing uninitialized/garbage variable in 38 places
- Fix writing uninitialized/garbage bytes to disk files in 3 places
- Fix buffer overflows / out-of-bound accesses in 8 places
- Fix unreachable memory leaks in 9 places
- Fix memory corruptions in 4 places
- Fix file resource leaks in 7 places
- Fix invalid
fclose()/close()
calls in 25 places - Fix 30 misuses of
open()
return value and bugs/errors introduced by them - Fix some undefined behaviors
- Fix the global buffer
ipv4addr
being overflowed by IPv4 addresses with 15 characters - Fix potential buffer overflow caused by wrong types of the arguments to format strings
- Fix undefined behaviors caused by the input and output buffers for
sprintf()
overlapping each other - Minor security fixes
-
brh_get()
: Fixmemcpy()
ing unnecessary 3time_t
s. -
brh_add()
: Fix out-of-range writing when adding oldest read article while BRH is full. -
brh_add()
: Fix adding oldest read article always introducing new time tags. -
brh_load()
: Avoidmemcpy()
ing 0 or less bytes. -
brh_get()
: Fix usingmemcpy()
to move data between overlapped ranges, which corrupts BRH sometimes.
- Allow
bin/account
to be executed at 10-59 minutes after the hour every hour - Fix login count never being reset if
bin/account
is never executed at 1 am - scripts/checkusrDIR.sh: Fix 'run/NOUSRDIR.log' never being cleaned.
- Fix
base64encode
tool yields wrong results - Fix
checkemail
mail
s to the same destination twice whenever any arguments are passed - Replace the hardcoded path
/home/bbs
with the macroBBSHOME
- Fix: Accessing uninitialized variables for a
while
condition whenever the argumenthost
ofdns_open()
is a IPv4 address, which causes halts and even crashes
- Define macro
USE_*
ifM3_USE_*
is defined - Scripts are now installed with
bmake install
- Add systemd unit files
- Fix the library path of 32-bit glibc for building dynamic libraries on 64-bit OSs
- Use Travis CI for Build Verification Test
- Fix typoes and refine word usage in comments
- Refine the name of some variables and struct members
- Fix comments which conflict with the code
- Eliminate K&R-style function pointer casts
- Eliminate variable-length arrays
- Fix invalid shebang in shell scripts
- Fix shellcheck warnings for shell scripts
- Eliminate most of
-Wall
warnings - Eliminate most of
-Wwrite-strings
warnings, caused by over 438 places of code - Fix incorrect indentation
- Tweak the code layout
- Other minor refactoring and bug fixes
- Support SHA-256-encrypted passwords
- Support SHA-256 site signature for inter-site mail
- Increase the maximum password length to 36 characters
- Make the password fields invisible
- Allow the user to choose between the old and new password encryption methods when setting/generating new passwords
- Now the password field for POP3 authorization accepts up to 36 characters
- Now the password field for POP3 authorization is invisible
- Now the number of processors accounts for the seriousness of the heaviness of system load
- Now the number of processors is displayed together with the system load
- Make non-default options of yes/no questions lower-case
- Remove the dash after the system load information on the login screen
- Refine reports of invalid command-line usages of the tools
- Fix out-of-bound accesses when the argument for
poststat
is a positive integer other than 1, 2, and 100 - Fix users' song request point decreasing
when the argument for
addsong
is negative - Fix the maximum online user count, the maximum registered user count,
the maximum login count per hour, and the maximum login count per day
can be set to negative by passing negative arguments to
counter w
- The tools which accept more than 2 arguments
now allow parameter designation and omitting with the
-?
syntax
- Site information: Always show all the modules
- Add
echo
flagsVGET_STRICT_DOECHO
,VGET_STEALTH_NOECHO
,PASSECHO
,VGET_BREAKABLE
, &NUMECHO
forvget()
- Make
vget()
convert the whole input string to lowercase ifLCECHO
is set - Site information: Show the version information of external libraries used by enabled modules.
- Remove adminutil tools which invoke shell commands
- Preliminary implement of the function
vkey_is_typeahead()
, which is used by pfterm and pmore, is now done - Update the comments and the references of pfterm
- Add support for ANSI escape sequence
ESC [ <n> d
(move to<n>
-th line) for pfterm - Add support for ANSI escape sequence
ESC [ 27
(reverse off) for pfterm (ESC [ 7
either turns on or turns off the reverse attribute)
- Introduce the bbslua module from PttBBS
- Add configuration macros
- Implement adapter macros and functions
- Now the user permission will be checked before executing BBS-Lua
- Improve the compatibility of key value handling of special keys
- Add support for Shift-Tab
- Implement Ctrl-C detection for
bl_getdata()
- Add
HIDEECHO
(32) flag forbl_getdata()
for Maple3 to allow combiningNOECHO
effect with otherecho
flags - Replace deprecated bitlib library with BitOp http://bitop.luajit.org/
- Support LuaJIT
- Rework current BBS-Lua keyboard support implement for Maple3
- Update BBS-Lua version to
0.119-DlPatch-1
- Other minor refactoring
- Fix printing random string when aborting using Ctrl-C
-
getdata/getstr()
: Fix crash whenecho
== 8 on PttBBS -
getch()
/kball()
: Fix Esc-* keys being mistaken as Esc on PttBBS
- Introduce the bbsruby module from itszero/bbs-ruby
- Do not load
"empty.rb"
- Make BBS-Ruby compatible with Ruby 1.9 - 2.2
- Change the BBS-Ruby C API function name prefix from
bbs_
tobrb_
- Refine the usage of
row
/line
/y
andcolumn
/x
- Re-enable and fix interface version checking.
- Improve exception handling and debugging
- Make the line number of the code consistent with the post
- Clear the screen before executing
- Make the grammar of TOC tags laxer
- Now the user permission will be checked before executing BBS-Ruby
- Add configuration macros
- Make BBS-Ruby able to be compiled on PttBBS
- Draw nothing in the
NOECHO
echo mode ofgetdata()
if possible - Allow aborting BBS-Ruby with Ctrl-C if possible
- Other minor refactoring
- Fix memory leaks
- Fix accessing uninitialized values
- Fix Ruby interpreter randomly reporting parsing errors due to the parser getting garbage bytes
- Work around the issue that
rb_compile_string()
+ruby_exec_node()
do not work - Fix segmentation fault when BBS-Ruby encounter run-time errors
- Fix all signal handlers being overriden permanently in
run_ruby()
- Work around the issue that class
BBS
and variables are never reset - Fix incorrect
move()
andmoverel()
due to missing parameter casts - Other minor fixes
-
bbsd
now allows the connection data to be passed via unix sockets, which is compatible with the WebSocket proxy module used in PttBBS - Introduce the
wsproxy
module from PttBBS -
wsproxy
: Replace the custom methodreceiveatmost()
made by patching, with the official OpenResty methodreceiveany()
.
- Remove ignored top-level cvr-qualifiers and keyword
register
from function declarations - Make 14 static storage pointers point to
const
- Make 374 more function result and parameter pointers point to
const
- Make 26 more static storage pointers
const
- Make the elements of 90 more arrays
const
- Make 11 more point-to-string variables
const
- Use
-ggdb3 -O0
compiler flags for easier debugging - Avoid defining
M3_USE_*
or similar macros in non-configuration files - Add tests for
libdao
functionsf_mv()
andf_cp()
- Refactor Makefiles
- Eliminate unnecessary loading of
.include
for makefiles - Support disabling dynamic library loading
- Move generic macros from
include/bbs_script.h
toinclude/cppdef.h
- Refine code and fix minor over allocation for flexible array members
- Introduce some useful macros for GCC attributes from PttBBS
- Define some useful GCC attribute macros
- Refine grammar and wording of
README.md
- Other minor refactoring
- Home
- Install — 安裝說明
- Version
- Project Documentations — 專案說明文件
- Coding Style & Conventions — 程式碼撰寫風格與慣例
- Indentation
- Xover List System — Xover 列表系統
- Menu Systems — 選單系統
- Screen Coordinate System — 畫面座標系統
- BoardReadingHistory — BRH 看板閱讀紀錄系統
- Visio I/O Library — Visio 輸出入函式庫
- Permission System — 權限系統
- TANet BBS Family Genealogy Chart — TANet BBS 家族譜系圖
- 與 MapleBBS 3 的按鍵差異
- [WIP] 與 MapleBBS 3 的差異
- References — 參考資料
- Changelog & TODO
- Issue & TODO list — 問題與代辦事項清單
- MapleBBS-itoc Porting Project — MapleBBS-itoc 移植計畫
- BBS-Lua Changelog
- BBS-Ruby Changelog (external link — 外部鏈結)
- 新式密碼加密 (DLBBS v2.0+)
- [WIP] DreamBBS v3 發佈說明 Release Note
- Release Notes of Version 2.0.0 Artoria
- Version 2.0.0 Artoria 發行說明
- Release Notes of Version 1.0.0 Rimuru
- Version 1.0.0 Rimuru 發行說明
- NoCeM-innbbsd 原始說明文件
- WindTop 3.02 原始說明文件