From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from localhost (fantadrom.bsd.lv [local]); by fantadrom.bsd.lv (OpenSMTPD) with ESMTPA id 03742110; for ; Tue, 23 Dec 2014 01:17:16 -0500 (EST) Date: Tue, 23 Dec 2014 01:17:16 -0500 (EST) Message-Id: <7594080228836124645.enqueue@fantadrom.bsd.lv> X-Mailinglist: mdocml-source Reply-To: source@mdocml.bsd.lv MIME-Version: 1.0 From: schwarze@mdocml.bsd.lv To: source@mdocml.bsd.lv Subject: mdocml: Fix vertical scaling. X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Log Message: ----------- Fix vertical scaling. Obviously, nobody ever had a serious look at this. Basic units, centimeters, points, ens, ems, and the rounding algorithm were all wrong, only inches, pica, and the default vertical span worked. Modified Files: -------------- mdocml: term.c Revision Data ------------- Index: term.c =================================================================== RCS file: /home/cvs/mdocml/mdocml/term.c,v retrieving revision 1.238 retrieving revision 1.239 diff -Lterm.c -Lterm.c -u -p -r1.238 -r1.239 --- term.c +++ term.c @@ -776,32 +776,43 @@ term_vspan(const struct termp *p, const double r; switch (su->unit) { + case SCALE_BU: + r = su->scale / 40.0; + break; case SCALE_CM: - r = su->scale * 2.0; + r = su->scale * 6.0 / 2.54; + break; + case SCALE_FS: + r = su->scale * 65536.0 / 40.0; break; case SCALE_IN: r = su->scale * 6.0; break; + case SCALE_MM: + r = su->scale * 0.006; + break; case SCALE_PC: r = su->scale; break; case SCALE_PT: - r = su->scale / 8.0; + r = su->scale / 12.0; break; - case SCALE_MM: - r = su->scale / 1000.0; + case SCALE_EN: + /* FALLTHROUGH */ + case SCALE_EM: + r = su->scale * 0.6; break; case SCALE_VS: r = su->scale; break; default: - r = su->scale - 1.0; - break; + abort(); + /* NOTREACHED */ } if (r < 0.0) r = 0.0; - return((size_t)(r + 0.0005)); + return((size_t)(r + 0.4995)); } size_t -- To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv