Improve str_truncate

Check start_column <  wcols and issue error
Reduce output length by 1 to take care a
situation where output_length maybe provided
by strlen which excludes the null terminator
and sizeof which may or may count the terminator.
This commit is contained in:
PartialVolume
2025-12-30 22:24:49 +00:00
committed by Fabian Druschke
parent fea3d8c303
commit f6840105b0

View File

@@ -8257,16 +8257,22 @@ char* str_truncate( int wcols, int start_column, const char* input, char* output
*/
int length, idx = 0;
length = wcols - start_column - 1;
idx = 0;
while( idx < output_length && idx < length )
if( start_column < wcols )
{
output[idx] = input[idx];
idx++;
length = wcols - start_column - 1;
idx = 0;
while( idx < output_length - 1 && idx < length && input[idx] != 0 )
{
output[idx] = input[idx];
idx++;
}
/* terminate the string */
output[idx] = 0;
}
else
{
strncpy( output, "Error:start_column>=wcols", output_length - 1 );
}
/* terminate the string */
output[idx] = 0;
return output;
}