# Changelog of new T-Hist and related utilities

The terms `binary log` and `history file` used below are equivalent.

## [1.0.4] - 2026-08-21

### Changed

- Minor resizing the columns width of the link statistics table (which is saved in the file specified in the `LinkStat` parameter).

- DmpHist utility now print a more detailed descryption of sessions status bits at the end of the table.

## [1.0.3] - 2026-08-18

### Fixed

- Fixed processing of addresses excluded from statistics (specified with the character `!`, for example `Addr !2: 5020/378.1`).
Previously, sessions with such addresses were mistakenly displayed in session statistics, and always as aborted. Now such addresses are excluded from all types of statistics.

### Changed

- Changing the format of the sessions statistics table (which is saved in the file specified in the `SessionStat` parameter).
Now the session start time is printed with an accuracy of seconds (previously there was an accuracy of minutes).
The session end time is excluded due to redundancy &ndash; statistics show the duration of sessions.

- Aborted BinkD sessions now are marked in the sessions statistics table with `A` character after address. Previously, they were not marked.

- Improved algorithm for calculating average CPS when specifying `AdvancedCPS Yes` in the configuration file.

## [1.0.2] - 2026-08-14

### Fixed

- Fixed incorrect handling of `ShowValue` parameter and `-s` command line option.

### Changed

- Minor changing of the diagnostic messages printed to `stderr`.

## [1.0.1] - 2026-08-13

### Fixed

- Fixed truncation of history files (when `CutHistory` parameter is set).

## [1.0.0] - 2026-08-12

First new version. Added Linux support. Switch to UTF-8 encoding.

**Attention!** This version truncate the history files incorrectly (when `CutHistory` parameter is set).

### Added

- Added Linux (x86_64 and i686) and Windows (x86_64 and i686) support.
Executable files for each of the Linux architectures are compiled in two variants: with dynamic and with static libraries.
Variants with static libraries are further compressed by [UPX 4.2.4](https://upx.github.io) executable packer to reduce their size.

- LnkStat and DmpHist utilities (but not T-Hist) now have the `-u` command line option to select the encoding of the displayed information:

	`-u`, `-u+` &ndash; use UTF-8 encoding (default)

	`-u-` &ndash; use ASCII 7-bit encoding without pseudo-graphics

### Changed

- All utilities now print information and create output text files in UTF-8 encoding.
To post statistics in FTN echo conferences or netmail, text files must be converted to the appropriate encoding. For example, for Russian-language echo conferences with CP866 encoding:

	```shell
	iconv -f UTF-8 -t CP866 in.txt -o out.txt
	```

- For sessions recorded in a binary log with a duration of 0 seconds, a duration of 1 second is set. This allows more accurate build the load histograms.

	**Reason**: time intervals in binary logs are recorded with an accuracy of a second (binary log formats were developed during dial-up epoch,
when there were practically no sessions shorter than a second). But in Fido-over-IP epoch, sessions often have duration less than a second.
For such sessions, the duration of 0 seconds will be written to the binary log. Older versions of T-Hist did not take such short sessions into account when building load histograms.

	**Exception**: this change does not apply to DmpHist utility. This utility continues to work as before: it displays raw data from binary logs without any adjustment.
For sessions shorter than a second, the utility will print a duration of 0 seconds, as recorded in the binary log.

	**Side effect**: default underestimation of the average CPS (Characters per Second &ndash; the number of characters/bytes transferred per second).
By default, when calculating the average CPS, the duration of all sessions is summed up: both non-empty and empty. In older versions of the utilities, most empty IP sessions
were 0 seconds long and did not increase the total time of all sessions. After this change, each empty session increases the estimated total time by at least 1 second,
although most likely the session was shorter. The more empty sessions are processed, the more the calculated sum of durations of all sessions will exceed the real total time.
And this leads to an underestimate of the CPS. For compatibility with older versions of utilities, this behavior is retained by default.
For a more correct calculation of the average CPS when using IP mailers, specify in the configuration file:

	`AdvancedCPS Yes`

- `NoDrawZero` parameter also affects load histograms (previously this parameter only affected load graph).
Now the busy histogram always corresponds to the "summation" of all load graph lines.


### Removed

- DOS and OS/2 support removed. 

