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 with vs_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 to hh: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 EscU to bring out the user list instead
Add key shortcuts Esc1 - Esc5 for pasting the text
from 1-5th temporary buffer file in the editor
Fixes which directly affect the UI
Fix blog() generating misaligned log files, which makes the calculated average session duration incorrect
Use user mode M_ADMIN for system maintenance menu instead of M_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() in u_register()
Fix misusing KB instead of bytes as the data size unit in x_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) or class_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
Other UI fixes
Use int instead of char to store the result of vkey()
Reassign special key values
Add support for function keys F1 - F12
Add support for the key combination Shift-Tab
maple/visio.c: Re-enable ansi_move(), and rename it to move_ansi() to be consistent with pfterm.
Make the parameters of maple/visio.cgrayout() to be consistent with pfterm
so/adminutil.c: top(): Fix shell command top 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 of innbbsd being truncated
Fix the function HISfetch() being declared wrong in innbbsd/inntobbs.h
Fixes about pfterm
Fix the background for popupmenu_ans2() & pmsg2()
not fading out when pfterm is disabled
Fix pmsg2() not using vmsg() to display the pausing message
when the argument is NULL while pfterm is disabled
Fix: Macros STANDOUT and STANDEND expand to multiple statements when pfterm is disabled,
which causes display issues in STEALTH_NOECHO mode of vget() on the "Current" version.
Fix pfterm misinterpreting the ANSI escape sequence ESC <ch> as ESC [ <ch>
(e.g., ESC m was misinterpreted as ESC [ m)
Fixes for the password security
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.
Other fixes for the system security
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 fixes
brh_get(): Fix memcpy()ing unnecessary 3 time_ts.
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(): Avoid memcpy()ing 0 or less bytes.
brh_get(): Fix using memcpy() to move data between overlapped ranges, which corrupts BRH sometimes.
Uncategorized fixes
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 checkemailmails to the same destination twice
whenever any arguments are passed
Replace the hardcoded path /home/bbs with the macro BBSHOME
Fix: Accessing uninitialized variables for a while condition
whenever the argument host of dns_open() is a IPv4 address,
which causes halts and even crashes
Improvements about build and employment process
Define macro USE_* if M3_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
Other fixes and improvements
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
Features and fixes for v2.0.0
Fixes which directly affects the UI
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
Improvements of the UI of the command-line tools
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