Andrew Wood
|
a7f392e3c3
|
Address splint warnings about setting and clearing state->control.name (#165).
|
2025-07-27 21:34:46 +01:00 |
|
Andrew Wood
|
574ea04502
|
Instead of adding an aliased display name and having to maintain it and treat it differently, go back to keeping the name only in the "control" sub-structure of the state, but share the global state "control" across all watched fds, and just change it before each pv_display() call so it points to the relevant fd display_name when needed (#165).
|
2025-07-27 21:23:41 +01:00 |
|
Andrew Wood
|
5282a521b5
|
Pass only the relevant sub-structure to pv_alloc_history (#165).
|
2025-07-27 20:59:21 +01:00 |
|
Andrew Wood
|
52634f01f9
|
Do not call pv_state_name_set when adjusting an fd display_name, but instead set the alias state->display.name ourselves. Since the fd display_name we are pointing to is within the info_array, if we extend info_array with realloc we then have to also reset those aliases since display_name may move if realloc rebases the array. (#165)
|
2025-07-27 20:51:00 +01:00 |
|
Andrew Wood
|
a0f2d9c9c7
|
Use status, cursor from main state, and a null extra_display, to reduce the dependency on the per-watched-fd state (#165).
|
2025-07-27 20:46:51 +01:00 |
|
Andrew Wood
|
8386c05978
|
Explicitly check for non-NULL rather than treating NULL as boolean false.
|
2025-07-27 20:43:52 +01:00 |
|
Andrew Wood
|
6a2b9a2788
|
Add an alias for the name for %N to the display sub-structure, so that the name can be varied between displays without having to alter the control value (#165).
|
2025-07-27 19:53:28 +01:00 |
|
Andrew Wood
|
e04f50f0dc
|
Change all cursor positioning functions to use sub-structures rather than the whole state structure, and if turning off cursor positioning, do so via a new flag "cursor->disable" rather than changing the operator-supplied options in "control" (#165).
|
2025-07-27 17:05:04 +01:00 |
|
Andrew Wood
|
021dc6e054
|
Pass individual sub-structures to pv_display, but still keep state for now, until the functions cursor.c have been updated to take sub-structures rather than the whole state (#165).
|
2025-07-27 15:56:03 +01:00 |
|
Andrew Wood
|
7d7efac7c6
|
Move the terminal_supports_utf8, terminal_supports_colour, and checked_colour_support flags out of "control" and into "status", as they are not operator-supplied options, but are program-generated status flags; this will allow "control" to remain read-only for larger parts of the program (#165).
|
2025-07-27 15:37:16 +01:00 |
|
Andrew Wood
|
f79bed3cb8
|
Rename "can_display_colour" and "can_display_utf8" to "terminal_supports_colour" and "terminal_supports_utf8" to make it clearer that these are not operator-supplied option settings, they are derived from terminal capabilities (colour) and the environment (UTF-8).
|
2025-07-27 15:20:05 +01:00 |
|
Andrew Wood
|
2171f40703
|
Address the splint warning.
|
2025-07-27 00:34:09 +01:00 |
|
Andrew Wood
|
960ff1572f
|
Pass state->status, rather than state itself, to pv_format (#165).
|
2025-07-27 00:31:45 +01:00 |
|
Andrew Wood
|
da2a2e6fd2
|
Remove the state from the pv_error arguments, by adding a new function pv_set_error_prefix to call on startup, eliminating the need for a state program_name string; and add a private boolean to track whether there has been any output which means errors need preceding by a newline, which is updated by pv_display directly (#165).
|
2025-07-27 00:22:57 +01:00 |
|
Andrew Wood
|
005bc2f841
|
Pass the sub-structures separately to pv_format and pv__format_init rather than the whole state; but still pass state for now, as pv_error needs it (#165).
|
2025-07-26 22:49:29 +01:00 |
|
Andrew Wood
|
ecc0c0e414
|
Adjust the readonly structure pointer types so the pointer itself is not read-only but the thing it points to is; and change the display formatters to use pointers to control, transfer, and calc structures instead of the whole state, with read-only access enforced at compile time (#165).
|
2025-07-26 22:28:39 +01:00 |
|
Andrew Wood
|
18548d217b
|
Rename struct pvipcstate_s to pvcursorstate_s since it is for cursor positioning, not for IPC (#165).
|
2025-07-26 21:30:16 +01:00 |
|
Andrew Wood
|
653326ca9b
|
Rename struct pvcursorstate_s to pvipccursorstate_s for clarity since it is only for IPC (#165).
|
2025-07-26 21:29:20 +01:00 |
|
Andrew Wood
|
0cf8902d9b
|
Rename display structure member "display_visible" to "output_produced" for clarity.
|
2025-07-26 21:25:54 +01:00 |
|
Andrew Wood
|
762676f4e1
|
Make pv_tty_write take only the transient flags part of the state rather than the whole state, and rename the "flag" part of the state to "flags" for better readability (#165).
|
2025-07-26 21:18:13 +01:00 |
|
Andrew Wood
|
3bd49a0c3f
|
Ensure the current average rate calculation can't accidentally divide by zero.
|
2025-07-26 20:53:22 +01:00 |
|
Andrew Wood
|
870dfad9fd
|
Introduce read-only structure pointer typedefs for each of the state sub-structures, so the compiler will catch anywhere that a function would alter a structure it isn't expected to (#165).
|
2025-07-26 20:51:28 +01:00 |
|
Andrew Wood
|
3b0891b128
|
Pass more specific structures to pv_calculate_transfer_rate rather than the whole state (#165).
|
2025-07-26 19:22:07 +01:00 |
|
Andrew Wood
|
b3c854b27a
|
Add typedefs for the pointers to the sub-structures within struct pvstate_s, so they can be used as types in function declarations (#165).
|
2025-07-26 18:33:24 +01:00 |
|
Andrew Wood
|
a923bdaca4
|
Give struct names to each of the sub-structures within struct pvstate_s, so they can be used as types in function declarations (#165).
|
2025-07-26 18:24:47 +01:00 |
|
Andrew Wood
|
0070a74390
|
Correct a minor typo in a comment.
|
2025-07-26 17:57:46 +01:00 |
|
Andrew Wood
|
025577a13f
|
Free default_bar_style on exit.
|
2025-07-25 23:46:24 +01:00 |
|
Andrew Wood
|
c180cc85cf
|
Allocate the state copy's default_bar_style using the setter function rather than pv_strdup directly (#163).
|
2025-07-25 23:44:12 +01:00 |
|
Andrew Wood
|
092a30dd7d
|
When watching file descriptors, duplicate the default_bar_style string rather than copying its pointer, to avoid double-free() (#163).
|
2025-07-25 23:40:41 +01:00 |
|
Andrew Wood
|
7924a796ea
|
Add debugging message when SIGPIPE is received.
|
2025-07-25 20:49:50 +01:00 |
|
Andrew Wood
|
e687c9b4d9
|
When EOF on input and output is reached but the output pipe buffer is not empty, sleep for a short time before looping while waiting for the buffer to empty, to avoid a busy-wait (#164).
|
2025-07-25 20:13:49 +01:00 |
|
Andrew Wood
|
d2e9028726
|
Add debugging output to pv_transfer wherever it returns zero (#164)
|
2025-07-25 19:49:02 +01:00 |
|
Andrew Wood
|
71e29b7388
|
Adjust project URL.
|
2025-02-19 20:42:22 +00:00 |
|
Andrew Wood
|
8664521f08
|
Reformat with indent; update translation string line numbers.
|
2025-01-26 20:08:17 +00:00 |
|
Andrew Wood
|
505a91a6ed
|
In --numeric mode, still call the same formatting functions, only with a different default string, and end with a newline rather than a carriage return (#127).
|
2025-01-25 21:15:05 +00:00 |
|
Andrew Wood
|
0d3b678800
|
Format the average rate, byte/line count, percentage completion, transfer rate, and elapsed time as just a number on its own in numeric mode.
|
2025-01-24 23:10:59 +00:00 |
|
Andrew Wood
|
efb115c2aa
|
Remove the TODO since buffer utilisation may not be useful with --numeric, as it is not always a number.
|
2025-01-24 23:07:05 +00:00 |
|
Andrew Wood
|
8721d285ce
|
Add TODO markers at possible touch points for "--numeric --format" implementation (#127).
|
2025-01-23 21:56:57 +00:00 |
|
Andrew Wood
|
42e47e8291
|
Turn off IPC support when sys/shm.h is missing, to fix compilation on Termux.
|
2025-01-10 23:23:07 +00:00 |
|
Andrew Wood
|
7d6c7d0735
|
Copyright note update for 2025.
|
2025-01-03 16:11:08 +00:00 |
|
Andrew Wood
|
dc6cd1819d
|
Initialise the newly allocated memory, not the pointer to it.
|
2024-12-22 11:29:21 +00:00 |
|
Andrew Wood
|
1ef1d858f8
|
Initialise the newly allocated memory.
|
2024-12-22 11:24:52 +00:00 |
|
Andrew Wood
|
74c75d36cc
|
Move the array bounds check outside the conditional section, so that it is also performed on macOS.
|
2024-12-22 11:15:29 +00:00 |
|
Andrew Wood
|
7a4264fe1e
|
Do not show negative timer values.
|
2024-12-22 00:42:01 +00:00 |
|
Andrew Wood
|
5decddeb42
|
Ensure the dynamic segment width never tries to go negative.
|
2024-12-22 00:21:34 +00:00 |
|
Andrew Wood
|
ec46261757
|
Type boundary checks.
|
2024-12-18 22:23:19 +00:00 |
|
Andrew Wood
|
ff0355ca9c
|
Make the moving indicator more granular on wide displays by calculating its position with floating point rather than integer values.
|
2024-12-18 21:59:17 +00:00 |
|
Andrew Wood
|
2bd364fee8
|
Add TODO note.
|
2024-12-18 00:01:10 +00:00 |
|
Andrew Wood
|
21ca350946
|
Use specific types for display widths, byte counts, and type of format string component, mainly to have the option of packing more into less space.
|
2024-12-17 23:55:15 +00:00 |
|
Andrew Wood
|
02bf302f96
|
If ncurses is not supported, provide code to call "tputs" via popen(), but do not enable it because it is not very safe, and instead just assume colour is always available.
|
2024-12-17 22:48:43 +00:00 |
|