diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2011-12-14 23:29:07 +0000 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2011-12-14 23:29:07 +0000 |
commit | 9c44f589d2aab70309d11bc5a0050c145452fb4f (patch) | |
tree | aef0a3de1debc6236acac6eed815926a421088b0 | |
parent | 0bb8dba9371d6caa6fefc7ab0034b11fd109ab36 (diff) |
show proper values for very large times
-rw-r--r-- | Process.c | 17 |
1 files changed, 11 insertions, 6 deletions
@@ -312,19 +312,24 @@ static void Process_printTime(RichString* str, unsigned long long t) { double realTime = t * jiffytime; int iRealTime = (int) realTime; - int hours = iRealTime / 3600; + unsigned long long hours = iRealTime / 3600; int minutes = (iRealTime / 60) % 60; int seconds = iRealTime % 60; int hundredths = (realTime - iRealTime) * 100; char buffer[11]; - if (hours) { - snprintf(buffer, 10, "%2dh", hours); + if (hours >= 100) { + snprintf(buffer, 10, "%7lluh ", hours); RichString_append(str, CRT_colors[LARGE_NUMBER], buffer); - snprintf(buffer, 10, "%02d:%02d ", minutes, seconds); } else { - snprintf(buffer, 10, "%2d:%02d.%02d ", minutes, seconds, hundredths); + if (hours) { + snprintf(buffer, 10, "%2lluh", hours); + RichString_append(str, CRT_colors[LARGE_NUMBER], buffer); + snprintf(buffer, 10, "%02d:%02d ", minutes, seconds); + } else { + snprintf(buffer, 10, "%2d:%02d.%02d ", minutes, seconds, hundredths); + } + RichString_append(str, CRT_colors[DEFAULT_COLOR], buffer); } - RichString_append(str, CRT_colors[DEFAULT_COLOR], buffer); } static inline void Process_writeCommand(Process* this, int attr, int baseattr, RichString* str) { |