ref: 8cd43423e4842210048f29e450ed339fbd17ea82
parent: ca4bbd28c33899685d9d7362bc90e0545dc118d6
author: Ali Gholami Rudi <ali@rudi.ir>
date: Fri Dec 12 13:18:19 EST 2014
fmt: consider line length in short line cost
--- a/fmt.c
+++ b/fmt.c
@@ -472,8 +472,10 @@
break;
cost = fmt_findcost(f, i);
/* the cost of formatting short lines; should prevent widows */
- if (br && n_pmll && lwid < llen * n_pmll / 100)
- cost += n_pmllcost;
+ if (br && n_pmll && lwid < llen * n_pmll / 100) {
+ int pmll = llen * n_pmll / 100;
+ cost += (long) n_pmllcost * (pmll - lwid) / pmll;
+ }
if (best < 0 || cost < best_cost) {
best = i;
best_cost = cost;