| 116 | } |
| 117 | |
| 118 | static const char *duration_format(apr_pool_t *p, apr_interval_time_t duration) |
| 119 | { |
| 120 | const char *s = "0"; |
| 121 | int units = (int)(apr_time_sec(duration) / MD_SECS_PER_DAY); |
| 122 | int rem = (int)(apr_time_sec(duration) % MD_SECS_PER_DAY); |
| 123 | |
| 124 | if (rem == 0) { |
| 125 | s = apr_psprintf(p, "%dd", units); |
| 126 | } |
| 127 | else { |
| 128 | units = (int)(apr_time_sec(duration) / MD_SECS_PER_HOUR); |
| 129 | rem = (int)(apr_time_sec(duration) % MD_SECS_PER_HOUR); |
| 130 | if (rem == 0) { |
| 131 | s = apr_psprintf(p, "%dh", units); |
| 132 | } |
| 133 | else { |
| 134 | units = (int)(apr_time_sec(duration) / 60); |
| 135 | rem = (int)(apr_time_sec(duration) % 60); |
| 136 | if (rem == 0) { |
| 137 | s = apr_psprintf(p, "%dmi", units); |
| 138 | } |
| 139 | else { |
| 140 | units = (int)(apr_time_sec(duration)); |
| 141 | rem = (int)(apr_time_msec(duration) % 1000); |
| 142 | if (rem == 0) { |
| 143 | s = apr_psprintf(p, "%ds", units); |
| 144 | } |
| 145 | else { |
| 146 | s = apr_psprintf(p, "%dms", (int)(apr_time_msec(duration))); |
| 147 | } |
| 148 | } |
| 149 | } |
| 150 | } |
| 151 | return s; |
| 152 | } |
| 153 | |
| 154 | const char *md_duration_format(apr_pool_t *p, apr_interval_time_t duration) |
| 155 | { |
no outgoing calls
no test coverage detected