@@ -128,6 +128,10 @@ instant_t lf_time_start(void) {
128128}
129129
130130size_t lf_readable_time (char * buffer , instant_t time ) {
131+ if (time <= (instant_t )0 ) {
132+ snprintf (buffer , 2 , "0" );
133+ return 1 ;
134+ }
131135 char * original_buffer = buffer ;
132136 bool lead = false; // Set to true when first clause has been printed.
133137 if (time > WEEKS (1 )) {
@@ -147,8 +151,8 @@ size_t lf_readable_time(char* buffer, instant_t time) {
147151 size_t printed = lf_comma_separated_time (buffer , time / DAYS (1 ));
148152 time = time % DAYS (1 );
149153 buffer += printed ;
150- snprintf (buffer , 6 , " days " );
151- buffer += 5 ;
154+ snprintf (buffer , 3 , " d " );
155+ buffer += 2 ;
152156 }
153157 if (time > HOURS (1 )) {
154158 if (lead == true) {
@@ -159,8 +163,8 @@ size_t lf_readable_time(char* buffer, instant_t time) {
159163 size_t printed = lf_comma_separated_time (buffer , time / HOURS (1 ));
160164 time = time % HOURS (1 );
161165 buffer += printed ;
162- snprintf (buffer , 7 , " hours " );
163- buffer += 6 ;
166+ snprintf (buffer , 3 , " h " );
167+ buffer += 2 ;
164168 }
165169 if (time > MINUTES (1 )) {
166170 if (lead == true) {
@@ -171,8 +175,8 @@ size_t lf_readable_time(char* buffer, instant_t time) {
171175 size_t printed = lf_comma_separated_time (buffer , time / MINUTES (1 ));
172176 time = time % MINUTES (1 );
173177 buffer += printed ;
174- snprintf (buffer , 9 , " minutes " );
175- buffer += 8 ;
178+ snprintf (buffer , 5 , " min " );
179+ buffer += 4 ;
176180 }
177181 if (time > SECONDS (1 )) {
178182 if (lead == true) {
@@ -183,28 +187,26 @@ size_t lf_readable_time(char* buffer, instant_t time) {
183187 size_t printed = lf_comma_separated_time (buffer , time / SECONDS (1 ));
184188 time = time % SECONDS (1 );
185189 buffer += printed ;
186- snprintf (buffer , 9 , " seconds " );
187- buffer += 8 ;
190+ snprintf (buffer , 3 , " s " );
191+ buffer += 2 ;
188192 }
189193 if (time > (instant_t )0 ) {
190194 if (lead == true) {
191195 snprintf (buffer , 3 , ", " );
192196 buffer += 2 ;
193197 }
194- const char * units = "nanoseconds " ;
198+ const char * units = "ns " ;
195199 if (time % MSEC (1 ) == (instant_t ) 0 ) {
196- units = "milliseconds " ;
200+ units = "ms " ;
197201 time = time / MSEC (1 );
198202 } else if (time % USEC (1 ) == (instant_t ) 0 ) {
199- units = "microseconds " ;
203+ units = "us " ;
200204 time = time / USEC (1 );
201205 }
202206 size_t printed = lf_comma_separated_time (buffer , time );
203207 buffer += printed ;
204- snprintf (buffer , 14 , " %s" , units );
208+ snprintf (buffer , 3 , " %s" , units );
205209 buffer += strlen (units ) + 1 ;
206- } else {
207- snprintf (buffer , 2 , "0" );
208210 }
209211 return (buffer - original_buffer );
210212}
0 commit comments