aboutsummaryrefslogtreecommitdiffstats
path: root/src/todo.c
diff options
context:
space:
mode:
authorLukas Fleischer <calcurse@cryptocrack.de>2012-07-10 02:20:04 +0200
committerLukas Fleischer <calcurse@cryptocrack.de>2012-07-10 11:58:15 +0200
commit8375e9a51b29a54e86fca3e923d8f1fb01910666 (patch)
tree49f43471d8f11b4edf10e9d38d9b971010c6c6a2 /src/todo.c
parent8311f14dea7d5a68e67eae530dfa9a401e958372 (diff)
downloadcalcurse-8375e9a51b29a54e86fca3e923d8f1fb01910666.tar.gz
calcurse-8375e9a51b29a54e86fca3e923d8f1fb01910666.zip
Use integers rather than floats everywhere
We don't need floating point precision if results are casted back to integer. Instead, rearrange operations and do the integer division after the multiplication. Version numbers are terminating decimals anyway and can be stored using two integers without losing any information. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
Diffstat (limited to 'src/todo.c')
-rw-r--r--src/todo.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/todo.c b/src/todo.c
index ae5a81e..9b8f283 100644
--- a/src/todo.c
+++ b/src/todo.c
@@ -311,9 +311,8 @@ void todo_update_panel(int which_pan)
/* Draw the scrollbar if necessary. */
if (todos > max_items) {
- float ratio = ((float)max_items) / ((float)todos);
- int sbar_length = (int)(ratio * (max_items + 1));
- int highend = (int)(ratio * first);
+ int sbar_length = max_items * (max_items + 1) / todos;
+ int highend = max_items * first / todos;
unsigned hilt_bar = (which_pan == TOD) ? 1 : 0;
int sbar_top = highend + title_lines;